| 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 |