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