OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 16 matching lines...) Expand all Loading... |
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 */ | 29 */ |
30 | 30 |
31 // Basic tests that verify our KURL's interface behaves the same as the | 31 // Basic tests that verify our KURL's interface behaves the same as the |
32 // original KURL's. | 32 // original KURL's. |
33 | 33 |
34 #include "platform/weborigin/KURL.h" | 34 #include "platform/weborigin/KURL.h" |
35 | 35 |
36 #include "testing/gtest/include/gtest/gtest.h" | 36 #include "testing/gtest/include/gtest/gtest.h" |
| 37 #include "url/url_util.h" |
37 #include "wtf/StdLibExtras.h" | 38 #include "wtf/StdLibExtras.h" |
38 #include "wtf/text/CString.h" | 39 #include "wtf/text/CString.h" |
39 #include "wtf/text/WTFString.h" | 40 #include "wtf/text/WTFString.h" |
40 | 41 |
41 namespace blink { | 42 namespace blink { |
42 | 43 |
43 TEST(KURLTest, Getters) | 44 TEST(KURLTest, Getters) |
44 { | 45 { |
45 struct GetterCase { | 46 struct GetterCase { |
46 const char* url; | 47 const char* url; |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
364 EXPECT_STREQ("http://www.google.com:8000/favicon.ico", kurl.getString().utf8
().data()); | 365 EXPECT_STREQ("http://www.google.com:8000/favicon.ico", kurl.getString().utf8
().data()); |
365 | 366 |
366 // Now let's test that giving an invalid replacement fails. Invalid | 367 // Now let's test that giving an invalid replacement fails. Invalid |
367 // protocols fail without modifying the URL, which should remain valid. | 368 // protocols fail without modifying the URL, which should remain valid. |
368 EXPECT_FALSE(kurl.setProtocol("f/sj#@")); | 369 EXPECT_FALSE(kurl.setProtocol("f/sj#@")); |
369 EXPECT_TRUE(kurl.isValid()); | 370 EXPECT_TRUE(kurl.isValid()); |
370 } | 371 } |
371 | 372 |
372 TEST(KURLTest, Valid_HTTP_FTP_URLsHaveHosts) | 373 TEST(KURLTest, Valid_HTTP_FTP_URLsHaveHosts) |
373 { | 374 { |
| 375 // Since the suborigin schemes are added at the content layer, its |
| 376 // necessary it explicitly add them as standard schemes for this test. If |
| 377 // this is needed in the future across mulitple KURLTests, then KURLTest |
| 378 // should probably be converted to a test fixture with a proper SetUp() |
| 379 // method. |
| 380 url::AddStandardScheme("http-so", url::SCHEME_WITH_PORT); |
| 381 url::AddStandardScheme("https-so", url::SCHEME_WITH_PORT); |
| 382 |
374 KURL kurl; | 383 KURL kurl; |
375 EXPECT_TRUE(kurl.setProtocol("http")); | 384 EXPECT_TRUE(kurl.setProtocol("http")); |
376 EXPECT_TRUE(kurl.protocolIs("http")); | 385 EXPECT_TRUE(kurl.protocolIs("http")); |
377 EXPECT_FALSE(kurl.isValid()); | 386 EXPECT_FALSE(kurl.isValid()); |
378 | 387 |
| 388 EXPECT_TRUE(kurl.setProtocol("http-so")); |
| 389 EXPECT_TRUE(kurl.protocolIs("http-so")); |
| 390 EXPECT_FALSE(kurl.isValid()); |
| 391 |
379 EXPECT_TRUE(kurl.setProtocol("https")); | 392 EXPECT_TRUE(kurl.setProtocol("https")); |
380 EXPECT_TRUE(kurl.protocolIs("https")); | 393 EXPECT_TRUE(kurl.protocolIs("https")); |
381 EXPECT_FALSE(kurl.isValid()); | 394 EXPECT_FALSE(kurl.isValid()); |
382 | 395 |
| 396 EXPECT_TRUE(kurl.setProtocol("https-so")); |
| 397 EXPECT_TRUE(kurl.protocolIs("https-so")); |
| 398 EXPECT_FALSE(kurl.isValid()); |
| 399 |
383 EXPECT_TRUE(kurl.setProtocol("ftp")); | 400 EXPECT_TRUE(kurl.setProtocol("ftp")); |
384 EXPECT_TRUE(kurl.protocolIs("ftp")); | 401 EXPECT_TRUE(kurl.protocolIs("ftp")); |
385 EXPECT_FALSE(kurl.isValid()); | 402 EXPECT_FALSE(kurl.isValid()); |
386 | 403 |
387 kurl = KURL(KURL(), "http://"); | 404 kurl = KURL(KURL(), "http://"); |
388 EXPECT_TRUE(kurl.protocolIs("http")); | 405 EXPECT_TRUE(kurl.protocolIs("http")); |
389 EXPECT_FALSE(kurl.isValid()); | 406 EXPECT_FALSE(kurl.isValid()); |
390 | 407 |
| 408 kurl = KURL(KURL(), "http-so://"); |
| 409 EXPECT_TRUE(kurl.protocolIs("http-so")); |
| 410 EXPECT_FALSE(kurl.isValid()); |
| 411 |
391 kurl = KURL(KURL(), "https://"); | 412 kurl = KURL(KURL(), "https://"); |
392 EXPECT_TRUE(kurl.protocolIs("https")); | 413 EXPECT_TRUE(kurl.protocolIs("https")); |
393 EXPECT_FALSE(kurl.isValid()); | 414 EXPECT_FALSE(kurl.isValid()); |
394 | 415 |
| 416 kurl = KURL(KURL(), "https-so://"); |
| 417 EXPECT_TRUE(kurl.protocolIs("https-so")); |
| 418 EXPECT_FALSE(kurl.isValid()); |
| 419 |
395 kurl = KURL(KURL(), "ftp://"); | 420 kurl = KURL(KURL(), "ftp://"); |
396 EXPECT_TRUE(kurl.protocolIs("ftp")); | 421 EXPECT_TRUE(kurl.protocolIs("ftp")); |
397 EXPECT_FALSE(kurl.isValid()); | 422 EXPECT_FALSE(kurl.isValid()); |
398 | 423 |
399 kurl = KURL(KURL(), "http://host/"); | 424 kurl = KURL(KURL(), "http://host/"); |
400 EXPECT_TRUE(kurl.isValid()); | 425 EXPECT_TRUE(kurl.isValid()); |
401 kurl.setHost(""); | 426 kurl.setHost(""); |
402 EXPECT_FALSE(kurl.isValid()); | 427 EXPECT_FALSE(kurl.isValid()); |
403 | 428 |
| 429 kurl = KURL(KURL(), "http-so://host/"); |
| 430 EXPECT_TRUE(kurl.isValid()); |
| 431 kurl.setHost(""); |
| 432 EXPECT_FALSE(kurl.isValid()); |
| 433 |
404 kurl = KURL(KURL(), "https://host/"); | 434 kurl = KURL(KURL(), "https://host/"); |
405 EXPECT_TRUE(kurl.isValid()); | 435 EXPECT_TRUE(kurl.isValid()); |
406 kurl.setHost(""); | 436 kurl.setHost(""); |
407 EXPECT_FALSE(kurl.isValid()); | 437 EXPECT_FALSE(kurl.isValid()); |
408 | 438 |
| 439 kurl = KURL(KURL(), "https-so://host/"); |
| 440 EXPECT_TRUE(kurl.isValid()); |
| 441 kurl.setHost(""); |
| 442 EXPECT_FALSE(kurl.isValid()); |
| 443 |
409 kurl = KURL(KURL(), "ftp://host/"); | 444 kurl = KURL(KURL(), "ftp://host/"); |
410 EXPECT_TRUE(kurl.isValid()); | 445 EXPECT_TRUE(kurl.isValid()); |
411 kurl.setHost(""); | 446 kurl.setHost(""); |
412 EXPECT_FALSE(kurl.isValid()); | 447 EXPECT_FALSE(kurl.isValid()); |
413 | 448 |
414 kurl = KURL(KURL(), "http:///noodles/pho.php"); | 449 kurl = KURL(KURL(), "http:///noodles/pho.php"); |
415 EXPECT_STREQ("http://noodles/pho.php", kurl.getString().utf8().data()); | 450 EXPECT_STREQ("http://noodles/pho.php", kurl.getString().utf8().data()); |
416 EXPECT_STREQ("noodles", kurl.host().utf8().data()); | 451 EXPECT_STREQ("noodles", kurl.host().utf8().data()); |
417 EXPECT_TRUE(kurl.isValid()); | 452 EXPECT_TRUE(kurl.isValid()); |
418 | 453 |
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
710 }; | 745 }; |
711 | 746 |
712 for (size_t i = 0; i < WTF_ARRAY_LENGTH(referrerCases); i++) { | 747 for (size_t i = 0; i < WTF_ARRAY_LENGTH(referrerCases); i++) { |
713 KURL kurl(ParsedURLString, referrerCases[i].input); | 748 KURL kurl(ParsedURLString, referrerCases[i].input); |
714 String referrer = kurl.strippedForUseAsReferrer(); | 749 String referrer = kurl.strippedForUseAsReferrer(); |
715 EXPECT_STREQ(referrerCases[i].output, referrer.utf8().data()); | 750 EXPECT_STREQ(referrerCases[i].output, referrer.utf8().data()); |
716 } | 751 } |
717 } | 752 } |
718 | 753 |
719 } // namespace blink | 754 } // namespace blink |
OLD | NEW |