Index: components/autofill/browser/autofill_manager_unittest.cc |
diff --git a/components/autofill/browser/autofill_manager_unittest.cc b/components/autofill/browser/autofill_manager_unittest.cc |
index 2ea75f11c50edf495d90bdb82d28289e61fd5698..7ba78354eeffe10a95fd33dc8affd1c21b27132d 100644 |
--- a/components/autofill/browser/autofill_manager_unittest.cc |
+++ b/components/autofill/browser/autofill_manager_unittest.cc |
@@ -480,6 +480,18 @@ void ExpectFilledCreditCardYearMonthWithYearMonth(int page_id, |
has_address_fields, true, true); |
} |
+class MockAutocompleteHistoryManager : public AutocompleteHistoryManager { |
+ public: |
+ MockAutocompleteHistoryManager(AutofillDriver* driver, |
+ AutofillManagerDelegate* delegate) |
+ : AutocompleteHistoryManager(driver, delegate) {} |
+ |
+ MOCK_METHOD1(OnFormSubmitted, void(const FormData& form)); |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(MockAutocompleteHistoryManager); |
+}; |
+ |
class TestAutofillManager : public AutofillManager { |
public: |
TestAutofillManager(AutofillDriver* driver, |
@@ -703,7 +715,7 @@ class AutofillManagerTest : public ChromeRenderViewHostTestHarness { |
void AutocompleteSuggestionsReturned( |
const std::vector<base::string16>& result) { |
- autofill_manager_->autocomplete_history_manager_.SendSuggestions(&result); |
+ autofill_manager_->autocomplete_history_manager_->SendSuggestions(&result); |
} |
void FormsSeen(const std::vector<FormData>& forms) { |
@@ -762,7 +774,7 @@ class AutofillManagerTest : public ChromeRenderViewHostTestHarness { |
if (unique_ids) |
*unique_ids = autofill_param.e; |
- autofill_manager_->autocomplete_history_manager_.CancelPendingQuery(); |
+ autofill_manager_->autocomplete_history_manager_->CancelPendingQuery(); |
process()->sink().ClearMessages(); |
return true; |
} |
@@ -2709,6 +2721,76 @@ TEST_F(AutofillManagerTest, FormSubmitted) { |
FormSubmitted(results); |
} |
+// Test that when Autocomplete is enabled and Autofill is disabled, |
+// form submissions are still received by AutocompleteHistoryManager. |
+TEST_F(AutofillManagerTest, FormSubmittedAutocompleteEnabled) { |
+ TestAutofillManagerDelegate delegate; |
+ autofill_manager_.reset(new TestAutofillManager( |
+ autofill_driver_.get(), |
+ &delegate, |
+ NULL)); |
+ autofill_manager_->set_autofill_enabled(false); |
+ scoped_ptr<MockAutocompleteHistoryManager> autocomplete_history_manager; |
+ autocomplete_history_manager.reset( |
+ new MockAutocompleteHistoryManager(autofill_driver_.get(), &delegate)); |
+ autofill_manager_->autocomplete_history_manager_.reset( |
+ autocomplete_history_manager.get()); |
Ilya Sherman
2013/06/19 23:19:55
Pretty sure this needs to be .Pass(), or else you'
sgurun-gerrit only
2013/06/20 15:18:44
You are right. thanks.
On 2013/06/19 23:19:55, Il
|
+ |
+ // Set up our form data. |
+ FormData form; |
+ CreateTestAddressFormData(&form); |
+ form.method = ASCIIToUTF16("GET"); |
+ FormSubmitted(form); |
+ EXPECT_CALL(*(autocomplete_history_manager.get()), |
+ OnFormSubmitted(_)).Times(1); |
Ilya Sherman
2013/06/19 23:19:55
I'm pretty sure this is supposed to go *before* th
sgurun-gerrit only
2013/06/20 15:18:44
Done.
|
+} |
+ |
+// Test that when Autocomplete is enabled and Autofill is disabled, |
+// Autocomplete suggestions are still received. |
+TEST_F(AutofillManagerTest, AutocompleteSuggestionsWhenAutofillDisabled) { |
+ TestAutofillManagerDelegate delegate; |
+ autofill_manager_.reset(new TestAutofillManager( |
+ autofill_driver_.get(), |
+ &delegate, |
+ NULL)); |
+ autofill_manager_->set_autofill_enabled(false); |
+ |
+ // Set up our form data. |
+ FormData form; |
+ CreateTestAddressFormData(&form); |
+ form.method = ASCIIToUTF16("GET"); |
+ std::vector<FormData> forms(1, form); |
+ FormsSeen(forms); |
+ const FormFieldData& field = form.fields[0]; |
+ GetAutofillSuggestions(form, field); |
+ |
+ // Add some Autocomplete suggestions. We should return the autocomplete |
+ // suggestions, these will be culled by the renderer. |
+ std::vector<base::string16> suggestions; |
+ suggestions.push_back(ASCIIToUTF16("Jay")); |
+ suggestions.push_back(ASCIIToUTF16("Jason")); |
+ AutocompleteSuggestionsReturned(suggestions); |
+ |
+ int page_id = 0; |
+ std::vector<base::string16> values; |
+ std::vector<base::string16> labels; |
+ std::vector<base::string16> icons; |
+ std::vector<int> unique_ids; |
+ EXPECT_TRUE(GetAutofillSuggestionsMessage(&page_id, &values, &labels, &icons, |
+ &unique_ids)); |
+ |
+ base::string16 expected_values[] = { |
+ ASCIIToUTF16("Jay"), |
+ ASCIIToUTF16("Jason") |
+ }; |
+ base::string16 expected_labels[] = { base::string16(), base::string16()}; |
+ base::string16 expected_icons[] = { base::string16(), base::string16()}; |
+ int expected_unique_ids[] = {0, 0}; |
+ ExpectSuggestions(page_id, values, labels, icons, unique_ids, |
+ kDefaultPageID, arraysize(expected_values), expected_values, |
+ expected_labels, expected_icons, expected_unique_ids); |
+} |
+ |
// Test that we are able to save form data when forms are submitted and we only |
// have server data for the field types. |
TEST_F(AutofillManagerTest, FormSubmittedServerTypes) { |