Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(232)

Side by Side Diff: chrome/browser/autofill/wallet/wallet_address_unittest.cc

Issue 11293078: Integrating Online Wallet into Chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase and most fixes from Albert's initial review. Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/json/json_reader.h"
6 #include "base/memory/scoped_ptr.h"
7 #include "base/values.h"
8 #include "chrome/browser/autofill/wallet/wallet_address.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace {
12 static const char kAddressMissingObjectId[] =
13 "{"
14 " \"phone_number\":\"phone_number\","
15 " \"postal_address\":"
16 " {"
17 " \"recipient_name\":\"recipient_name\","
18 " \"address_line\":"
19 " ["
20 " \"address_line_1\","
21 " \"address_line_2\""
22 " ],"
23 " \"locality_name\":\"locality_name\","
24 " \"administrative_area_name\":\"administrative_area_name\","
25 " \"postal_code_number\":\"postal_code_number\","
26 " \"country_name_code\":\"country_name_code\""
27 " }"
28 "}";
29
30 static const char kAddressMissingCountryNameCode[] =
31 "{"
32 " \"id\":\"id\","
33 " \"phone_number\":\"phone_number\","
34 " \"postal_address\":"
35 " {"
36 " \"recipient_name\":\"recipient_name\","
37 " \"address_line\":"
38 " ["
39 " \"address_line_1\","
40 " \"address_line_2\""
41 " ],"
42 " \"locality_name\":\"locality_name\","
43 " \"administrative_area_name\":\"administrative_area_name\","
44 " \"postal_code_number\":\"postal_code_number\""
45 " }"
46 "}";
47
48 static const char kAddressMissingRecipientName[] =
49 "{"
50 " \"id\":\"id\","
51 " \"phone_number\":\"phone_number\","
52 " \"postal_address\":"
53 " {"
54 " \"address_line\":"
55 " ["
56 " \"address_line_1\","
57 " \"address_line_2\""
58 " ],"
59 " \"locality_name\":\"locality_name\","
60 " \"administrative_area_name\":\"administrative_area_name\","
61 " \"postal_code_number\":\"postal_code_number\","
62 " \"country_name_code\":\"country_name_code\""
63 " }"
64 "}";
65
66 static const char kAddressMissingPostalCodeNumber[] =
67 "{"
68 " \"id\":\"id\","
69 " \"phone_number\":\"phone_number\","
70 " \"postal_address\":"
71 " {"
72 " \"recipient_name\":\"recipient_name\","
73 " \"address_line\":"
74 " ["
75 " \"address_line_1\","
76 " \"address_line_2\""
77 " ],"
78 " \"locality_name\":\"locality_name\","
79 " \"administrative_area_name\":\"administrative_area_name\","
80 " \"country_name_code\":\"country_name_code\""
81 " }"
82 "}";
83
84 static const char kValidAddress[] =
85 "{"
86 " \"id\":\"id\","
87 " \"phone_number\":\"phone_number\","
88 " \"postal_address\":"
89 " {"
90 " \"recipient_name\":\"recipient_name\","
91 " \"address_line\":"
92 " ["
93 " \"address_line_1\","
94 " \"address_line_2\""
95 " ],"
96 " \"locality_name\":\"locality_name\","
97 " \"administrative_area_name\":\"administrative_area_name\","
98 " \"country_name_code\":\"country_name_code\","
99 " \"postal_code_number\":\"postal_code_number\""
100 " }"
101 "}";
102
103 static const char kClientAddressMissingCountryCode[] =
104 "{"
105 " \"name\":\"name\","
106 " \"address1\":\"address1\","
107 " \"address2\":\"address2\","
108 " \"city\":\"city\","
109 " \"state\":\"state\","
110 " \"postal_code\":\"postal_code\","
111 " \"phone_number\":\"phone_number\""
112 "}";
113
114 static const char kClientAddressMissingPostalCode[] =
115 "{"
116 " \"name\":\"name\","
117 " \"address1\":\"address1\","
118 " \"address2\":\"address2\","
119 " \"city\":\"city\","
120 " \"state\":\"state\","
121 " \"phone_number\":\"phone_number\","
122 " \"country_code\":\"country_code\""
123 "}";
124
125 static const char kClientAddressMissingName[] =
126 "{"
127 " \"address1\":\"address1\","
128 " \"address2\":\"address2\","
129 " \"city\":\"city\","
130 " \"state\":\"state\","
131 " \"postal_code\":\"postal_code\","
132 " \"phone_number\":\"phone_number\","
133 " \"country_code\":\"country_code\""
134 "}";
135
136 static const char kClientValidAddress[] =
137 "{"
138 " \"name\":\"name\","
139 " \"address1\":\"address1\","
140 " \"address2\":\"address2\","
141 " \"city\":\"city\","
142 " \"state\":\"state\","
143 " \"postal_code\":\"postal_code\","
144 " \"phone_number\":\"phone_number\","
145 " \"country_code\":\"country_code\""
146 "}";
147
148 } // end anonymous namespace
149
150 namespace wallet {
151
152 class WalletAddressTest : public testing::Test {
153 public:
154 WalletAddressTest() {}
155 virtual void SetUp() {
156 dict.reset();
157 }
158 protected:
159 void SetUpDictionary(const std::string& json) {
160 scoped_ptr<Value> value(base::JSONReader::Read(json));
161 if (value.get() && value->IsType(Value::TYPE_DICTIONARY)) {
Dan Beam 2012/11/30 19:55:52 are these checks expected to ever fail? if not, le
ahutter 2012/12/01 04:06:51 Done.
162 dict.reset(static_cast<DictionaryValue*>(value.release()));
163 }
164 }
165 scoped_ptr<DictionaryValue> dict;
166 };
167
168 TEST_F(WalletAddressTest, CreateIdedAddressMissingObjectId) {
169 SetUpDictionary(kAddressMissingObjectId);
170 ASSERT_EQ(NULL, Address::CreateIdedAddress(dict.get()));
171 }
172
173 TEST_F(WalletAddressTest, CreateIdedAddressMissingCountryNameCode) {
174 SetUpDictionary(kAddressMissingCountryNameCode);
175 ASSERT_EQ(NULL, Address::CreateIdedAddress(dict.get()));
176 }
177
178 TEST_F(WalletAddressTest, CreateIdedAddressMissingRecipientName) {
179 SetUpDictionary(kAddressMissingRecipientName);
180 ASSERT_EQ(NULL, Address::CreateIdedAddress(dict.get()));
181 }
182
183 TEST_F(WalletAddressTest, CreateIdedAddressMissingPostalCodeNumber) {
184 SetUpDictionary(kAddressMissingPostalCodeNumber);
185 ASSERT_EQ(NULL, Address::CreateIdedAddress(dict.get()));
186 }
187
188 TEST_F(WalletAddressTest, CreateIdedAddress) {
189 SetUpDictionary(kValidAddress);
190 Address address("country_name_code",
191 "recipient_name",
192 "address_line_1",
193 "address_line_2",
194 "locality_name",
195 "administrative_area_name",
196 "postal_code_number",
197 "phone_number",
198 "id");
199 ASSERT_EQ(address, *Address::CreateIdedAddress(dict.get()));
200 }
201
202 TEST_F(WalletAddressTest, CreateDisplayAddressMissingCountryNameCode) {
203 SetUpDictionary(kClientAddressMissingCountryCode);
204 ASSERT_EQ(NULL, Address::CreateDisplayAddress(dict.get()));
205 }
206
207 TEST_F(WalletAddressTest, CreateDisplayAddressMissingName) {
208 SetUpDictionary(kClientAddressMissingName);
209 ASSERT_EQ(NULL, Address::CreateDisplayAddress(dict.get()));
210 }
211
212 TEST_F(WalletAddressTest, CreateDisplayAddressMissingPostalCode) {
213 SetUpDictionary(kClientAddressMissingPostalCode);
214 ASSERT_EQ(NULL, Address::CreateDisplayAddress(dict.get()));
215 }
216
217 TEST_F(WalletAddressTest, CreateDisplayAddress) {
218 SetUpDictionary(kClientValidAddress);
219 Address address("country_code",
220 "name",
221 "address1",
222 "address2",
223 "city",
224 "state",
225 "postal_code",
226 "phone_number",
227 "");
228 ASSERT_EQ(address, *Address::CreateDisplayAddress(dict.get()));
229 }
230
231 } // end wallet namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698