[kupu-checkins] r33872 - in kupu/trunk/kupu/plone: . tests

duncan at codespeak.net duncan at codespeak.net
Mon Oct 30 11:30:14 CET 2006


Author: duncan
Date: Mon Oct 30 11:30:12 2006
New Revision: 33872

Modified:
   kupu/trunk/kupu/plone/plonelibrarytool.py
   kupu/trunk/kupu/plone/tests/runme.cmd
   kupu/trunk/kupu/plone/tests/test_browserSupportsKupu.py
Log:
Added tests that Opera >= 9.0 is detected as supported.

Modified: kupu/trunk/kupu/plone/plonelibrarytool.py
==============================================================================
--- kupu/trunk/kupu/plone/plonelibrarytool.py	(original)
+++ kupu/trunk/kupu/plone/plonelibrarytool.py	Mon Oct 30 11:30:12 2006
@@ -225,27 +225,36 @@
         if not useragent:
             useragent = REQUEST['HTTP_USER_AGENT']
 
-        if 'Opera' in useragent or 'BEOS' in useragent:
-            return False
-
-        if not useragent.startswith('Mozilla/'):
+        if 'BEOS' in useragent:
             return False
 
+        def getver(s):
+            """Extract a version number given the string which precedes it"""
+            pos = useragent.find(s)
+            if pos >= 0:
+                tail = useragent[pos+len(s):].strip()
+                verno = numerics(tail.split(' ')[0])
+                return verno
+            return None
+            
         try:
-            mozillaver = numerics(useragent[len('Mozilla/'):].split(' ')[0])
+            v = getver('Opera/')
+            if not v:
+                v = getver('Opera ')
+            if v:
+                return v >= (9,0)
+
+            mozillaver = getver('Mozilla/')
             if mozillaver > (5,0):
                 return True
             elif mozillaver == (5,0):
-                rv = useragent.find(' rv:')
-                if rv >= 0:
-                    verno = numerics(useragent[rv+4:].split(')')[0])
+                verno = getver(' rv:')
+                if verno:
                     return verno >= (1,3,1)
 
-            MSIE = useragent.find('MSIE')
-            if MSIE >= 0:
-                verno = numerics(useragent[MSIE+4:].split(';')[0])
+            verno = getver('MSIE')
+            if verno:
                 return verno >= (5,5)
-
         except:
             # In case some weird browser makes the test code blow up.
             pass

Modified: kupu/trunk/kupu/plone/tests/runme.cmd
==============================================================================
--- kupu/trunk/kupu/plone/tests/runme.cmd	(original)
+++ kupu/trunk/kupu/plone/tests/runme.cmd	Mon Oct 30 11:30:12 2006
@@ -8,10 +8,10 @@
 set INSTANCE_HOME=%PLONEHOME%\Data
 set SOFTWARE_HOME=%PLONEHOME%\Zope\lib\python
 @set PYTHON=C:\Plone20\Zope\bin\python.exe
-rem "%PLONEHOME%\Python\python.exe" %~D0%~P0test_browserSupportsKupu.py %2
-rem "%PLONEHOME%\Python\python.exe" %~D0%~P0test_librarymanager.py
-rem "%PLONEHOME%\Python\python.exe" %~D0%~P0test_html2captioned.py
-rem "%PLONEHOME%\Python\python.exe" %~D0%~P0test_resourcetypemapper.py
+"%PYTHON%" %~D0%~P0test_browserSupportsKupu.py %2
+rem "%PYTHON%" %~D0%~P0test_librarymanager.py
+rem "%PYTHON%" %~D0%~P0test_html2captioned.py
+rem "%PYTHON%" %~D0%~P0test_resourcetypemapper.py
 rem "%PYTHON%" %~D0%~P0test_urls.py
-"%PYTHON%" "%~D0%~P0runalltests.py" %2
+rem "%PYTHON%" "%~D0%~P0runalltests.py" %2
 endlocal

Modified: kupu/trunk/kupu/plone/tests/test_browserSupportsKupu.py
==============================================================================
--- kupu/trunk/kupu/plone/tests/test_browserSupportsKupu.py	(original)
+++ kupu/trunk/kupu/plone/tests/test_browserSupportsKupu.py	Mon Oct 30 11:30:12 2006
@@ -87,6 +87,7 @@
 SUPPORTED = {
     MOZILLA: (1,3,1),
     INTERNET_EXPLORER: (5,5),
+    OPERA: (9,0),
 }
 
 # BROWSERS records contain:
@@ -405,7 +406,23 @@
     ('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; www.ASPSimply.com)', 'Windows 2000', '6.0', INTERNET_EXPLORER),
     ('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; ESB{59E9535D-AE57-4D68-A91A-F568540A69C8})', 'Windows 2000', '6.0', INTERNET_EXPLORER),
     ('Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02', 'Windows XP', '1.0.2', MOZILLA),
-    )
+    ('Opera/9.02 (X11; Linux i686; U; en)', 'Linux', '9.02', OPERA),
+    ('Opera/9.02 (Windows 98; U; en)', 'Windows 98', '9.02', OPERA),
+    ('Opera/9.02 (Macintosh; PPC Mac OS X; U; en)', 'PPC Mac', '9.02', OPERA),
+    ('Opera/9.01 (X11; Linux i686; U; en)', 'Linux', '9.01', OPERA),
+    ('Opera/9.01 (Macintosh; Intel Mac OS X; U; fr)', 'Intel Max', '9.01', OPERA),
+    ('Opera/9.00 (Macintosh; PPC Mac OS X; U; en)', 'PPC Mac', '9.00', OPERA),
+    ('Opera/9.00 (Windows NT 5.0; U; en)', 'Windows 2000', '9.00', OPERA),
+    ('Opera/9.00 (Macintosh; PPC Mac OS X; U; en)', 'PPC Mac', '9.00', OPERA),
+    ('Mozilla/5.0 (X11; Linux i686; U; en) Opera 9.00', 'Linux', '9.00', OPERA),
+    ('Mozilla/5.0 (Windows NT 5.1; U; en) Opera 9.01', 'Windows XP', '9.01', OPERA),
+    ('Mozilla/5.0 (Windows NT 5.1; U; en) Opera 9.00', 'Windows XP', '9.00', OPERA),
+    ('Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.10', 'Windows XP', '9.10', OPERA),
+    ('Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.0.7) Gecko/20060728 Firefox/1.5.0.7 Opera 9.10', 'Windows XP', '9.10', OPERA),
+    ('Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1b1) Gecko/20060728 Firefox/2.0 Opera 9.20', 'Windows XP', '9.20', OPERA),
+    ('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; en) Opera 9.01', 'Windows XP', '9.01', OPERA),
+    ('Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; en) Opera 9.00', 'Linux', '9.00', OPERA),
+     )
 
 def createTest(sig, isSupported, index, os, browser, version):
     def test(self):


More information about the kupu-checkins mailing list