[Checkins] SVN: zc.testbrowser/trunk/src/zc/testbrowser/real. Got list selection tests passing.

Rocky Burt rocky at serverzen.com
Tue Sep 25 12:01:02 EDT 2007


Log message for revision 80020:
  Got list selection tests passing.
  (Rocky, Justas)
  

Changed:
  U   zc.testbrowser/trunk/src/zc/testbrowser/real.js
  U   zc.testbrowser/trunk/src/zc/testbrowser/real.py

-=-
Modified: zc.testbrowser/trunk/src/zc/testbrowser/real.js
===================================================================
--- zc.testbrowser/trunk/src/zc/testbrowser/real.js	2007-09-25 15:43:11 UTC (rev 80019)
+++ zc.testbrowser/trunk/src/zc/testbrowser/real.js	2007-09-25 16:01:01 UTC (rev 80020)
@@ -317,8 +317,12 @@
         var res = tb_xpath('child::option', elem)
         for (var c = 0; c < res.snapshotLength; c++) {
             var item = res.snapshotItem(c);
-            if (item.selected)
-                options.push(item.textContent);
+            if (item.selected) {
+                if (item.hasAttribute('label'))
+                    options.push(item.getAttribute('label'));
+                else
+                    options.push(item.textContent);
+            }
         }
     }
     return options.toSource();
@@ -332,7 +336,8 @@
         var res = tb_xpath('child::option', elem)
         for (var c = 0; c < res.snapshotLength; c++) {
             var item = res.snapshotItem(c);
-            if (value.indexOf(item.textContent) != -1)
+            if (value.indexOf(item.textContent) != -1 
+                || value.indexOf(item.getAttribute('label')) > -1)
                 item.selected = true;
             else
                 item.selected = false;
@@ -341,6 +346,23 @@
     return options.toSource();
 }
 
+function tb_set_listcontrol_value(token, value) {
+    var elem = tb_tokens[token];
+    var tagName = elem.tagName;
+    var options = new Array();
+    if (tagName == 'SELECT') {
+        var res = tb_xpath('child::option', elem)
+        for (var c = 0; c < res.snapshotLength; c++) {
+            var item = res.snapshotItem(c);
+            if (value.indexOf(item.getAttribute('value')) != -1)
+                item.selected = true;
+            else
+                item.selected = false;
+        }
+    }
+    return options.toSource();
+}
+
 function tb_get_listcontrol_item_tokens(token) {
     var elem = tb_tokens[token];
     var tagName = elem.tagName;

Modified: zc.testbrowser/trunk/src/zc/testbrowser/real.py
===================================================================
--- zc.testbrowser/trunk/src/zc/testbrowser/real.py	2007-09-25 15:43:11 UTC (rev 80019)
+++ zc.testbrowser/trunk/src/zc/testbrowser/real.py	2007-09-25 16:01:01 UTC (rev 80020)
@@ -330,6 +330,7 @@
         self.token = token
         self.browser = browser
         self._browser_counter = self.browser._counter
+        self._file = None
 
         # disable addition of further attributes
         self._enable_setattr_errors = True
@@ -355,6 +356,8 @@
 
     @property
     def multiple(self):
+        if self.type == 'file':
+            return False
         return self.browser.execute(
             'tb_tokens[%s].hasAttribute("multiple")' % self.token) == 'true'
 
@@ -387,13 +390,22 @@
         return property(fget, fset)
 
     def add_file(self, file, content_type, filename):
-        if not self.mech_control.type == 'file':
+        if not self.type == 'file':
             raise TypeError("Can't call add_file on %s controls"
-                            % self.mech_control.type)
+                            % self.type)
         if isinstance(file, str):
             file = StringIO(file)
-        self.mech_control.add_file(file, content_type, filename)
+        # HTML only supports ever setting one file for one input control
+        self._file = (file, content_type, filename)
 
+    @property
+    def filename(self):
+        return self._file[2]
+
+    @property
+    def content_type(self):
+        return self._file[1]
+
     def clear(self):
         if self._browser_counter != self.browser._counter:
             raise zc.testbrowser.interfaces.ExpiredError



More information about the Checkins mailing list