Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(234)

Side by Side Diff: chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc

Issue 1416633010: Fix crash on a page navigation when Update Password bubble is active. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments fix Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/bind.h" 5 #include "base/bind.h"
6 #include "base/prefs/pref_service.h" 6 #include "base/prefs/pref_service.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "base/time/time.h" 8 #include "base/time/time.h"
9 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" 9 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h"
10 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller_mock.h" 10 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller_mock.h"
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 325
326 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); 326 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE);
327 } 327 }
328 328
329 TEST_F(ManagePasswordsUIControllerTest, SlowNavigations) { 329 TEST_F(ManagePasswordsUIControllerTest, SlowNavigations) {
330 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( 330 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
331 CreateFormManager()); 331 CreateFormManager());
332 controller()->OnPasswordSubmitted(test_form_manager.Pass()); 332 controller()->OnPasswordSubmitted(test_form_manager.Pass());
333 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); 333 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE);
334 334
335 // Fake-navigate after a second. We expect the bubble's state to be reset 335 // Fake-navigate after 5 seconds. We expect the bubble's state to be reset
336 // if a navigation occurs after this limit. 336 // if a navigation occurs after this limit.
337 controller()->SetElapsed( 337 controller()->SetElapsed(
338 base::TimeDelta::FromMilliseconds(kSlowNavigationDelayInMS)); 338 base::TimeDelta::FromMilliseconds(kSlowNavigationDelayInMS));
339 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), 339 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(),
340 content::FrameNavigateParams()); 340 content::FrameNavigateParams());
341 341
342 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); 342 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE);
343 } 343 }
344 344
345 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedToNonWebbyURL) { 345 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedToNonWebbyURL) {
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 CreateFormManager()); 564 CreateFormManager());
565 test_form_manager->ProvisionallySave( 565 test_form_manager->ProvisionallySave(
566 test_local_form(), 566 test_local_form(),
567 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 567 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
568 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass()); 568 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass());
569 569
570 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); 570 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE);
571 controller()->UpdatePassword(autofill::PasswordForm()); 571 controller()->UpdatePassword(autofill::PasswordForm());
572 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); 572 ExpectIconStateIs(password_manager::ui::MANAGE_STATE);
573 } 573 }
574
575 TEST_F(ManagePasswordsUIControllerTest, NavigationWhenUpdateBubbleActive) {
576 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
577 CreateFormManager());
578 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass());
579 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE,
580 controller()->state());
581 // Fake-navigate after 5 seconds. We expect the bubble's state to be reset
582 // if a navigation occurs after this limit.
583 controller()->SetElapsed(
584 base::TimeDelta::FromMilliseconds(kSlowNavigationDelayInMS));
585 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(),
586 content::FrameNavigateParams());
vasilii 2015/11/04 16:12:52 Check that the state is 'inactive'.
dvadym 2015/11/04 16:20:23 Done.
587 // The following line shouldn't crash browser.
588 controller()->OnNoInteractionOnUpdate();
589 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698