form_data_unittest.cc revision 424c4d7b64af9d0d8fd9624f381f469654d5e3d2
1424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)// found in the LICENSE file. 4424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 5424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#include "components/autofill/core/common/form_data.h" 6424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 7424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#include "base/pickle.h" 8424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#include "base/strings/utf_string_conversions.h" 9424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 10424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 11424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)namespace autofill { 12424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 13424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)TEST(FormDataTest, SerializeAndDeserialize) { 14424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) FormData data; 15424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) data.name = ASCIIToUTF16("name"); 16424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) data.method = ASCIIToUTF16("POST"); 17424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) data.origin = GURL("origin"); 18424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) data.action = GURL("action"); 19424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) data.user_submitted = true; 20424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 21424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) FormFieldData field_data; 22424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.label = ASCIIToUTF16("label"); 23424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.name = ASCIIToUTF16("name"); 24424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.value = ASCIIToUTF16("value"); 25424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.form_control_type = "password"; 26424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.autocomplete_attribute = "off"; 27424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.max_length = 200; 28424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.is_autofilled = true; 29424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.is_checked = true; 30424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.is_checkable = true; 31424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.is_focusable = true; 32424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.should_autocomplete = false; 33424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.text_direction = base::i18n::RIGHT_TO_LEFT; 34424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.option_values.push_back(ASCIIToUTF16("First")); 35424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.option_values.push_back(ASCIIToUTF16("Second")); 36424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.option_contents.push_back(ASCIIToUTF16("First")); 37424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.option_contents.push_back(ASCIIToUTF16("Second")); 38424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 39424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) data.fields.push_back(field_data); 40424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 41424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) // Change a few fields. 42424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.max_length = 150; 43424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.option_values.push_back(ASCIIToUTF16("Third")); 44424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) field_data.option_contents.push_back(ASCIIToUTF16("Third")); 45424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) data.fields.push_back(field_data); 46424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 47424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) Pickle pickle; 48424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) SerializeFormData(data, &pickle); 49424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 50424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) PickleIterator iter(pickle); 51424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) FormData actual; 52424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) EXPECT_TRUE(DeserializeFormData(&iter, &actual)); 53424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 54424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) EXPECT_EQ(actual, data); 55424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} 56424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 57424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} // namespace autofill 58