Chromium Code Reviews| Index: chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc |
| diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc b/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc |
| index d4bb9e71f6d0b316071fd605bb040bd2f99634f2..e7f16018cd104ab851999fac0e87cd92ddc97402 100644 |
| --- a/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc |
| +++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc |
| @@ -6,6 +6,7 @@ |
| #include "base/prefs/pref_service.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "base/test/statistics_delta_reader.h" |
| +#include "base/timer/mock_elapsed_timer.h" |
| #include "chrome/browser/ui/passwords/manage_passwords_bubble.h" |
| #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" |
| #include "chrome/browser/ui/passwords/manage_passwords_icon.h" |
| @@ -99,6 +100,50 @@ TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) { |
| EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, mock.state()); |
| } |
| +TEST_F(ManagePasswordsUIControllerTest, QuickNavigations) { |
| + password_manager::StubPasswordManagerClient client; |
| + password_manager::StubPasswordManagerDriver driver; |
| + password_manager::PasswordFormManager* test_form_manager = |
| + new password_manager::PasswordFormManager( |
| + NULL, &client, &driver, test_form(), false); |
| + controller()->OnPasswordSubmitted(test_form_manager); |
| + ManagePasswordsIconMock mock; |
| + controller()->UpdateIconAndBubbleState(&mock); |
| + EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, mock.state()); |
| + |
| + // Fake-navigate within a second, then see what happens! |
|
vabr (Chromium)
2014/06/17 09:46:25
nit: Explain why is one second a magical constant
Mike West
2014/06/17 10:49:35
Done.
|
| + scoped_ptr<base::MockElapsedTimer> timer(new base::MockElapsedTimer()); |
| + timer->Advance(500); |
| + controller()->SetTimer(timer.release()); |
| + controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), |
| + content::FrameNavigateParams()); |
| + controller()->UpdateIconAndBubbleState(&mock); |
| + |
| + EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, mock.state()); |
| +} |
| + |
| +TEST_F(ManagePasswordsUIControllerTest, SlowNavigations) { |
| + password_manager::StubPasswordManagerClient client; |
| + password_manager::StubPasswordManagerDriver driver; |
| + password_manager::PasswordFormManager* test_form_manager = |
| + new password_manager::PasswordFormManager( |
| + NULL, &client, &driver, test_form(), false); |
| + controller()->OnPasswordSubmitted(test_form_manager); |
| + ManagePasswordsIconMock mock; |
| + controller()->UpdateIconAndBubbleState(&mock); |
| + EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, mock.state()); |
| + |
| + // Fake-navigate after two seconds, then see what happens! |
| + scoped_ptr<base::MockElapsedTimer> timer(new base::MockElapsedTimer()); |
| + timer->Advance(2000); |
| + controller()->SetTimer(timer.release()); |
| + controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), |
| + content::FrameNavigateParams()); |
| + controller()->UpdateIconAndBubbleState(&mock); |
| + |
| + EXPECT_EQ(password_manager::ui::INACTIVE_STATE, mock.state()); |
| +} |
| + |
| TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedToNonWebbyURL) { |
| // Navigate to a non-webby URL, then see what happens! |
| content::WebContentsTester::For(web_contents()) |