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 struct ComponentCase { | 44 struct ComponentCase { |
44 const char* url; | 45 const char* url; |
45 const char* protocol; | 46 const char* protocol; |
46 const char* host; | 47 const char* host; |
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 EXPECT_STREQ("http://www.google.com:8000/favicon.ico", kurl.getString().utf8
().data()); | 417 EXPECT_STREQ("http://www.google.com:8000/favicon.ico", kurl.getString().utf8
().data()); |
417 | 418 |
418 // Now let's test that giving an invalid replacement fails. Invalid | 419 // Now let's test that giving an invalid replacement fails. Invalid |
419 // protocols fail without modifying the URL, which should remain valid. | 420 // protocols fail without modifying the URL, which should remain valid. |
420 EXPECT_FALSE(kurl.setProtocol("f/sj#@")); | 421 EXPECT_FALSE(kurl.setProtocol("f/sj#@")); |
421 EXPECT_TRUE(kurl.isValid()); | 422 EXPECT_TRUE(kurl.isValid()); |
422 } | 423 } |
423 | 424 |
424 TEST(KURLTest, Valid_HTTP_FTP_URLsHaveHosts) | 425 TEST(KURLTest, Valid_HTTP_FTP_URLsHaveHosts) |
425 { | 426 { |
| 427 // Since the suborigin schemes are added at the content layer, its |
| 428 // necessary it explicitly add them as standard schemes for this test. If |
| 429 // this is needed in the future across mulitple KURLTests, then KURLTest |
| 430 // should probably be converted to a test fixture with a proper SetUp() |
| 431 // method. |
| 432 url::AddStandardScheme("http-so", url::SCHEME_WITH_PORT); |
| 433 url::AddStandardScheme("https-so", url::SCHEME_WITH_PORT); |
| 434 |
426 KURL kurl; | 435 KURL kurl; |
427 EXPECT_TRUE(kurl.setProtocol("http")); | 436 EXPECT_TRUE(kurl.setProtocol("http")); |
428 EXPECT_TRUE(kurl.protocolIs("http")); | 437 EXPECT_TRUE(kurl.protocolIs("http")); |
429 EXPECT_FALSE(kurl.isValid()); | 438 EXPECT_FALSE(kurl.isValid()); |
430 | 439 |
| 440 EXPECT_TRUE(kurl.setProtocol("http-so")); |
| 441 EXPECT_TRUE(kurl.protocolIs("http-so")); |
| 442 EXPECT_FALSE(kurl.isValid()); |
| 443 |
431 EXPECT_TRUE(kurl.setProtocol("https")); | 444 EXPECT_TRUE(kurl.setProtocol("https")); |
432 EXPECT_TRUE(kurl.protocolIs("https")); | 445 EXPECT_TRUE(kurl.protocolIs("https")); |
433 EXPECT_FALSE(kurl.isValid()); | 446 EXPECT_FALSE(kurl.isValid()); |
434 | 447 |
| 448 EXPECT_TRUE(kurl.setProtocol("https-so")); |
| 449 EXPECT_TRUE(kurl.protocolIs("https-so")); |
| 450 EXPECT_FALSE(kurl.isValid()); |
| 451 |
435 EXPECT_TRUE(kurl.setProtocol("ftp")); | 452 EXPECT_TRUE(kurl.setProtocol("ftp")); |
436 EXPECT_TRUE(kurl.protocolIs("ftp")); | 453 EXPECT_TRUE(kurl.protocolIs("ftp")); |
437 EXPECT_FALSE(kurl.isValid()); | 454 EXPECT_FALSE(kurl.isValid()); |
438 | 455 |
439 kurl = KURL(KURL(), "http://"); | 456 kurl = KURL(KURL(), "http://"); |
440 EXPECT_TRUE(kurl.protocolIs("http")); | 457 EXPECT_TRUE(kurl.protocolIs("http")); |
441 EXPECT_FALSE(kurl.isValid()); | 458 EXPECT_FALSE(kurl.isValid()); |
442 | 459 |
| 460 kurl = KURL(KURL(), "http-so://"); |
| 461 EXPECT_TRUE(kurl.protocolIs("http-so")); |
| 462 EXPECT_FALSE(kurl.isValid()); |
| 463 |
443 kurl = KURL(KURL(), "https://"); | 464 kurl = KURL(KURL(), "https://"); |
444 EXPECT_TRUE(kurl.protocolIs("https")); | 465 EXPECT_TRUE(kurl.protocolIs("https")); |
445 EXPECT_FALSE(kurl.isValid()); | 466 EXPECT_FALSE(kurl.isValid()); |
446 | 467 |
| 468 kurl = KURL(KURL(), "https-so://"); |
| 469 EXPECT_TRUE(kurl.protocolIs("https-so")); |
| 470 EXPECT_FALSE(kurl.isValid()); |
| 471 |
447 kurl = KURL(KURL(), "ftp://"); | 472 kurl = KURL(KURL(), "ftp://"); |
448 EXPECT_TRUE(kurl.protocolIs("ftp")); | 473 EXPECT_TRUE(kurl.protocolIs("ftp")); |
449 EXPECT_FALSE(kurl.isValid()); | 474 EXPECT_FALSE(kurl.isValid()); |
450 | 475 |
451 kurl = KURL(KURL(), "http://host/"); | 476 kurl = KURL(KURL(), "http://host/"); |
452 EXPECT_TRUE(kurl.isValid()); | 477 EXPECT_TRUE(kurl.isValid()); |
453 kurl.setHost(""); | 478 kurl.setHost(""); |
454 EXPECT_FALSE(kurl.isValid()); | 479 EXPECT_FALSE(kurl.isValid()); |
455 | 480 |
| 481 kurl = KURL(KURL(), "http-so://host/"); |
| 482 EXPECT_TRUE(kurl.isValid()); |
| 483 kurl.setHost(""); |
| 484 EXPECT_FALSE(kurl.isValid()); |
| 485 |
456 kurl = KURL(KURL(), "https://host/"); | 486 kurl = KURL(KURL(), "https://host/"); |
457 EXPECT_TRUE(kurl.isValid()); | 487 EXPECT_TRUE(kurl.isValid()); |
458 kurl.setHost(""); | 488 kurl.setHost(""); |
459 EXPECT_FALSE(kurl.isValid()); | 489 EXPECT_FALSE(kurl.isValid()); |
460 | 490 |
| 491 kurl = KURL(KURL(), "https-so://host/"); |
| 492 EXPECT_TRUE(kurl.isValid()); |
| 493 kurl.setHost(""); |
| 494 EXPECT_FALSE(kurl.isValid()); |
| 495 |
461 kurl = KURL(KURL(), "ftp://host/"); | 496 kurl = KURL(KURL(), "ftp://host/"); |
462 EXPECT_TRUE(kurl.isValid()); | 497 EXPECT_TRUE(kurl.isValid()); |
463 kurl.setHost(""); | 498 kurl.setHost(""); |
464 EXPECT_FALSE(kurl.isValid()); | 499 EXPECT_FALSE(kurl.isValid()); |
465 | 500 |
466 kurl = KURL(KURL(), "http:///noodles/pho.php"); | 501 kurl = KURL(KURL(), "http:///noodles/pho.php"); |
467 EXPECT_STREQ("http://noodles/pho.php", kurl.getString().utf8().data()); | 502 EXPECT_STREQ("http://noodles/pho.php", kurl.getString().utf8().data()); |
468 EXPECT_STREQ("noodles", kurl.host().utf8().data()); | 503 EXPECT_STREQ("noodles", kurl.host().utf8().data()); |
469 EXPECT_TRUE(kurl.isValid()); | 504 EXPECT_TRUE(kurl.isValid()); |
470 | 505 |
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
762 }; | 797 }; |
763 | 798 |
764 for (size_t i = 0; i < WTF_ARRAY_LENGTH(referrerCases); i++) { | 799 for (size_t i = 0; i < WTF_ARRAY_LENGTH(referrerCases); i++) { |
765 KURL kurl(ParsedURLString, referrerCases[i].input); | 800 KURL kurl(ParsedURLString, referrerCases[i].input); |
766 String referrer = kurl.strippedForUseAsReferrer(); | 801 String referrer = kurl.strippedForUseAsReferrer(); |
767 EXPECT_STREQ(referrerCases[i].output, referrer.utf8().data()); | 802 EXPECT_STREQ(referrerCases[i].output, referrer.utf8().data()); |
768 } | 803 } |
769 } | 804 } |
770 | 805 |
771 } // namespace blink | 806 } // namespace blink |
OLD | NEW |