OLD | NEW |
---|---|
(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/logging.h" | |
7 #include "base/memory/scoped_ptr.h" | |
8 #include "base/values.h" | |
9 #include "chrome/browser/autofill/wallet/wallet_address.h" | |
10 #include "testing/gtest/include/gtest/gtest.h" | |
11 | |
12 namespace { | |
Dan Beam
2012/12/05 19:34:59
nit: \n
ahutter
2012/12/05 23:37:23
Done.
| |
13 static const char kAddressMissingObjectId[] = | |
Dan Beam
2012/12/05 19:34:59
nit: static in an anonymous namespace does nothing
ahutter
2012/12/05 23:37:23
Done.
Albert Bodenhamer
2012/12/06 00:36:43
Not ENTIRELY nothing, but close enough. It'll res
| |
14 "{" | |
15 " \"phone_number\":\"phone_number\"," | |
16 " \"postal_address\":" | |
17 " {" | |
18 " \"recipient_name\":\"recipient_name\"," | |
19 " \"address_line\":" | |
20 " [" | |
21 " \"address_line_1\"," | |
22 " \"address_line_2\"" | |
23 " ]," | |
24 " \"locality_name\":\"locality_name\"," | |
25 " \"administrative_area_name\":\"administrative_area_name\"," | |
26 " \"postal_code_number\":\"postal_code_number\"," | |
27 " \"country_name_code\":\"country_name_code\"" | |
28 " }" | |
29 "}"; | |
30 | |
31 static const char kAddressMissingCountryNameCode[] = | |
32 "{" | |
33 " \"id\":\"id\"," | |
34 " \"phone_number\":\"phone_number\"," | |
35 " \"postal_address\":" | |
36 " {" | |
37 " \"recipient_name\":\"recipient_name\"," | |
38 " \"address_line\":" | |
39 " [" | |
40 " \"address_line_1\"," | |
41 " \"address_line_2\"" | |
42 " ]," | |
43 " \"locality_name\":\"locality_name\"," | |
44 " \"administrative_area_name\":\"administrative_area_name\"," | |
45 " \"postal_code_number\":\"postal_code_number\"" | |
46 " }" | |
47 "}"; | |
48 | |
49 static const char kAddressMissingRecipientName[] = | |
50 "{" | |
51 " \"id\":\"id\"," | |
52 " \"phone_number\":\"phone_number\"," | |
53 " \"postal_address\":" | |
54 " {" | |
55 " \"address_line\":" | |
56 " [" | |
57 " \"address_line_1\"," | |
58 " \"address_line_2\"" | |
59 " ]," | |
60 " \"locality_name\":\"locality_name\"," | |
61 " \"administrative_area_name\":\"administrative_area_name\"," | |
62 " \"postal_code_number\":\"postal_code_number\"," | |
63 " \"country_name_code\":\"country_name_code\"" | |
64 " }" | |
65 "}"; | |
66 | |
67 static const char kAddressMissingPostalCodeNumber[] = | |
68 "{" | |
69 " \"id\":\"id\"," | |
70 " \"phone_number\":\"phone_number\"," | |
71 " \"postal_address\":" | |
72 " {" | |
73 " \"recipient_name\":\"recipient_name\"," | |
74 " \"address_line\":" | |
75 " [" | |
76 " \"address_line_1\"," | |
77 " \"address_line_2\"" | |
78 " ]," | |
79 " \"locality_name\":\"locality_name\"," | |
80 " \"administrative_area_name\":\"administrative_area_name\"," | |
81 " \"country_name_code\":\"country_name_code\"" | |
82 " }" | |
83 "}"; | |
84 | |
85 static const char kValidAddress[] = | |
86 "{" | |
87 " \"id\":\"id\"," | |
88 " \"phone_number\":\"phone_number\"," | |
89 " \"postal_address\":" | |
90 " {" | |
91 " \"recipient_name\":\"recipient_name\"," | |
92 " \"address_line\":" | |
93 " [" | |
94 " \"address_line_1\"," | |
95 " \"address_line_2\"" | |
96 " ]," | |
97 " \"locality_name\":\"locality_name\"," | |
98 " \"administrative_area_name\":\"administrative_area_name\"," | |
99 " \"country_name_code\":\"country_name_code\"," | |
100 " \"postal_code_number\":\"postal_code_number\"" | |
101 " }" | |
102 "}"; | |
103 | |
104 static const char kClientAddressMissingCountryCode[] = | |
105 "{" | |
106 " \"name\":\"name\"," | |
107 " \"address1\":\"address1\"," | |
108 " \"address2\":\"address2\"," | |
109 " \"city\":\"city\"," | |
110 " \"state\":\"state\"," | |
111 " \"postal_code\":\"postal_code\"," | |
112 " \"phone_number\":\"phone_number\"" | |
113 "}"; | |
114 | |
115 static const char kClientAddressMissingPostalCode[] = | |
116 "{" | |
117 " \"name\":\"name\"," | |
118 " \"address1\":\"address1\"," | |
119 " \"address2\":\"address2\"," | |
120 " \"city\":\"city\"," | |
121 " \"state\":\"state\"," | |
122 " \"phone_number\":\"phone_number\"," | |
123 " \"country_code\":\"country_code\"" | |
124 "}"; | |
125 | |
126 static const char kClientAddressMissingName[] = | |
127 "{" | |
128 " \"address1\":\"address1\"," | |
129 " \"address2\":\"address2\"," | |
130 " \"city\":\"city\"," | |
131 " \"state\":\"state\"," | |
132 " \"postal_code\":\"postal_code\"," | |
133 " \"phone_number\":\"phone_number\"," | |
134 " \"country_code\":\"country_code\"" | |
135 "}"; | |
136 | |
137 static const char kClientValidAddress[] = | |
138 "{" | |
139 " \"name\":\"name\"," | |
140 " \"address1\":\"address1\"," | |
141 " \"address2\":\"address2\"," | |
142 " \"city\":\"city\"," | |
143 " \"state\":\"state\"," | |
144 " \"postal_code\":\"postal_code\"," | |
145 " \"phone_number\":\"phone_number\"," | |
146 " \"country_code\":\"country_code\"" | |
147 "}"; | |
148 | |
149 } // end anonymous namespace | |
150 | |
151 namespace wallet { | |
152 | |
153 class WalletAddressTest : public testing::Test { | |
154 public: | |
155 WalletAddressTest() {} | |
156 virtual void SetUp() { | |
157 dict.reset(); | |
158 } | |
159 protected: | |
160 void SetUpDictionary(const std::string& json) { | |
161 scoped_ptr<Value> value(base::JSONReader::Read(json)); | |
162 DCHECK(value.get()); | |
163 DCHECK(value->IsType(Value::TYPE_DICTIONARY)); | |
164 dict.reset(static_cast<DictionaryValue*>(value.release())); | |
165 } | |
166 scoped_ptr<const DictionaryValue> dict; | |
167 }; | |
168 | |
169 TEST_F(WalletAddressTest, CreateAddressWithIDMissingObjectId) { | |
170 SetUpDictionary(kAddressMissingObjectId); | |
171 ASSERT_EQ(NULL, Address::CreateAddressWithID(*dict)); | |
172 } | |
173 | |
174 TEST_F(WalletAddressTest, CreateAddressWithIDMissingCountryNameCode) { | |
175 SetUpDictionary(kAddressMissingCountryNameCode); | |
176 ASSERT_EQ(NULL, Address::CreateAddressWithID(*dict)); | |
177 } | |
178 | |
179 TEST_F(WalletAddressTest, CreateAddressWithIDMissingRecipientName) { | |
180 SetUpDictionary(kAddressMissingRecipientName); | |
181 ASSERT_EQ(NULL, Address::CreateAddressWithID(*dict)); | |
182 } | |
183 | |
184 TEST_F(WalletAddressTest, CreateAddressWithIDMissingPostalCodeNumber) { | |
185 SetUpDictionary(kAddressMissingPostalCodeNumber); | |
186 ASSERT_EQ(NULL, Address::CreateAddressWithID(*dict)); | |
187 } | |
188 | |
189 TEST_F(WalletAddressTest, CreateAddressWithID) { | |
190 SetUpDictionary(kValidAddress); | |
191 Address address("country_name_code", | |
192 "recipient_name", | |
193 "address_line_1", | |
194 "address_line_2", | |
195 "locality_name", | |
196 "administrative_area_name", | |
197 "postal_code_number", | |
198 "phone_number", | |
199 "id"); | |
200 ASSERT_EQ(address, *Address::CreateAddressWithID(*dict)); | |
201 } | |
202 | |
203 TEST_F(WalletAddressTest, CreateDisplayAddressMissingCountryNameCode) { | |
204 SetUpDictionary(kClientAddressMissingCountryCode); | |
205 ASSERT_EQ(NULL, Address::CreateDisplayAddress(*dict)); | |
206 } | |
207 | |
208 TEST_F(WalletAddressTest, CreateDisplayAddressMissingName) { | |
209 SetUpDictionary(kClientAddressMissingName); | |
210 ASSERT_EQ(NULL, Address::CreateDisplayAddress(*dict)); | |
211 } | |
212 | |
213 TEST_F(WalletAddressTest, CreateDisplayAddressMissingPostalCode) { | |
214 SetUpDictionary(kClientAddressMissingPostalCode); | |
215 ASSERT_EQ(NULL, Address::CreateDisplayAddress(*dict)); | |
216 } | |
217 | |
218 TEST_F(WalletAddressTest, CreateDisplayAddress) { | |
219 SetUpDictionary(kClientValidAddress); | |
220 Address address("country_code", | |
221 "name", | |
222 "address1", | |
223 "address2", | |
224 "city", | |
225 "state", | |
226 "postal_code", | |
227 "phone_number", | |
228 ""); | |
229 ASSERT_EQ(address, *Address::CreateDisplayAddress(*dict)); | |
230 } | |
231 | |
232 } // end wallet namespace | |
OLD | NEW |