OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <string> | 5 #include <string> |
6 | 6 |
7 #include "net/cookies/parsed_cookie.h" | 7 #include "net/cookies/parsed_cookie.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 | 9 |
10 namespace net { | 10 namespace net { |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 maxstr.resize(ParsedCookie::kMaxCookieSize, 'a'); | 201 maxstr.resize(ParsedCookie::kMaxCookieSize, 'a'); |
202 | 202 |
203 ParsedCookie pc1(maxstr); | 203 ParsedCookie pc1(maxstr); |
204 EXPECT_TRUE(pc1.IsValid()); | 204 EXPECT_TRUE(pc1.IsValid()); |
205 | 205 |
206 ParsedCookie pc2(maxstr + "A"); | 206 ParsedCookie pc2(maxstr + "A"); |
207 EXPECT_FALSE(pc2.IsValid()); | 207 EXPECT_FALSE(pc2.IsValid()); |
208 } | 208 } |
209 | 209 |
210 TEST(ParsedCookieTest, InvalidEmpty) { | 210 TEST(ParsedCookieTest, InvalidEmpty) { |
211 ParsedCookie pc(""); | 211 ParsedCookie pc((std::string())); |
212 EXPECT_FALSE(pc.IsValid()); | 212 EXPECT_FALSE(pc.IsValid()); |
213 } | 213 } |
214 | 214 |
215 TEST(ParsedCookieTest, EmbeddedTerminator) { | 215 TEST(ParsedCookieTest, EmbeddedTerminator) { |
216 ParsedCookie pc1("AAA=BB\0ZYX"); | 216 ParsedCookie pc1("AAA=BB\0ZYX"); |
217 ParsedCookie pc2("AAA=BB\rZYX"); | 217 ParsedCookie pc2("AAA=BB\rZYX"); |
218 ParsedCookie pc3("AAA=BB\nZYX"); | 218 ParsedCookie pc3("AAA=BB\nZYX"); |
219 EXPECT_TRUE(pc1.IsValid()); | 219 EXPECT_TRUE(pc1.IsValid()); |
220 EXPECT_EQ("AAA", pc1.Name()); | 220 EXPECT_EQ("AAA", pc1.Name()); |
221 EXPECT_EQ("BB", pc1.Value()); | 221 EXPECT_EQ("BB", pc1.Value()); |
(...skipping 30 matching lines...) Expand all Loading... |
252 "path=/ ; "; | 252 "path=/ ; "; |
253 const char output[] = "ANCUUID=zohNumRKgI0oxyhSsV3Z7D; " | 253 const char output[] = "ANCUUID=zohNumRKgI0oxyhSsV3Z7D; " |
254 "expires=Sun, 18-Apr-2027 21:06:29 GMT; " | 254 "expires=Sun, 18-Apr-2027 21:06:29 GMT; " |
255 "path=/"; | 255 "path=/"; |
256 ParsedCookie pc(input); | 256 ParsedCookie pc(input); |
257 EXPECT_EQ(output, pc.ToCookieLine()); | 257 EXPECT_EQ(output, pc.ToCookieLine()); |
258 } | 258 } |
259 | 259 |
260 | 260 |
261 TEST(ParsedCookieTest, SetNameAndValue) { | 261 TEST(ParsedCookieTest, SetNameAndValue) { |
262 ParsedCookie empty(""); | 262 ParsedCookie empty((std::string())); |
263 EXPECT_FALSE(empty.IsValid()); | 263 EXPECT_FALSE(empty.IsValid()); |
264 EXPECT_FALSE(empty.SetDomain("foobar.com")); | 264 EXPECT_FALSE(empty.SetDomain("foobar.com")); |
265 EXPECT_TRUE(empty.SetName("name")); | 265 EXPECT_TRUE(empty.SetName("name")); |
266 EXPECT_TRUE(empty.SetValue("value")); | 266 EXPECT_TRUE(empty.SetValue("value")); |
267 EXPECT_EQ("name=value", empty.ToCookieLine()); | 267 EXPECT_EQ("name=value", empty.ToCookieLine()); |
268 EXPECT_TRUE(empty.IsValid()); | 268 EXPECT_TRUE(empty.IsValid()); |
269 | 269 |
270 // We don't test | 270 // We don't test |
271 // ParsedCookie invalid("@foo=bar"); | 271 // ParsedCookie invalid("@foo=bar"); |
272 // EXPECT_FALSE(invalid.IsValid()); | 272 // EXPECT_FALSE(invalid.IsValid()); |
273 // here because we are slightly more tolerant to invalid cookie names and | 273 // here because we are slightly more tolerant to invalid cookie names and |
274 // values that are set by webservers. We only enforce a correct name and | 274 // values that are set by webservers. We only enforce a correct name and |
275 // value if set via SetName() and SetValue(). | 275 // value if set via SetName() and SetValue(). |
276 | 276 |
277 ParsedCookie pc("name=value"); | 277 ParsedCookie pc("name=value"); |
278 EXPECT_TRUE(pc.IsValid()); | 278 EXPECT_TRUE(pc.IsValid()); |
279 | 279 |
280 // Set invalid name / value. | 280 // Set invalid name / value. |
281 EXPECT_FALSE(pc.SetName("@foobar")); | 281 EXPECT_FALSE(pc.SetName("@foobar")); |
282 EXPECT_EQ("name=value", pc.ToCookieLine()); | 282 EXPECT_EQ("name=value", pc.ToCookieLine()); |
283 EXPECT_TRUE(pc.IsValid()); | 283 EXPECT_TRUE(pc.IsValid()); |
284 | 284 |
285 EXPECT_FALSE(pc.SetName("")); | 285 EXPECT_FALSE(pc.SetName(std::string())); |
286 EXPECT_EQ("name=value", pc.ToCookieLine()); | 286 EXPECT_EQ("name=value", pc.ToCookieLine()); |
287 EXPECT_TRUE(pc.IsValid()); | 287 EXPECT_TRUE(pc.IsValid()); |
288 | 288 |
289 EXPECT_FALSE(pc.SetValue("foo bar")); | 289 EXPECT_FALSE(pc.SetValue("foo bar")); |
290 EXPECT_EQ("name=value", pc.ToCookieLine()); | 290 EXPECT_EQ("name=value", pc.ToCookieLine()); |
291 EXPECT_TRUE(pc.IsValid()); | 291 EXPECT_TRUE(pc.IsValid()); |
292 | 292 |
293 EXPECT_FALSE(pc.SetValue("\"foobar")); | 293 EXPECT_FALSE(pc.SetValue("\"foobar")); |
294 EXPECT_EQ("name=value", pc.ToCookieLine()); | 294 EXPECT_EQ("name=value", pc.ToCookieLine()); |
295 EXPECT_TRUE(pc.IsValid()); | 295 EXPECT_TRUE(pc.IsValid()); |
296 | 296 |
297 // Set valid name / value | 297 // Set valid name / value |
298 EXPECT_TRUE(pc.SetName("test")); | 298 EXPECT_TRUE(pc.SetName("test")); |
299 EXPECT_EQ("test=value", pc.ToCookieLine()); | 299 EXPECT_EQ("test=value", pc.ToCookieLine()); |
300 EXPECT_TRUE(pc.IsValid()); | 300 EXPECT_TRUE(pc.IsValid()); |
301 | 301 |
302 EXPECT_TRUE(pc.SetValue("\"foobar\"")); | 302 EXPECT_TRUE(pc.SetValue("\"foobar\"")); |
303 EXPECT_EQ("test=\"foobar\"", pc.ToCookieLine()); | 303 EXPECT_EQ("test=\"foobar\"", pc.ToCookieLine()); |
304 EXPECT_TRUE(pc.IsValid()); | 304 EXPECT_TRUE(pc.IsValid()); |
305 | 305 |
306 EXPECT_TRUE(pc.SetValue("")); | 306 EXPECT_TRUE(pc.SetValue(std::string())); |
307 EXPECT_EQ("test=", pc.ToCookieLine()); | 307 EXPECT_EQ("test=", pc.ToCookieLine()); |
308 EXPECT_TRUE(pc.IsValid()); | 308 EXPECT_TRUE(pc.IsValid()); |
309 } | 309 } |
310 | 310 |
311 TEST(ParsedCookieTest, SetAttributes) { | 311 TEST(ParsedCookieTest, SetAttributes) { |
312 ParsedCookie pc("name=value"); | 312 ParsedCookie pc("name=value"); |
313 EXPECT_TRUE(pc.IsValid()); | 313 EXPECT_TRUE(pc.IsValid()); |
314 | 314 |
315 // Clear an unset attribute. | 315 // Clear an unset attribute. |
316 EXPECT_TRUE(pc.SetDomain("")); | 316 EXPECT_TRUE(pc.SetDomain(std::string())); |
317 EXPECT_FALSE(pc.HasDomain()); | 317 EXPECT_FALSE(pc.HasDomain()); |
318 EXPECT_EQ("name=value", pc.ToCookieLine()); | 318 EXPECT_EQ("name=value", pc.ToCookieLine()); |
319 EXPECT_TRUE(pc.IsValid()); | 319 EXPECT_TRUE(pc.IsValid()); |
320 | 320 |
321 // Set a string containing an invalid character | 321 // Set a string containing an invalid character |
322 EXPECT_FALSE(pc.SetDomain("foo;bar")); | 322 EXPECT_FALSE(pc.SetDomain("foo;bar")); |
323 EXPECT_FALSE(pc.HasDomain()); | 323 EXPECT_FALSE(pc.HasDomain()); |
324 EXPECT_EQ("name=value", pc.ToCookieLine()); | 324 EXPECT_EQ("name=value", pc.ToCookieLine()); |
325 EXPECT_TRUE(pc.IsValid()); | 325 EXPECT_TRUE(pc.IsValid()); |
326 | 326 |
(...skipping 21 matching lines...) Expand all Loading... |
348 EXPECT_TRUE(pc.HasPath()); | 348 EXPECT_TRUE(pc.HasPath()); |
349 EXPECT_TRUE(pc.HasExpires()); | 349 EXPECT_TRUE(pc.HasExpires()); |
350 EXPECT_TRUE(pc.IsSecure()); | 350 EXPECT_TRUE(pc.IsSecure()); |
351 EXPECT_TRUE(pc.IsHttpOnly()); | 351 EXPECT_TRUE(pc.IsHttpOnly()); |
352 EXPECT_EQ("name=value; domain=domain.com; path=/foo; " | 352 EXPECT_EQ("name=value; domain=domain.com; path=/foo; " |
353 "expires=Sun, 18-Apr-2027 21:06:29 GMT; max-age=12345; secure; " | 353 "expires=Sun, 18-Apr-2027 21:06:29 GMT; max-age=12345; secure; " |
354 "httponly", | 354 "httponly", |
355 pc.ToCookieLine()); | 355 pc.ToCookieLine()); |
356 | 356 |
357 // Clear the rest and change the name and value. | 357 // Clear the rest and change the name and value. |
358 EXPECT_TRUE(pc.SetDomain("")); | 358 EXPECT_TRUE(pc.SetDomain(std::string())); |
359 EXPECT_TRUE(pc.SetPath("")); | 359 EXPECT_TRUE(pc.SetPath(std::string())); |
360 EXPECT_TRUE(pc.SetExpires("")); | 360 EXPECT_TRUE(pc.SetExpires(std::string())); |
361 EXPECT_TRUE(pc.SetMaxAge("")); | 361 EXPECT_TRUE(pc.SetMaxAge(std::string())); |
362 EXPECT_TRUE(pc.SetIsSecure(false)); | 362 EXPECT_TRUE(pc.SetIsSecure(false)); |
363 EXPECT_TRUE(pc.SetIsHttpOnly(false)); | 363 EXPECT_TRUE(pc.SetIsHttpOnly(false)); |
364 EXPECT_TRUE(pc.SetName("name2")); | 364 EXPECT_TRUE(pc.SetName("name2")); |
365 EXPECT_TRUE(pc.SetValue("value2")); | 365 EXPECT_TRUE(pc.SetValue("value2")); |
366 EXPECT_FALSE(pc.HasDomain()); | 366 EXPECT_FALSE(pc.HasDomain()); |
367 EXPECT_FALSE(pc.HasPath()); | 367 EXPECT_FALSE(pc.HasPath()); |
368 EXPECT_FALSE(pc.HasExpires()); | 368 EXPECT_FALSE(pc.HasExpires()); |
369 EXPECT_FALSE(pc.HasMaxAge()); | 369 EXPECT_FALSE(pc.HasMaxAge()); |
370 EXPECT_FALSE(pc.IsSecure()); | 370 EXPECT_FALSE(pc.IsSecure()); |
371 EXPECT_FALSE(pc.IsHttpOnly()); | 371 EXPECT_FALSE(pc.IsHttpOnly()); |
372 EXPECT_EQ("name2=value2", pc.ToCookieLine()); | 372 EXPECT_EQ("name2=value2", pc.ToCookieLine()); |
373 } | 373 } |
374 | 374 |
375 } // namespace net | 375 } // namespace net |
OLD | NEW |