[Checkins] SVN: zc.testbrowser/trunk/src/zc/testbrowser/real. Some cleanup in the javascript

Justas Sadzevičius justas at pov.lt
Wed Sep 26 12:16:44 EDT 2007


Log message for revision 80113:
  Some cleanup in the javascript
  Fix broken selection multiple check
  (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-26 15:29:23 UTC (rev 80112)
+++ zc.testbrowser/trunk/src/zc/testbrowser/real.js	2007-09-26 16:16:44 UTC (rev 80113)
@@ -324,16 +324,29 @@
 }
 
 function tb_listcontrol_has_multiple(token, name, typeName) {
-    var elem = tb_tokens[token];
-    var res = tb_xpath("//input[@name='" + name +
-                       "'][@type='"+typeName+"']", elem);
-    return res.snapshotLength > 0;
 }
 
+
+function tb_is_listcontrol_multiple(token) {
+    elem = tb_tokens[token]
+    tagName = elem.tagName
+    if (tagName == 'SELECT') {
+        multiple = elem.getAttribute('multiple')
+        return (multiple && multiple.toUpperCase() == 'MULTIPLE') ? true : false
+    }
+    else if (tagName == 'INPUT') {
+        typeName = elem.getAttribute('type');
+        var elem = tb_tokens[token];
+        var res = tb_xpath("//input[@name='" + name +
+                           "'][@type='"+typeName+"']", elem);
+        return res.snapshotLength > 0;
+    }
+    return false;
+}
+
 function tb_get_listcontrol_value(token) {
     var elem = tb_tokens[token];
     var tagName = elem.tagName;
-    var values
     var values = new Array();
 
     if (tagName == 'SELECT') {
@@ -341,7 +354,7 @@
         for (var c = 0; c < res.snapshotLength; c++) {
             var item = res.snapshotItem(c);
             if (item.selected)
-                values.push(res.snapshotItem(c).getAttribute('value'));
+                values.push(item.getAttribute('value'));
         }
     } else if (tagName == 'INPUT') {
         var elemName = elem.getAttribute('name');

Modified: zc.testbrowser/trunk/src/zc/testbrowser/real.py
===================================================================
--- zc.testbrowser/trunk/src/zc/testbrowser/real.py	2007-09-26 15:29:23 UTC (rev 80112)
+++ zc.testbrowser/trunk/src/zc/testbrowser/real.py	2007-09-26 16:16:44 UTC (rev 80113)
@@ -450,14 +450,9 @@
 
     @property
     def really_multiple(self):
-        tagName = self.browser.execute(
-            'tb_tokens[%s].tagName' % self.token)
-        typeName = self.browser.execute(
-            'tb_tokens[%s].getAttribute("type")' % self.token)
-        v = self.browser.execute( \
-            'tb_listcontrol_has_multiple(%s, %r, %r)'
-            % (self.token, tagName, typeName))
-        return simplejson.loads(v)
+        multiple = self.browser.execute('tb_is_listcontrol_multiple(%s)' % (
+            self.token))
+        return simplejson.loads(multiple)
 
     @apply
     def displayValue():



More information about the Checkins mailing list