Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "base/macros.h" | 5 #include "base/macros.h" |
| 6 #include "base/strings/utf_string_conversions.h" | 6 #include "base/strings/utf_string_conversions.h" |
| 7 #include "chrome/browser/password_manager/password_manager_test_base.h" | 7 #include "chrome/browser/password_manager/password_manager_test_base.h" |
| 8 #include "chrome/browser/password_manager/password_store_factory.h" | 8 #include "chrome/browser/password_manager/password_store_factory.h" |
| 9 #include "chrome/browser/prerender/prerender_test_utils.h" | |
| 9 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
| 10 #include "chrome/browser/ui/browser.h" | 11 #include "chrome/browser/ui/browser.h" |
| 11 #include "chrome/browser/ui/passwords/passwords_model_delegate.h" | 12 #include "chrome/browser/ui/passwords/passwords_model_delegate.h" |
| 13 #include "chrome/test/base/ui_test_utils.h" | |
| 12 #include "components/password_manager/core/browser/password_bubble_experiment.h" | 14 #include "components/password_manager/core/browser/password_bubble_experiment.h" |
| 13 #include "components/password_manager/core/browser/password_store_consumer.h" | 15 #include "components/password_manager/core/browser/password_store_consumer.h" |
| 14 #include "components/password_manager/core/browser/test_password_store.h" | 16 #include "components/password_manager/core/browser/test_password_store.h" |
| 15 #include "content/public/test/browser_test.h" | 17 #include "content/public/test/browser_test.h" |
| 16 #include "content/public/test/browser_test_utils.h" | 18 #include "content/public/test/browser_test_utils.h" |
| 17 | 19 |
| 18 namespace { | 20 namespace { |
| 19 | 21 |
| 22 using prerender::test_utils::TestPrerender; | |
| 20 // A helper class that synchronously waits until the password store handles a | 23 // A helper class that synchronously waits until the password store handles a |
| 21 // GetLogins() request. | 24 // GetLogins() request. |
| 22 class PasswordStoreResultsObserver | 25 class PasswordStoreResultsObserver |
| 23 : public password_manager::PasswordStoreConsumer { | 26 : public password_manager::PasswordStoreConsumer { |
| 24 public: | 27 public: |
| 25 PasswordStoreResultsObserver() = default; | 28 PasswordStoreResultsObserver() = default; |
| 26 | 29 |
| 27 void OnGetPasswordStoreResults( | 30 void OnGetPasswordStoreResults( |
| 28 std::vector<std::unique_ptr<autofill::PasswordForm>> results) override { | 31 std::vector<std::unique_ptr<autofill::PasswordForm>> results) override { |
| 29 run_loop_.Quit(); | 32 run_loop_.Quit(); |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 248 EXPECT_FALSE(prompt_observer->IsShowingUpdatePrompt()); | 251 EXPECT_FALSE(prompt_observer->IsShowingUpdatePrompt()); |
| 249 signin_form.skip_zero_click = false; | 252 signin_form.skip_zero_click = false; |
| 250 signin_form.times_used = 1; | 253 signin_form.times_used = 1; |
| 251 signin_form.password_value = base::ASCIIToUTF16("API"); | 254 signin_form.password_value = base::ASCIIToUTF16("API"); |
| 252 password_manager::TestPasswordStore::PasswordMap stored = | 255 password_manager::TestPasswordStore::PasswordMap stored = |
| 253 password_store->stored_passwords(); | 256 password_store->stored_passwords(); |
| 254 ASSERT_EQ(1u, stored.size()); | 257 ASSERT_EQ(1u, stored.size()); |
| 255 EXPECT_EQ(signin_form, stored[signin_form.signon_realm][0]); | 258 EXPECT_EQ(signin_form, stored[signin_form.signon_realm][0]); |
| 256 } | 259 } |
| 257 | 260 |
| 261 class CredentialManagerPrerenderTest | |
| 262 : public prerender::test_utils::PrerenderInProcessBrowserTest { | |
| 263 private: | |
| 264 std::vector<std::unique_ptr<TestPrerender>> PrerenderTestURLImpl( | |
|
pasko
2016/10/26 12:37:00
in a concurrent change I am removing PrerenderTest
vasilii
2016/10/27 09:02:09
Done.
| |
| 265 const GURL& prerender_url, | |
| 266 const std::vector<prerender::FinalStatus>& expected_final_status_queue, | |
| 267 int expected_number_of_loads) override { | |
| 268 return NavigateWithPrerenders(prerender_url, expected_final_status_queue, | |
| 269 expected_number_of_loads); | |
| 270 } | |
| 271 }; | |
| 272 | |
| 273 IN_PROC_BROWSER_TEST_F(CredentialManagerPrerenderTest, | |
| 274 AutosigninInPrerenderer) { | |
| 275 std::unique_ptr<TestPrerender> prerender = prerender_contents_factory()-> | |
| 276 ExpectPrerenderContents(prerender::FINAL_STATUS_CREDENTIAL_MANAGER_API); | |
| 277 GURL test_page = embedded_test_server()->GetURL( | |
| 278 "/password/prerender_autosignin.html"); | |
| 279 ui_test_utils::NavigateToURL(current_browser(), test_page); | |
| 280 prerender->WaitForCreate(); | |
|
pasko
2016/10/26 12:37:00
can just WaitForStop() without WaitForCreate()
vasilii
2016/10/27 09:02:09
Done.
| |
| 281 prerender->WaitForStop(); | |
|
pasko
2016/10/26 12:37:00
Do we also want to make sure that a request to pas
vasilii
2016/10/27 09:02:09
Done.
| |
| 282 } | |
| 283 | |
| 258 } // namespace | 284 } // namespace |
| OLD | NEW |