示例#1
0
    def test_user_agents_ff_3_1_b_3_bad(self):
        requirements = (("FIREFOX", "3.1"),
                        )  # "3.1 beta 4" will not work here

        for user_agent in self._get_ua_strings("ff3.1b3"):
            self.assertFalse(check_user_agent(user_agent, requirements),
                             "Failed for ua '%s'" % user_agent)
示例#2
0
    def process_request(self, request):
        self._clear_cookie = False

        if is_media_request(request):
            return None

        if "HTTP_USER_AGENT" not in request.META:
            return None

        if not hasattr(settings, "BADBROWSER_REQUIREMENTS"):
            return None  # no requirements have been setup

        if request.path == reverse("django-badbrowser-ignore"):
            # Allow through any requests for the ignore page
            return None

        user_agent = request.META["HTTP_USER_AGENT"]
        parsed_user_agent = httpagentparser.detect(user_agent)

        # Set the browser information on the request object
        request.browser = parsed_user_agent

        if check_user_agent(parsed_user_agent,
                            settings.BADBROWSER_REQUIREMENTS):
            self._clear_cookie = True
            return None  # continue as normal
        else:
            if self._user_ignored_warning(request):
                return None

            from badbrowser.views import unsupported
            return unsupported(request)
示例#3
0
    def test_user_agents_ff_3_1_b_3_ok(self):
        requirements = (("fireFox", "3.1 beta 3"),
                        )  # "3.1b3" will not work here

        for user_agent in self._get_ua_strings("ff3.1b3"):
            self.assertTrue(check_user_agent(user_agent, requirements),
                            "Failed for ua '%s'" % user_agent)
示例#4
0
    def test_user_agents_ie7b_bad(self):
        requirements = (("Microsoft Internet Explorer", "7.0"),
                        )  # "7a" or "7b" will allow beta, "7" will not

        for user_agent in self._get_ua_strings("ie7b"):
            self.assertFalse(check_user_agent(user_agent, requirements),
                             "Failed for ua '%s'" % user_agent)
    def process_request(self, request):
        self._clear_cookie = False
        
        if is_media_request(request):
            return None
        
        if "HTTP_USER_AGENT" not in request.META:
            return None

        if not hasattr(settings, "BADBROWSER_REQUIREMENTS"):
            return None # no requirements have been setup
        
        if request.path == reverse("django-badbrowser-ignore"):
            # Allow through any requests for the ignore page
            return None

        user_agent = request.META["HTTP_USER_AGENT"]
        parsed_user_agent = httpagentparser.detect(user_agent)
        
        # Set the browser information on the request object
        request.browser = parsed_user_agent
        
        if check_user_agent(parsed_user_agent, settings.BADBROWSER_REQUIREMENTS):
            self._clear_cookie = True
            return None # continue as normal
        else:
            if self._user_ignored_warning(request):
                return None 
            
            from badbrowser.views import unsupported
            return unsupported(request)
示例#6
0
 def test_old_major_version_dict(self):
     user_agent = {
         'flavor': {
             'version': 'X 10_6_4',
             'name': 'MacOS'
         },
         'os': {
             'name': 'Macintosh'
         },
         'browser': {
             'version': '4.0.375.126',
             'name': 'Chrome'
         }
     }
     requirements = (("Chrome", "5.0.175.126"), )
     self.assertFalse(check_user_agent(user_agent, requirements))
示例#7
0
 def test_user_agents_chrome_6_8_458_1_bad(self):
     requirements = (("chromE", "6.0.458.2"),)
     
     for user_agent in self._get_ua_strings("chrome6.0.458.1"):
         self.assertFalse(check_user_agent(user_agent, requirements), "Failed for ua '%s'" % user_agent)
示例#8
0
 def test_user_agents_ie6_bad(self):
     requirements = (("Microsoft Internet Explorer", "7"),)
     
     for user_agent in self._get_ua_strings("ie6"):
         self.assertFalse(check_user_agent(user_agent, requirements), "Failed for ua '%s'" % user_agent)
示例#9
0
 def test_user_agents_ie7b_bad(self):
     requirements = (("Microsoft Internet Explorer", "7.0"),) # "7a" or "7b" will allow beta, "7" will not
     
     for user_agent in self._get_ua_strings("ie7b"):
         self.assertFalse(check_user_agent(user_agent, requirements), "Failed for ua '%s'" % user_agent)
示例#10
0
 def test_user_agents_ie7_bad(self):
     requirements = (("Microsoft Internet Explorer", "8"),)
     
     for user_agent in self._get_ua_strings("ie7"):
         self.assertFalse(check_user_agent(user_agent, requirements))
示例#11
0
 def test_equal_version(self):
     user_agent = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.1.375.126 Safari/533.4"
     requirements = (("Chrome", "5.1.375.126"),)
     self.assertTrue(check_user_agent(user_agent, requirements))
示例#12
0
    def test_user_agents_ie7_bad(self):
        requirements = (("Microsoft Internet Explorer", "8"), )

        for user_agent in self._get_ua_strings("ie7"):
            self.assertFalse(check_user_agent(user_agent, requirements))
示例#13
0
 def test_user_agents_ff_3_1_b_3_ok(self):
     requirements = (("fireFox", "3.1 beta 3"),) # "3.1b3" will not work here
     
     for user_agent in self._get_ua_strings("ff3.1b3"):
         self.assertTrue(check_user_agent(user_agent, requirements), "Failed for ua '%s'" % user_agent)
示例#14
0
    def test_user_agents_ff_1_1_bad(self):
        requirements = (("FIREFOX", "1.0.1"), )

        for user_agent in self._get_ua_strings("ff1.0"):
            self.assertFalse(check_user_agent(user_agent, requirements),
                             "Failed for ua '%s'" % user_agent)
示例#15
0
    def test_user_agents_ff_1_1_ok(self):
        requirements = (("fireFox", "1.0"), )

        for user_agent in self._get_ua_strings("ff1.0"):
            self.assertTrue(check_user_agent(user_agent, requirements),
                            "Failed for ua '%s'" % user_agent)
示例#16
0
    def test_user_agents_chrome_6_8_458_1_bad(self):
        requirements = (("chromE", "6.0.458.2"), )

        for user_agent in self._get_ua_strings("chrome6.0.458.1"):
            self.assertFalse(check_user_agent(user_agent, requirements),
                             "Failed for ua '%s'" % user_agent)
示例#17
0
    def test_user_agents_ie6_bad(self):
        requirements = (("Microsoft Internet Explorer", "7"), )

        for user_agent in self._get_ua_strings("ie6"):
            self.assertFalse(check_user_agent(user_agent, requirements),
                             "Failed for ua '%s'" % user_agent)
示例#18
0
 def test_user_agents_ff_1_1_ok(self):
     requirements = (("fireFox", "1.0"),)
     
     for user_agent in self._get_ua_strings("ff1.0"):
         self.assertTrue(check_user_agent(user_agent, requirements), "Failed for ua '%s'" % user_agent)
示例#19
0
 def test_user_agents_ff_1_1_bad(self):
     requirements = (("FIREFOX", "1.0.1"),)
     
     for user_agent in self._get_ua_strings("ff1.0"):
         self.assertFalse(check_user_agent(user_agent, requirements), "Failed for ua '%s'" % user_agent)
示例#20
0
 def test_equal_version(self):
     user_agent = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.1.375.126 Safari/533.4"
     requirements = (("Chrome", "5.1.375.126"), )
     self.assertTrue(check_user_agent(user_agent, requirements))
示例#21
0
 def test_user_agents_ff_3_1_b_3_bad(self):
     requirements = (("FIREFOX", "3.1"),) # "3.1 beta 4" will not work here
     
     for user_agent in self._get_ua_strings("ff3.1b3"):
         self.assertFalse(check_user_agent(user_agent, requirements), "Failed for ua '%s'" % user_agent)
示例#22
0
 def test_requirement_version_none(self):
     user_agent = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.126 Safari/533.4"
     requirements = (("Chrome", None),)
     self.assertFalse(check_user_agent(user_agent, requirements))
示例#23
0
 def test_old_major_version_dict(self):
     user_agent = {'flavor': {'version': 'X 10_6_4', 'name': 'MacOS'}, 'os': {'name': 'Macintosh'}, 'browser': {'version': '4.0.375.126', 'name': 'Chrome'}}
     requirements = (("Chrome", "5.0.175.126"),)
     self.assertFalse(check_user_agent(user_agent, requirements))
示例#24
0
 def test_requirement_version_none(self):
     user_agent = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.126 Safari/533.4"
     requirements = (("Chrome", None), )
     self.assertFalse(check_user_agent(user_agent, requirements))