EVOLUTION-MANAGER
Edit File: test_useragent.py
""" Tests for L{nevow.useragent}. """ from twisted.trial.unittest import TestCase from nevow.useragent import UserAgent, browsers class UserAgentTests(TestCase): """ Tests for L{UserAgent}. """ def test_parseNetscape71(self): """ L{UserAgent.parse_GECKO} should return a UserAgent instance for a Netscape 7.1 User-Agent string. """ agent = UserAgent.parse_GECKO( 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.4) ' 'Gecko/20030624 Netscape/7.1 (ax)') self.assertEqual(agent.browser, browsers.GECKO) self.assertEqual(agent.version, (20030624,)) def test_parseFirefox15(self): """ L{UserAgent.parse_GECKO} should return a UserAgent instance for a Firefox 1.5 User-Agent string. """ agent = UserAgent.parse_GECKO( 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en; rv:1.8.0.3) ' 'Gecko/20060426 Firefox/1.5.0.3') self.assertEqual(agent.browser, browsers.GECKO) self.assertEqual(agent.version, (20060426,)) def test_parseBonEcho(self): """ L{UserAgent.parse_GECKO} should return a UserAgent instance for a BonEcho Firefox 2.0 alpha User-Agent string. """ agent = UserAgent.parse_GECKO( 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1a2) ' 'Gecko/20060512 BonEcho/2.0a2') self.assertEqual(agent.browser, browsers.GECKO) self.assertEqual(agent.version, (20060512,)) def test_parseFirefox20(self): """ L{UserAgent.parse_GECKO} should return a UserAgent instance for a Firefox 2.0 User-Agent string. """ agent = UserAgent.parse_GECKO( 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.4) ' 'Gecko/20070515 Firefox/2.0.0.4') self.assertEqual(agent.browser, browsers.GECKO) self.assertEqual(agent.version, (20070515,)) def test_parseExplorer45(self): """ L{UserAgent.parse_MSIE} should return a UserAgent instance for an Internet Explorer 4.5 User-Agent string. """ agent = UserAgent.parse_MSIE( 'Mozilla/4.0 (compatible; MSIE 4.5; Windows 98; Win 9x 4.8410008)') self.assertEqual(agent.browser, browsers.INTERNET_EXPLORER) self.assertEqual(agent.version, (4, 5)) def test_parseExplorer55(self): """ L{UserAgent.parse_MSIE} should return a UserAgent instance for an Internet Explorer 5.5 User-Agent string. """ agent = UserAgent.parse_MSIE( 'Mozilla/5.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.1704896)') self.assertEqual(agent.browser, browsers.INTERNET_EXPLORER) self.assertEqual(agent.version, (5, 5)) def test_parseExplorer65(self): """ L{UserAgent.parse_MSIE} should return a UserAgent instance for an Internet Explorer 6.5 User-Agent string. """ agent = UserAgent.parse_MSIE( 'Mozilla/5.0 (compatible; MSIE 6.5; Windows 98; Win 9x 4.7654712)') self.assertEqual(agent.browser, browsers.INTERNET_EXPLORER) self.assertEqual(agent.version, (6, 5)) def test_parseOmniWeb607(self): """ L{UserAgent.parse_WEBKIT} should return a UserAgent instance for an OmniWeb User-Agent string. """ agent = UserAgent.parse_WEBKIT( 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/420+ ' '(KHTML, like Gecko, Safari/420) OmniWeb/v607.17') self.assertEqual(agent.browser, browsers.WEBKIT) self.assertEqual(agent.version, (420,)) def test_parseSafari20(self): """ L{UserAgent.parse_WEBKIT} should return a UserAgent instance for a Safari 2.0 User-Agent string. """ agent = UserAgent.parse_WEBKIT( 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/' '418.9.1 (KHTML, like Gecko) Safari/419.3') self.assertEqual(agent.browser, browsers.WEBKIT) self.assertEqual(agent.version, (418, 9, 1)) def test_parseOpera9(self): """ L{UserAgent.parse_OPERA} should return a UserAgent instance for an Opera 9 User-Agent string. """ agent = UserAgent.parse_OPERA('Opera/9.20 (Windows NT 6.0; U; en)') self.assertEqual(agent.browser, browsers.OPERA) self.assertEqual(agent.version, (9, 20)) def test_geckoParser(self): """ It should be possible to invoke the Gecko parser via L{UserAgent.parse} with an appropriate string. """ agent = UserAgent.fromHeaderValue( 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.4) ' 'Gecko/20030624 Netscape/7.1 (ax)') self.assertEqual(agent.browser, browsers.GECKO) def test_webkitParser(self): """ It should be possible to invoke the WebKit parser via L{UserAgent.parse} with an appropriate string. """ agent = UserAgent.fromHeaderValue( 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/420+ ' '(KHTML, like Gecko, Safari/420) OmniWeb/v607.17') self.assertEqual(agent.browser, browsers.WEBKIT) def test_msieParser(self): """ It should be possible to invoke the MSIE parser via L{UserAgent.parse} with an appropriate string. """ agent = UserAgent.fromHeaderValue( 'Mozilla/4.0 (compatible; MSIE 4.5; Windows 98; Win 9x 4.8410008)') self.assertEqual(agent.browser, browsers.INTERNET_EXPLORER) def test_operaParser(self): """ It should be possible to invoke the Opera parser via L{UserAgent.parse} with an appropriate string. """ agent = UserAgent.fromHeaderValue('Opera/9.20 (Windows NT 6.0; U; en)') self.assertEqual(agent.browser, browsers.OPERA)