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

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: add url::Origin::operator== to make tests simpler 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 1044 matching lines...) Expand 10 before | Expand all | Expand 10 after
1055 TEST_F(ServiceWorkerVersionTest, RegisterForeignFetchScopes) { 1055 TEST_F(ServiceWorkerVersionTest, RegisterForeignFetchScopes) {
1056 version_->SetStatus(ServiceWorkerVersion::INSTALLING); 1056 version_->SetStatus(ServiceWorkerVersion::INSTALLING);
1057 // Start a worker. 1057 // Start a worker.
1058 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; 1058 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED;
1059 version_->StartWorker(CreateReceiverOnCurrentThread(&status)); 1059 version_->StartWorker(CreateReceiverOnCurrentThread(&status));
1060 base::RunLoop().RunUntilIdle(); 1060 base::RunLoop().RunUntilIdle();
1061 EXPECT_EQ(SERVICE_WORKER_OK, status); 1061 EXPECT_EQ(SERVICE_WORKER_OK, status);
1062 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version_->running_status()); 1062 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version_->running_status());
1063 EXPECT_EQ(0, helper_->mock_render_process_host()->bad_msg_count()); 1063 EXPECT_EQ(0, helper_->mock_render_process_host()->bad_msg_count());
1064 1064
1065 // Invalid URL, should kill worker (but in tests will only increase bad 1065 GURL valid_scope_1("http://www.example.com/test/subscope");
1066 GURL valid_scope_2("http://www.example.com/test/othersubscope");
1067 std::vector<GURL> valid_scopes;
1068 valid_scopes.push_back(valid_scope_1);
1069 valid_scopes.push_back(valid_scope_2);
1070
1071 std::vector<url::Origin> all_origins;
1072 url::Origin valid_origin(GURL("https://chromium.org/"));
1073 std::vector<url::Origin> valid_origin_list(1, valid_origin);
1074
1075 // Invalid subscope, should kill worker (but in tests will only increase bad
1066 // message count). 1076 // message count).
1067 version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, GURL())); 1077 version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, GURL()),
1078 valid_origin_list);
1068 base::RunLoop().RunUntilIdle(); 1079 base::RunLoop().RunUntilIdle();
1069 EXPECT_EQ(1, helper_->mock_render_process_host()->bad_msg_count()); 1080 EXPECT_EQ(1, helper_->mock_render_process_host()->bad_msg_count());
1070 EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size()); 1081 EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size());
1082 EXPECT_EQ(0u, version_->foreign_fetch_origins_.size());
1071 1083
1072 // URL outside the scope of the worker. 1084 // Subscope outside the scope of the worker.
1073 version_->OnRegisterForeignFetchScopes( 1085 version_->OnRegisterForeignFetchScopes(
1074 std::vector<GURL>(1, GURL("http://www.example.com/wrong"))); 1086 std::vector<GURL>(1, GURL("http://www.example.com/wrong")),
1087 valid_origin_list);
1075 base::RunLoop().RunUntilIdle(); 1088 base::RunLoop().RunUntilIdle();
1076 EXPECT_EQ(2, helper_->mock_render_process_host()->bad_msg_count()); 1089 EXPECT_EQ(2, helper_->mock_render_process_host()->bad_msg_count());
1077 EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size()); 1090 EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size());
1091 EXPECT_EQ(0u, version_->foreign_fetch_origins_.size());
1078 1092
1079 // URL on wrong origin. 1093 // Subscope on wrong origin.
1080 version_->OnRegisterForeignFetchScopes( 1094 version_->OnRegisterForeignFetchScopes(
1081 std::vector<GURL>(1, GURL("http://example.com/test/"))); 1095 std::vector<GURL>(1, GURL("http://example.com/test/")),
1096 valid_origin_list);
1082 base::RunLoop().RunUntilIdle(); 1097 base::RunLoop().RunUntilIdle();
1083 EXPECT_EQ(3, helper_->mock_render_process_host()->bad_msg_count()); 1098 EXPECT_EQ(3, helper_->mock_render_process_host()->bad_msg_count());
1084 EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size()); 1099 EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size());
1100 EXPECT_EQ(0u, version_->foreign_fetch_origins_.size());
1085 1101
1086 // Valid URL 1. 1102 // Invalid origin.
1087 GURL valid_scope_1("http://www.example.com/test/subscope"); 1103 version_->OnRegisterForeignFetchScopes(
1088 version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, valid_scope_1)); 1104 valid_scopes, std::vector<url::Origin>(1, url::Origin()));
1089 base::RunLoop().RunUntilIdle(); 1105 base::RunLoop().RunUntilIdle();
1090 EXPECT_EQ(3, helper_->mock_render_process_host()->bad_msg_count()); 1106 EXPECT_EQ(4, helper_->mock_render_process_host()->bad_msg_count());
1107 EXPECT_EQ(0u, version_->foreign_fetch_scopes_.size());
1108 EXPECT_EQ(0u, version_->foreign_fetch_origins_.size());
1109
1110 // Valid subscope, no origins.
1111 version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, valid_scope_1),
1112 all_origins);
1113 base::RunLoop().RunUntilIdle();
1114 EXPECT_EQ(4, helper_->mock_render_process_host()->bad_msg_count());
1091 EXPECT_EQ(1u, version_->foreign_fetch_scopes_.size()); 1115 EXPECT_EQ(1u, version_->foreign_fetch_scopes_.size());
1092 EXPECT_EQ(valid_scope_1, version_->foreign_fetch_scopes_[0]); 1116 EXPECT_EQ(valid_scope_1, version_->foreign_fetch_scopes_[0]);
1117 EXPECT_EQ(0u, version_->foreign_fetch_origins_.size());
1093 1118
1094 // Valid URL 2. 1119 // Valid subscope, explicit origins.
1095 GURL valid_scope_2("http://www.example.com/test/subscope"); 1120 version_->OnRegisterForeignFetchScopes(valid_scopes, valid_origin_list);
1096 version_->OnRegisterForeignFetchScopes(std::vector<GURL>(1, valid_scope_2));
1097 base::RunLoop().RunUntilIdle(); 1121 base::RunLoop().RunUntilIdle();
1098 EXPECT_EQ(3, helper_->mock_render_process_host()->bad_msg_count()); 1122 EXPECT_EQ(4, helper_->mock_render_process_host()->bad_msg_count());
1099 EXPECT_EQ(2u, version_->foreign_fetch_scopes_.size()); 1123 EXPECT_EQ(2u, version_->foreign_fetch_scopes_.size());
1100 EXPECT_EQ(valid_scope_1, version_->foreign_fetch_scopes_[0]); 1124 EXPECT_EQ(valid_scope_1, version_->foreign_fetch_scopes_[0]);
1101 EXPECT_EQ(valid_scope_2, version_->foreign_fetch_scopes_[1]); 1125 EXPECT_EQ(valid_scope_2, version_->foreign_fetch_scopes_[1]);
1126 EXPECT_EQ(1u, version_->foreign_fetch_origins_.size());
1127 EXPECT_EQ(valid_origin, version_->foreign_fetch_origins_[0]);
1102 } 1128 }
1103 1129
1104 TEST_F(ServiceWorkerVersionTest, RendererCrashDuringEvent) { 1130 TEST_F(ServiceWorkerVersionTest, RendererCrashDuringEvent) {
1105 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_NETWORK; // dummy value 1131 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_NETWORK; // dummy value
1106 1132
1107 version_->SetStatus(ServiceWorkerVersion::ACTIVATED); 1133 version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
1108 version_->StartWorker(CreateReceiverOnCurrentThread(&status)); 1134 version_->StartWorker(CreateReceiverOnCurrentThread(&status));
1109 base::RunLoop().RunUntilIdle(); 1135 base::RunLoop().RunUntilIdle();
1110 EXPECT_EQ(SERVICE_WORKER_OK, status); 1136 EXPECT_EQ(SERVICE_WORKER_OK, status);
1111 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version_->running_status()); 1137 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version_->running_status());
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
1428 helper_->SimulateSendSimpleEventResult( 1454 helper_->SimulateSendSimpleEventResult(
1429 version_->embedded_worker()->embedded_worker_id(), request_id, 1455 version_->embedded_worker()->embedded_worker_id(), request_id,
1430 blink::WebServiceWorkerEventResultRejected); 1456 blink::WebServiceWorkerEventResultRejected);
1431 runner->Run(); 1457 runner->Run();
1432 1458
1433 // Verify callback was called with correct status. 1459 // Verify callback was called with correct status.
1434 EXPECT_EQ(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, status); 1460 EXPECT_EQ(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, status);
1435 } 1461 }
1436 1462
1437 } // namespace content 1463 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/service_worker/service_worker_version.cc ('k') | content/common/service_worker/service_worker_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698