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

Unified Diff: chrome/browser/ui/autofill/autofill_credit_card_bubble_controller_unittest.cc

Issue 21668003: Implement newly saved card bubble for realz and update generated card bubble to (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge Created 7 years, 4 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/autofill/autofill_credit_card_bubble_controller_unittest.cc
diff --git a/chrome/browser/ui/autofill/autofill_credit_card_bubble_controller_unittest.cc b/chrome/browser/ui/autofill/autofill_credit_card_bubble_controller_unittest.cc
deleted file mode 100644
index 63efafeaa0286f59a1ca9ce5145e326618b9c209..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/autofill/autofill_credit_card_bubble_controller_unittest.cc
+++ /dev/null
@@ -1,244 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/basictypes.h"
-#include "base/compiler_specific.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/prefs/pref_service.h"
-#include "base/strings/string16.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/ui/autofill/autofill_credit_card_bubble_controller.h"
-#include "chrome/browser/ui/autofill/test_autofill_credit_card_bubble.h"
-#include "chrome/common/pref_names.h"
-#include "chrome/test/base/testing_profile.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/common/page_transition_types.h"
-#include "content/public/test/test_browser_thread_bundle.h"
-#include "content/public/test/web_contents_tester.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/base/range/range.h"
-
-#if defined(OS_WIN)
-#include "ui/base/win/scoped_ole_initializer.h"
-#endif
-
-namespace autofill {
-
-namespace {
-
-base::string16 BackingCard() {
- return ASCIIToUTF16("Visa - 1111");
-}
-base::string16 FrontingCard() {
- return ASCIIToUTF16("Mastercard - 4444");
-}
-base::string16 NewCard() {
- return ASCIIToUTF16("Discover - 7777");
-}
-
-base::string16 RangeOfString(const base::string16& string,
- const ui::Range& range) {
- return string.substr(range.start(), range.end() - range.start());
-}
-
-class TestAutofillCreditCardBubbleController
- : public AutofillCreditCardBubbleController {
- public:
- explicit TestAutofillCreditCardBubbleController(
- content::WebContents* contents)
- : AutofillCreditCardBubbleController(contents) {
- contents->SetUserData(UserDataKey(), this);
- }
-
- virtual ~TestAutofillCreditCardBubbleController() {}
-
- bool IsInstalled() const {
- return web_contents()->GetUserData(UserDataKey()) == this;
- }
-
- TestAutofillCreditCardBubble* GetTestingBubble() {
- return static_cast<TestAutofillCreditCardBubble*>(
- AutofillCreditCardBubbleController::bubble().get());
- }
-
- protected:
- virtual base::WeakPtr<AutofillCreditCardBubble> CreateBubble() OVERRIDE {
- return TestAutofillCreditCardBubble::Create(GetWeakPtr());
- }
-
- virtual bool CanShow() const OVERRIDE {
- return true;
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(TestAutofillCreditCardBubbleController);
-};
-
-class AutofillCreditCardBubbleControllerTest : public testing::Test {
- public:
- AutofillCreditCardBubbleControllerTest()
- : test_web_contents_(
- content::WebContentsTester::CreateTestWebContents(
- profile(), NULL)) {}
-
- virtual void SetUp() OVERRIDE {
- // Attaches immediately to |test_web_contents_| so a test version will exist
- // before a non-test version can be created.
- new TestAutofillCreditCardBubbleController(test_web_contents_.get());
- ASSERT_TRUE(controller()->IsInstalled());
- }
-
- protected:
- TestAutofillCreditCardBubbleController* controller() {
- return static_cast<TestAutofillCreditCardBubbleController*>(
- TestAutofillCreditCardBubbleController::FromWebContents(
- test_web_contents_.get()));
- }
-
- int GeneratedCardBubbleTimesShown() {
- return profile()->GetPrefs()->GetInteger(
- ::prefs::kAutofillGeneratedCardBubbleTimesShown);
- }
-
- Profile* profile() { return &profile_; }
-
- content::WebContentsTester* test_web_contents() {
- return content::WebContentsTester::For(test_web_contents_.get());
- }
-
- void ShowGeneratedCardUI() {
- ASSERT_TRUE(controller()->IsInstalled());
- TestAutofillCreditCardBubbleController::ShowGeneratedCardUI(
- test_web_contents_.get(), BackingCard(), FrontingCard());
- }
-
- void ShowNewCardSavedBubble() {
- ASSERT_TRUE(controller()->IsInstalled());
- TestAutofillCreditCardBubbleController::ShowNewCardSavedBubble(
- test_web_contents_.get(), NewCard());
- }
-
- void Navigate() {
- NavigateWithTransition(content::PAGE_TRANSITION_LINK);
- }
-
- void Redirect() {
- NavigateWithTransition(content::PAGE_TRANSITION_CLIENT_REDIRECT);
- }
-
- private:
- void NavigateWithTransition(content::PageTransition trans) {
- test_web_contents()->TestDidNavigate(
- test_web_contents_->GetRenderViewHost(), 1, GURL("about:blank"), trans);
- }
-
- content::TestBrowserThreadBundle thread_bundle_;
-#if defined(OS_WIN)
- // Without this there will be drag and drop failures. http://crbug.com/227221
- ui::ScopedOleInitializer ole_initializer_;
-#endif
- TestingProfile profile_;
- scoped_ptr<content::WebContents> test_web_contents_;
-};
-
-} // namespace
-
-TEST_F(AutofillCreditCardBubbleControllerTest, GeneratedCardBubbleTimesShown) {
- ASSERT_EQ(0, GeneratedCardBubbleTimesShown());
-
- // Ensure that showing the generated card UI bumps the persistent count.
- ShowGeneratedCardUI();
- EXPECT_EQ(1, GeneratedCardBubbleTimesShown());
- EXPECT_TRUE(controller()->GetTestingBubble()->showing());
-
- ShowGeneratedCardUI();
- ShowGeneratedCardUI();
- EXPECT_EQ(3, GeneratedCardBubbleTimesShown());
- EXPECT_TRUE(controller()->GetTestingBubble()->showing());
-}
-
-TEST_F(AutofillCreditCardBubbleControllerTest, BubbleText) {
- // Ensure that while showing the generated card UI that the bubble's text
- // contains "Visa - 1111" and "Mastercard - 4444".
- ShowGeneratedCardUI();
- base::string16 generated_text = controller()->BubbleText();
- EXPECT_NE(base::string16::npos, generated_text.find(BackingCard()));
- EXPECT_NE(base::string16::npos, generated_text.find(FrontingCard()));
- EXPECT_EQ(base::string16::npos, generated_text.find(NewCard()));
-
- // Ensure that while showing the new card bubble that "Discover - 7777" is in
- // the bubble text.
- ShowNewCardSavedBubble();
- base::string16 new_text = controller()->BubbleText();
- EXPECT_NE(new_text, generated_text);
- EXPECT_EQ(base::string16::npos, new_text.find(BackingCard()));
- EXPECT_EQ(base::string16::npos, new_text.find(FrontingCard()));
- EXPECT_NE(base::string16::npos, new_text.find(NewCard()));
-
- // Make sure that |bubble_text_| is regenerated the same way in |Setup()|.
- ShowGeneratedCardUI();
- EXPECT_EQ(generated_text, controller()->BubbleText());
-
- ShowNewCardSavedBubble();
- EXPECT_EQ(new_text, controller()->BubbleText());
-}
-
-TEST_F(AutofillCreditCardBubbleControllerTest, BubbleTextRanges) {
- // Check that the highlighted ranges in the bubble's text are correct.
- ShowGeneratedCardUI();
- base::string16 text = controller()->BubbleText();
- std::vector<ui::Range> ranges = controller()->BubbleTextRanges();
-
- ASSERT_EQ(2U, ranges.size());
- EXPECT_EQ(BackingCard(), RangeOfString(text, ranges[0]));
- EXPECT_EQ(FrontingCard(), RangeOfString(text, ranges[1]));
-
- ShowNewCardSavedBubble();
- text = controller()->BubbleText();
- ranges = controller()->BubbleTextRanges();
-
- ASSERT_EQ(1U, ranges.size());
- EXPECT_EQ(NewCard(), RangeOfString(text, ranges[0]));
-}
-
-TEST_F(AutofillCreditCardBubbleControllerTest, HideOnNavigate) {
- // When a user navigates away from a page (or refreshes) normally, the bubbles
- // should be hidden.
- EXPECT_FALSE(controller()->GetTestingBubble());
- ShowGeneratedCardUI();
- EXPECT_TRUE(controller()->GetTestingBubble()->showing());
-
- Navigate();
- EXPECT_FALSE(controller());
-
- SetUp();
-
- EXPECT_FALSE(controller()->GetTestingBubble());
- ShowNewCardSavedBubble();
- EXPECT_TRUE(controller()->GetTestingBubble()->showing());
-
- Navigate();
- EXPECT_FALSE(controller());
-}
-
-TEST_F(AutofillCreditCardBubbleControllerTest, StayOnRedirect) {
- // If a page redirects right after submitting, the bubble should remain.
- EXPECT_FALSE(controller()->GetTestingBubble());
- ShowGeneratedCardUI();
- EXPECT_TRUE(controller()->GetTestingBubble()->showing());
-
- Redirect();
- EXPECT_TRUE(controller()->GetTestingBubble()->showing());
-
- SetUp();
-
- EXPECT_FALSE(controller()->GetTestingBubble());
- ShowNewCardSavedBubble();
- EXPECT_TRUE(controller()->GetTestingBubble()->showing());
-
- Redirect();
- EXPECT_TRUE(controller()->GetTestingBubble()->showing());
-}
-
-} // namespace autofill

Powered by Google App Engine
This is Rietveld 408576698