Index: content/browser/service_worker/service_worker_version_unittest.cc |
diff --git a/content/browser/service_worker/service_worker_version_unittest.cc b/content/browser/service_worker/service_worker_version_unittest.cc |
index 04cab83f8404ddc52676d808f675f85f859a7f2d..309627ed36bed16574a72330362437a0ade4cbbe 100644 |
--- a/content/browser/service_worker/service_worker_version_unittest.cc |
+++ b/content/browser/service_worker/service_worker_version_unittest.cc |
@@ -1130,43 +1130,69 @@ TEST_F(ServiceWorkerVersionTest, RegisterForeignFetchScopes) { |
EXPECT_EQ(ServiceWorkerVersion::RUNNING, version_->running_status()); |
EXPECT_EQ(0, helper_->mock_render_process_host()->bad_msg_count()); |
+ GURL valid_scope_1("http://www.example.com/test/subscope"); |
+ GURL valid_scope_2("http://www.example.com/test/othersubscope"); |
+ std::vector<GURL> valid_scopes; |
+ valid_scopes.push_back(valid_scope_1); |
+ valid_scopes.push_back(valid_scope_2); |
+ |
+ std::vector<GURL> all_origins; |
+ GURL valid_origin("https://chromium.org/"); |
+ std::vector<GURL> valid_origin_list(1, valid_origin); |
+ |
// Invalid URL, should kill worker (but in tests will only increase bad |
falken
2016/02/03 02:17:31
nit: Now URL is ambiguous since there are both sub
Marijn Kruisselbrink
2016/02/03 17:53:30
Done
|
// message count). |
- version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, GURL())); |
+ version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, GURL()), |
+ valid_origin_list); |
base::RunLoop().RunUntilIdle(); |
EXPECT_EQ(1, helper_->mock_render_process_host()->bad_msg_count()); |
EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size()); |
+ EXPECT_EQ(0u, version_->foreign_fetch_origins_.size()); |
// URL outside the scope of the worker. |
version_->OnRegisterForeignFetchScopes( |
- std::vector<GURL>(1, GURL("http://www.example.com/wrong"))); |
+ std::vector<GURL>(1, GURL("http://www.example.com/wrong")), |
+ valid_origin_list); |
base::RunLoop().RunUntilIdle(); |
EXPECT_EQ(2, helper_->mock_render_process_host()->bad_msg_count()); |
EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size()); |
+ EXPECT_EQ(0u, version_->foreign_fetch_origins_.size()); |
// URL on wrong origin. |
version_->OnRegisterForeignFetchScopes( |
- std::vector<GURL>(1, GURL("http://example.com/test/"))); |
+ std::vector<GURL>(1, GURL("http://example.com/test/")), |
+ valid_origin_list); |
base::RunLoop().RunUntilIdle(); |
EXPECT_EQ(3, helper_->mock_render_process_host()->bad_msg_count()); |
EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size()); |
+ EXPECT_EQ(0u, version_->foreign_fetch_origins_.size()); |
+ |
+ // Invalid URL passed for origin. |
+ version_->OnRegisterForeignFetchScopes(valid_scopes, |
+ std::vector<GURL>(1, GURL())); |
+ base::RunLoop().RunUntilIdle(); |
+ EXPECT_EQ(4, helper_->mock_render_process_host()->bad_msg_count()); |
+ EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size()); |
+ EXPECT_EQ(0u, version_->foreign_fetch_origins_.size()); |
// Valid URL 1. |
- GURL valid_scope_1("http://www.example.com/test/subscope"); |
- version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, valid_scope_1)); |
+ version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, valid_scope_1), |
+ all_origins); |
base::RunLoop().RunUntilIdle(); |
- EXPECT_EQ(3, helper_->mock_render_process_host()->bad_msg_count()); |
+ EXPECT_EQ(4, helper_->mock_render_process_host()->bad_msg_count()); |
EXPECT_EQ(1u, version_->foreign_fetch_scopes_.size()); |
EXPECT_EQ(valid_scope_1, version_->foreign_fetch_scopes_[0]); |
+ EXPECT_EQ(0u, version_->foreign_fetch_origins_.size()); |
- // Valid URL 2. |
- GURL valid_scope_2("http://www.example.com/test/subscope"); |
- version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, valid_scope_2)); |
+ // Valid URL 2, with explicit origins. |
+ version_->OnRegisterForeignFetchScopes(valid_scopes, valid_origin_list); |
base::RunLoop().RunUntilIdle(); |
- EXPECT_EQ(3, helper_->mock_render_process_host()->bad_msg_count()); |
+ EXPECT_EQ(4, helper_->mock_render_process_host()->bad_msg_count()); |
EXPECT_EQ(2u, version_->foreign_fetch_scopes_.size()); |
EXPECT_EQ(valid_scope_1, version_->foreign_fetch_scopes_[0]); |
EXPECT_EQ(valid_scope_2, version_->foreign_fetch_scopes_[1]); |
+ EXPECT_EQ(1u, version_->foreign_fetch_origins_.size()); |
+ EXPECT_EQ(valid_origin, version_->foreign_fetch_origins_[0]); |
} |
TEST_F(ServiceWorkerVersionTest, RendererCrashDuringEvent) { |