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

Side by Side Diff: chrome/browser/ui/autofill/autofill_dialog_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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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"
11 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
12 #include "base/prefs/pref_service.h" 12 #include "base/prefs/pref_service.h"
13 #include "base/run_loop.h" 13 #include "base/run_loop.h"
14 #include "base/strings/string_number_conversions.h" 14 #include "base/strings/string_number_conversions.h"
15 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
16 #include "base/tuple.h" 16 #include "base/tuple.h"
17 #include "chrome/browser/ui/autofill/autofill_credit_card_bubble_controller.h"
18 #include "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h" 17 #include "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h"
19 #include "chrome/browser/ui/autofill/autofill_dialog_view.h" 18 #include "chrome/browser/ui/autofill/autofill_dialog_view.h"
20 #include "chrome/browser/ui/autofill/test_autofill_credit_card_bubble.h" 19 #include "chrome/browser/ui/autofill/generated_credit_card_bubble_controller.h"
20 #include "chrome/browser/ui/autofill/mock_new_credit_card_bubble_controller.h"
21 #include "chrome/browser/ui/autofill/test_generated_credit_card_bubble_view.h"
21 #include "chrome/common/pref_names.h" 22 #include "chrome/common/pref_names.h"
22 #include "chrome/common/render_messages.h" 23 #include "chrome/common/render_messages.h"
23 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 24 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
24 #include "chrome/test/base/testing_profile.h" 25 #include "chrome/test/base/testing_profile.h"
25 #include "components/autofill/content/browser/risk/proto/fingerprint.pb.h" 26 #include "components/autofill/content/browser/risk/proto/fingerprint.pb.h"
26 #include "components/autofill/content/browser/wallet/full_wallet.h" 27 #include "components/autofill/content/browser/wallet/full_wallet.h"
27 #include "components/autofill/content/browser/wallet/instrument.h" 28 #include "components/autofill/content/browser/wallet/instrument.h"
28 #include "components/autofill/content/browser/wallet/mock_wallet_client.h" 29 #include "components/autofill/content/browser/wallet/mock_wallet_client.h"
29 #include "components/autofill/content/browser/wallet/wallet_address.h" 30 #include "components/autofill/content/browser/wallet/wallet_address.h"
30 #include "components/autofill/content/browser/wallet/wallet_service_url.h" 31 #include "components/autofill/content/browser/wallet/wallet_service_url.h"
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 : public AutofillDialogControllerImpl, 187 : public AutofillDialogControllerImpl,
187 public base::SupportsWeakPtr<TestAutofillDialogController> { 188 public base::SupportsWeakPtr<TestAutofillDialogController> {
188 public: 189 public:
189 TestAutofillDialogController( 190 TestAutofillDialogController(
190 content::WebContents* contents, 191 content::WebContents* contents,
191 const FormData& form_structure, 192 const FormData& form_structure,
192 const GURL& source_url, 193 const GURL& source_url,
193 const AutofillMetrics& metric_logger, 194 const AutofillMetrics& metric_logger,
194 const DialogType dialog_type, 195 const DialogType dialog_type,
195 const base::Callback<void(const FormStructure*, 196 const base::Callback<void(const FormStructure*,
196 const std::string&)>& callback) 197 const std::string&)>& callback,
198 MockNewCreditCardBubbleController* mock_new_card_bubble_controller)
197 : AutofillDialogControllerImpl(contents, 199 : AutofillDialogControllerImpl(contents,
198 form_structure, 200 form_structure,
199 source_url, 201 source_url,
200 dialog_type, 202 dialog_type,
201 callback), 203 callback),
202 metric_logger_(metric_logger), 204 metric_logger_(metric_logger),
203 mock_wallet_client_( 205 mock_wallet_client_(
204 Profile::FromBrowserContext(contents->GetBrowserContext())-> 206 Profile::FromBrowserContext(contents->GetBrowserContext())->
205 GetRequestContext(), this), 207 GetRequestContext(), this),
206 dialog_type_(dialog_type) {} 208 dialog_type_(dialog_type),
209 mock_new_card_bubble_controller_(mock_new_card_bubble_controller) {}
210
207 virtual ~TestAutofillDialogController() {} 211 virtual ~TestAutofillDialogController() {}
208 212
209 virtual AutofillDialogView* CreateView() OVERRIDE { 213 virtual AutofillDialogView* CreateView() OVERRIDE {
210 return new testing::NiceMock<TestAutofillDialogView>(); 214 return new testing::NiceMock<TestAutofillDialogView>();
211 } 215 }
212 216
213 void Init(content::BrowserContext* browser_context) { 217 void Init(content::BrowserContext* browser_context) {
214 test_manager_.Init(browser_context); 218 test_manager_.Init(browser_context);
215 } 219 }
216 220
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 virtual void OpenTabWithUrl(const GURL& url) OVERRIDE { 262 virtual void OpenTabWithUrl(const GURL& url) OVERRIDE {
259 open_tab_url_ = url; 263 open_tab_url_ = url;
260 } 264 }
261 265
262 // Whether the information input in this dialog will be securely transmitted 266 // Whether the information input in this dialog will be securely transmitted
263 // to the requesting site. 267 // to the requesting site.
264 virtual bool TransmissionWillBeSecure() const OVERRIDE { 268 virtual bool TransmissionWillBeSecure() const OVERRIDE {
265 return true; 269 return true;
266 } 270 }
267 271
272 virtual void ShowNewCreditCardBubble(
273 scoped_ptr<CreditCard> new_card,
274 scoped_ptr<AutofillProfile> billing_profile) OVERRIDE {
275 mock_new_card_bubble_controller_->Show(new_card.Pass(),
276 billing_profile.Pass());
277 }
278
268 private: 279 private:
269 // To specify our own metric logger. 280 // To specify our own metric logger.
270 virtual const AutofillMetrics& GetMetricLogger() const OVERRIDE { 281 virtual const AutofillMetrics& GetMetricLogger() const OVERRIDE {
271 return metric_logger_; 282 return metric_logger_;
272 } 283 }
273 284
274 const AutofillMetrics& metric_logger_; 285 const AutofillMetrics& metric_logger_;
275 TestPersonalDataManager test_manager_; 286 TestPersonalDataManager test_manager_;
276 testing::NiceMock<wallet::MockWalletClient> mock_wallet_client_; 287 testing::NiceMock<wallet::MockWalletClient> mock_wallet_client_;
277 GURL open_tab_url_; 288 GURL open_tab_url_;
278 DialogType dialog_type_; 289 DialogType dialog_type_;
290 MockNewCreditCardBubbleController* mock_new_card_bubble_controller_;
279 291
280 DISALLOW_COPY_AND_ASSIGN(TestAutofillDialogController); 292 DISALLOW_COPY_AND_ASSIGN(TestAutofillDialogController);
281 }; 293 };
282 294
283 class TestAutofillCreditCardBubbleController : 295 class TestGeneratedCreditCardBubbleController :
284 public AutofillCreditCardBubbleController { 296 public GeneratedCreditCardBubbleController {
285 public: 297 public:
286 explicit TestAutofillCreditCardBubbleController( 298 explicit TestGeneratedCreditCardBubbleController(
287 content::WebContents* contents) 299 content::WebContents* contents)
288 : AutofillCreditCardBubbleController(contents) { 300 : GeneratedCreditCardBubbleController(contents) {
289 contents->SetUserData(UserDataKey(), this); 301 contents->SetUserData(UserDataKey(), this);
290 CHECK_EQ(contents->GetUserData(UserDataKey()), this); 302 CHECK_EQ(contents->GetUserData(UserDataKey()), this);
291 } 303 }
292 304
293 virtual ~TestAutofillCreditCardBubbleController() {} 305 virtual ~TestGeneratedCreditCardBubbleController() {}
294 306
295 MOCK_METHOD2(ShowAsGeneratedCardBubble, 307 MOCK_METHOD2(SetupAndShow, void(const base::string16& backing_card_name,
296 void(const base::string16& backing_card_name, 308 const base::string16& fronting_card_name));
297 const base::string16& fronting_card_name));
298 MOCK_METHOD1(ShowAsNewCardSavedBubble,
299 void(const base::string16& newly_saved_card_name));
300 309
301 protected: 310 protected:
302 virtual base::WeakPtr<AutofillCreditCardBubble> CreateBubble() OVERRIDE { 311 virtual base::WeakPtr<GeneratedCreditCardBubbleView> CreateBubble() OVERRIDE {
303 return TestAutofillCreditCardBubble::Create(GetWeakPtr()); 312 return TestGeneratedCreditCardBubbleView::Create(GetWeakPtr());
304 } 313 }
305 314
306 virtual bool CanShow() const OVERRIDE { 315 virtual bool CanShow() const OVERRIDE {
307 return true; 316 return true;
308 } 317 }
309 318
310 private: 319 private:
311 DISALLOW_COPY_AND_ASSIGN(TestAutofillCreditCardBubbleController); 320 DISALLOW_COPY_AND_ASSIGN(TestGeneratedCreditCardBubbleController);
312 }; 321 };
313 322
314 class AutofillDialogControllerTest : public ChromeRenderViewHostTestHarness { 323 class AutofillDialogControllerTest : public ChromeRenderViewHostTestHarness {
315 protected: 324 protected:
316 AutofillDialogControllerTest(): form_structure_(NULL) {} 325 AutofillDialogControllerTest(): form_structure_(NULL) {}
317 326
318 // testing::Test implementation: 327 // testing::Test implementation:
319 virtual void SetUp() OVERRIDE { 328 virtual void SetUp() OVERRIDE {
320 ChromeRenderViewHostTestHarness::SetUp(); 329 ChromeRenderViewHostTestHarness::SetUp();
321 330 Reset();
322 test_bubble_controller_ =
323 new testing::NiceMock<TestAutofillCreditCardBubbleController>(
324 web_contents());
325
326 // Don't get stuck on the first run wallet interstitial.
327 profile()->GetPrefs()->SetBoolean(::prefs::kAutofillDialogHasPaidWithWallet,
328 true);
329
330 SetUpControllerWithFormData(DefaultFormData());
331 } 331 }
332 332
333 virtual void TearDown() OVERRIDE { 333 virtual void TearDown() OVERRIDE {
334 if (controller_) 334 if (controller_)
335 controller_->ViewClosed(); 335 controller_->ViewClosed();
336 ChromeRenderViewHostTestHarness::TearDown(); 336 ChromeRenderViewHostTestHarness::TearDown();
337 } 337 }
338 338
339 void Reset() { 339 void Reset() {
340 if (controller_) 340 if (controller_)
341 controller_->ViewClosed(); 341 controller_->ViewClosed();
342 342
343 test_bubble_controller_ = 343 test_generated_bubble_controller_ =
344 new testing::NiceMock<TestAutofillCreditCardBubbleController>( 344 new testing::NiceMock<TestGeneratedCreditCardBubbleController>(
345 web_contents()); 345 web_contents());
346 mock_new_card_bubble_controller_.reset(
347 new MockNewCreditCardBubbleController);
346 348
347 // Don't get stuck on the first run wallet interstitial. 349 // Don't get stuck on the first run wallet interstitial.
348 profile()->GetPrefs()->SetBoolean(::prefs::kAutofillDialogHasPaidWithWallet, 350 profile()->GetPrefs()->SetBoolean(::prefs::kAutofillDialogHasPaidWithWallet,
349 true); 351 true);
350 352
351 SetUpControllerWithFormData(DefaultFormData()); 353 SetUpControllerWithFormData(DefaultFormData());
352 } 354 }
353 355
354 FormData DefaultFormData() { 356 FormData DefaultFormData() {
355 FormData form_data; 357 FormData form_data;
(...skipping 11 matching lines...) Expand all
367 369
368 base::Callback<void(const FormStructure*, const std::string&)> callback = 370 base::Callback<void(const FormStructure*, const std::string&)> callback =
369 base::Bind(&AutofillDialogControllerTest::FinishedCallback, 371 base::Bind(&AutofillDialogControllerTest::FinishedCallback,
370 base::Unretained(this)); 372 base::Unretained(this));
371 controller_ = (new testing::NiceMock<TestAutofillDialogController>( 373 controller_ = (new testing::NiceMock<TestAutofillDialogController>(
372 web_contents(), 374 web_contents(),
373 form_data, 375 form_data,
374 GURL(), 376 GURL(),
375 metric_logger_, 377 metric_logger_,
376 DIALOG_TYPE_REQUEST_AUTOCOMPLETE, 378 DIALOG_TYPE_REQUEST_AUTOCOMPLETE,
377 callback))->AsWeakPtr(); 379 callback,
380 mock_new_card_bubble_controller_.get()))->AsWeakPtr();
378 controller_->Init(profile()); 381 controller_->Init(profile());
379 controller_->Show(); 382 controller_->Show();
380 controller_->OnUserNameFetchSuccess(kFakeEmail); 383 controller_->OnUserNameFetchSuccess(kFakeEmail);
381 } 384 }
382 385
383 void FillCreditCardInputs() { 386 void FillCreditCardInputs() {
384 DetailOutputMap cc_outputs; 387 DetailOutputMap cc_outputs;
385 const DetailInputs& cc_inputs = 388 const DetailInputs& cc_inputs =
386 controller()->RequestedFieldsForSection(SECTION_CC); 389 controller()->RequestedFieldsForSection(SECTION_CC);
387 for (size_t i = 0; i < cc_inputs.size(); ++i) { 390 for (size_t i = 0; i < cc_inputs.size(); ++i) {
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 Tuple1<bool> payload; 457 Tuple1<bool> payload;
455 ChromeViewMsg_SetVisuallyDeemphasized::Read(message, &payload); 458 ChromeViewMsg_SetVisuallyDeemphasized::Read(message, &payload);
456 process()->sink().ClearMessages(); 459 process()->sink().ClearMessages();
457 return payload.a; 460 return payload.a;
458 } 461 }
459 462
460 TestAutofillDialogController* controller() { return controller_.get(); } 463 TestAutofillDialogController* controller() { return controller_.get(); }
461 464
462 const FormStructure* form_structure() { return form_structure_; } 465 const FormStructure* form_structure() { return form_structure_; }
463 466
464 TestAutofillCreditCardBubbleController* test_bubble_controller() { 467 TestGeneratedCreditCardBubbleController* test_generated_bubble_controller() {
465 return test_bubble_controller_; 468 return test_generated_bubble_controller_;
469 }
470
471 const MockNewCreditCardBubbleController* mock_new_card_bubble_controller() {
472 return mock_new_card_bubble_controller_.get();
466 } 473 }
467 474
468 private: 475 private:
469 void FinishedCallback(const FormStructure* form_structure, 476 void FinishedCallback(const FormStructure* form_structure,
470 const std::string& google_transaction_id) { 477 const std::string& google_transaction_id) {
471 form_structure_ = form_structure; 478 form_structure_ = form_structure;
472 if (controller()->GetDialogType() == DIALOG_TYPE_AUTOCHECKOUT) 479 if (controller()->GetDialogType() == DIALOG_TYPE_AUTOCHECKOUT)
473 EXPECT_TRUE(controller()->AutocheckoutIsRunning()); 480 EXPECT_TRUE(controller()->AutocheckoutIsRunning());
474 } 481 }
475 482
476 #if defined(OS_WIN) 483 #if defined(OS_WIN)
477 // http://crbug.com/227221 484 // http://crbug.com/227221
478 ui::ScopedOleInitializer ole_initializer_; 485 ui::ScopedOleInitializer ole_initializer_;
479 #endif 486 #endif
480 487
481 // The controller owns itself. 488 // The controller owns itself.
482 base::WeakPtr<TestAutofillDialogController> controller_; 489 base::WeakPtr<TestAutofillDialogController> controller_;
483 490
484 // Must outlive the controller. 491 // Must outlive the controller.
485 AutofillMetrics metric_logger_; 492 AutofillMetrics metric_logger_;
486 493
487 // Returned when the dialog closes successfully. 494 // Returned when the dialog closes successfully.
488 const FormStructure* form_structure_; 495 const FormStructure* form_structure_;
489 496
490 // Used to monitor if the Autofill credit card bubble is shown. Owned by 497 // Used to monitor if the Autofill credit card bubble is shown. Owned by
491 // |web_contents()|. 498 // |web_contents()|.
492 TestAutofillCreditCardBubbleController* test_bubble_controller_; 499 TestGeneratedCreditCardBubbleController* test_generated_bubble_controller_;
500
501 // Used to record when new card bubbles would show. Created in |Reset()|.
502 scoped_ptr<MockNewCreditCardBubbleController>
503 mock_new_card_bubble_controller_;
493 }; 504 };
494 505
495 } // namespace 506 } // namespace
496 507
497 // This test makes sure nothing falls over when fields are being validity- 508 // This test makes sure nothing falls over when fields are being validity-
498 // checked. 509 // checked.
499 TEST_F(AutofillDialogControllerTest, ValidityCheck) { 510 TEST_F(AutofillDialogControllerTest, ValidityCheck) {
500 for (size_t i = SECTION_MIN; i <= SECTION_MAX; ++i) { 511 for (size_t i = SECTION_MIN; i <= SECTION_MAX; ++i) {
501 DialogSection section = static_cast<DialogSection>(i); 512 DialogSection section = static_cast<DialogSection>(i);
502 const DetailInputs& shipping_inputs = 513 const DetailInputs& shipping_inputs =
(...skipping 978 matching lines...) Expand 10 before | Expand all | Expand 10 after
1481 controller()->RequestedFieldsForSection(SECTION_EMAIL); 1492 controller()->RequestedFieldsForSection(SECTION_EMAIL);
1482 EXPECT_EQ(kEmail, 1493 EXPECT_EQ(kEmail,
1483 controller()->SuggestionStateForSection(SECTION_EMAIL).text); 1494 controller()->SuggestionStateForSection(SECTION_EMAIL).text);
1484 EXPECT_EQ(string16(), inputs2[0].initial_value); 1495 EXPECT_EQ(string16(), inputs2[0].initial_value);
1485 } 1496 }
1486 1497
1487 // Tests that editing an autofill profile and then submitting works. 1498 // Tests that editing an autofill profile and then submitting works.
1488 TEST_F(AutofillDialogControllerTest, EditAutofillProfile) { 1499 TEST_F(AutofillDialogControllerTest, EditAutofillProfile) {
1489 SwitchToAutofill(); 1500 SwitchToAutofill();
1490 1501
1491 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(1); 1502 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(2);
1492 1503
1493 AutofillProfile full_profile(test::GetVerifiedProfile()); 1504 AutofillProfile full_profile(test::GetVerifiedProfile());
1505 CreditCard credit_card(test::GetVerifiedCreditCard());
1494 controller()->GetTestingManager()->AddTestingProfile(&full_profile); 1506 controller()->GetTestingManager()->AddTestingProfile(&full_profile);
1507 controller()->GetTestingManager()->AddTestingCreditCard(&credit_card);
1495 controller()->EditClickedForSection(SECTION_SHIPPING); 1508 controller()->EditClickedForSection(SECTION_SHIPPING);
1496 1509
1497 DetailOutputMap outputs; 1510 DetailOutputMap outputs;
1498 const DetailInputs& inputs = 1511 const DetailInputs& inputs =
1499 controller()->RequestedFieldsForSection(SECTION_SHIPPING); 1512 controller()->RequestedFieldsForSection(SECTION_SHIPPING);
1500 for (size_t i = 0; i < inputs.size(); ++i) { 1513 for (size_t i = 0; i < inputs.size(); ++i) {
1501 const DetailInput& input = inputs[i]; 1514 const DetailInput& input = inputs[i];
1502 outputs[&input] = input.type == NAME_FULL ? ASCIIToUTF16("Edited Name") : 1515 outputs[&input] = input.type == NAME_FULL ? ASCIIToUTF16("Edited Name") :
1503 input.initial_value; 1516 input.initial_value;
1504 } 1517 }
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1562 full_profile.GetInfo(AutofillType(EMAIL_ADDRESS), "en-US"); 1575 full_profile.GetInfo(AutofillType(EMAIL_ADDRESS), "en-US");
1563 EXPECT_FALSE(original_email.empty()); 1576 EXPECT_FALSE(original_email.empty());
1564 EXPECT_EQ(original_email, 1577 EXPECT_EQ(original_email,
1565 added_profile.GetInfo(AutofillType(EMAIL_ADDRESS), "en-US")); 1578 added_profile.GetInfo(AutofillType(EMAIL_ADDRESS), "en-US"));
1566 } 1579 }
1567 1580
1568 // Makes sure that a newly added email address gets added to an existing profile 1581 // Makes sure that a newly added email address gets added to an existing profile
1569 // (as opposed to creating its own profile). http://crbug.com/240926 1582 // (as opposed to creating its own profile). http://crbug.com/240926
1570 TEST_F(AutofillDialogControllerTest, AddEmail) { 1583 TEST_F(AutofillDialogControllerTest, AddEmail) {
1571 SwitchToAutofill(); 1584 SwitchToAutofill();
1572 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(1); 1585 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(2);
1573 1586
1574 AutofillProfile full_profile(test::GetVerifiedProfile()); 1587 AutofillProfile full_profile(test::GetVerifiedProfile());
1588 CreditCard credit_card(test::GetVerifiedCreditCard());
1575 controller()->GetTestingManager()->AddTestingProfile(&full_profile); 1589 controller()->GetTestingManager()->AddTestingProfile(&full_profile);
1590 controller()->GetTestingManager()->AddTestingCreditCard(&credit_card);
1576 1591
1577 ui::MenuModel* model = controller()->MenuModelForSection(SECTION_EMAIL); 1592 ui::MenuModel* model = controller()->MenuModelForSection(SECTION_EMAIL);
1578 ASSERT_TRUE(model); 1593 ASSERT_TRUE(model);
1579 // Activate the "Add email address" menu item. 1594 // Activate the "Add email address" menu item.
1580 model->ActivatedAt(model->GetItemCount() - 2); 1595 model->ActivatedAt(model->GetItemCount() - 2);
1581 1596
1582 // Fill in the inputs from the profile. 1597 // Fill in the inputs from the profile.
1583 DetailOutputMap outputs; 1598 DetailOutputMap outputs;
1584 const DetailInputs& inputs = 1599 const DetailInputs& inputs =
1585 controller()->RequestedFieldsForSection(SECTION_EMAIL); 1600 controller()->RequestedFieldsForSection(SECTION_EMAIL);
(...skipping 802 matching lines...) Expand 10 before | Expand all | Expand 10 after
2388 controller()->CurrentAutocheckoutSteps()[1].status()); 2403 controller()->CurrentAutocheckoutSteps()[1].status());
2389 EXPECT_EQ(AUTOCHECKOUT_STEP_BILLING, 2404 EXPECT_EQ(AUTOCHECKOUT_STEP_BILLING,
2390 controller()->CurrentAutocheckoutSteps()[2].type()); 2405 controller()->CurrentAutocheckoutSteps()[2].type());
2391 EXPECT_EQ(AUTOCHECKOUT_STEP_UNSTARTED, 2406 EXPECT_EQ(AUTOCHECKOUT_STEP_UNSTARTED,
2392 controller()->CurrentAutocheckoutSteps()[2].status()); 2407 controller()->CurrentAutocheckoutSteps()[2].status());
2393 2408
2394 controller()->ViewClosed(); 2409 controller()->ViewClosed();
2395 EXPECT_FALSE(ReadSetVisuallyDeemphasizedIpc()); 2410 EXPECT_FALSE(ReadSetVisuallyDeemphasizedIpc());
2396 } 2411 }
2397 2412
2398
2399 TEST_F(AutofillDialogControllerTest, NewCardBubbleShown) { 2413 TEST_F(AutofillDialogControllerTest, NewCardBubbleShown) {
2400 EXPECT_CALL(*test_bubble_controller(), 2414 EXPECT_CALL(*test_generated_bubble_controller(), SetupAndShow(_, _)).Times(0);
2401 ShowAsNewCardSavedBubble(ASCIIToUTF16("Visa - 1111"))).Times(1);
2402 EXPECT_CALL(*test_bubble_controller(),
2403 ShowAsGeneratedCardBubble(_, _)).Times(0);
2404 2415
2405 SwitchToAutofill(); 2416 SwitchToAutofill();
2406 FillCreditCardInputs(); 2417 FillCreditCardInputs();
2407 controller()->OnAccept(); 2418 controller()->OnAccept();
2408 controller()->ViewClosed(); 2419 controller()->ViewClosed();
2420
2421 EXPECT_EQ(1, mock_new_card_bubble_controller()->bubbles_shown());
2409 } 2422 }
2410 2423
2411 TEST_F(AutofillDialogControllerTest, GeneratedCardBubbleShown) { 2424 TEST_F(AutofillDialogControllerTest, GeneratedCardBubbleShown) {
2412 EXPECT_CALL(*test_bubble_controller(), 2425 EXPECT_CALL(*test_generated_bubble_controller(), SetupAndShow(_, _)).Times(1);
2413 ShowAsGeneratedCardBubble(_, _)).Times(1);
2414 EXPECT_CALL(*test_bubble_controller(), ShowAsNewCardSavedBubble(_)).Times(0);
2415 2426
2416 SubmitWithWalletItems(CompleteAndValidWalletItems()); 2427 SubmitWithWalletItems(CompleteAndValidWalletItems());
2417 controller()->OnDidGetFullWallet(wallet::GetTestFullWallet()); 2428 controller()->OnDidGetFullWallet(wallet::GetTestFullWallet());
2418 controller()->ViewClosed(); 2429 controller()->ViewClosed();
2430
2431 EXPECT_EQ(0, mock_new_card_bubble_controller()->bubbles_shown());
2419 } 2432 }
2420 2433
2421 TEST_F(AutofillDialogControllerTest, ReloadWalletItemsOnActivation) { 2434 TEST_F(AutofillDialogControllerTest, ReloadWalletItemsOnActivation) {
2422 // Switch into Wallet mode and initialize some Wallet data. 2435 // Switch into Wallet mode and initialize some Wallet data.
2423 SwitchToWallet(); 2436 SwitchToWallet();
2424 2437
2425 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems(); 2438 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
2426 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument()); 2439 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument());
2427 wallet_items->AddInstrument(wallet::GetTestNonDefaultMaskedInstrument()); 2440 wallet_items->AddInstrument(wallet::GetTestNonDefaultMaskedInstrument());
2428 wallet_items->AddAddress(wallet::GetTestNonDefaultShippingAddress()); 2441 wallet_items->AddAddress(wallet::GetTestNonDefaultShippingAddress());
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
2484 controller()->TabActivated(); 2497 controller()->TabActivated();
2485 2498
2486 controller()->OnDidGetWalletItems(wallet::GetTestWalletItems()); 2499 controller()->OnDidGetWalletItems(wallet::GetTestWalletItems());
2487 2500
2488 EXPECT_FALSE(controller()->MenuModelForSection(SECTION_CC_BILLING)); 2501 EXPECT_FALSE(controller()->MenuModelForSection(SECTION_CC_BILLING));
2489 EXPECT_EQ( 2502 EXPECT_EQ(
2490 3, controller()->MenuModelForSection(SECTION_SHIPPING)->GetItemCount()); 2503 3, controller()->MenuModelForSection(SECTION_SHIPPING)->GetItemCount());
2491 } 2504 }
2492 2505
2493 TEST_F(AutofillDialogControllerTest, GeneratedCardBubbleNotShown) { 2506 TEST_F(AutofillDialogControllerTest, GeneratedCardBubbleNotShown) {
2494 EXPECT_CALL(*test_bubble_controller(), 2507 EXPECT_CALL(*test_generated_bubble_controller(), SetupAndShow(_, _)).Times(0);
2495 ShowAsGeneratedCardBubble(_, _)).Times(0);
2496 EXPECT_CALL(*test_bubble_controller(), ShowAsNewCardSavedBubble(_)).Times(0);
2497 2508
2498 SubmitWithWalletItems(CompleteAndValidWalletItems()); 2509 SubmitWithWalletItems(CompleteAndValidWalletItems());
2499 controller()->set_dialog_type(DIALOG_TYPE_AUTOCHECKOUT); 2510 controller()->set_dialog_type(DIALOG_TYPE_AUTOCHECKOUT);
2500 controller()->OnDidGetFullWallet(wallet::GetTestFullWallet()); 2511 controller()->OnDidGetFullWallet(wallet::GetTestFullWallet());
2501 controller()->OnAutocheckoutError(); 2512 controller()->OnAutocheckoutError();
2502 controller()->ViewClosed(); 2513 controller()->ViewClosed();
2514
2515 EXPECT_EQ(0, mock_new_card_bubble_controller()->bubbles_shown());
2503 } 2516 }
2504 2517
2505 } // namespace autofill 2518 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698