diff options
Diffstat (limited to 'chromium/components/autofill/core/common/form_data_unittest.cc')
-rw-r--r-- | chromium/components/autofill/core/common/form_data_unittest.cc | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/chromium/components/autofill/core/common/form_data_unittest.cc b/chromium/components/autofill/core/common/form_data_unittest.cc index ee174b715eb..c6dee3bec05 100644 --- a/chromium/components/autofill/core/common/form_data_unittest.cc +++ b/chromium/components/autofill/core/common/form_data_unittest.cc @@ -87,6 +87,21 @@ void SerializeInVersion5Format(const FormData& form_data, pickle->WriteBool(form_data.is_formless_checkout); } +void SerializeInVersion6Format(const FormData& form_data, + base::Pickle* pickle) { + pickle->WriteInt(6); + pickle->WriteString16(form_data.name); + pickle->WriteString(form_data.origin.spec()); + pickle->WriteString(form_data.action.spec()); + pickle->WriteInt(static_cast<int>(form_data.fields.size())); + for (size_t i = 0; i < form_data.fields.size(); ++i) { + SerializeFormFieldData(form_data.fields[i], pickle); + } + pickle->WriteBool(form_data.is_form_tag); + pickle->WriteBool(form_data.is_formless_checkout); + pickle->WriteString(form_data.main_frame_origin.spec()); +} + // This function serializes the form data into the pickle in incorrect format // (no version number). void SerializeIncorrectFormat(const FormData& form_data, base::Pickle* pickle) { @@ -102,8 +117,9 @@ void SerializeIncorrectFormat(const FormData& form_data, base::Pickle* pickle) { void FillInDummyFormData(FormData* data) { data->name = base::ASCIIToUTF16("name"); - data->origin = GURL("origin"); - data->action = GURL("action"); + data->origin = GURL("https://example.com"); + data->action = GURL("https://example.com/action"); + data->main_frame_origin = GURL("https://origin-example.com"); data->is_form_tag = true; // Default value. data->is_formless_checkout = false; // Default value. @@ -249,6 +265,21 @@ TEST(FormDataTest, Serialize_v5_Deserialize_vCurrent) { EXPECT_TRUE(actual.SameFormAs(data)); } +TEST(FormDataTest, Serialize_v6_Deserialize_vCurrent) { + FormData data; + FillInDummyFormData(&data); + data.is_formless_checkout = true; + + base::Pickle pickle; + SerializeInVersion6Format(data, &pickle); + + base::PickleIterator iter(pickle); + FormData actual; + EXPECT_TRUE(DeserializeFormData(&iter, &actual)); + + EXPECT_TRUE(actual.SameFormAs(data)); +} + TEST(FormDataTest, SerializeIncorrectFormatAndDeserialize) { FormData data; FillInDummyFormData(&data); |