[Checkins] SVN: zc.testbrowser/trunk/src/zc/testbrowser/real. click() for SubmitControl and ImageControl

Justas Sadzevičius justas at pov.lt
Tue Sep 25 16:33:37 EDT 2007


Log message for revision 80046:
  click() for SubmitControl and ImageControl
  

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 20:18:51 UTC (rev 80045)
+++ zc.testbrowser/trunk/src/zc/testbrowser/real.js	2007-09-25 20:33:36 UTC (rev 80046)
@@ -271,14 +271,6 @@
         }, index, true, tb_tokens[contextToken], xpath)
 }
 
-function tb_get_control_by_id(id, index, contextToken, xpath) {
-    return tb_get_control_by_predicate(
-        function (control) {
-            var controlId = control.getAttribute('id');
-            return controlId != null && controlName.indexOf(id) != -1;
-        }, index, true, tb_tokens[contextToken], xpath)
-}
-
 function tb_get_listcontrol_options(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 20:18:51 UTC (rev 80045)
+++ zc.testbrowser/trunk/src/zc/testbrowser/real.py	2007-09-25 20:33:36 UTC (rev 80046)
@@ -256,12 +256,6 @@
                  % (simplejson.dumps(name), js_index,
                     simplejson.dumps(context_token),
                     simplejson.dumps(xpath)))
-        elif id is not None:
-            msg = 'id %r' % id
-            token = self.execute('tb_get_control_by_id(%s, %s, %s, %s)'
-                 % (simplejson.dumps(id), js_index,
-                    simplejson.dumps(context_token),
-                    simplejson.dumps(xpath)))
         else:
             raise NotImplementedError
 
@@ -285,6 +279,7 @@
         return controlFactory(token, self, selectionItem)
 
     def getForm(self, id=None, name=None, action=None, index=None):
+
         xpath = '//form'
         if id is not None:
             xpath += '[@id=%s]' % repr(id)
@@ -294,6 +289,13 @@
         matching_tokens = simplejson.loads(self.execute(
             'tb_xpath_tokens(%s)' % simplejson.dumps(xpath)))
 
+        if index is None and not any([id, name, action]):
+            if len(matching_tokens) == 1:
+                index = 0
+            else:
+                raise ValueError(
+                    'if no other arguments are given, index is required.')
+
         if action is not None:
             form_actions = self.getAttributes(matching_tokens, 'action')
             matching_tokens = [tok for tok, form_act in zip(matching_tokens,
@@ -511,7 +513,7 @@
     def click(self):
         if self._browser_counter != self.browser._counter:
             raise zc.testbrowser.interfaces.ExpiredError
-        self.browser._clickSubmit(self.mech_form, self.mech_control, (1,1))
+        self.browser.execute('tb_click_token(%s)' % self.token)
         self.browser._changed()
 
 
@@ -521,7 +523,10 @@
     def click(self, coord=(1,1)):
         if self._browser_counter != self.browser._counter:
             raise zc.testbrowser.interfaces.ExpiredError
-        self.browser._clickSubmit(self.mech_form, self.mech_control, coord)
+        self.browser.execute('tb_click_token(%s, %s, %s)' % (
+            self.token,
+            simplejson.dumps(coord[0]),
+            simplejson.dumps(coord[1])))
         self.browser._changed()
 
 
@@ -650,14 +655,19 @@
             raise zc.testbrowser.interfaces.ExpiredError
 
         self.browser.start_timer()
-        button = self.browser.getControlToken(
-            label, name, index, self.token, ".//input[@type='submit']")
-        self.browser.execute('tb_click_token(%s, %s, %s)' % (
-            button,
-            simplejson.dumps(coord[0]),
-            simplejson.dumps(coord[1])))
+
+        if (label is None and
+            name is None):
+            self.browser.execute('tb_tokens[%s].submit()' % self.token)
+        else:
+            button = self.browser.getControlToken(
+                label, name, index, self.token)
+            self.browser.execute('tb_click_token(%s, %s, %s)' % (
+                button,
+                simplejson.dumps(coord[0]),
+                simplejson.dumps(coord[1])))
+
         self.browser.stop_timer()
-        # XXX: justas: not sure the browser always changes
         self.browser._changed()
 
     def getControl(self, label=None, name=None, index=None):



More information about the Checkins mailing list