OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 import os | 6 import os |
7 | 7 |
8 import pyauto_functional # Must be imported before pyauto | 8 import pyauto_functional # Must be imported before pyauto |
9 import pyauto | 9 import pyauto |
10 import pyauto_paths | 10 import pyauto_paths |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 self.StopHttpsServer(self._https_server_mismatched) | 56 self.StopHttpsServer(self._https_server_mismatched) |
57 self.StopHttpsServer(self._https_server_expired) | 57 self.StopHttpsServer(self._https_server_expired) |
58 self.StopHttpsServer(self._https_server_ok) | 58 self.StopHttpsServer(self._https_server_ok) |
59 | 59 |
60 def testSSLProceed(self): | 60 def testSSLProceed(self): |
61 """Verify able to proceed from an interstitial page.""" | 61 """Verify able to proceed from an interstitial page.""" |
62 for server in (self._https_server_expired, | 62 for server in (self._https_server_expired, |
63 self._https_server_mismatched): | 63 self._https_server_mismatched): |
64 url = server.GetURL('google.html').spec() | 64 url = server.GetURL('google.html').spec() |
65 self.NavigateToURL(url) | 65 self.NavigateToURL(url) |
66 tab_proxy = self.GetBrowserWindow(0).GetTab(0) | |
67 # Equivalent to clicking 'proceed anyway' button. | 66 # Equivalent to clicking 'proceed anyway' button. |
68 self.assertTrue(tab_proxy.TakeActionOnSSLBlockingPage(True), | 67 self.ActionOnSSLBlockingPage(proceed=True) |
69 msg="Did not proceed from the interstitial page.") | |
70 self.assertTrue( | 68 self.assertTrue( |
71 'google' in self.GetActiveTabTitle().lower(), | 69 'google' in self.GetActiveTabTitle().lower(), |
72 msg="Did not correctly proceed from the interstitial page.") | 70 msg="Did not correctly proceed from the interstitial page.") |
73 | 71 |
74 def testSSLGoBack(self): | 72 def testSSLGoBack(self): |
75 """Verify able to go back from the interstitial page to the previous site. | 73 """Verify able to go back from the interstitial page to the previous site. |
76 | 74 |
77 Visits a page with https error and then goes back using Browser::GoBack. | 75 Visits a page with https error and then goes back using Browser::GoBack. |
78 """ | 76 """ |
79 for server in (self._https_server_expired, | 77 for server in (self._https_server_expired, |
80 self._https_server_mismatched): | 78 self._https_server_mismatched): |
81 self.NavigateToURL( | 79 self.NavigateToURL( |
82 self.GetHttpURLForDataPath('ssl', 'google.html')) | 80 self.GetHttpURLForDataPath('ssl', 'google.html')) |
83 first_page_title = self.GetActiveTabTitle() | 81 first_page_title = self.GetActiveTabTitle() |
84 self.NavigateToURL( | 82 self.NavigateToURL( |
85 server.GetURL('google.html').spec()) | 83 server.GetURL('google.html').spec()) |
86 tab_proxy = self.GetBrowserWindow(0).GetTab(0) | |
87 # Equivalent to clicking 'back to safety' button. | 84 # Equivalent to clicking 'back to safety' button. |
88 self.assertTrue(tab_proxy.TakeActionOnSSLBlockingPage(False), | 85 self.ActionOnSSLBlockingPage(proceed=False) |
89 msg="Was not able to go back from the interstitial page.") | |
90 self.assertEqual(self.GetActiveTabTitle(), first_page_title, | 86 self.assertEqual(self.GetActiveTabTitle(), first_page_title, |
91 msg="Did not go back to previous page correctly.") | 87 msg="Did not go back to previous page correctly.") |
92 | 88 |
93 def testSSLCertOK(self): | 89 def testSSLCertOK(self): |
94 """Verify Certificate OK does not display interstitial page. | 90 """Verify Certificate OK does not display interstitial page. |
95 | 91 |
96 This test also asserts that the page type is normal. | 92 This test also asserts that the page type is normal. |
97 """ | 93 """ |
98 url = self._https_server_ok.GetURL('google.html').spec() | 94 url = self._https_server_ok.GetURL('google.html').spec() |
99 self.NavigateToURL(url) | 95 self.NavigateToURL(url) |
100 tab_proxy = self.GetBrowserWindow(0).GetTab(0) | 96 result_dict = self.GetNavigationInfo() |
101 result_dict = tab_proxy.GetPageType() | |
102 self.assertTrue(result_dict, msg='Could not determine the type of the page') | 97 self.assertTrue(result_dict, msg='Could not determine the type of the page') |
103 page_type_dict = { | |
104 pyauto.PAGE_TYPE_INTERSTITIAL: 'interstitial', | |
105 pyauto.PAGE_TYPE_ERROR: 'error'} | |
106 self.assertEqual( | 98 self.assertEqual( |
107 result_dict['page_type'], pyauto.PAGE_TYPE_NORMAL, | 99 result_dict['page_type'], 'NORMAL_PAGE', |
108 msg='Cert OK did not display page type normal.') | 100 msg='Cert OK did not display page type normal (page_type=%s).' % |
| 101 result_dict['page_type']) |
109 | 102 |
110 def testSSLCertIsExpiredAndCertNameMismatches(self): | 103 def testSSLCertIsExpiredAndCertNameMismatches(self): |
111 """Verify Certificate Expiration and Certificate Mismatched name.""" | 104 """Verify Certificate Expiration and Certificate Mismatched name.""" |
112 for server, cert_status_flag, msg in zip( | 105 for server, cert_status_flag, msg in zip( |
113 (self._https_server_expired, self._https_server_mismatched), | 106 (self._https_server_expired, self._https_server_mismatched), |
114 (pyauto.CERT_STATUS_DATE_INVALID, | 107 (pyauto.CERT_STATUS_DATE_INVALID, |
115 pyauto.CERT_STATUS_COMMON_NAME_INVALID), | 108 pyauto.CERT_STATUS_COMMON_NAME_INVALID), |
116 ('Cert has not expired', 'Cert name does not mismatch')): | 109 ('Cert has not expired', 'Cert name does not mismatch')): |
117 self.NavigateToURL(server.GetURL('google.html').spec()) | 110 self.NavigateToURL(server.GetURL('google.html').spec()) |
118 result_dict = self.GetBrowserWindow(0).GetTab(0).GetSecurityState() | 111 result_dict = self.GetSecurityState() |
119 self.assertTrue(result_dict, msg='Could not get security state info') | 112 self.assertTrue(result_dict, msg='Could not get security state info') |
120 self.assertTrue( | 113 self.assertTrue( |
121 result_dict['ssl_cert_status'] & pyauto.uint32_ptr.frompointer( | 114 result_dict['ssl_cert_status'] & pyauto.uint32_ptr.frompointer( |
122 cert_status_flag).value(), | 115 cert_status_flag).value(), |
123 msg=msg) | 116 msg=msg) |
124 | 117 |
125 def testSSLCertAuthorityOK(self): | 118 def testSSLCertAuthorityOK(self): |
126 """Verify Certificate OK is valid.""" | 119 """Verify Certificate OK is valid.""" |
127 self.NavigateToURL( | 120 self.NavigateToURL( |
128 self._https_server_mismatched.GetURL('google.html').spec()) | 121 self._https_server_mismatched.GetURL('google.html').spec()) |
129 result_dict = self.GetBrowserWindow(0).GetTab(0).GetSecurityState() | 122 result_dict = self.GetSecurityState() |
130 self.assertTrue(result_dict, msg='Could not get security state info') | 123 self.assertTrue(result_dict, msg='Could not get security state info') |
131 self.assertFalse( | 124 self.assertFalse( |
132 result_dict['ssl_cert_status'] & pyauto.uint32_ptr.frompointer( | 125 result_dict['ssl_cert_status'] & pyauto.uint32_ptr.frompointer( |
133 pyauto.CERT_STATUS_AUTHORITY_INVALID).value(), | 126 pyauto.CERT_STATUS_AUTHORITY_INVALID).value(), |
134 msg='Cert OK is invalid') | 127 msg='Cert OK is invalid') |
135 | 128 |
136 | 129 |
137 if __name__ == '__main__': | 130 if __name__ == '__main__': |
138 pyauto_functional.Main() | 131 pyauto_functional.Main() |
OLD | NEW |