Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1959)

Side by Side Diff: chrome/browser/chrome_service_worker_browsertest.cc

Issue 2783623003: Fetch API: Don't exclude the URL fragment in Request#url (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698