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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 has_run_message_loop_(false), | 130 has_run_message_loop_(false), |
131 browser_(browser), | 131 browser_(browser), |
132 infobar_service_(NULL) { | 132 infobar_service_(NULL) { |
133 PersonalDataManagerFactory::GetForProfile(browser_->profile())-> | 133 PersonalDataManagerFactory::GetForProfile(browser_->profile())-> |
134 AddObserver(this); | 134 AddObserver(this); |
135 registrar_.Add(this, chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_ADDED, | 135 registrar_.Add(this, chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_ADDED, |
136 content::NotificationService::AllSources()); | 136 content::NotificationService::AllSources()); |
137 } | 137 } |
138 | 138 |
139 virtual ~WindowedPersonalDataManagerObserver() { | 139 virtual ~WindowedPersonalDataManagerObserver() { |
140 if (!infobar_service_) | 140 if (infobar_service_ && infobar_service_->infobar_count() > 0) |
141 return; | 141 infobar_service_->RemoveInfoBar(infobar_service_->infobar_at(0)); |
142 | |
143 InfoBarDelegate* infobar = NULL; | |
144 if (infobar_service_->GetInfoBarCount() > 0 && | |
145 (infobar = infobar_service_->GetInfoBarDelegateAt(0))) { | |
146 infobar_service_->RemoveInfoBar(infobar); | |
147 } | |
148 } | 142 } |
149 | 143 |
150 void Wait() { | 144 void Wait() { |
151 if (!alerted_) { | 145 if (!alerted_) { |
152 has_run_message_loop_ = true; | 146 has_run_message_loop_ = true; |
153 content::RunMessageLoop(); | 147 content::RunMessageLoop(); |
154 } | 148 } |
155 PersonalDataManagerFactory::GetForProfile(browser_->profile())-> | 149 PersonalDataManagerFactory::GetForProfile(browser_->profile())-> |
156 RemoveObserver(this); | 150 RemoveObserver(this); |
157 } | 151 } |
(...skipping 11 matching lines...) Expand all Loading... |
169 OnPersonalDataChanged(); | 163 OnPersonalDataChanged(); |
170 } | 164 } |
171 | 165 |
172 // content::NotificationObserver: | 166 // content::NotificationObserver: |
173 virtual void Observe(int type, | 167 virtual void Observe(int type, |
174 const content::NotificationSource& source, | 168 const content::NotificationSource& source, |
175 const content::NotificationDetails& details) OVERRIDE { | 169 const content::NotificationDetails& details) OVERRIDE { |
176 // Accept in the infobar. | 170 // Accept in the infobar. |
177 infobar_service_ = InfoBarService::FromWebContents( | 171 infobar_service_ = InfoBarService::FromWebContents( |
178 browser_->tab_strip_model()->GetActiveWebContents()); | 172 browser_->tab_strip_model()->GetActiveWebContents()); |
179 InfoBarDelegate* infobar = infobar_service_->GetInfoBarDelegateAt(0); | 173 InfoBarDelegate* infobar = infobar_service_->infobar_at(0); |
180 | 174 |
181 ConfirmInfoBarDelegate* confirm_infobar = | 175 ConfirmInfoBarDelegate* confirm_infobar = |
182 infobar->AsConfirmInfoBarDelegate(); | 176 infobar->AsConfirmInfoBarDelegate(); |
183 confirm_infobar->Accept(); | 177 confirm_infobar->Accept(); |
184 } | 178 } |
185 | 179 |
186 private: | 180 private: |
187 bool alerted_; | 181 bool alerted_; |
188 bool has_run_message_loop_; | 182 bool has_run_message_loop_; |
189 Browser* browser_; | 183 Browser* browser_; |
(...skipping 763 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
953 "<label for=\"ph\">Phone number:</label>" | 947 "<label for=\"ph\">Phone number:</label>" |
954 " <input type=\"text\" id=\"ph\"><br>" | 948 " <input type=\"text\" id=\"ph\"><br>" |
955 "</form>"); | 949 "</form>"); |
956 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL(browser(), url)); | 950 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL(browser(), url)); |
957 | 951 |
958 // Get translation bar. | 952 // Get translation bar. |
959 RenderViewHostTester::TestOnMessageReceived( | 953 RenderViewHostTester::TestOnMessageReceived( |
960 render_view_host(), | 954 render_view_host(), |
961 ChromeViewHostMsg_TranslateLanguageDetermined(0, "ja", true)); | 955 ChromeViewHostMsg_TranslateLanguageDetermined(0, "ja", true)); |
962 TranslateInfoBarDelegate* infobar = InfoBarService::FromWebContents( | 956 TranslateInfoBarDelegate* infobar = InfoBarService::FromWebContents( |
963 browser()->tab_strip_model()->GetActiveWebContents())-> | 957 browser()->tab_strip_model()->GetActiveWebContents())->infobar_at(0)-> |
964 GetInfoBarDelegateAt(0)->AsTranslateInfoBarDelegate(); | 958 AsTranslateInfoBarDelegate(); |
965 | 959 |
966 ASSERT_TRUE(infobar != NULL); | 960 ASSERT_TRUE(infobar != NULL); |
967 EXPECT_EQ(TranslateInfoBarDelegate::BEFORE_TRANSLATE, | 961 EXPECT_EQ(TranslateInfoBarDelegate::BEFORE_TRANSLATE, |
968 infobar->infobar_type()); | 962 infobar->infobar_type()); |
969 | 963 |
970 // Simulate translation button press. | 964 // Simulate translation button press. |
971 infobar->Translate(); | 965 infobar->Translate(); |
972 | 966 |
973 // Simulate the translate script being retrieved. | 967 // Simulate the translate script being retrieved. |
974 // Pass fake google.translate lib as the translate script. | 968 // Pass fake google.translate lib as the translate script. |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1188 // pass the Luhn test) the credit card info should not be saved into Autofill | 1182 // pass the Luhn test) the credit card info should not be saved into Autofill |
1189 // preferences. | 1183 // preferences. |
1190 IN_PROC_BROWSER_TEST_F(AutofillTest, InvalidCreditCardNumberIsNotAggregated) { | 1184 IN_PROC_BROWSER_TEST_F(AutofillTest, InvalidCreditCardNumberIsNotAggregated) { |
1191 ASSERT_TRUE(test_server()->Start()); | 1185 ASSERT_TRUE(test_server()->Start()); |
1192 std::string card("4408 0412 3456 7890"); | 1186 std::string card("4408 0412 3456 7890"); |
1193 ASSERT_FALSE(autofill::IsValidCreditCardNumber(ASCIIToUTF16(card))); | 1187 ASSERT_FALSE(autofill::IsValidCreditCardNumber(ASCIIToUTF16(card))); |
1194 SubmitCreditCard("Bob Smith", card.c_str(), "12", "2014"); | 1188 SubmitCreditCard("Bob Smith", card.c_str(), "12", "2014"); |
1195 ASSERT_EQ(0u, | 1189 ASSERT_EQ(0u, |
1196 InfoBarService::FromWebContents( | 1190 InfoBarService::FromWebContents( |
1197 browser()->tab_strip_model()->GetActiveWebContents())-> | 1191 browser()->tab_strip_model()->GetActiveWebContents())-> |
1198 GetInfoBarCount()); | 1192 infobar_count()); |
1199 } | 1193 } |
1200 | 1194 |
1201 // Test whitespaces and separator chars are stripped for valid CC numbers. | 1195 // Test whitespaces and separator chars are stripped for valid CC numbers. |
1202 // The credit card numbers used in this test pass the Luhn test. For reference: | 1196 // The credit card numbers used in this test pass the Luhn test. For reference: |
1203 // http://www.merriampark.com/anatomycc.htm | 1197 // http://www.merriampark.com/anatomycc.htm |
1204 IN_PROC_BROWSER_TEST_F(AutofillTest, | 1198 IN_PROC_BROWSER_TEST_F(AutofillTest, |
1205 WhitespacesAndSeparatorCharsStrippedForValidCCNums) { | 1199 WhitespacesAndSeparatorCharsStrippedForValidCCNums) { |
1206 ASSERT_TRUE(test_server()->Start()); | 1200 ASSERT_TRUE(test_server()->Start()); |
1207 SubmitCreditCard("Bob Smith", "4408 0412 3456 7893", "12", "2014"); | 1201 SubmitCreditCard("Bob Smith", "4408 0412 3456 7893", "12", "2014"); |
1208 SubmitCreditCard("Jane Doe", "4417-1234-5678-9113", "10", "2013"); | 1202 SubmitCreditCard("Jane Doe", "4417-1234-5678-9113", "10", "2013"); |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1411 FormMap data; | 1405 FormMap data; |
1412 data["CREDIT_CARD_NAME"] = "Bob Smith"; | 1406 data["CREDIT_CARD_NAME"] = "Bob Smith"; |
1413 data["CREDIT_CARD_NUMBER"] = "4408041234567893"; | 1407 data["CREDIT_CARD_NUMBER"] = "4408041234567893"; |
1414 data["CREDIT_CARD_EXP_MONTH"] = "12"; | 1408 data["CREDIT_CARD_EXP_MONTH"] = "12"; |
1415 data["CREDIT_CARD_EXP_4_DIGIT_YEAR"] = "2014"; | 1409 data["CREDIT_CARD_EXP_4_DIGIT_YEAR"] = "2014"; |
1416 FillFormAndSubmit("cc_autocomplete_off_test.html", data); | 1410 FillFormAndSubmit("cc_autocomplete_off_test.html", data); |
1417 | 1411 |
1418 ASSERT_EQ(0u, | 1412 ASSERT_EQ(0u, |
1419 InfoBarService::FromWebContents( | 1413 InfoBarService::FromWebContents( |
1420 browser()->tab_strip_model()->GetActiveWebContents())-> | 1414 browser()->tab_strip_model()->GetActiveWebContents())-> |
1421 GetInfoBarCount()); | 1415 infobar_count()); |
1422 } | 1416 } |
1423 | 1417 |
1424 // http://crbug.com/150084 | 1418 // http://crbug.com/150084 |
1425 #if defined(OS_MACOSX) | 1419 #if defined(OS_MACOSX) |
1426 #define MAYBE_NoAutofillForReadOnlyFields NoAutofillForReadOnlyFields | 1420 #define MAYBE_NoAutofillForReadOnlyFields NoAutofillForReadOnlyFields |
1427 #else | 1421 #else |
1428 #define MAYBE_NoAutofillForReadOnlyFields DISABLED_NoAutofillForReadOnlyFields | 1422 #define MAYBE_NoAutofillForReadOnlyFields DISABLED_NoAutofillForReadOnlyFields |
1429 #endif | 1423 #endif |
1430 // Test that Autofill does not fill in read-only fields. | 1424 // Test that Autofill does not fill in read-only fields. |
1431 IN_PROC_BROWSER_TEST_F(AutofillTest, MAYBE_NoAutofillForReadOnlyFields) { | 1425 IN_PROC_BROWSER_TEST_F(AutofillTest, MAYBE_NoAutofillForReadOnlyFields) { |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1716 IN_PROC_BROWSER_TEST_F(AutofillTest, | 1710 IN_PROC_BROWSER_TEST_F(AutofillTest, |
1717 DISABLED_MergeAggregatedDuplicatedProfiles) { | 1711 DISABLED_MergeAggregatedDuplicatedProfiles) { |
1718 int num_of_profiles = | 1712 int num_of_profiles = |
1719 AggregateProfilesIntoAutofillPrefs("dataset_no_address.txt"); | 1713 AggregateProfilesIntoAutofillPrefs("dataset_no_address.txt"); |
1720 | 1714 |
1721 ASSERT_GT(num_of_profiles, | 1715 ASSERT_GT(num_of_profiles, |
1722 static_cast<int>(personal_data_manager()->GetProfiles().size())); | 1716 static_cast<int>(personal_data_manager()->GetProfiles().size())); |
1723 } | 1717 } |
1724 | 1718 |
1725 } // namespace autofill | 1719 } // namespace autofill |
OLD | NEW |