OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <string> | 5 #include <string> |
6 | 6 |
7 #include "chrome/browser/net/url_fixer_upper.h" | 7 #include "chrome/browser/net/url_fixer_upper.h" |
8 #include "chrome/common/chrome_switches.h" | 8 #include "chrome/common/chrome_switches.h" |
9 #include "chrome/common/url_constants.h" | 9 #include "chrome/common/url_constants.h" |
10 #include "chrome/test/automation/tab_proxy.h" | 10 #include "chrome/test/automation/tab_proxy.h" |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 | 44 |
45 net::TestServer test_server_; | 45 net::TestServer test_server_; |
46 }; | 46 }; |
47 | 47 |
48 wstring ExpectedTitleFromAuth(const wstring& username, | 48 wstring ExpectedTitleFromAuth(const wstring& username, |
49 const wstring& password) { | 49 const wstring& password) { |
50 // The TestServer sets the title to username/password on successful login. | 50 // The TestServer sets the title to username/password on successful login. |
51 return username + L"/" + password; | 51 return username + L"/" + password; |
52 } | 52 } |
53 | 53 |
| 54 #if defined(OS_WIN) |
| 55 // Probably related to test server flakiness in http://crbug.com/60937 |
| 56 #define MAYBE_TestBasicAuth FLAKY_TestBasicAuth |
| 57 #else |
| 58 #define MAYBE_TestBasicAuth TestBasicAuth |
| 59 #endif |
| 60 |
54 // Test that "Basic" HTTP authentication works. | 61 // Test that "Basic" HTTP authentication works. |
55 TEST_F(LoginPromptTest, TestBasicAuth) { | 62 TEST_F(LoginPromptTest, MAYBE_TestBasicAuth) { |
56 ASSERT_TRUE(test_server_.Start()); | 63 ASSERT_TRUE(test_server_.Start()); |
57 | 64 |
58 scoped_refptr<TabProxy> tab(GetActiveTab()); | 65 scoped_refptr<TabProxy> tab(GetActiveTab()); |
59 ASSERT_TRUE(tab.get()); | 66 ASSERT_TRUE(tab.get()); |
60 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 67 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
61 tab->NavigateToURL(test_server_.GetURL("auth-basic"))); | 68 tab->NavigateToURL(test_server_.GetURL("auth-basic"))); |
62 | 69 |
63 EXPECT_TRUE(tab->NeedsAuth()); | 70 EXPECT_TRUE(tab->NeedsAuth()); |
64 EXPECT_FALSE(tab->SetAuth(username_basic_, password_bad_)); | 71 EXPECT_FALSE(tab->SetAuth(username_basic_, password_bad_)); |
65 EXPECT_TRUE(tab->NeedsAuth()); | 72 EXPECT_TRUE(tab->NeedsAuth()); |
66 EXPECT_TRUE(tab->CancelAuth()); | 73 EXPECT_TRUE(tab->CancelAuth()); |
67 EXPECT_EQ(L"Denied: wrong password", GetActiveTabTitle()); | 74 EXPECT_EQ(L"Denied: wrong password", GetActiveTabTitle()); |
68 | 75 |
69 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 76 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
70 tab->NavigateToURL(test_server_.GetURL("auth-basic"))); | 77 tab->NavigateToURL(test_server_.GetURL("auth-basic"))); |
71 | 78 |
72 EXPECT_TRUE(tab->NeedsAuth()); | 79 EXPECT_TRUE(tab->NeedsAuth()); |
73 EXPECT_TRUE(tab->SetAuth(username_basic_, password_)); | 80 EXPECT_TRUE(tab->SetAuth(username_basic_, password_)); |
74 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), | 81 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), |
75 GetActiveTabTitle()); | 82 GetActiveTabTitle()); |
76 } | 83 } |
77 | 84 |
| 85 #if defined(OS_WIN) |
| 86 // Probably related to test server flakiness in http://crbug.com/60937 |
| 87 #define MAYBE_TestDigestAuth FLAKY_TestDigestAuth |
| 88 #else |
| 89 #define MAYBE_TestDigestAuth TestDigestAuth |
| 90 #endif |
| 91 |
78 // Test that "Digest" HTTP authentication works. | 92 // Test that "Digest" HTTP authentication works. |
79 TEST_F(LoginPromptTest, TestDigestAuth) { | 93 TEST_F(LoginPromptTest, MAYBE_TestDigestAuth) { |
80 ASSERT_TRUE(test_server_.Start()); | 94 ASSERT_TRUE(test_server_.Start()); |
81 | 95 |
82 scoped_refptr<TabProxy> tab(GetActiveTab()); | 96 scoped_refptr<TabProxy> tab(GetActiveTab()); |
83 ASSERT_TRUE(tab.get()); | 97 ASSERT_TRUE(tab.get()); |
84 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 98 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
85 tab->NavigateToURL(test_server_.GetURL("auth-digest"))); | 99 tab->NavigateToURL(test_server_.GetURL("auth-digest"))); |
86 | 100 |
87 EXPECT_TRUE(tab->NeedsAuth()); | 101 EXPECT_TRUE(tab->NeedsAuth()); |
88 EXPECT_FALSE(tab->SetAuth(username_digest_, password_bad_)); | 102 EXPECT_FALSE(tab->SetAuth(username_digest_, password_bad_)); |
89 EXPECT_TRUE(tab->CancelAuth()); | 103 EXPECT_TRUE(tab->CancelAuth()); |
90 EXPECT_EQ(L"Denied: wrong password", GetActiveTabTitle()); | 104 EXPECT_EQ(L"Denied: wrong password", GetActiveTabTitle()); |
91 | 105 |
92 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 106 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
93 tab->NavigateToURL(test_server_.GetURL("auth-digest"))); | 107 tab->NavigateToURL(test_server_.GetURL("auth-digest"))); |
94 | 108 |
95 EXPECT_TRUE(tab->NeedsAuth()); | 109 EXPECT_TRUE(tab->NeedsAuth()); |
96 EXPECT_TRUE(tab->SetAuth(username_digest_, password_)); | 110 EXPECT_TRUE(tab->SetAuth(username_digest_, password_)); |
97 EXPECT_EQ(ExpectedTitleFromAuth(username_digest_, password_), | 111 EXPECT_EQ(ExpectedTitleFromAuth(username_digest_, password_), |
98 GetActiveTabTitle()); | 112 GetActiveTabTitle()); |
99 } | 113 } |
100 | 114 |
| 115 #if defined(OS_WIN) |
| 116 // Probably related to test server flakiness in http://crbug.com/60937 |
| 117 #define MAYBE_TestTwoAuths FLAKY_TestTwoAuths |
| 118 #else |
| 119 #define MAYBE_TestTwoAuths TestTwoAuths |
| 120 #endif |
| 121 |
101 // Test that logging in on 2 tabs at once works. | 122 // Test that logging in on 2 tabs at once works. |
102 TEST_F(LoginPromptTest, TestTwoAuths) { | 123 TEST_F(LoginPromptTest, MAYBE_TestTwoAuths) { |
103 ASSERT_TRUE(test_server_.Start()); | 124 ASSERT_TRUE(test_server_.Start()); |
104 | 125 |
105 scoped_refptr<TabProxy> basic_tab(GetActiveTab()); | 126 scoped_refptr<TabProxy> basic_tab(GetActiveTab()); |
106 ASSERT_TRUE(basic_tab.get()); | 127 ASSERT_TRUE(basic_tab.get()); |
107 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 128 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
108 basic_tab->NavigateToURL(test_server_.GetURL("auth-basic"))); | 129 basic_tab->NavigateToURL(test_server_.GetURL("auth-basic"))); |
109 | 130 |
110 AppendTab(GURL(chrome::kAboutBlankURL)); | 131 AppendTab(GURL(chrome::kAboutBlankURL)); |
111 scoped_refptr<TabProxy> digest_tab(GetActiveTab()); | 132 scoped_refptr<TabProxy> digest_tab(GetActiveTab()); |
112 ASSERT_TRUE(digest_tab.get()); | 133 ASSERT_TRUE(digest_tab.get()); |
113 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 134 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
114 digest_tab->NavigateToURL(test_server_.GetURL("auth-digest"))); | 135 digest_tab->NavigateToURL(test_server_.GetURL("auth-digest"))); |
115 | 136 |
116 EXPECT_TRUE(basic_tab->NeedsAuth()); | 137 EXPECT_TRUE(basic_tab->NeedsAuth()); |
117 EXPECT_TRUE(basic_tab->SetAuth(username_basic_, password_)); | 138 EXPECT_TRUE(basic_tab->SetAuth(username_basic_, password_)); |
118 EXPECT_TRUE(digest_tab->NeedsAuth()); | 139 EXPECT_TRUE(digest_tab->NeedsAuth()); |
119 EXPECT_TRUE(digest_tab->SetAuth(username_digest_, password_)); | 140 EXPECT_TRUE(digest_tab->SetAuth(username_digest_, password_)); |
120 | 141 |
121 wstring title; | 142 wstring title; |
122 EXPECT_TRUE(basic_tab->GetTabTitle(&title)); | 143 EXPECT_TRUE(basic_tab->GetTabTitle(&title)); |
123 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), title); | 144 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), title); |
124 | 145 |
125 EXPECT_TRUE(digest_tab->GetTabTitle(&title)); | 146 EXPECT_TRUE(digest_tab->GetTabTitle(&title)); |
126 EXPECT_EQ(ExpectedTitleFromAuth(username_digest_, password_), title); | 147 EXPECT_EQ(ExpectedTitleFromAuth(username_digest_, password_), title); |
127 } | 148 } |
128 | 149 |
| 150 #if defined(OS_WIN) |
| 151 // Probably related to test server flakiness in http://crbug.com/60937 |
| 152 #define MAYBE_TestCancelAuth FLAKY_TestCancelAuth |
| 153 #else |
| 154 #define MAYBE_TestCancelAuth TestCancelAuth |
| 155 #endif |
| 156 |
129 // Test that cancelling authentication works. | 157 // Test that cancelling authentication works. |
130 TEST_F(LoginPromptTest, TestCancelAuth) { | 158 TEST_F(LoginPromptTest, MAYBE_TestCancelAuth) { |
131 ASSERT_TRUE(test_server_.Start()); | 159 ASSERT_TRUE(test_server_.Start()); |
132 | 160 |
133 scoped_refptr<TabProxy> tab(GetActiveTab()); | 161 scoped_refptr<TabProxy> tab(GetActiveTab()); |
134 ASSERT_TRUE(tab.get()); | 162 ASSERT_TRUE(tab.get()); |
135 | 163 |
136 // First navigate to a test server page so we have something to go back to. | 164 // First navigate to a test server page so we have something to go back to. |
137 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS, | 165 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS, |
138 tab->NavigateToURL(test_server_.GetURL("a"))); | 166 tab->NavigateToURL(test_server_.GetURL("a"))); |
139 | 167 |
140 // Navigating while auth is requested is the same as cancelling. | 168 // Navigating while auth is requested is the same as cancelling. |
(...skipping 23 matching lines...) Expand all Loading... |
164 | 192 |
165 // Now test that cancelling works as expected. | 193 // Now test that cancelling works as expected. |
166 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 194 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
167 tab->NavigateToURL(test_server_.GetURL("auth-basic"))); | 195 tab->NavigateToURL(test_server_.GetURL("auth-basic"))); |
168 EXPECT_TRUE(tab->NeedsAuth()); | 196 EXPECT_TRUE(tab->NeedsAuth()); |
169 EXPECT_TRUE(tab->CancelAuth()); | 197 EXPECT_TRUE(tab->CancelAuth()); |
170 EXPECT_FALSE(tab->NeedsAuth()); | 198 EXPECT_FALSE(tab->NeedsAuth()); |
171 EXPECT_EQ(L"Denied: no auth", GetActiveTabTitle()); | 199 EXPECT_EQ(L"Denied: no auth", GetActiveTabTitle()); |
172 } | 200 } |
173 | 201 |
| 202 #if defined(OS_WIN) |
| 203 // Probably related to test server flakiness in http://crbug.com/60937 |
| 204 #define MAYBE_SupplyRedundantAuths FLAKY_SupplyRedundantAuths |
| 205 #else |
| 206 #define MAYBE_SupplyRedundantAuths SupplyRedundantAuths |
| 207 #endif |
| 208 |
174 // If multiple tabs are looking for the same auth, the user should only have to | 209 // If multiple tabs are looking for the same auth, the user should only have to |
175 // enter it once. | 210 // enter it once. |
176 TEST_F(LoginPromptTest, SupplyRedundantAuths) { | 211 TEST_F(LoginPromptTest, MAYBE_SupplyRedundantAuths) { |
177 ASSERT_TRUE(test_server_.Start()); | 212 ASSERT_TRUE(test_server_.Start()); |
178 | 213 |
179 scoped_refptr<TabProxy> basic_tab1(GetActiveTab()); | 214 scoped_refptr<TabProxy> basic_tab1(GetActiveTab()); |
180 ASSERT_TRUE(basic_tab1.get()); | 215 ASSERT_TRUE(basic_tab1.get()); |
181 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 216 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
182 basic_tab1->NavigateToURL(test_server_.GetURL("auth-basic/1"))); | 217 basic_tab1->NavigateToURL(test_server_.GetURL("auth-basic/1"))); |
183 EXPECT_TRUE(basic_tab1->NeedsAuth()); | 218 EXPECT_TRUE(basic_tab1->NeedsAuth()); |
184 | 219 |
185 AppendTab(GURL(chrome::kAboutBlankURL)); | 220 AppendTab(GURL(chrome::kAboutBlankURL)); |
186 scoped_refptr<TabProxy> basic_tab2(GetActiveTab()); | 221 scoped_refptr<TabProxy> basic_tab2(GetActiveTab()); |
(...skipping 10 matching lines...) Expand all Loading... |
197 | 232 |
198 // Now both tabs have loaded. | 233 // Now both tabs have loaded. |
199 wstring title1; | 234 wstring title1; |
200 EXPECT_TRUE(basic_tab1->GetTabTitle(&title1)); | 235 EXPECT_TRUE(basic_tab1->GetTabTitle(&title1)); |
201 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), title1); | 236 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), title1); |
202 wstring title2; | 237 wstring title2; |
203 EXPECT_TRUE(basic_tab2->GetTabTitle(&title2)); | 238 EXPECT_TRUE(basic_tab2->GetTabTitle(&title2)); |
204 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), title2); | 239 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), title2); |
205 } | 240 } |
206 | 241 |
| 242 #if defined(OS_WIN) |
| 243 // Probably related to test server flakiness in http://crbug.com/60937 |
| 244 #define MAYBE_CancelRedundantAuths FLAKY_CancelRedundantAuths |
| 245 #else |
| 246 #define MAYBE_CancelRedundantAuths CancelRedundantAuths |
| 247 #endif |
| 248 |
207 // If multiple tabs are looking for the same auth, and one is cancelled, the | 249 // If multiple tabs are looking for the same auth, and one is cancelled, the |
208 // other should be cancelled as well. | 250 // other should be cancelled as well. |
209 TEST_F(LoginPromptTest, CancelRedundantAuths) { | 251 TEST_F(LoginPromptTest, MAYBE_CancelRedundantAuths) { |
210 ASSERT_TRUE(test_server_.Start()); | 252 ASSERT_TRUE(test_server_.Start()); |
211 | 253 |
212 scoped_refptr<TabProxy> basic_tab1(GetActiveTab()); | 254 scoped_refptr<TabProxy> basic_tab1(GetActiveTab()); |
213 ASSERT_TRUE(basic_tab1.get()); | 255 ASSERT_TRUE(basic_tab1.get()); |
214 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 256 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
215 basic_tab1->NavigateToURL(test_server_.GetURL("auth-basic/1"))); | 257 basic_tab1->NavigateToURL(test_server_.GetURL("auth-basic/1"))); |
216 EXPECT_TRUE(basic_tab1->NeedsAuth()); | 258 EXPECT_TRUE(basic_tab1->NeedsAuth()); |
217 | 259 |
218 AppendTab(GURL(chrome::kAboutBlankURL)); | 260 AppendTab(GURL(chrome::kAboutBlankURL)); |
219 scoped_refptr<TabProxy> basic_tab2(GetActiveTab()); | 261 scoped_refptr<TabProxy> basic_tab2(GetActiveTab()); |
220 ASSERT_TRUE(basic_tab2.get()); | 262 ASSERT_TRUE(basic_tab2.get()); |
221 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 263 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
222 basic_tab2->NavigateToURL(test_server_.GetURL("auth-basic/2"))); | 264 basic_tab2->NavigateToURL(test_server_.GetURL("auth-basic/2"))); |
223 EXPECT_TRUE(basic_tab2->NeedsAuth()); | 265 EXPECT_TRUE(basic_tab2->NeedsAuth()); |
224 | 266 |
225 // Cancel the auth in only one of the tabs (but wait for the other to load). | 267 // Cancel the auth in only one of the tabs (but wait for the other to load). |
226 int64 last_navigation_time; | 268 int64 last_navigation_time; |
227 ASSERT_TRUE(basic_tab2->GetLastNavigationTime(&last_navigation_time)); | 269 ASSERT_TRUE(basic_tab2->GetLastNavigationTime(&last_navigation_time)); |
228 EXPECT_TRUE(basic_tab1->CancelAuth()); | 270 EXPECT_TRUE(basic_tab1->CancelAuth()); |
229 EXPECT_TRUE(basic_tab2->WaitForNavigation(last_navigation_time)); | 271 EXPECT_TRUE(basic_tab2->WaitForNavigation(last_navigation_time)); |
230 | 272 |
231 // Now both tabs have been denied. | 273 // Now both tabs have been denied. |
232 wstring title1; | 274 wstring title1; |
233 EXPECT_TRUE(basic_tab1->GetTabTitle(&title1)); | 275 EXPECT_TRUE(basic_tab1->GetTabTitle(&title1)); |
234 EXPECT_EQ(L"Denied: no auth", title1); | 276 EXPECT_EQ(L"Denied: no auth", title1); |
235 wstring title2; | 277 wstring title2; |
236 EXPECT_TRUE(basic_tab2->GetTabTitle(&title2)); | 278 EXPECT_TRUE(basic_tab2->GetTabTitle(&title2)); |
237 EXPECT_EQ(L"Denied: no auth", title2); | 279 EXPECT_EQ(L"Denied: no auth", title2); |
238 } | 280 } |
OLD | NEW |