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 #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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |