OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <map> | 5 #include <map> |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/guid.h" | 9 #include "base/guid.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 DialogType dialog_type_; | 278 DialogType dialog_type_; |
279 | 279 |
280 DISALLOW_COPY_AND_ASSIGN(TestAutofillDialogController); | 280 DISALLOW_COPY_AND_ASSIGN(TestAutofillDialogController); |
281 }; | 281 }; |
282 | 282 |
283 class TestAutofillCreditCardBubbleController : | 283 class TestAutofillCreditCardBubbleController : |
284 public AutofillCreditCardBubbleController { | 284 public AutofillCreditCardBubbleController { |
285 public: | 285 public: |
286 explicit TestAutofillCreditCardBubbleController( | 286 explicit TestAutofillCreditCardBubbleController( |
287 content::WebContents* contents) | 287 content::WebContents* contents) |
288 : AutofillCreditCardBubbleController(contents) { | 288 : AutofillCreditCardBubbleController(contents), |
| 289 new_card_bubbles_shown_(0) { |
289 contents->SetUserData(UserDataKey(), this); | 290 contents->SetUserData(UserDataKey(), this); |
290 CHECK_EQ(contents->GetUserData(UserDataKey()), this); | 291 CHECK_EQ(contents->GetUserData(UserDataKey()), this); |
291 } | 292 } |
292 | 293 |
293 virtual ~TestAutofillCreditCardBubbleController() {} | 294 virtual ~TestAutofillCreditCardBubbleController() {} |
294 | 295 |
295 MOCK_METHOD2(ShowAsGeneratedCardBubble, | 296 MOCK_METHOD2(ShowAsGeneratedCardBubble, |
296 void(const base::string16& backing_card_name, | 297 void(const base::string16& backing_card_name, |
297 const base::string16& fronting_card_name)); | 298 const base::string16& fronting_card_name)); |
298 MOCK_METHOD1(ShowAsNewCardSavedBubble, | 299 |
299 void(const base::string16& newly_saved_card_name)); | 300 int new_card_bubbles_shown() const { return new_card_bubbles_shown_; } |
| 301 const CreditCard* new_card() const { return new_card_.get(); } |
300 | 302 |
301 protected: | 303 protected: |
| 304 virtual void ShowAsNewCardSavedBubble( |
| 305 scoped_ptr<CreditCard> new_card, |
| 306 scoped_ptr<AutofillProfile> billing_profile) OVERRIDE { |
| 307 ++new_card_bubbles_shown_; |
| 308 new_card_ = new_card.Pass(); |
| 309 // At the moment there's no keep |billing_profile|. |
| 310 } |
| 311 |
302 virtual base::WeakPtr<AutofillCreditCardBubble> CreateBubble() OVERRIDE { | 312 virtual base::WeakPtr<AutofillCreditCardBubble> CreateBubble() OVERRIDE { |
303 return TestAutofillCreditCardBubble::Create(GetWeakPtr()); | 313 return TestAutofillCreditCardBubble::Create(GetWeakPtr()); |
304 } | 314 } |
305 | 315 |
306 virtual bool CanShow() const OVERRIDE { | 316 virtual bool CanShow() const OVERRIDE { |
307 return true; | 317 return true; |
308 } | 318 } |
309 | 319 |
310 private: | 320 private: |
| 321 // The number of new card saved bubble shown through this class. |
| 322 int new_card_bubbles_shown_; |
| 323 |
| 324 // The last credit card and billing info shown in a new card bubble. |
| 325 scoped_ptr<CreditCard> new_card_; |
| 326 |
311 DISALLOW_COPY_AND_ASSIGN(TestAutofillCreditCardBubbleController); | 327 DISALLOW_COPY_AND_ASSIGN(TestAutofillCreditCardBubbleController); |
312 }; | 328 }; |
313 | 329 |
314 class AutofillDialogControllerTest : public ChromeRenderViewHostTestHarness { | 330 class AutofillDialogControllerTest : public ChromeRenderViewHostTestHarness { |
315 protected: | 331 protected: |
316 AutofillDialogControllerTest(): form_structure_(NULL) {} | 332 AutofillDialogControllerTest(): form_structure_(NULL) {} |
317 | 333 |
318 // testing::Test implementation: | 334 // testing::Test implementation: |
319 virtual void SetUp() OVERRIDE { | 335 virtual void SetUp() OVERRIDE { |
320 ChromeRenderViewHostTestHarness::SetUp(); | 336 ChromeRenderViewHostTestHarness::SetUp(); |
(...skipping 1962 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2283 EXPECT_EQ(AUTOCHECKOUT_STEP_UNSTARTED, | 2299 EXPECT_EQ(AUTOCHECKOUT_STEP_UNSTARTED, |
2284 controller()->CurrentAutocheckoutSteps()[2].status()); | 2300 controller()->CurrentAutocheckoutSteps()[2].status()); |
2285 | 2301 |
2286 controller()->ViewClosed(); | 2302 controller()->ViewClosed(); |
2287 EXPECT_FALSE(ReadSetVisuallyDeemphasizedIpc()); | 2303 EXPECT_FALSE(ReadSetVisuallyDeemphasizedIpc()); |
2288 } | 2304 } |
2289 | 2305 |
2290 | 2306 |
2291 TEST_F(AutofillDialogControllerTest, NewCardBubbleShown) { | 2307 TEST_F(AutofillDialogControllerTest, NewCardBubbleShown) { |
2292 EXPECT_CALL(*test_bubble_controller(), | 2308 EXPECT_CALL(*test_bubble_controller(), |
2293 ShowAsNewCardSavedBubble(ASCIIToUTF16("Visa - 1111"))).Times(1); | |
2294 EXPECT_CALL(*test_bubble_controller(), | |
2295 ShowAsGeneratedCardBubble(_, _)).Times(0); | 2309 ShowAsGeneratedCardBubble(_, _)).Times(0); |
2296 | 2310 |
2297 SwitchToAutofill(); | 2311 SwitchToAutofill(); |
2298 FillCreditCardInputs(); | 2312 FillCreditCardInputs(); |
2299 controller()->OnAccept(); | 2313 controller()->OnAccept(); |
2300 controller()->ViewClosed(); | 2314 controller()->ViewClosed(); |
| 2315 |
| 2316 EXPECT_EQ(1, test_bubble_controller()->new_card_bubbles_shown()); |
| 2317 EXPECT_EQ(ASCIIToUTF16("Visa - 4111"), |
| 2318 test_bubble_controller()->new_card()->TypeAndLastFourDigits()); |
2301 } | 2319 } |
2302 | 2320 |
2303 TEST_F(AutofillDialogControllerTest, GeneratedCardBubbleShown) { | 2321 TEST_F(AutofillDialogControllerTest, GeneratedCardBubbleShown) { |
2304 EXPECT_CALL(*test_bubble_controller(), | 2322 EXPECT_CALL(*test_bubble_controller(), |
2305 ShowAsGeneratedCardBubble(_, _)).Times(1); | 2323 ShowAsGeneratedCardBubble(_, _)).Times(1); |
2306 EXPECT_CALL(*test_bubble_controller(), ShowAsNewCardSavedBubble(_)).Times(0); | |
2307 | 2324 |
2308 SubmitWithWalletItems(CompleteAndValidWalletItems()); | 2325 SubmitWithWalletItems(CompleteAndValidWalletItems()); |
2309 controller()->OnDidGetFullWallet(wallet::GetTestFullWallet()); | 2326 controller()->OnDidGetFullWallet(wallet::GetTestFullWallet()); |
2310 controller()->ViewClosed(); | 2327 controller()->ViewClosed(); |
| 2328 |
| 2329 EXPECT_EQ(0, test_bubble_controller()->new_card_bubbles_shown()); |
2311 } | 2330 } |
2312 | 2331 |
2313 TEST_F(AutofillDialogControllerTest, ReloadWalletItemsOnActivation) { | 2332 TEST_F(AutofillDialogControllerTest, ReloadWalletItemsOnActivation) { |
2314 // Switch into Wallet mode and initialize some Wallet data. | 2333 // Switch into Wallet mode and initialize some Wallet data. |
2315 SwitchToWallet(); | 2334 SwitchToWallet(); |
2316 | 2335 |
2317 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); | 2336 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); |
2318 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument()); | 2337 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument()); |
2319 wallet_items->AddInstrument(wallet::GetTestNonDefaultMaskedInstrument()); | 2338 wallet_items->AddInstrument(wallet::GetTestNonDefaultMaskedInstrument()); |
2320 wallet_items->AddAddress(wallet::GetTestNonDefaultShippingAddress()); | 2339 wallet_items->AddAddress(wallet::GetTestNonDefaultShippingAddress()); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2378 controller()->OnDidGetWalletItems(wallet::GetTestWalletItems()); | 2397 controller()->OnDidGetWalletItems(wallet::GetTestWalletItems()); |
2379 | 2398 |
2380 EXPECT_FALSE(controller()->MenuModelForSection(SECTION_CC_BILLING)); | 2399 EXPECT_FALSE(controller()->MenuModelForSection(SECTION_CC_BILLING)); |
2381 EXPECT_EQ( | 2400 EXPECT_EQ( |
2382 3, controller()->MenuModelForSection(SECTION_SHIPPING)->GetItemCount()); | 2401 3, controller()->MenuModelForSection(SECTION_SHIPPING)->GetItemCount()); |
2383 } | 2402 } |
2384 | 2403 |
2385 TEST_F(AutofillDialogControllerTest, GeneratedCardBubbleNotShown) { | 2404 TEST_F(AutofillDialogControllerTest, GeneratedCardBubbleNotShown) { |
2386 EXPECT_CALL(*test_bubble_controller(), | 2405 EXPECT_CALL(*test_bubble_controller(), |
2387 ShowAsGeneratedCardBubble(_, _)).Times(0); | 2406 ShowAsGeneratedCardBubble(_, _)).Times(0); |
2388 EXPECT_CALL(*test_bubble_controller(), ShowAsNewCardSavedBubble(_)).Times(0); | |
2389 | 2407 |
2390 SubmitWithWalletItems(CompleteAndValidWalletItems()); | 2408 SubmitWithWalletItems(CompleteAndValidWalletItems()); |
2391 controller()->set_dialog_type(DIALOG_TYPE_AUTOCHECKOUT); | 2409 controller()->set_dialog_type(DIALOG_TYPE_AUTOCHECKOUT); |
2392 controller()->OnDidGetFullWallet(wallet::GetTestFullWallet()); | 2410 controller()->OnDidGetFullWallet(wallet::GetTestFullWallet()); |
2393 controller()->OnAutocheckoutError(); | 2411 controller()->OnAutocheckoutError(); |
2394 controller()->ViewClosed(); | 2412 controller()->ViewClosed(); |
| 2413 |
| 2414 EXPECT_EQ(0, test_bubble_controller()->new_card_bubbles_shown()); |
2395 } | 2415 } |
2396 | 2416 |
2397 } // namespace autofill | 2417 } // namespace autofill |
OLD | NEW |