| 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/string16.h" | 7 #include "base/string16.h" |
| 8 #include "base/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
| 9 #include "chrome/browser/net/url_fixer_upper.h" | 9 #include "chrome/browser/net/url_fixer_upper.h" |
| 10 #include "chrome/common/url_constants.h" | 10 #include "chrome/common/url_constants.h" |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 | 128 |
| 129 wstring title; | 129 wstring title; |
| 130 EXPECT_TRUE(basic_tab->GetTabTitle(&title)); | 130 EXPECT_TRUE(basic_tab->GetTabTitle(&title)); |
| 131 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), | 131 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), |
| 132 WideToUTF16Hack(title)); | 132 WideToUTF16Hack(title)); |
| 133 | 133 |
| 134 EXPECT_TRUE(digest_tab->GetTabTitle(&title)); | 134 EXPECT_TRUE(digest_tab->GetTabTitle(&title)); |
| 135 EXPECT_EQ(ExpectedTitleFromAuth(username_digest_, password_), | 135 EXPECT_EQ(ExpectedTitleFromAuth(username_digest_, password_), |
| 136 WideToUTF16Hack(title)); | 136 WideToUTF16Hack(title)); |
| 137 } | 137 } |
| 138 | |
| 139 // If multiple tabs are looking for the same auth, the user should only have to | |
| 140 // enter it once. | |
| 141 TEST_F(LoginPromptTest, SupplyRedundantAuths) { | |
| 142 ASSERT_TRUE(test_server_.Start()); | |
| 143 | |
| 144 scoped_refptr<TabProxy> basic_tab1(GetActiveTab()); | |
| 145 ASSERT_TRUE(basic_tab1.get()); | |
| 146 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | |
| 147 basic_tab1->NavigateToURL(test_server_.GetURL("auth-basic/1"))); | |
| 148 EXPECT_TRUE(basic_tab1->NeedsAuth()); | |
| 149 | |
| 150 AppendTab(GURL(chrome::kAboutBlankURL)); | |
| 151 scoped_refptr<TabProxy> basic_tab2(GetActiveTab()); | |
| 152 ASSERT_TRUE(basic_tab2.get()); | |
| 153 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | |
| 154 basic_tab2->NavigateToURL(test_server_.GetURL("auth-basic/2"))); | |
| 155 EXPECT_TRUE(basic_tab2->NeedsAuth()); | |
| 156 | |
| 157 // Set the auth in only one of the tabs (but wait for the other to load). | |
| 158 int64 last_navigation_time; | |
| 159 ASSERT_TRUE(basic_tab2->GetLastNavigationTime(&last_navigation_time)); | |
| 160 EXPECT_TRUE(basic_tab1->SetAuth(UTF16ToWideHack(username_basic_), | |
| 161 UTF16ToWideHack(password_))); | |
| 162 EXPECT_TRUE(basic_tab2->WaitForNavigation(last_navigation_time)); | |
| 163 | |
| 164 // Now both tabs have loaded. | |
| 165 wstring title1; | |
| 166 EXPECT_TRUE(basic_tab1->GetTabTitle(&title1)); | |
| 167 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), | |
| 168 WideToUTF16Hack(title1)); | |
| 169 wstring title2; | |
| 170 EXPECT_TRUE(basic_tab2->GetTabTitle(&title2)); | |
| 171 EXPECT_EQ(ExpectedTitleFromAuth(username_basic_, password_), | |
| 172 WideToUTF16Hack(title2)); | |
| 173 } | |
| 174 | |
| 175 // If multiple tabs are looking for the same auth, and one is cancelled, the | |
| 176 // other should be cancelled as well. | |
| 177 TEST_F(LoginPromptTest, CancelRedundantAuths) { | |
| 178 ASSERT_TRUE(test_server_.Start()); | |
| 179 | |
| 180 scoped_refptr<TabProxy> basic_tab1(GetActiveTab()); | |
| 181 ASSERT_TRUE(basic_tab1.get()); | |
| 182 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | |
| 183 basic_tab1->NavigateToURL(test_server_.GetURL("auth-basic/1"))); | |
| 184 EXPECT_TRUE(basic_tab1->NeedsAuth()); | |
| 185 | |
| 186 AppendTab(GURL(chrome::kAboutBlankURL)); | |
| 187 scoped_refptr<TabProxy> basic_tab2(GetActiveTab()); | |
| 188 ASSERT_TRUE(basic_tab2.get()); | |
| 189 ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | |
| 190 basic_tab2->NavigateToURL(test_server_.GetURL("auth-basic/2"))); | |
| 191 EXPECT_TRUE(basic_tab2->NeedsAuth()); | |
| 192 | |
| 193 // Cancel the auth in only one of the tabs (but wait for the other to load). | |
| 194 int64 last_navigation_time; | |
| 195 ASSERT_TRUE(basic_tab2->GetLastNavigationTime(&last_navigation_time)); | |
| 196 EXPECT_TRUE(basic_tab1->CancelAuth()); | |
| 197 EXPECT_TRUE(basic_tab2->WaitForNavigation(last_navigation_time)); | |
| 198 | |
| 199 // Now both tabs have been denied. | |
| 200 wstring title1; | |
| 201 EXPECT_TRUE(basic_tab1->GetTabTitle(&title1)); | |
| 202 EXPECT_EQ(L"Denied: no auth", title1); | |
| 203 wstring title2; | |
| 204 EXPECT_TRUE(basic_tab2->GetTabTitle(&title2)); | |
| 205 EXPECT_EQ(L"Denied: no auth", title2); | |
| 206 } | |
| OLD | NEW |