1868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h"
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/values.h"
7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "components/autofill/content/browser/wallet/instrument.h"
8868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "components/autofill/content/browser/wallet/wallet_address.h"
9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "components/autofill/content/browser/wallet/wallet_test_util.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)using base::ASCIIToUTF16;
135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace {
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kPrimaryAccountNumber[] = "4444444444444448";
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kCardVerificationNumber[] = "123";
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kLastFourDigits[] = "4448";
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace autofill {
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace wallet {
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(Instrument, LastFourDigits) {
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  Instrument instrument(ASCIIToUTF16(kPrimaryAccountNumber),
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        ASCIIToUTF16(kCardVerificationNumber),
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        12,
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        2015,
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        Instrument::VISA,
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        GetTestShippingAddress().Pass());
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  EXPECT_EQ(ASCIIToUTF16(kLastFourDigits), instrument.last_four_digits());
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(Instrument, ToDictionary) {
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  base::DictionaryValue expected;
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  expected.SetString("type", "CREDIT_CARD");
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  expected.SetInteger("credit_card.exp_month", 12);
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  expected.SetInteger("credit_card.exp_year", 2015);
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  expected.SetString("credit_card.last_4_digits", kLastFourDigits);
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  expected.SetString("credit_card.fop_type", "VISA");
43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  expected.SetString("credit_card.address.country_name_code", "US");
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  expected.SetString("credit_card.address.recipient_name",
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     "ship_recipient_name");
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  expected.SetString("credit_card.address.locality_name",
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     "ship_locality_name");
485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  expected.SetString("credit_card.address.dependent_locality_name",
495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                     "ship_dependent_locality_name");
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  expected.SetString("credit_card.address.administrative_area_name",
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     "ship_admin_area_name");
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  expected.SetString("credit_card.address.postal_code_number",
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     "ship_postal_code_number");
545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  expected.SetString("credit_card.address.sorting_code",
555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                     "ship_sorting_code");
562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  base::ListValue* address_lines = new base::ListValue();
572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  address_lines->AppendString("ship_address_line_1");
582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  address_lines->AppendString("ship_address_line_2");
592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  expected.Set("credit_card.address.address_line", address_lines);
60a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  expected.SetString("credit_card.address.language_code", "ship_language_code");
612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  Instrument instrument(ASCIIToUTF16(kPrimaryAccountNumber),
632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        ASCIIToUTF16(kCardVerificationNumber),
642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        12,
652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        2015,
662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        Instrument::VISA,
672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        GetTestShippingAddress().Pass());
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  EXPECT_TRUE(expected.Equals(instrument.ToDictionary().get()));
702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace wallet
732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace autofill
74