def test_redirection_missing(self): self.reqs['responses']['http'].url = 'http://http-observatory.security.mozilla.org' result = redirection(self.reqs) self.assertEquals('redirection-missing', result['result']) self.assertFalse(result['pass'])
def test_no_http_but_does_have_https(self): self.reqs['responses']['http'] = None result = redirection(self.reqs) self.assertEquals('redirection-not-needed-no-http', result['result']) self.assertTrue(result['pass'])
def test_redirection_not_to_https(self): self.reqs['responses']['http'].url = 'http://http-observatory.security.mozilla.org/foo' history1 = UserDict() history1.request = UserDict() history1.request.url = 'http://http-observatory.security.mozilla.org/' self.reqs['responses']['http'].history.append(history1) result = redirection(self.reqs) self.assertEquals('redirection-not-to-https', result['result']) self.assertFalse(result['pass'])
def test_redirects_to_https(self): history1 = UserDict() history1.request = UserDict() history1.request.url = 'http://http-observatory.security.mozilla.org/' self.reqs['responses']['http'].history.append(history1) result = redirection(self.reqs) self.assertEquals('redirection-to-https', result['result']) self.assertEquals(['http://http-observatory.security.mozilla.org/', 'https://http-observatory.security.mozilla.org/'], result['route']) self.assertTrue(result['pass'])
def test_first_redirection_off_host(self): self.reqs['responses']['http'].url = 'https://http-foo.services.mozilla.com/' history1 = UserDict() history1.status_code = 301 history1.request = UserDict() history1.request.url = 'http://http-observatory.security.mozilla.org/' self.reqs['responses']['http'].history.append(history1) result = redirection(self.reqs) self.assertEquals('redirection-off-host-from-http', result['result']) self.assertFalse(result['pass'])
def test_redirects_invalid_cert(self): history1 = UserDict() history1.request = UserDict() history1.request.url = 'http://http-observatory.security.mozilla.org/' self.reqs['responses']['http'].history.append(history1) # Mark it as verification failed self.reqs['responses']['http'].verified = False result = redirection(self.reqs) self.assertEquals('redirection-invalid-cert', result['result']) self.assertFalse(result['pass'])
def test_redirects_to_https_with_port_number(self): # same thing, but with :443 on the URL, see issue #180 self.reqs['responses']['http'].url = 'https://http-observatory.security.mozilla.org:443/' history1 = UserDict() history1.request = UserDict() history1.request.url = 'http://http-observatory.security.mozilla.org/' self.reqs['responses']['http'].history.append(history1) result = redirection(self.reqs) self.assertEquals('redirection-to-https', result['result']) self.assertEquals(['http://http-observatory.security.mozilla.org/', 'https://http-observatory.security.mozilla.org:443/'], result['route']) self.assertTrue(result['pass'])
def test_all_redirections_preloaded(self): self.reqs['responses']['http'].url = 'https://www.pokeinthe.io/foo/bar' for url in ('http://pokeinthe.io/', 'https://pokeinthe.io/', 'https://www.pokeinthe.io/', 'https://baz.pokeinthe.io/foo'): history = UserDict() history.request = UserDict() history.request.url = url self.reqs['responses']['http'].history.append(history) result = redirection(self.reqs) self.assertEquals('redirection-all-redirects-preloaded', result['result']) self.assertTrue(result['pass'])
def test_first_redirection_still_http(self): self.reqs['responses']['http'].url = 'https://http-observatory.security.mozilla.org/foo' history1 = UserDict() history1.request = UserDict() history1.request.url = 'http://http-observatory.security.mozilla.org/' history2 = UserDict() history2.request = UserDict() history2.request.url = 'http://http-observatory.security.mozilla.org/foo' self.reqs['responses']['http'].history.append(history1) self.reqs['responses']['http'].history.append(history2) result = redirection(self.reqs) self.assertEquals('redirection-not-to-https-on-initial-redirection', result['result']) self.assertFalse(result['pass'])