OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 // This file tests that Service Workers (a Content feature) work in the Chromium | 5 // This file tests that Service Workers (a Content feature) work in the Chromium |
6 // embedder. | 6 // embedder. |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/files/scoped_temp_dir.h" | 10 #include "base/files/scoped_temp_dir.h" |
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
427 void SetUpOnMainThread() override { | 427 void SetUpOnMainThread() override { |
428 base::FilePath document_root; | 428 base::FilePath document_root; |
429 ASSERT_TRUE(ui_test_utils::GetRelativeBuildDirectory(&document_root)); | 429 ASSERT_TRUE(ui_test_utils::GetRelativeBuildDirectory(&document_root)); |
430 embedded_test_server()->AddDefaultHandlers( | 430 embedded_test_server()->AddDefaultHandlers( |
431 document_root.Append(FILE_PATH_LITERAL("nacl_test_data")) | 431 document_root.Append(FILE_PATH_LITERAL("nacl_test_data")) |
432 .Append(FILE_PATH_LITERAL("pnacl"))); | 432 .Append(FILE_PATH_LITERAL("pnacl"))); |
433 ChromeServiceWorkerFetchTest::SetUpOnMainThread(); | 433 ChromeServiceWorkerFetchTest::SetUpOnMainThread(); |
434 test_page_url_ = GetURL("/pnacl_url_loader.html"); | 434 test_page_url_ = GetURL("/pnacl_url_loader.html"); |
435 } | 435 } |
436 | 436 |
437 std::string GetRequestStringForPNACL() const { | 437 std::string GetRequestStringForPNACL(const std::string& fragment) const { |
438 return RequestString(test_page_url_, "navigate", "include") + | 438 return RequestString(test_page_url_ + fragment.c_str(), "navigate", |
falken
2017/03/31 06:40:49
nit: I don't think you need the c_str()?
yiyix
2017/03/31 07:24:02
Done.
| |
439 "include") + | |
439 RequestString(GetURL("/pnacl_url_loader.nmf"), "same-origin", | 440 RequestString(GetURL("/pnacl_url_loader.nmf"), "same-origin", |
440 "include") + | 441 "include") + |
441 RequestString(GetURL("/pnacl_url_loader_newlib_pnacl.pexe"), | 442 RequestString(GetURL("/pnacl_url_loader_newlib_pnacl.pexe"), |
442 "same-origin", "include"); | 443 "same-origin", "include"); |
443 } | 444 } |
444 | 445 |
445 std::string ExecutePNACLUrlLoaderTest(const std::string& mode) { | 446 std::string ExecutePNACLUrlLoaderTest(const std::string& mode) { |
446 std::string result(ExecuteScriptAndExtractString( | 447 std::string result(ExecuteScriptAndExtractString( |
447 base::StringPrintf("reportOnFetch = false;" | 448 base::StringPrintf("reportOnFetch = false;" |
448 "var iframe = document.createElement('iframe');" | 449 "var iframe = document.createElement('iframe');" |
449 "iframe.src='%s#%s';" | 450 "iframe.src='%s#%s';" |
450 "document.body.appendChild(iframe);", | 451 "document.body.appendChild(iframe);", |
451 test_page_url_.c_str(), mode.c_str()))); | 452 test_page_url_.c_str(), mode.c_str()))); |
452 EXPECT_EQ(base::StringPrintf("OnOpen%s", mode.c_str()), result); | 453 EXPECT_EQ(base::StringPrintf("OnOpen%s", mode.c_str()), result); |
453 return ExecuteScriptAndExtractString("reportRequests();"); | 454 return ExecuteScriptAndExtractString("reportRequests();"); |
454 } | 455 } |
455 | 456 |
456 private: | 457 private: |
457 std::string test_page_url_; | 458 std::string test_page_url_; |
458 | 459 |
459 DISALLOW_COPY_AND_ASSIGN(ChromeServiceWorkerFetchPPAPITest); | 460 DISALLOW_COPY_AND_ASSIGN(ChromeServiceWorkerFetchPPAPITest); |
460 }; | 461 }; |
461 | 462 |
462 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, SameOrigin) { | 463 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, SameOrigin) { |
463 // In pnacl_url_loader.cc: | 464 // In pnacl_url_loader.cc: |
464 // request.SetMethod("GET"); | 465 // request.SetMethod("GET"); |
465 // request.SetURL("/echo"); | 466 // request.SetURL("/echo"); |
466 EXPECT_EQ(GetRequestStringForPNACL() + | 467 EXPECT_EQ(GetRequestStringForPNACL("#Same") + |
467 RequestString(GetURL("/echo"), "same-origin", "include"), | 468 RequestString(GetURL("/echo"), "same-origin", "include"), |
468 ExecutePNACLUrlLoaderTest("Same")); | 469 ExecutePNACLUrlLoaderTest("Same")); |
469 } | 470 } |
470 | 471 |
471 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, SameOriginCORS) { | 472 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, SameOriginCORS) { |
472 // In pnacl_url_loader.cc: | 473 // In pnacl_url_loader.cc: |
473 // request.SetMethod("GET"); | 474 // request.SetMethod("GET"); |
474 // request.SetURL("/echo"); | 475 // request.SetURL("/echo"); |
475 // request.SetAllowCrossOriginRequests(true); | 476 // request.SetAllowCrossOriginRequests(true); |
476 EXPECT_EQ(GetRequestStringForPNACL() + | 477 EXPECT_EQ(GetRequestStringForPNACL("#SameCORS") + |
477 RequestString(GetURL("/echo"), "cors", "same-origin"), | 478 RequestString(GetURL("/echo"), "cors", "same-origin"), |
478 ExecutePNACLUrlLoaderTest("SameCORS")); | 479 ExecutePNACLUrlLoaderTest("SameCORS")); |
479 } | 480 } |
480 | 481 |
481 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, | 482 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, |
482 SameOriginCredentials) { | 483 SameOriginCredentials) { |
483 // In pnacl_url_loader.cc: | 484 // In pnacl_url_loader.cc: |
484 // request.SetMethod("GET"); | 485 // request.SetMethod("GET"); |
485 // request.SetURL("/echo"); | 486 // request.SetURL("/echo"); |
486 // request.SetAllowCredentials(true); | 487 // request.SetAllowCredentials(true); |
487 EXPECT_EQ(GetRequestStringForPNACL() + | 488 EXPECT_EQ(GetRequestStringForPNACL("#SameCredentials") + |
488 RequestString(GetURL("/echo"), "same-origin", "include"), | 489 RequestString(GetURL("/echo"), "same-origin", "include"), |
489 ExecutePNACLUrlLoaderTest("SameCredentials")); | 490 ExecutePNACLUrlLoaderTest("SameCredentials")); |
490 } | 491 } |
491 | 492 |
492 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, | 493 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, |
493 SameOriginCORSCredentials) { | 494 SameOriginCORSCredentials) { |
494 // In pnacl_url_loader.cc: | 495 // In pnacl_url_loader.cc: |
495 // request.SetMethod("GET"); | 496 // request.SetMethod("GET"); |
496 // request.SetURL("/echo"); | 497 // request.SetURL("/echo"); |
497 // request.SetAllowCrossOriginRequests(true); | 498 // request.SetAllowCrossOriginRequests(true); |
498 // request.SetAllowCredentials(true); | 499 // request.SetAllowCredentials(true); |
499 EXPECT_EQ(GetRequestStringForPNACL() + | 500 EXPECT_EQ(GetRequestStringForPNACL("#SameCORSCredentials") + |
500 RequestString(GetURL("/echo"), "cors", "include"), | 501 RequestString(GetURL("/echo"), "cors", "include"), |
501 ExecutePNACLUrlLoaderTest("SameCORSCredentials")); | 502 ExecutePNACLUrlLoaderTest("SameCORSCredentials")); |
502 } | 503 } |
503 | 504 |
504 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, OtherOrigin) { | 505 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, OtherOrigin) { |
505 // In pnacl_url_loader.cc: | 506 // In pnacl_url_loader.cc: |
506 // request.SetMethod("GET"); | 507 // request.SetMethod("GET"); |
507 // request.SetURL("https://www.example.com/echo"); | 508 // request.SetURL("https://www.example.com/echo"); |
508 // This request fails because AllowCrossOriginRequests is not set. | 509 // This request fails because AllowCrossOriginRequests is not set. |
509 EXPECT_EQ(GetRequestStringForPNACL(), ExecutePNACLUrlLoaderTest("Other")); | 510 EXPECT_EQ(GetRequestStringForPNACL("#Other"), |
511 ExecutePNACLUrlLoaderTest("Other")); | |
510 } | 512 } |
511 | 513 |
512 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, OtherOriginCORS) { | 514 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, OtherOriginCORS) { |
513 // In pnacl_url_loader.cc: | 515 // In pnacl_url_loader.cc: |
514 // request.SetMethod("GET"); | 516 // request.SetMethod("GET"); |
515 // request.SetURL("https://www.example.com/echo"); | 517 // request.SetURL("https://www.example.com/echo"); |
516 // request.SetAllowCrossOriginRequests(true); | 518 // request.SetAllowCrossOriginRequests(true); |
517 EXPECT_EQ( | 519 EXPECT_EQ( |
518 GetRequestStringForPNACL() + | 520 GetRequestStringForPNACL("#OtherCORS") + |
519 RequestString("https://www.example.com/echo", "cors", "same-origin"), | 521 RequestString("https://www.example.com/echo", "cors", "same-origin"), |
520 ExecutePNACLUrlLoaderTest("OtherCORS")); | 522 ExecutePNACLUrlLoaderTest("OtherCORS")); |
521 } | 523 } |
522 | 524 |
523 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, | 525 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, |
524 OtherOriginCredentials) { | 526 OtherOriginCredentials) { |
525 // In pnacl_url_loader.cc: | 527 // In pnacl_url_loader.cc: |
526 // request.SetMethod("GET"); | 528 // request.SetMethod("GET"); |
527 // request.SetURL("https://www.example.com/echo"); | 529 // request.SetURL("https://www.example.com/echo"); |
528 // request.SetAllowCredentials(true); | 530 // request.SetAllowCredentials(true); |
529 // This request fails because AllowCrossOriginRequests is not set. | 531 // This request fails because AllowCrossOriginRequests is not set. |
530 EXPECT_EQ(GetRequestStringForPNACL(), | 532 EXPECT_EQ(GetRequestStringForPNACL("#OtherCredentials"), |
531 ExecutePNACLUrlLoaderTest("OtherCredentials")); | 533 ExecutePNACLUrlLoaderTest("OtherCredentials")); |
532 } | 534 } |
533 | 535 |
534 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, | 536 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPITest, |
535 OtherOriginCORSCredentials) { | 537 OtherOriginCORSCredentials) { |
536 // In pnacl_url_loader.cc: | 538 // In pnacl_url_loader.cc: |
537 // request.SetMethod("GET"); | 539 // request.SetMethod("GET"); |
538 // request.SetURL("https://www.example.com/echo"); | 540 // request.SetURL("https://www.example.com/echo"); |
539 // request.SetAllowCrossOriginRequests(true); | 541 // request.SetAllowCrossOriginRequests(true); |
540 // request.SetAllowCredentials(true); | 542 // request.SetAllowCredentials(true); |
541 EXPECT_EQ( | 543 EXPECT_EQ( |
542 GetRequestStringForPNACL() + | 544 GetRequestStringForPNACL("#OtherCORSCredentials") + |
543 RequestString("https://www.example.com/echo", "cors", "include"), | 545 RequestString("https://www.example.com/echo", "cors", "include"), |
544 ExecutePNACLUrlLoaderTest("OtherCORSCredentials")); | 546 ExecutePNACLUrlLoaderTest("OtherCORSCredentials")); |
545 } | 547 } |
546 | 548 |
547 class ChromeServiceWorkerFetchPPAPIPrivateTest | 549 class ChromeServiceWorkerFetchPPAPIPrivateTest |
548 : public ChromeServiceWorkerFetchPPAPITest { | 550 : public ChromeServiceWorkerFetchPPAPITest { |
549 protected: | 551 protected: |
550 ChromeServiceWorkerFetchPPAPIPrivateTest() {} | 552 ChromeServiceWorkerFetchPPAPIPrivateTest() {} |
551 ~ChromeServiceWorkerFetchPPAPIPrivateTest() override {} | 553 ~ChromeServiceWorkerFetchPPAPIPrivateTest() override {} |
552 | 554 |
553 void SetUpCommandLine(base::CommandLine* command_line) override { | 555 void SetUpCommandLine(base::CommandLine* command_line) override { |
554 ChromeServiceWorkerFetchPPAPITest::SetUpCommandLine(command_line); | 556 ChromeServiceWorkerFetchPPAPITest::SetUpCommandLine(command_line); |
555 // Sets this flag to test that the fetch request from the plugins with | 557 // Sets this flag to test that the fetch request from the plugins with |
556 // private permission (PERMISSION_PRIVATE) should not go to the service | 558 // private permission (PERMISSION_PRIVATE) should not go to the service |
557 // worker. | 559 // worker. |
558 command_line->AppendSwitch(switches::kEnablePepperTesting); | 560 command_line->AppendSwitch(switches::kEnablePepperTesting); |
559 } | 561 } |
560 | 562 |
561 private: | 563 private: |
562 DISALLOW_COPY_AND_ASSIGN(ChromeServiceWorkerFetchPPAPIPrivateTest); | 564 DISALLOW_COPY_AND_ASSIGN(ChromeServiceWorkerFetchPPAPIPrivateTest); |
563 }; | 565 }; |
564 | 566 |
565 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, SameOrigin) { | 567 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, SameOrigin) { |
566 EXPECT_EQ(GetRequestStringForPNACL(), ExecutePNACLUrlLoaderTest("Same")); | 568 EXPECT_EQ(GetRequestStringForPNACL("#Same"), |
569 ExecutePNACLUrlLoaderTest("Same")); | |
567 } | 570 } |
568 | 571 |
569 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, | 572 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, |
570 SameOriginCORS) { | 573 SameOriginCORS) { |
571 EXPECT_EQ(GetRequestStringForPNACL(), ExecutePNACLUrlLoaderTest("SameCORS")); | 574 EXPECT_EQ(GetRequestStringForPNACL("#SameCORS"), |
575 ExecutePNACLUrlLoaderTest("SameCORS")); | |
572 } | 576 } |
573 | 577 |
574 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, | 578 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, |
575 SameOriginCredentials) { | 579 SameOriginCredentials) { |
576 EXPECT_EQ(GetRequestStringForPNACL(), | 580 EXPECT_EQ(GetRequestStringForPNACL("#SameCredentials"), |
577 ExecutePNACLUrlLoaderTest("SameCredentials")); | 581 ExecutePNACLUrlLoaderTest("SameCredentials")); |
578 } | 582 } |
579 | 583 |
580 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, | 584 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, |
581 SameOriginCORSCredentials) { | 585 SameOriginCORSCredentials) { |
582 EXPECT_EQ(GetRequestStringForPNACL(), | 586 EXPECT_EQ(GetRequestStringForPNACL("#SameCORSCredentials"), |
583 ExecutePNACLUrlLoaderTest("SameCORSCredentials")); | 587 ExecutePNACLUrlLoaderTest("SameCORSCredentials")); |
584 } | 588 } |
585 | 589 |
586 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, OtherOrigin) { | 590 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, OtherOrigin) { |
587 EXPECT_EQ(GetRequestStringForPNACL(), ExecutePNACLUrlLoaderTest("Other")); | 591 EXPECT_EQ(GetRequestStringForPNACL("#Other"), |
592 ExecutePNACLUrlLoaderTest("Other")); | |
588 } | 593 } |
589 | 594 |
590 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, | 595 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, |
591 OtherOriginCORS) { | 596 OtherOriginCORS) { |
592 EXPECT_EQ(GetRequestStringForPNACL(), ExecutePNACLUrlLoaderTest("OtherCORS")); | 597 EXPECT_EQ(GetRequestStringForPNACL("#OtherCORS"), |
598 ExecutePNACLUrlLoaderTest("OtherCORS")); | |
593 } | 599 } |
594 | 600 |
595 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, | 601 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, |
596 OtherOriginCredentials) { | 602 OtherOriginCredentials) { |
597 EXPECT_EQ(GetRequestStringForPNACL(), | 603 EXPECT_EQ(GetRequestStringForPNACL("#OtherCredentials"), |
598 ExecutePNACLUrlLoaderTest("OtherCredentials")); | 604 ExecutePNACLUrlLoaderTest("OtherCredentials")); |
599 } | 605 } |
600 | 606 |
601 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, | 607 IN_PROC_BROWSER_TEST_F(ChromeServiceWorkerFetchPPAPIPrivateTest, |
602 OtherOriginCORSCredentials) { | 608 OtherOriginCORSCredentials) { |
603 EXPECT_EQ(GetRequestStringForPNACL(), | 609 EXPECT_EQ(GetRequestStringForPNACL("#OtherCORSCredentials"), |
604 ExecutePNACLUrlLoaderTest("OtherCORSCredentials")); | 610 ExecutePNACLUrlLoaderTest("OtherCORSCredentials")); |
605 } | 611 } |
606 | 612 |
607 } // namespace | 613 } // namespace |
OLD | NEW |