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_field_data.h"
6424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
7424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#include "base/i18n/rtl.h"
8424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#include "base/pickle.h"
9424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#include "base/strings/utf_string_conversions.h"
10424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
11424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
12424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)namespace autofill {
13424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
14424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)TEST(FormFieldDataTest, SerializeAndDeserialize) {
15424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  FormFieldData data;
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  data.label = base::ASCIIToUTF16("label");
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  data.name = base::ASCIIToUTF16("name");
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  data.value = base::ASCIIToUTF16("value");
19424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  data.form_control_type = "password";
20424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  data.autocomplete_attribute = "off";
21424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  data.max_length = 200;
22424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  data.is_autofilled = true;
23424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  data.is_checked = true;
24424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  data.is_checkable = true;
25424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  data.is_focusable = true;
26424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  data.should_autocomplete = false;
27424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  data.text_direction = base::i18n::RIGHT_TO_LEFT;
285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  data.option_values.push_back(base::ASCIIToUTF16("First"));
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  data.option_values.push_back(base::ASCIIToUTF16("Second"));
305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  data.option_contents.push_back(base::ASCIIToUTF16("First"));
315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  data.option_contents.push_back(base::ASCIIToUTF16("Second"));
32424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
33424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  Pickle pickle;
34424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  SerializeFormFieldData(data, &pickle);
35424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
36424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  PickleIterator iter(pickle);
37424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  FormFieldData actual;
38424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  EXPECT_TRUE(DeserializeFormFieldData(&iter, &actual));
39424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
40424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  EXPECT_EQ(actual, data);
41424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)}
42424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
43424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)}  // namespace autofill
44