Index: chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa_browsertest.mm |
diff --git a/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc b/chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa_browsertest.mm |
similarity index 17% |
copy from chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc |
copy to chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa_browsertest.mm |
index 80128388ff403cc8646a573a79c84a24cba62dca..2cb6b1144efbfb98e7904072294bea0c465c8204 100644 |
--- a/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc |
+++ b/chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa_browsertest.mm |
@@ -1,19 +1,18 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
sail
2013/04/15 19:09:54
2013
groby-ooo-7-16
2013/04/15 22:12:08
Done.
|
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#import "chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa.h" |
#include "base/bind.h" |
#include "base/message_loop.h" |
-#include "base/time.h" |
-#include "base/utf_string_conversions.h" |
+#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h" |
-#include "chrome/browser/ui/autofill/autofill_dialog_view.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/tabs/tab_strip_model.h" |
#include "chrome/test/base/in_process_browser_test.h" |
-#include "components/autofill/browser/autofill_metrics.h" |
#include "components/autofill/common/form_data.h" |
-#include "components/autofill/common/form_field_data.h" |
+#include "content/public/browser/web_contents.h" |
+#include "content/public/browser/web_contents_view.h" |
#include "content/public/test/test_utils.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -23,63 +22,18 @@ namespace { |
void MockCallback(const FormStructure*, const std::string&) {} |
-class MockAutofillMetrics : public AutofillMetrics { |
- public: |
- MockAutofillMetrics() |
- : dialog_type_(static_cast<DialogType>(-1)), |
- dialog_dismissal_action_( |
- static_cast<AutofillMetrics::DialogDismissalAction>(-1)), |
- autocheckout_status_( |
- static_cast<AutofillMetrics::AutocheckoutCompletionStatus>(-1)) {} |
- virtual ~MockAutofillMetrics() {} |
- |
- // AutofillMetrics: |
- virtual void LogAutocheckoutDuration( |
- const base::TimeDelta& duration, |
- AutocheckoutCompletionStatus status) const OVERRIDE { |
- // Ignore constness for testing. |
- MockAutofillMetrics* mutable_this = const_cast<MockAutofillMetrics*>(this); |
- mutable_this->autocheckout_status_ = status; |
- } |
- |
- virtual void LogDialogUiDuration( |
- const base::TimeDelta& duration, |
- DialogType dialog_type, |
- DialogDismissalAction dismissal_action) const OVERRIDE { |
- // Ignore constness for testing. |
- MockAutofillMetrics* mutable_this = const_cast<MockAutofillMetrics*>(this); |
- mutable_this->dialog_type_ = dialog_type; |
- mutable_this->dialog_dismissal_action_ = dismissal_action; |
- } |
- |
- DialogType dialog_type() const { return dialog_type_; } |
- AutofillMetrics::DialogDismissalAction dialog_dismissal_action() const { |
- return dialog_dismissal_action_; |
- } |
- |
- AutofillMetrics::AutocheckoutCompletionStatus autocheckout_status() const { |
- return autocheckout_status_; |
- } |
- |
- private: |
- DialogType dialog_type_; |
- AutofillMetrics::DialogDismissalAction dialog_dismissal_action_; |
- AutofillMetrics::AutocheckoutCompletionStatus autocheckout_status_; |
- |
- DISALLOW_COPY_AND_ASSIGN(MockAutofillMetrics); |
-}; |
- |
class TestAutofillDialogController : public AutofillDialogControllerImpl { |
public: |
- TestAutofillDialogController(content::WebContents* contents, |
- const FormData& form_data, |
- const AutofillMetrics& metric_logger, |
- const DialogType dialog_type) |
+ TestAutofillDialogController( |
+ content::WebContents* contents, |
+ const FormData& form_structure, |
+ const AutofillMetrics& metric_logger, |
+ const DialogType dialog_type) |
: AutofillDialogControllerImpl(contents, |
- form_data, |
+ form_structure, |
GURL(), |
dialog_type, |
- base::Bind(&MockCallback)), |
+ base::Bind(MockCallback)), |
metric_logger_(metric_logger) { |
DisableWallet(); |
} |
@@ -88,17 +42,7 @@ class TestAutofillDialogController : public AutofillDialogControllerImpl { |
virtual void ViewClosed() OVERRIDE { |
AutofillDialogControllerImpl::ViewClosed(); |
- MessageLoop::current()->Quit(); |
- } |
- |
- virtual bool InputIsValid(AutofillFieldType type, |
- const string16& value) OVERRIDE { |
- return true; |
- } |
- |
- virtual std::vector<AutofillFieldType> InputsAreValid( |
- const DetailOutputMap& inputs, ValidationType validation_type) OVERRIDE { |
- return std::vector<AutofillFieldType>(); |
+ base::MessageLoop::current()->Quit(); |
} |
// Increase visibility for testing. |
@@ -115,138 +59,47 @@ class TestAutofillDialogController : public AutofillDialogControllerImpl { |
DISALLOW_COPY_AND_ASSIGN(TestAutofillDialogController); |
}; |
-} // namespace |
- |
-class AutofillDialogControllerTest : public InProcessBrowserTest { |
+class AutofillDialogCocoaBrowserTest : public InProcessBrowserTest { |
public: |
- AutofillDialogControllerTest() {} |
- virtual ~AutofillDialogControllerTest() {} |
+ AutofillDialogCocoaBrowserTest() : InProcessBrowserTest() {} |
- content::WebContents* GetActiveWebContents() { |
- return browser()->tab_strip_model()->GetActiveWebContents(); |
- } |
+ virtual ~AutofillDialogCocoaBrowserTest() {} |
- private: |
- DISALLOW_COPY_AND_ASSIGN(AutofillDialogControllerTest); |
-}; |
+ virtual void SetUpOnMainThread() OVERRIDE { |
+ FormFieldData field; |
+ field.autocomplete_attribute = "cc-number"; |
+ FormData form_data; |
+ form_data.fields.push_back(field); |
-// TODO(isherman): Enable this test on other platforms once the UI is |
-// implemented on those platforms. |
-#if defined(TOOLKIT_VIEWS) |
-#define MAYBE_RequestAutocompleteUiDurationMetrics \ |
- RequestAutocompleteUiDurationMetrics |
-#else |
-#define MAYBE_RequestAutocompleteUiDurationMetrics \ |
- DISABLED_RequestAutocompleteUiDurationMetrics |
-#endif // defined(TOOLKIT_VIEWS) |
-IN_PROC_BROWSER_TEST_F(AutofillDialogControllerTest, |
- MAYBE_RequestAutocompleteUiDurationMetrics) { |
- FormData form; |
- form.name = ASCIIToUTF16("TestForm"); |
- form.method = ASCIIToUTF16("POST"); |
- form.origin = GURL("http://example.com/form.html"); |
- form.action = GURL("http://example.com/submit.html"); |
- form.user_submitted = true; |
- |
- FormFieldData field; |
- field.autocomplete_attribute = "email"; |
- form.fields.push_back(field); |
- |
- // Submit the form data. |
- { |
- MockAutofillMetrics metric_logger; |
- TestAutofillDialogController* dialog_controller = |
- new TestAutofillDialogController( |
- GetActiveWebContents(), form, metric_logger, |
- DIALOG_TYPE_REQUEST_AUTOCOMPLETE); |
- dialog_controller->Show(); |
- dialog_controller->view()->SubmitForTesting(); |
- |
- content::RunMessageLoop(); |
- |
- EXPECT_EQ(AutofillMetrics::DIALOG_ACCEPTED, |
- metric_logger.dialog_dismissal_action()); |
- EXPECT_EQ(DIALOG_TYPE_REQUEST_AUTOCOMPLETE, metric_logger.dialog_type()); |
+ controller_ = new TestAutofillDialogController( |
+ browser()->tab_strip_model()->GetActiveWebContents(), |
+ form_data, |
+ metric_logger_, |
+ DIALOG_TYPE_REQUEST_AUTOCOMPLETE); |
} |
- // Cancel out of the dialog. |
- { |
- MockAutofillMetrics metric_logger; |
- TestAutofillDialogController* dialog_controller = |
- new TestAutofillDialogController( |
- GetActiveWebContents(), form, metric_logger, |
- DIALOG_TYPE_AUTOCHECKOUT); |
- dialog_controller->Show(); |
- dialog_controller->view()->CancelForTesting(); |
- |
- content::RunMessageLoop(); |
- |
- EXPECT_EQ(AutofillMetrics::DIALOG_CANCELED, |
- metric_logger.dialog_dismissal_action()); |
- EXPECT_EQ(DIALOG_TYPE_AUTOCHECKOUT, metric_logger.dialog_type()); |
+ virtual void TearDown() OVERRIDE { |
+ //controller_->ViewClosed(); |
sail
2013/04/15 19:09:54
remove?
groby-ooo-7-16
2013/04/15 22:12:08
Done.
|
} |
- // Take some other action that dismisses the dialog. |
- { |
- MockAutofillMetrics metric_logger; |
- TestAutofillDialogController* dialog_controller = |
- new TestAutofillDialogController( |
- GetActiveWebContents(), form, metric_logger, |
- DIALOG_TYPE_AUTOCHECKOUT); |
- dialog_controller->Show(); |
- dialog_controller->Hide(); |
- |
- content::RunMessageLoop(); |
- |
- EXPECT_EQ(AutofillMetrics::DIALOG_CANCELED, |
- metric_logger.dialog_dismissal_action()); |
- EXPECT_EQ(DIALOG_TYPE_AUTOCHECKOUT, metric_logger.dialog_type()); |
- } |
- |
- // Test Autocheckout success metrics. |
- { |
- MockAutofillMetrics metric_logger; |
- TestAutofillDialogController* dialog_controller = |
- new TestAutofillDialogController( |
- GetActiveWebContents(), form, metric_logger, |
- DIALOG_TYPE_AUTOCHECKOUT); |
- dialog_controller->Show(); |
- dialog_controller->view()->SubmitForTesting(); |
- |
- EXPECT_EQ(AutofillMetrics::DIALOG_ACCEPTED, |
- metric_logger.dialog_dismissal_action()); |
- EXPECT_EQ(DIALOG_TYPE_AUTOCHECKOUT, metric_logger.dialog_type()); |
- |
- dialog_controller->Hide(); |
- |
- content::RunMessageLoop(); |
+ TestAutofillDialogController* controller() { return controller_; } |
- EXPECT_EQ(AutofillMetrics::AUTOCHECKOUT_SUCCEEDED, |
- metric_logger.autocheckout_status()); |
- } |
- |
- // Test Autocheckout failure metric. |
- { |
- MockAutofillMetrics metric_logger; |
- TestAutofillDialogController* dialog_controller = |
- new TestAutofillDialogController( |
- GetActiveWebContents(), form, metric_logger, |
- DIALOG_TYPE_AUTOCHECKOUT); |
- dialog_controller->Show(); |
- dialog_controller->view()->SubmitForTesting(); |
- |
- EXPECT_EQ(AutofillMetrics::DIALOG_ACCEPTED, |
- metric_logger.dialog_dismissal_action()); |
- EXPECT_EQ(DIALOG_TYPE_AUTOCHECKOUT, metric_logger.dialog_type()); |
+ private: |
+ // The controller owns itself. |
+ TestAutofillDialogController* controller_; |
+ // Must outlive the controller. |
+ AutofillMetrics metric_logger_; |
- dialog_controller->OnAutocheckoutError(); |
- dialog_controller->view()->CancelForTesting(); |
+ DISALLOW_COPY_AND_ASSIGN(AutofillDialogCocoaBrowserTest); |
sail
2013/04/15 19:09:54
wrong indent?
groby-ooo-7-16
2013/04/15 22:12:08
Done.
|
+}; |
- content::RunMessageLoop(); |
+IN_PROC_BROWSER_TEST_F(AutofillDialogCocoaBrowserTest, DisplayUI) { |
+ controller()->Show(); |
+ controller()->view()->CancelForTesting(); |
- EXPECT_EQ(AutofillMetrics::AUTOCHECKOUT_FAILED, |
- metric_logger.autocheckout_status()); |
- } |
+ content::RunAllPendingInMessageLoop(); |
} |
-} // namespace autofill |
+} // namespace |
+ |
+} // namespace autofill |