summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autocomplete_history_manager_unittest.cc
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-07 01:51:14 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-07 01:51:14 +0000
commit9b363a7a56db6a9f92b7fc5c5bc2f45cf07f2abe (patch)
treedaef15328973735efc8ed52dbdcd5a66bc92d685 /chrome/browser/autocomplete_history_manager_unittest.cc
parent7ac5af92621fc1c0bc930254ca52de6095643034 (diff)
downloadchromium_src-9b363a7a56db6a9f92b7fc5c5bc2f45cf07f2abe.zip
chromium_src-9b363a7a56db6a9f92b7fc5c5bc2f45cf07f2abe.tar.gz
chromium_src-9b363a7a56db6a9f92b7fc5c5bc2f45cf07f2abe.tar.bz2
AutoFill: Don't save credit card numbers from Autocomplete to the WebDB.
BUG=8026 TEST=AutocompleteHistoryManagerTest Review URL: http://codereview.chromium.org/2676003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49030 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autocomplete_history_manager_unittest.cc')
-rw-r--r--chrome/browser/autocomplete_history_manager_unittest.cc86
1 files changed, 86 insertions, 0 deletions
diff --git a/chrome/browser/autocomplete_history_manager_unittest.cc b/chrome/browser/autocomplete_history_manager_unittest.cc
new file mode 100644
index 0000000..49a473c
--- /dev/null
+++ b/chrome/browser/autocomplete_history_manager_unittest.cc
@@ -0,0 +1,86 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <vector>
+
+#include "base/ref_counted.h"
+#include "base/string16.h"
+#include "base/task.h"
+#include "chrome/browser/autocomplete_history_manager.h"
+#include "chrome/browser/webdata/web_data_service.h"
+#include "chrome/test/testing_profile.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "webkit/glue/form_data.h"
+
+using testing::_;
+using webkit_glue::FormData;
+
+class MockWebDataService : public WebDataService {
+ public:
+ MOCK_METHOD1(AddFormFields,
+ void(const std::vector<webkit_glue::FormField>&)); // NOLINT
+};
+
+class AutocompleteHistoryManagerTest : public testing::Test {
+ protected:
+ AutocompleteHistoryManagerTest()
+ : ui_thread_(ChromeThread::UI, &message_loop_) {
+ }
+
+ virtual void SetUp() {
+ web_data_service_ = new MockWebDataService();
+ autocomplete_manager_.reset(
+ new AutocompleteHistoryManager(&profile_, web_data_service_));
+ }
+
+ MessageLoopForUI message_loop_;
+ ChromeThread ui_thread_;
+
+ TestingProfile profile_;
+ scoped_refptr<MockWebDataService> web_data_service_;
+ scoped_ptr<AutocompleteHistoryManager> autocomplete_manager_;
+};
+
+// Tests that credit card numbers are not sent to the WebDatabase to be saved.
+TEST_F(AutocompleteHistoryManagerTest, CreditCardNumberValue) {
+ FormData form;
+ form.name = ASCIIToUTF16("MyForm");
+ form.method = ASCIIToUTF16("POST");
+ form.origin = GURL("http://myform.com/form.html");
+ form.action = GURL("http://myform.com/submit.html");
+
+ // Valid Visa credit card number pulled from the paypal help site.
+ webkit_glue::FormField valid_cc(ASCIIToUTF16("Credit Card"),
+ ASCIIToUTF16("ccnum"),
+ ASCIIToUTF16("4012888888881881"),
+ ASCIIToUTF16("text"),
+ 20);
+ form.fields.push_back(valid_cc);
+
+ EXPECT_CALL(*web_data_service_, AddFormFields(_)).Times(0);
+ autocomplete_manager_->FormSubmitted(form);
+}
+
+// Contrary test to AutocompleteHistoryManagerTest.CreditCardNumberValue. The
+// value being submitted is not a valid credit card number, so it will be sent
+// to the WebDatabase to be saved.
+TEST_F(AutocompleteHistoryManagerTest, NonCreditCardNumberValue) {
+ FormData form;
+ form.name = ASCIIToUTF16("MyForm");
+ form.method = ASCIIToUTF16("POST");
+ form.origin = GURL("http://myform.com/form.html");
+ form.action = GURL("http://myform.com/submit.html");
+
+ // Invalid credit card number.
+ webkit_glue::FormField invalid_cc(ASCIIToUTF16("Credit Card"),
+ ASCIIToUTF16("ccnum"),
+ ASCIIToUTF16("4580123456789012"),
+ ASCIIToUTF16("text"),
+ 20);
+ form.fields.push_back(invalid_cc);
+
+ EXPECT_CALL(*(web_data_service_.get()), AddFormFields(_)).Times(1);
+ autocomplete_manager_->FormSubmitted(form);
+}