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

Side by Side Diff: content/browser/service_worker/service_worker_version_unittest.cc

Issue 1656933003: Add origins argument to registerForeignFetchScopes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 #include <stdint.h> 5 #include <stdint.h>
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "content/browser/message_port_service.h" 9 #include "content/browser/message_port_service.h"
10 #include "content/browser/service_worker/embedded_worker_registry.h" 10 #include "content/browser/service_worker/embedded_worker_registry.h"
(...skipping 1112 matching lines...) Expand 10 before | Expand all | Expand 10 after
1123 TEST_F(ServiceWorkerVersionTest, RegisterForeignFetchScopes) { 1123 TEST_F(ServiceWorkerVersionTest, RegisterForeignFetchScopes) {
1124 version_->SetStatus(ServiceWorkerVersion::INSTALLING); 1124 version_->SetStatus(ServiceWorkerVersion::INSTALLING);
1125 // Start a worker. 1125 // Start a worker.
1126 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; 1126 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED;
1127 version_->StartWorker(CreateReceiverOnCurrentThread(&status)); 1127 version_->StartWorker(CreateReceiverOnCurrentThread(&status));
1128 base::RunLoop().RunUntilIdle(); 1128 base::RunLoop().RunUntilIdle();
1129 EXPECT_EQ(SERVICE_WORKER_OK, status); 1129 EXPECT_EQ(SERVICE_WORKER_OK, status);
1130 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version_->running_status()); 1130 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version_->running_status());
1131 EXPECT_EQ(0, helper_->mock_render_process_host()->bad_msg_count()); 1131 EXPECT_EQ(0, helper_->mock_render_process_host()->bad_msg_count());
1132 1132
1133 GURL valid_scope_1("http://www.example.com/test/subscope");
1134 GURL valid_scope_2("http://www.example.com/test/othersubscope");
1135 std::vector<GURL> valid_scopes;
1136 valid_scopes.push_back(valid_scope_1);
1137 valid_scopes.push_back(valid_scope_2);
1138
1139 std::vector<GURL> all_origins;
1140 GURL valid_origin("https://chromium.org/");
1141 std::vector<GURL> valid_origin_list(1, valid_origin);
1142
1133 // Invalid URL, should kill worker (but in tests will only increase bad 1143 // 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
1134 // message count). 1144 // message count).
1135 version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, GURL())); 1145 version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, GURL()),
1146 valid_origin_list);
1136 base::RunLoop().RunUntilIdle(); 1147 base::RunLoop().RunUntilIdle();
1137 EXPECT_EQ(1, helper_->mock_render_process_host()->bad_msg_count()); 1148 EXPECT_EQ(1, helper_->mock_render_process_host()->bad_msg_count());
1138 EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size()); 1149 EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size());
1150 EXPECT_EQ(0u, version_->foreign_fetch_origins_.size());
1139 1151
1140 // URL outside the scope of the worker. 1152 // URL outside the scope of the worker.
1141 version_->OnRegisterForeignFetchScopes( 1153 version_->OnRegisterForeignFetchScopes(
1142 std::vector<GURL>(1, GURL("http://www.example.com/wrong"))); 1154 std::vector<GURL>(1, GURL("http://www.example.com/wrong")),
1155 valid_origin_list);
1143 base::RunLoop().RunUntilIdle(); 1156 base::RunLoop().RunUntilIdle();
1144 EXPECT_EQ(2, helper_->mock_render_process_host()->bad_msg_count()); 1157 EXPECT_EQ(2, helper_->mock_render_process_host()->bad_msg_count());
1145 EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size()); 1158 EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size());
1159 EXPECT_EQ(0u, version_->foreign_fetch_origins_.size());
1146 1160
1147 // URL on wrong origin. 1161 // URL on wrong origin.
1148 version_->OnRegisterForeignFetchScopes( 1162 version_->OnRegisterForeignFetchScopes(
1149 std::vector<GURL>(1, GURL("http://example.com/test/"))); 1163 std::vector<GURL>(1, GURL("http://example.com/test/")),
1164 valid_origin_list);
1150 base::RunLoop().RunUntilIdle(); 1165 base::RunLoop().RunUntilIdle();
1151 EXPECT_EQ(3, helper_->mock_render_process_host()->bad_msg_count()); 1166 EXPECT_EQ(3, helper_->mock_render_process_host()->bad_msg_count());
1152 EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size()); 1167 EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size());
1168 EXPECT_EQ(0u, version_->foreign_fetch_origins_.size());
1169
1170 // Invalid URL passed for origin.
1171 version_->OnRegisterForeignFetchScopes(valid_scopes,
1172 std::vector<GURL>(1, GURL()));
1173 base::RunLoop().RunUntilIdle();
1174 EXPECT_EQ(4, helper_->mock_render_process_host()->bad_msg_count());
1175 EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size());
1176 EXPECT_EQ(0u, version_->foreign_fetch_origins_.size());
1153 1177
1154 // Valid URL 1. 1178 // Valid URL 1.
1155 GURL valid_scope_1("http://www.example.com/test/subscope"); 1179 version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, valid_scope_1),
1156 version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, valid_scope_1)); 1180 all_origins);
1157 base::RunLoop().RunUntilIdle(); 1181 base::RunLoop().RunUntilIdle();
1158 EXPECT_EQ(3, helper_->mock_render_process_host()->bad_msg_count()); 1182 EXPECT_EQ(4, helper_->mock_render_process_host()->bad_msg_count());
1159 EXPECT_EQ(1u, version_->foreign_fetch_scopes_.size()); 1183 EXPECT_EQ(1u, version_->foreign_fetch_scopes_.size());
1160 EXPECT_EQ(valid_scope_1, version_->foreign_fetch_scopes_[0]); 1184 EXPECT_EQ(valid_scope_1, version_->foreign_fetch_scopes_[0]);
1185 EXPECT_EQ(0u, version_->foreign_fetch_origins_.size());
1161 1186
1162 // Valid URL 2. 1187 // Valid URL 2, with explicit origins.
1163 GURL valid_scope_2("http://www.example.com/test/subscope"); 1188 version_->OnRegisterForeignFetchScopes(valid_scopes, valid_origin_list);
1164 version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, valid_scope_2));
1165 base::RunLoop().RunUntilIdle(); 1189 base::RunLoop().RunUntilIdle();
1166 EXPECT_EQ(3, helper_->mock_render_process_host()->bad_msg_count()); 1190 EXPECT_EQ(4, helper_->mock_render_process_host()->bad_msg_count());
1167 EXPECT_EQ(2u, version_->foreign_fetch_scopes_.size()); 1191 EXPECT_EQ(2u, version_->foreign_fetch_scopes_.size());
1168 EXPECT_EQ(valid_scope_1, version_->foreign_fetch_scopes_[0]); 1192 EXPECT_EQ(valid_scope_1, version_->foreign_fetch_scopes_[0]);
1169 EXPECT_EQ(valid_scope_2, version_->foreign_fetch_scopes_[1]); 1193 EXPECT_EQ(valid_scope_2, version_->foreign_fetch_scopes_[1]);
1194 EXPECT_EQ(1u, version_->foreign_fetch_origins_.size());
1195 EXPECT_EQ(valid_origin, version_->foreign_fetch_origins_[0]);
1170 } 1196 }
1171 1197
1172 TEST_F(ServiceWorkerVersionTest, RendererCrashDuringEvent) { 1198 TEST_F(ServiceWorkerVersionTest, RendererCrashDuringEvent) {
1173 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_NETWORK; // dummy value 1199 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_NETWORK; // dummy value
1174 1200
1175 version_->SetStatus(ServiceWorkerVersion::ACTIVATED); 1201 version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
1176 version_->StartWorker(CreateReceiverOnCurrentThread(&status)); 1202 version_->StartWorker(CreateReceiverOnCurrentThread(&status));
1177 base::RunLoop().RunUntilIdle(); 1203 base::RunLoop().RunUntilIdle();
1178 EXPECT_EQ(SERVICE_WORKER_OK, status); 1204 EXPECT_EQ(SERVICE_WORKER_OK, status);
1179 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version_->running_status()); 1205 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version_->running_status());
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
1496 helper_->SimulateSendSimpleEventResult( 1522 helper_->SimulateSendSimpleEventResult(
1497 version_->embedded_worker()->embedded_worker_id(), request_id, 1523 version_->embedded_worker()->embedded_worker_id(), request_id,
1498 blink::WebServiceWorkerEventResultRejected); 1524 blink::WebServiceWorkerEventResultRejected);
1499 runner->Run(); 1525 runner->Run();
1500 1526
1501 // Verify callback was called with correct status. 1527 // Verify callback was called with correct status.
1502 EXPECT_EQ(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, status); 1528 EXPECT_EQ(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, status);
1503 } 1529 }
1504 1530
1505 } // namespace content 1531 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698