| 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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
| 9 #include "base/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 } | 88 } |
| 89 | 89 |
| 90 class MockAutofillMetrics : public AutofillMetrics { | 90 class MockAutofillMetrics : public AutofillMetrics { |
| 91 public: | 91 public: |
| 92 MockAutofillMetrics() | 92 MockAutofillMetrics() |
| 93 : dialog_dismissal_action_(static_cast<DialogDismissalAction>(-1)) {} | 93 : dialog_dismissal_action_(static_cast<DialogDismissalAction>(-1)) {} |
| 94 virtual ~MockAutofillMetrics() {} | 94 virtual ~MockAutofillMetrics() {} |
| 95 | 95 |
| 96 virtual void LogDialogUiDuration( | 96 virtual void LogDialogUiDuration( |
| 97 const base::TimeDelta& duration, | 97 const base::TimeDelta& duration, |
| 98 DialogDismissalAction dismissal_action) const OVERRIDE { | 98 DialogDismissalAction dismissal_action) const override { |
| 99 // Ignore constness for testing. | 99 // Ignore constness for testing. |
| 100 MockAutofillMetrics* mutable_this = const_cast<MockAutofillMetrics*>(this); | 100 MockAutofillMetrics* mutable_this = const_cast<MockAutofillMetrics*>(this); |
| 101 mutable_this->dialog_dismissal_action_ = dismissal_action; | 101 mutable_this->dialog_dismissal_action_ = dismissal_action; |
| 102 } | 102 } |
| 103 | 103 |
| 104 AutofillMetrics::DialogDismissalAction dialog_dismissal_action() const { | 104 AutofillMetrics::DialogDismissalAction dialog_dismissal_action() const { |
| 105 return dialog_dismissal_action_; | 105 return dialog_dismissal_action_; |
| 106 } | 106 } |
| 107 | 107 |
| 108 MOCK_CONST_METHOD1(LogDialogDismissalState, | 108 MOCK_CONST_METHOD1(LogDialogDismissalState, |
| (...skipping 25 matching lines...) Expand all Loading... |
| 134 sign_in_user_index_(0U), | 134 sign_in_user_index_(0U), |
| 135 weak_ptr_factory_(this) { | 135 weak_ptr_factory_(this) { |
| 136 test_manager_.Init( | 136 test_manager_.Init( |
| 137 NULL, | 137 NULL, |
| 138 Profile::FromBrowserContext(contents->GetBrowserContext())->GetPrefs(), | 138 Profile::FromBrowserContext(contents->GetBrowserContext())->GetPrefs(), |
| 139 false); | 139 false); |
| 140 } | 140 } |
| 141 | 141 |
| 142 virtual ~TestAutofillDialogController() {} | 142 virtual ~TestAutofillDialogController() {} |
| 143 | 143 |
| 144 virtual GURL SignInUrl() const OVERRIDE { | 144 virtual GURL SignInUrl() const override { |
| 145 return GURL(chrome::kChromeUIVersionURL); | 145 return GURL(chrome::kChromeUIVersionURL); |
| 146 } | 146 } |
| 147 | 147 |
| 148 virtual void ViewClosed() OVERRIDE { | 148 virtual void ViewClosed() override { |
| 149 message_loop_runner_->Quit(); | 149 message_loop_runner_->Quit(); |
| 150 AutofillDialogControllerImpl::ViewClosed(); | 150 AutofillDialogControllerImpl::ViewClosed(); |
| 151 } | 151 } |
| 152 | 152 |
| 153 virtual base::string16 InputValidityMessage( | 153 virtual base::string16 InputValidityMessage( |
| 154 DialogSection section, | 154 DialogSection section, |
| 155 ServerFieldType type, | 155 ServerFieldType type, |
| 156 const base::string16& value) OVERRIDE { | 156 const base::string16& value) override { |
| 157 if (!use_validation_) | 157 if (!use_validation_) |
| 158 return base::string16(); | 158 return base::string16(); |
| 159 return AutofillDialogControllerImpl::InputValidityMessage( | 159 return AutofillDialogControllerImpl::InputValidityMessage( |
| 160 section, type, value); | 160 section, type, value); |
| 161 } | 161 } |
| 162 | 162 |
| 163 virtual ValidityMessages InputsAreValid( | 163 virtual ValidityMessages InputsAreValid( |
| 164 DialogSection section, | 164 DialogSection section, |
| 165 const FieldValueMap& inputs) OVERRIDE { | 165 const FieldValueMap& inputs) override { |
| 166 if (!use_validation_) | 166 if (!use_validation_) |
| 167 return ValidityMessages(); | 167 return ValidityMessages(); |
| 168 return AutofillDialogControllerImpl::InputsAreValid(section, inputs); | 168 return AutofillDialogControllerImpl::InputsAreValid(section, inputs); |
| 169 } | 169 } |
| 170 | 170 |
| 171 // Saving to Chrome is tested in AutofillDialogControllerImpl unit tests. | 171 // Saving to Chrome is tested in AutofillDialogControllerImpl unit tests. |
| 172 // TODO(estade): test that the view defaults to saving to Chrome. | 172 // TODO(estade): test that the view defaults to saving to Chrome. |
| 173 virtual bool ShouldOfferToSaveInChrome() const OVERRIDE { | 173 virtual bool ShouldOfferToSaveInChrome() const override { |
| 174 return true; | 174 return true; |
| 175 } | 175 } |
| 176 | 176 |
| 177 void ForceFinishSubmit() { | 177 void ForceFinishSubmit() { |
| 178 DoFinishSubmit(); | 178 DoFinishSubmit(); |
| 179 } | 179 } |
| 180 | 180 |
| 181 // Increase visibility for testing. | 181 // Increase visibility for testing. |
| 182 using AutofillDialogControllerImpl::view; | 182 using AutofillDialogControllerImpl::view; |
| 183 using AutofillDialogControllerImpl::popup_input_type; | 183 using AutofillDialogControllerImpl::popup_input_type; |
| 184 | 184 |
| 185 MOCK_METHOD0(LoadRiskFingerprintData, void()); | 185 MOCK_METHOD0(LoadRiskFingerprintData, void()); |
| 186 | 186 |
| 187 virtual std::vector<DialogNotification> CurrentNotifications() OVERRIDE { | 187 virtual std::vector<DialogNotification> CurrentNotifications() override { |
| 188 return notifications_; | 188 return notifications_; |
| 189 } | 189 } |
| 190 | 190 |
| 191 void set_notifications(const std::vector<DialogNotification>& notifications) { | 191 void set_notifications(const std::vector<DialogNotification>& notifications) { |
| 192 notifications_ = notifications; | 192 notifications_ = notifications; |
| 193 } | 193 } |
| 194 | 194 |
| 195 TestPersonalDataManager* GetTestingManager() { | 195 TestPersonalDataManager* GetTestingManager() { |
| 196 return &test_manager_; | 196 return &test_manager_; |
| 197 } | 197 } |
| (...skipping 21 matching lines...) Expand all Loading... |
| 219 | 219 |
| 220 wallet::MockWalletClient* GetTestingWalletClient() { | 220 wallet::MockWalletClient* GetTestingWalletClient() { |
| 221 return &mock_wallet_client_; | 221 return &mock_wallet_client_; |
| 222 } | 222 } |
| 223 | 223 |
| 224 void set_sign_in_user_index(size_t sign_in_user_index) { | 224 void set_sign_in_user_index(size_t sign_in_user_index) { |
| 225 sign_in_user_index_ = sign_in_user_index; | 225 sign_in_user_index_ = sign_in_user_index; |
| 226 } | 226 } |
| 227 | 227 |
| 228 protected: | 228 protected: |
| 229 virtual PersonalDataManager* GetManager() const OVERRIDE { | 229 virtual PersonalDataManager* GetManager() const override { |
| 230 return &const_cast<TestAutofillDialogController*>(this)->test_manager_; | 230 return &const_cast<TestAutofillDialogController*>(this)->test_manager_; |
| 231 } | 231 } |
| 232 | 232 |
| 233 virtual AddressValidator* GetValidator() OVERRIDE { | 233 virtual AddressValidator* GetValidator() override { |
| 234 return &mock_validator_; | 234 return &mock_validator_; |
| 235 } | 235 } |
| 236 | 236 |
| 237 virtual wallet::WalletClient* GetWalletClient() OVERRIDE { | 237 virtual wallet::WalletClient* GetWalletClient() override { |
| 238 return &mock_wallet_client_; | 238 return &mock_wallet_client_; |
| 239 } | 239 } |
| 240 | 240 |
| 241 virtual bool IsSignInContinueUrl(const GURL& url, size_t* user_index) const | 241 virtual bool IsSignInContinueUrl(const GURL& url, size_t* user_index) const |
| 242 OVERRIDE { | 242 override { |
| 243 *user_index = sign_in_user_index_; | 243 *user_index = sign_in_user_index_; |
| 244 return url == wallet::GetSignInContinueUrl(); | 244 return url == wallet::GetSignInContinueUrl(); |
| 245 } | 245 } |
| 246 | 246 |
| 247 private: | 247 private: |
| 248 // To specify our own metric logger. | 248 // To specify our own metric logger. |
| 249 virtual const AutofillMetrics& GetMetricLogger() const OVERRIDE { | 249 virtual const AutofillMetrics& GetMetricLogger() const override { |
| 250 return metric_logger_; | 250 return metric_logger_; |
| 251 } | 251 } |
| 252 | 252 |
| 253 const AutofillMetrics& metric_logger_; | 253 const AutofillMetrics& metric_logger_; |
| 254 TestPersonalDataManager test_manager_; | 254 TestPersonalDataManager test_manager_; |
| 255 testing::NiceMock<MockAddressValidator> mock_validator_; | 255 testing::NiceMock<MockAddressValidator> mock_validator_; |
| 256 testing::NiceMock<wallet::MockWalletClient> mock_wallet_client_; | 256 testing::NiceMock<wallet::MockWalletClient> mock_wallet_client_; |
| 257 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; | 257 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; |
| 258 bool use_validation_; | 258 bool use_validation_; |
| 259 | 259 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 282 const content::NotificationSource& source) | 282 const content::NotificationSource& source) |
| 283 : WindowedNotificationObserver(content::NOTIFICATION_NAV_ENTRY_COMMITTED, | 283 : WindowedNotificationObserver(content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
| 284 source), | 284 source), |
| 285 url_(url) {} | 285 url_(url) {} |
| 286 | 286 |
| 287 virtual ~NavEntryCommittedObserver() {} | 287 virtual ~NavEntryCommittedObserver() {} |
| 288 | 288 |
| 289 // content::NotificationObserver: | 289 // content::NotificationObserver: |
| 290 virtual void Observe(int type, | 290 virtual void Observe(int type, |
| 291 const content::NotificationSource& source, | 291 const content::NotificationSource& source, |
| 292 const content::NotificationDetails& details) OVERRIDE { | 292 const content::NotificationDetails& details) override { |
| 293 content::LoadCommittedDetails* load_details = | 293 content::LoadCommittedDetails* load_details = |
| 294 content::Details<content::LoadCommittedDetails>(details).ptr(); | 294 content::Details<content::LoadCommittedDetails>(details).ptr(); |
| 295 if (load_details->entry->GetVirtualURL() != url_) | 295 if (load_details->entry->GetVirtualURL() != url_) |
| 296 return; | 296 return; |
| 297 | 297 |
| 298 WindowedNotificationObserver::Observe(type, source, details); | 298 WindowedNotificationObserver::Observe(type, source, details); |
| 299 } | 299 } |
| 300 | 300 |
| 301 private: | 301 private: |
| 302 GURL url_; | 302 GURL url_; |
| 303 | 303 |
| 304 DISALLOW_COPY_AND_ASSIGN(NavEntryCommittedObserver); | 304 DISALLOW_COPY_AND_ASSIGN(NavEntryCommittedObserver); |
| 305 }; | 305 }; |
| 306 | 306 |
| 307 } // namespace | 307 } // namespace |
| 308 | 308 |
| 309 class AutofillDialogControllerTest : public InProcessBrowserTest { | 309 class AutofillDialogControllerTest : public InProcessBrowserTest { |
| 310 public: | 310 public: |
| 311 AutofillDialogControllerTest() : controller_(NULL) {} | 311 AutofillDialogControllerTest() : controller_(NULL) {} |
| 312 virtual ~AutofillDialogControllerTest() {} | 312 virtual ~AutofillDialogControllerTest() {} |
| 313 | 313 |
| 314 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 314 virtual void SetUpCommandLine(CommandLine* command_line) override { |
| 315 command_line->AppendSwitch(::switches::kReduceSecurityForTesting); | 315 command_line->AppendSwitch(::switches::kReduceSecurityForTesting); |
| 316 } | 316 } |
| 317 | 317 |
| 318 virtual void SetUpOnMainThread() OVERRIDE { | 318 virtual void SetUpOnMainThread() override { |
| 319 autofill::test::DisableSystemServices(browser()->profile()->GetPrefs()); | 319 autofill::test::DisableSystemServices(browser()->profile()->GetPrefs()); |
| 320 InitializeController(); | 320 InitializeController(); |
| 321 } | 321 } |
| 322 | 322 |
| 323 protected: | 323 protected: |
| 324 bool SectionHasField(DialogSection section, ServerFieldType type) { | 324 bool SectionHasField(DialogSection section, ServerFieldType type) { |
| 325 const DetailInputs& fields = | 325 const DetailInputs& fields = |
| 326 controller()->RequestedFieldsForSection(section); | 326 controller()->RequestedFieldsForSection(section); |
| 327 for (size_t i = 0; i < fields.size(); ++i) { | 327 for (size_t i = 0; i < fields.size(); ++i) { |
| 328 if (type == fields[i].type) | 328 if (type == fields[i].type) |
| (...skipping 1165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1494 EXPECT_TRUE(RunTestPage(http_server)); | 1494 EXPECT_TRUE(RunTestPage(http_server)); |
| 1495 } | 1495 } |
| 1496 | 1496 |
| 1497 // Like the parent test, but doesn't add the --reduce-security-for-testing flag. | 1497 // Like the parent test, but doesn't add the --reduce-security-for-testing flag. |
| 1498 class AutofillDialogControllerSecurityTest : | 1498 class AutofillDialogControllerSecurityTest : |
| 1499 public AutofillDialogControllerTest { | 1499 public AutofillDialogControllerTest { |
| 1500 public: | 1500 public: |
| 1501 AutofillDialogControllerSecurityTest() {} | 1501 AutofillDialogControllerSecurityTest() {} |
| 1502 virtual ~AutofillDialogControllerSecurityTest() {} | 1502 virtual ~AutofillDialogControllerSecurityTest() {} |
| 1503 | 1503 |
| 1504 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 1504 virtual void SetUpCommandLine(CommandLine* command_line) override { |
| 1505 CHECK(!command_line->HasSwitch(::switches::kReduceSecurityForTesting)); | 1505 CHECK(!command_line->HasSwitch(::switches::kReduceSecurityForTesting)); |
| 1506 } | 1506 } |
| 1507 | 1507 |
| 1508 typedef net::BaseTestServer::SSLOptions SSLOptions; | 1508 typedef net::BaseTestServer::SSLOptions SSLOptions; |
| 1509 | 1509 |
| 1510 private: | 1510 private: |
| 1511 DISALLOW_COPY_AND_ASSIGN(AutofillDialogControllerSecurityTest); | 1511 DISALLOW_COPY_AND_ASSIGN(AutofillDialogControllerSecurityTest); |
| 1512 }; | 1512 }; |
| 1513 | 1513 |
| 1514 IN_PROC_BROWSER_TEST_F(AutofillDialogControllerSecurityTest, | 1514 IN_PROC_BROWSER_TEST_F(AutofillDialogControllerSecurityTest, |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1766 "<input autocomplete='transaction-currency' value='USD'>" | 1766 "<input autocomplete='transaction-currency' value='USD'>" |
| 1767 "<input autocomplete='cc-csc'>"); | 1767 "<input autocomplete='cc-csc'>"); |
| 1768 AutofillDialogControllerImpl* controller = SetUpHtmlAndInvoke(html); | 1768 AutofillDialogControllerImpl* controller = SetUpHtmlAndInvoke(html); |
| 1769 ASSERT_TRUE(controller); | 1769 ASSERT_TRUE(controller); |
| 1770 | 1770 |
| 1771 EXPECT_EQ(ASCIIToUTF16("24"), controller->transaction_amount_); | 1771 EXPECT_EQ(ASCIIToUTF16("24"), controller->transaction_amount_); |
| 1772 EXPECT_EQ(ASCIIToUTF16("USD"), controller->transaction_currency_); | 1772 EXPECT_EQ(ASCIIToUTF16("USD"), controller->transaction_currency_); |
| 1773 } | 1773 } |
| 1774 | 1774 |
| 1775 } // namespace autofill | 1775 } // namespace autofill |
| OLD | NEW |