[Checkins] SVN: zc.testbrowser/trunk/src/zc/testbrowser/ Reverted test to be more compliant with mechanize.

Rocky Burt rocky at serverzen.com
Mon Sep 24 18:37:51 EDT 2007


Log message for revision 79939:
  Reverted test to be more compliant with mechanize.
  (Rocky, Justas)
  

Changed:
  U   zc.testbrowser/trunk/src/zc/testbrowser/README.txt
  U   zc.testbrowser/trunk/src/zc/testbrowser/real.py

-=-
Modified: zc.testbrowser/trunk/src/zc/testbrowser/README.txt
===================================================================
--- zc.testbrowser/trunk/src/zc/testbrowser/README.txt	2007-09-24 22:27:07 UTC (rev 79938)
+++ zc.testbrowser/trunk/src/zc/testbrowser/README.txt	2007-09-24 22:37:50 UTC (rev 79939)
@@ -560,12 +560,12 @@
 #    False
 #    >>> ctrl.multiple
 #    False
-#
+
   - Text Area Control
 
     >>> ctrl = browser.getControl('Text Area Control')
-    >>> ctrl is not None
-    True
+    >>> ctrl
+    <Control name='textarea-value' type='textarea'>
     >>> verifyObject(zc.testbrowser.interfaces.IControl, ctrl)
     True
     >>> ctrl.value

Modified: zc.testbrowser/trunk/src/zc/testbrowser/real.py
===================================================================
--- zc.testbrowser/trunk/src/zc/testbrowser/real.py	2007-09-24 22:27:07 UTC (rev 79938)
+++ zc.testbrowser/trunk/src/zc/testbrowser/real.py	2007-09-24 22:37:50 UTC (rev 79939)
@@ -26,8 +26,6 @@
         return ListControl(token, browser)
     elif tagName == 'option':
         return ItemControl(token, browser)
-    elif tagName == 'textarea':
-        return TextAreaControl(token, browser)
 
     inputType = browser.execute('tb_tokens[%s].getAttribute("type")'
                                 % token)
@@ -303,6 +301,10 @@
 
     @property
     def type(self):
+        if self.browser.execute('tb_tokens[%s].tagName'
+                                % self.token).lower() == 'textarea':
+            return 'textarea'
+
         return self.browser.execute(
             'tb_tokens[%s].getAttribute("type")' % self.token)
 
@@ -320,15 +322,22 @@
     def value():
 
         def fget(self):
+            if self.type == 'textarea':
+                return self.browser.execute('tb_tokens[%s].innerHTML'
+                                            % self.token)
             return self.browser.execute(
                 'tb_tokens[%s].getAttribute("value")' % self.token)
 
         def fset(self, value):
             if self._browser_counter != self.browser._counter:
                 raise zc.testbrowser.interfaces.ExpiredError
+
             if self.type == 'file':
                 self.add_file(value, content_type=self.content_type,
                               filename=self.filename)
+            elif self.type == 'textarea':
+                self.browser.execute('tb_tokens[%s].innerHTML = %r'
+                                     % (self.token, value))
             elif self.type == 'checkbox' and len(self.mech_control.items) == 1:
                 self.mech_control.items[0].selected = bool(value)
             else:
@@ -479,19 +488,6 @@
 class TextAreaControl(Control):
     zope.interface.implements(zc.testbrowser.interfaces.ITextAreaControl)
 
-    type = 'textarea'
-
-    @apply
-    def value():
-        def fget(self):
-            return self.browser.execute(
-                'tb_tokens[%s].innerHTML' % self.token)
-
-        def fset(self, value):
-            return self.browser.execute(
-                'tb_tokens[%s].innerHTML = %r' % (self.token, value))
-        return property(fget, fset)
-
 class ItemControl(zc.testbrowser.browser.SetattrErrorsMixin):
     zope.interface.implements(zc.testbrowser.interfaces.IItemControl)
 



More information about the Checkins mailing list