OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "base/utf_string_conversions.h" |
7 #include "chrome/browser/net/url_fixer_upper.h" | 8 #include "chrome/browser/net/url_fixer_upper.h" |
8 #include "chrome/common/url_constants.h" | 9 #include "chrome/common/url_constants.h" |
9 #include "chrome/test/automation/tab_proxy.h" | 10 #include "chrome/test/automation/tab_proxy.h" |
10 #include "chrome/test/automation/browser_proxy.h" | 11 #include "chrome/test/automation/browser_proxy.h" |
11 #include "chrome/test/ui/ui_test.h" | 12 #include "chrome/test/ui/ui_test.h" |
12 #include "net/test/test_server.h" | 13 #include "net/test/test_server.h" |
13 | 14 |
14 using std::wstring; | |
15 | |
16 namespace { | 15 namespace { |
17 | 16 |
18 const FilePath::CharType kDocRoot[] = FILE_PATH_LITERAL("chrome/test/data"); | 17 const FilePath::CharType kDocRoot[] = FILE_PATH_LITERAL("chrome/test/data"); |
19 | 18 |
20 } // namespace | 19 } // namespace |
21 | 20 |
22 class LoginPromptTest : public UITest { | 21 class LoginPromptTest : public UITest { |
23 protected: | 22 protected: |
24 LoginPromptTest() | 23 LoginPromptTest() |
25 : username_basic_(L"basicuser"), | 24 : username_basic_(ASCIIToUTF16("basicuser")), |
26 username_digest_(L"digestuser"), | 25 username_digest_(ASCIIToUTF16("digestuser")), |
27 password_(L"secret"), | 26 password_(ASCIIToUTF16("secret")), |
28 password_bad_(L"denyme"), | 27 password_bad_(ASCIIToUTF16("denyme")), |
29 test_server_(net::TestServer::TYPE_HTTP, FilePath(kDocRoot)) { | 28 test_server_(net::TestServer::TYPE_HTTP, FilePath(kDocRoot)) { |
30 } | 29 } |
31 | 30 |
32 void AppendTab(const GURL& url) { | 31 void AppendTab(const GURL& url) { |
33 scoped_refptr<BrowserProxy> window_proxy(automation()->GetBrowserWindow(0)); | 32 scoped_refptr<BrowserProxy> window_proxy(automation()->GetBrowserWindow(0)); |
34 ASSERT_TRUE(window_proxy.get()); | 33 ASSERT_TRUE(window_proxy.get()); |
35 ASSERT_TRUE(window_proxy->AppendTab(url)); | 34 ASSERT_TRUE(window_proxy->AppendTab(url)); |
36 } | 35 } |
37 | 36 |
38 protected: | 37 protected: |
39 wstring username_basic_; | 38 string16 username_basic_; |
40 wstring username_digest_; | 39 string16 username_digest_; |
41 wstring password_; | 40 string16 password_; |
42 wstring password_bad_; | 41 string16 password_bad_; |
43 | 42 |
44 net::TestServer test_server_; | 43 net::TestServer test_server_; |
45 }; | 44 }; |
46 | 45 |
47 wstring ExpectedTitleFromAuth(const wstring& username, | 46 string16 ExpectedTitleFromAuth(const string16& username, |
48 const wstring& password) { | 47 const string16& password) { |
49 // The TestServer sets the title to username/password on successful login. | 48 // The TestServer sets the title to username/password on successful login. |
50 return username + L"/" + password; | 49 return username + char16('/') + password; |
51 } | 50 } |
52 | 51 |
53 #if defined(OS_WIN) | 52 #if defined(OS_WIN) |
54 // Probably related to test server flakiness in http://crbug.com/60937 | 53 // Probably related to test server flakiness in http://crbug.com/60937 |
55 #define MAYBE_TestBasicAuth FLAKY_TestBasicAuth | 54 #define MAYBE_TestBasicAuth FLAKY_TestBasicAuth |
56 #else | 55 #else |
57 #define MAYBE_TestBasicAuth TestBasicAuth | 56 #define MAYBE_TestBasicAuth TestBasicAuth |
58 #endif | 57 #endif |
59 | 58 |
60 // Test that "Basic" HTTP authentication works. | 59 // Test that "Basic" HTTP authentication works. |
(...skipping 10 matching lines...) Expand all Loading... |
71 EXPECT_TRUE(tab->NeedsAuth()); | 70 EXPECT_TRUE(tab->NeedsAuth()); |
72 EXPECT_TRUE(tab->CancelAuth()); | 71 EXPECT_TRUE(tab->CancelAuth()); |
73 EXPECT_EQ(L"Denied: wrong password", GetActiveTabTitle()); | 72 EXPECT_EQ(L"Denied: wrong password", GetActiveTabTitle()); |
74 | 73 |
75 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 74 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
76 tab->NavigateToURL(test_server_.GetURL("auth-basic"))); | 75 tab->NavigateToURL(test_server_.GetURL("auth-basic"))); |
77 | 76 |
78 EXPECT_TRUE(tab->NeedsAuth()); | 77 EXPECT_TRUE(tab->NeedsAuth()); |
79 EXPECT_TRUE(tab->SetAuth(username_basic_, password_)); | 78 EXPECT_TRUE(tab->SetAuth(username_basic_, password_)); |
80 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), | 79 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), |
81 GetActiveTabTitle()); | 80 WideToUTF16Hack(GetActiveTabTitle())); |
82 } | 81 } |
83 | 82 |
84 #if defined(OS_WIN) | 83 #if defined(OS_WIN) |
85 // Probably related to test server flakiness in http://crbug.com/60937 | 84 // Probably related to test server flakiness in http://crbug.com/60937 |
86 #define MAYBE_TestDigestAuth FLAKY_TestDigestAuth | 85 #define MAYBE_TestDigestAuth FLAKY_TestDigestAuth |
87 #else | 86 #else |
88 #define MAYBE_TestDigestAuth TestDigestAuth | 87 #define MAYBE_TestDigestAuth TestDigestAuth |
89 #endif | 88 #endif |
90 | 89 |
91 // Test that "Digest" HTTP authentication works. | 90 // Test that "Digest" HTTP authentication works. |
92 TEST_F(LoginPromptTest, MAYBE_TestDigestAuth) { | 91 TEST_F(LoginPromptTest, MAYBE_TestDigestAuth) { |
93 ASSERT_TRUE(test_server_.Start()); | 92 ASSERT_TRUE(test_server_.Start()); |
94 | 93 |
95 scoped_refptr<TabProxy> tab(GetActiveTab()); | 94 scoped_refptr<TabProxy> tab(GetActiveTab()); |
96 ASSERT_TRUE(tab.get()); | 95 ASSERT_TRUE(tab.get()); |
97 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 96 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
98 tab->NavigateToURL(test_server_.GetURL("auth-digest"))); | 97 tab->NavigateToURL(test_server_.GetURL("auth-digest"))); |
99 | 98 |
100 EXPECT_TRUE(tab->NeedsAuth()); | 99 EXPECT_TRUE(tab->NeedsAuth()); |
101 EXPECT_FALSE(tab->SetAuth(username_digest_, password_bad_)); | 100 EXPECT_FALSE(tab->SetAuth(username_digest_, password_bad_)); |
102 EXPECT_TRUE(tab->CancelAuth()); | 101 EXPECT_TRUE(tab->CancelAuth()); |
103 EXPECT_EQ(L"Denied: wrong password", GetActiveTabTitle()); | 102 EXPECT_EQ(L"Denied: wrong password", GetActiveTabTitle()); |
104 | 103 |
105 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 104 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
106 tab->NavigateToURL(test_server_.GetURL("auth-digest"))); | 105 tab->NavigateToURL(test_server_.GetURL("auth-digest"))); |
107 | 106 |
108 EXPECT_TRUE(tab->NeedsAuth()); | 107 EXPECT_TRUE(tab->NeedsAuth()); |
109 EXPECT_TRUE(tab->SetAuth(username_digest_, password_)); | 108 EXPECT_TRUE(tab->SetAuth(username_digest_, password_)); |
110 EXPECT_EQ(ExpectedTitleFromAuth(username_digest_, password_), | 109 EXPECT_EQ(ExpectedTitleFromAuth(username_digest_, password_), |
111 GetActiveTabTitle()); | 110 WideToUTF16Hack(GetActiveTabTitle())); |
112 } | 111 } |
113 | 112 |
114 #if defined(OS_WIN) | 113 #if defined(OS_WIN) |
115 // Probably related to test server flakiness in http://crbug.com/60937 | 114 // Probably related to test server flakiness in http://crbug.com/60937 |
116 #define MAYBE_TestTwoAuths FLAKY_TestTwoAuths | 115 #define MAYBE_TestTwoAuths FLAKY_TestTwoAuths |
117 #else | 116 #else |
118 #define MAYBE_TestTwoAuths TestTwoAuths | 117 #define MAYBE_TestTwoAuths TestTwoAuths |
119 #endif | 118 #endif |
120 | 119 |
121 // Test that logging in on 2 tabs at once works. | 120 // Test that logging in on 2 tabs at once works. |
122 TEST_F(LoginPromptTest, MAYBE_TestTwoAuths) { | 121 TEST_F(LoginPromptTest, MAYBE_TestTwoAuths) { |
123 ASSERT_TRUE(test_server_.Start()); | 122 ASSERT_TRUE(test_server_.Start()); |
124 | 123 |
125 scoped_refptr<TabProxy> basic_tab(GetActiveTab()); | 124 scoped_refptr<TabProxy> basic_tab(GetActiveTab()); |
126 ASSERT_TRUE(basic_tab.get()); | 125 ASSERT_TRUE(basic_tab.get()); |
127 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 126 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
128 basic_tab->NavigateToURL(test_server_.GetURL("auth-basic"))); | 127 basic_tab->NavigateToURL(test_server_.GetURL("auth-basic"))); |
129 | 128 |
130 AppendTab(GURL(chrome::kAboutBlankURL)); | 129 AppendTab(GURL(chrome::kAboutBlankURL)); |
131 scoped_refptr<TabProxy> digest_tab(GetActiveTab()); | 130 scoped_refptr<TabProxy> digest_tab(GetActiveTab()); |
132 ASSERT_TRUE(digest_tab.get()); | 131 ASSERT_TRUE(digest_tab.get()); |
133 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 132 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
134 digest_tab->NavigateToURL(test_server_.GetURL("auth-digest"))); | 133 digest_tab->NavigateToURL(test_server_.GetURL("auth-digest"))); |
135 | 134 |
136 EXPECT_TRUE(basic_tab->NeedsAuth()); | 135 EXPECT_TRUE(basic_tab->NeedsAuth()); |
137 EXPECT_TRUE(basic_tab->SetAuth(username_basic_, password_)); | 136 EXPECT_TRUE(basic_tab->SetAuth(username_basic_, password_)); |
138 EXPECT_TRUE(digest_tab->NeedsAuth()); | 137 EXPECT_TRUE(digest_tab->NeedsAuth()); |
139 EXPECT_TRUE(digest_tab->SetAuth(username_digest_, password_)); | 138 EXPECT_TRUE(digest_tab->SetAuth(username_digest_, password_)); |
140 | 139 |
141 wstring title; | 140 string16 title; |
142 EXPECT_TRUE(basic_tab->GetTabTitle(&title)); | 141 EXPECT_TRUE(basic_tab->GetTabTitle(&title)); |
143 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), title); | 142 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), title); |
144 | 143 |
145 EXPECT_TRUE(digest_tab->GetTabTitle(&title)); | 144 EXPECT_TRUE(digest_tab->GetTabTitle(&title)); |
146 EXPECT_EQ(ExpectedTitleFromAuth(username_digest_, password_), title); | 145 EXPECT_EQ(ExpectedTitleFromAuth(username_digest_, password_), title); |
147 } | 146 } |
148 | 147 |
149 #if defined(OS_WIN) | 148 #if defined(OS_WIN) |
150 // Probably related to test server flakiness in http://crbug.com/60937 | 149 // Probably related to test server flakiness in http://crbug.com/60937 |
151 #define MAYBE_TestCancelAuth FLAKY_TestCancelAuth | 150 #define MAYBE_TestCancelAuth FLAKY_TestCancelAuth |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 basic_tab2->NavigateToURL(test_server_.GetURL("auth-basic/2"))); | 222 basic_tab2->NavigateToURL(test_server_.GetURL("auth-basic/2"))); |
224 EXPECT_TRUE(basic_tab2->NeedsAuth()); | 223 EXPECT_TRUE(basic_tab2->NeedsAuth()); |
225 | 224 |
226 // Set the auth in only one of the tabs (but wait for the other to load). | 225 // Set the auth in only one of the tabs (but wait for the other to load). |
227 int64 last_navigation_time; | 226 int64 last_navigation_time; |
228 ASSERT_TRUE(basic_tab2->GetLastNavigationTime(&last_navigation_time)); | 227 ASSERT_TRUE(basic_tab2->GetLastNavigationTime(&last_navigation_time)); |
229 EXPECT_TRUE(basic_tab1->SetAuth(username_basic_, password_)); | 228 EXPECT_TRUE(basic_tab1->SetAuth(username_basic_, password_)); |
230 EXPECT_TRUE(basic_tab2->WaitForNavigation(last_navigation_time)); | 229 EXPECT_TRUE(basic_tab2->WaitForNavigation(last_navigation_time)); |
231 | 230 |
232 // Now both tabs have loaded. | 231 // Now both tabs have loaded. |
233 wstring title1; | 232 string16 title1; |
234 EXPECT_TRUE(basic_tab1->GetTabTitle(&title1)); | 233 EXPECT_TRUE(basic_tab1->GetTabTitle(&title1)); |
235 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), title1); | 234 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), title1); |
236 wstring title2; | 235 string16 title2; |
237 EXPECT_TRUE(basic_tab2->GetTabTitle(&title2)); | 236 EXPECT_TRUE(basic_tab2->GetTabTitle(&title2)); |
238 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), title2); | 237 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), title2); |
239 } | 238 } |
240 | 239 |
241 #if defined(OS_WIN) | 240 #if defined(OS_WIN) |
242 // Probably related to test server flakiness in http://crbug.com/60937 | 241 // Probably related to test server flakiness in http://crbug.com/60937 |
243 #define MAYBE_CancelRedundantAuths FLAKY_CancelRedundantAuths | 242 #define MAYBE_CancelRedundantAuths FLAKY_CancelRedundantAuths |
244 #else | 243 #else |
245 #define MAYBE_CancelRedundantAuths CancelRedundantAuths | 244 #define MAYBE_CancelRedundantAuths CancelRedundantAuths |
246 #endif | 245 #endif |
(...skipping 16 matching lines...) Expand all Loading... |
263 basic_tab2->NavigateToURL(test_server_.GetURL("auth-basic/2"))); | 262 basic_tab2->NavigateToURL(test_server_.GetURL("auth-basic/2"))); |
264 EXPECT_TRUE(basic_tab2->NeedsAuth()); | 263 EXPECT_TRUE(basic_tab2->NeedsAuth()); |
265 | 264 |
266 // Cancel the auth in only one of the tabs (but wait for the other to load). | 265 // Cancel the auth in only one of the tabs (but wait for the other to load). |
267 int64 last_navigation_time; | 266 int64 last_navigation_time; |
268 ASSERT_TRUE(basic_tab2->GetLastNavigationTime(&last_navigation_time)); | 267 ASSERT_TRUE(basic_tab2->GetLastNavigationTime(&last_navigation_time)); |
269 EXPECT_TRUE(basic_tab1->CancelAuth()); | 268 EXPECT_TRUE(basic_tab1->CancelAuth()); |
270 EXPECT_TRUE(basic_tab2->WaitForNavigation(last_navigation_time)); | 269 EXPECT_TRUE(basic_tab2->WaitForNavigation(last_navigation_time)); |
271 | 270 |
272 // Now both tabs have been denied. | 271 // Now both tabs have been denied. |
273 wstring title1; | 272 string16 title1; |
274 EXPECT_TRUE(basic_tab1->GetTabTitle(&title1)); | 273 EXPECT_TRUE(basic_tab1->GetTabTitle(&title1)); |
275 EXPECT_EQ(L"Denied: no auth", title1); | 274 EXPECT_EQ(ASCIIToUTF16("Denied: no auth"), title1); |
276 wstring title2; | 275 string16 title2; |
277 EXPECT_TRUE(basic_tab2->GetTabTitle(&title2)); | 276 EXPECT_TRUE(basic_tab2->GetTabTitle(&title2)); |
278 EXPECT_EQ(L"Denied: no auth", title2); | 277 EXPECT_EQ(ASCIIToUTF16("Denied: no auth"), title2); |
279 } | 278 } |
OLD | NEW |