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

Unified Diff: chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa_browsertest.mm

Issue 13470023: [autofill] First step towards autofill dialog on OSX. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added test to execute dialog. Created 7 years, 8 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698