Home | History | Annotate | Download | only in autofill
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/ui/autofill/mock_autofill_dialog_view_delegate.h"
      6 #include "content/public/browser/native_web_keyboard_event.h"  // For gmock.
      7 #include "grit/generated_resources.h"
      8 #include "ui/gfx/rect.h"  // Only needed because gmock needs complete types.
      9 
     10 namespace autofill {
     11 
     12 MockAutofillDialogViewDelegate::MockAutofillDialogViewDelegate() {
     13   using testing::DefaultValue;
     14   using testing::_;
     15   using testing::Return;
     16   using testing::ReturnRef;
     17 
     18   // N.B. Setting DefaultValue in the ctor and deleting it in the dtor will
     19   // only work if this Mock is not used together with other mock code that
     20   // sets different defaults. If tests utilizing the MockController start
     21   // breaking because of this, use ON_CALL instead.
     22   DefaultValue<const DetailInputs&>::Set(default_inputs_);
     23   DefaultValue<string16>::Set(string16());
     24   DefaultValue<ValidityData>::Set(ValidityData());
     25   DefaultValue<DialogSignedInState>::Set(REQUIRES_RESPONSE);
     26   DefaultValue<gfx::Image>::Set(gfx::Image());
     27   DefaultValue<SuggestionState>::Set(SuggestionState(false,
     28                                                      string16(),
     29                                                      string16(),
     30                                                      gfx::Image(),
     31                                                      string16(),
     32                                                      gfx::Image()));
     33 
     34   // SECTION_CC *must* have a CREDIT_CARD_VERIFICATION_CODE field.
     35   const DetailInput kCreditCardInputs[] = {
     36     { 2, CREDIT_CARD_VERIFICATION_CODE, IDS_AUTOFILL_DIALOG_PLACEHOLDER_CVC }
     37   };
     38   cc_default_inputs_.push_back(kCreditCardInputs[0]);
     39   ON_CALL(*this, RequestedFieldsForSection(SECTION_CC))
     40       .WillByDefault(ReturnRef(cc_default_inputs_));
     41 
     42   ON_CALL(*this, GetDialogButtons())
     43       .WillByDefault(Return(ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL));
     44   ON_CALL(*this, LegalDocumentLinks()).WillByDefault(ReturnRef(range_));
     45 
     46   // Activate all sections but CC_BILLING - default for the real
     47   // controller implementation, too.
     48   ON_CALL(*this, SectionIsActive(_)).WillByDefault(Return(true));
     49   ON_CALL(*this, SectionIsActive(SECTION_CC_BILLING))
     50       .WillByDefault(Return(false));
     51 }
     52 
     53 MockAutofillDialogViewDelegate::~MockAutofillDialogViewDelegate() {
     54   using testing::DefaultValue;
     55 
     56   DefaultValue<SuggestionState>::Clear();
     57   DefaultValue<gfx::Image>::Clear();
     58   DefaultValue<DialogSignedInState>::Clear();
     59   DefaultValue<ValidityData>::Clear();
     60   DefaultValue<string16>::Clear();
     61   DefaultValue<const DetailInputs&>::Clear();
     62 }
     63 
     64 }  // namespace autofill
     65