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

Side by Side Diff: content/browser/devtools/shared_worker_devtools_manager_unittest.cc

Issue 817653002: Split EmbeddedWorkerDevToolsManager into two for Shared- and ServiceWorker (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase + indent fixes Created 5 years, 12 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 "content/browser/devtools/embedded_worker_devtools_manager.h" 5 #include "content/browser/devtools/shared_worker_devtools_manager.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "content/browser/browser_thread_impl.h" 10 #include "content/browser/browser_thread_impl.h"
11 #include "content/browser/devtools/devtools_agent_host_impl.h" 11 #include "content/browser/devtools/devtools_agent_host_impl.h"
12 #include "content/browser/devtools/embedded_worker_devtools_agent_host.h" 12 #include "content/browser/devtools/shared_worker_devtools_agent_host.h"
13 #include "content/browser/shared_worker/shared_worker_instance.h" 13 #include "content/browser/shared_worker/shared_worker_instance.h"
14 #include "content/browser/shared_worker/worker_storage_partition.h" 14 #include "content/browser/shared_worker/worker_storage_partition.h"
15 #include "content/public/test/test_browser_context.h" 15 #include "content/public/test/test_browser_context.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 17
18 namespace content { 18 namespace content {
19 namespace { 19 namespace {
20 20
21 class TestDevToolsClientHost : public DevToolsAgentHostClient { 21 class TestDevToolsClientHost : public DevToolsAgentHostClient {
22 public: 22 public:
23 TestDevToolsClientHost() {} 23 TestDevToolsClientHost() {}
24 ~TestDevToolsClientHost() override {} 24 ~TestDevToolsClientHost() override {}
25 void DispatchProtocolMessage(DevToolsAgentHost* agent_host, 25 void DispatchProtocolMessage(DevToolsAgentHost* agent_host,
26 const std::string& message) override {} 26 const std::string& message) override {}
27 void AgentHostClosed(DevToolsAgentHost* agent_host, bool replaced) override {} 27 void AgentHostClosed(DevToolsAgentHost* agent_host, bool replaced) override {}
28 28
29 void InspectAgentHost(DevToolsAgentHost* agent_host) { 29 void InspectAgentHost(DevToolsAgentHost* agent_host) {
30 if (agent_host_.get()) 30 if (agent_host_.get())
31 agent_host_->DetachClient(); 31 agent_host_->DetachClient();
32 agent_host_ = agent_host; 32 agent_host_ = agent_host;
33 if (agent_host_.get()) 33 if (agent_host_.get())
34 agent_host_->AttachClient(this); 34 agent_host_->AttachClient(this);
35 } 35 }
36 private: 36 private:
37 scoped_refptr<DevToolsAgentHost> agent_host_; 37 scoped_refptr<DevToolsAgentHost> agent_host_;
38 DISALLOW_COPY_AND_ASSIGN(TestDevToolsClientHost); 38 DISALLOW_COPY_AND_ASSIGN(TestDevToolsClientHost);
39 }; 39 };
40 } 40 } // namespace
41 41
42 class EmbeddedWorkerDevToolsManagerTest : public testing::Test { 42 class SharedWorkerDevToolsManagerTest : public testing::Test {
43 public: 43 public:
44 typedef EmbeddedWorkerDevToolsAgentHost::WorkerState WorkerState; 44 typedef SharedWorkerDevToolsAgentHost::WorkerState WorkerState;
45 45
46 EmbeddedWorkerDevToolsManagerTest() 46 SharedWorkerDevToolsManagerTest()
47 : ui_thread_(BrowserThread::UI, &message_loop_), 47 : ui_thread_(BrowserThread::UI, &message_loop_),
48 browser_context_(new TestBrowserContext()), 48 browser_context_(new TestBrowserContext()),
49 partition_( 49 partition_(
50 new WorkerStoragePartition(browser_context_->GetRequestContext(), 50 new WorkerStoragePartition(browser_context_->GetRequestContext(),
51 NULL, 51 NULL,
52 NULL, 52 NULL,
53 NULL, 53 NULL,
54 NULL, 54 NULL,
55 NULL, 55 NULL,
56 NULL, 56 NULL,
57 NULL)), 57 NULL)),
58 partition_id_(*partition_.get()) {} 58 partition_id_(*partition_.get()) {}
59 59
60 protected: 60 protected:
61 void SetUp() override { 61 void SetUp() override {
62 manager_ = EmbeddedWorkerDevToolsManager::GetInstance(); 62 manager_ = SharedWorkerDevToolsManager::GetInstance();
63 } 63 }
64 void TearDown() override { 64 void TearDown() override {
65 EmbeddedWorkerDevToolsManager::GetInstance()->ResetForTesting(); 65 SharedWorkerDevToolsManager::GetInstance()->ResetForTesting();
66 } 66 }
67 67
68 void CheckWorkerState(int worker_process_id, 68 void CheckWorkerState(int worker_process_id,
69 int worker_route_id, 69 int worker_route_id,
70 WorkerState state) { 70 WorkerState state) {
71 const EmbeddedWorkerDevToolsManager::WorkerId id(worker_process_id, 71 const SharedWorkerDevToolsManager::WorkerId id(worker_process_id,
72 worker_route_id); 72 worker_route_id);
73 EmbeddedWorkerDevToolsManager::AgentHostMap::iterator it = 73 SharedWorkerDevToolsManager::AgentHostMap::iterator it =
74 manager_->workers_.find(id); 74 manager_->workers().find(id);
75 EXPECT_TRUE(manager_->workers_.end() != it); 75 EXPECT_TRUE(manager_->workers_.end() != it);
76 EXPECT_EQ(state, it->second->state_); 76 EXPECT_EQ(state, it->second->state_);
77 } 77 }
78 78
79 void CheckWorkerNotExist(int worker_process_id, int worker_route_id) { 79 void CheckWorkerNotExist(int worker_process_id, int worker_route_id) {
80 const EmbeddedWorkerDevToolsManager::WorkerId id(worker_process_id, 80 const SharedWorkerDevToolsManager::WorkerId id(worker_process_id,
81 worker_route_id); 81 worker_route_id);
82 EXPECT_TRUE(manager_->workers_.end() == manager_->workers_.find(id)); 82 EXPECT_TRUE(manager_->workers_.end() == manager_->workers_.find(id));
83 } 83 }
84 84
85 void CheckWorkerCount(size_t size) { 85 void CheckWorkerCount(size_t size) {
86 EXPECT_EQ(size, manager_->workers_.size()); 86 EXPECT_EQ(size, manager_->workers_.size());
87 } 87 }
88 88
89 base::MessageLoopForIO message_loop_; 89 base::MessageLoopForIO message_loop_;
90 BrowserThreadImpl ui_thread_; 90 BrowserThreadImpl ui_thread_;
91 scoped_ptr<TestBrowserContext> browser_context_; 91 scoped_ptr<TestBrowserContext> browser_context_;
92 scoped_ptr<WorkerStoragePartition> partition_; 92 scoped_ptr<WorkerStoragePartition> partition_;
93 const WorkerStoragePartitionId partition_id_; 93 const WorkerStoragePartitionId partition_id_;
94 EmbeddedWorkerDevToolsManager* manager_; 94 SharedWorkerDevToolsManager* manager_;
95 }; 95 };
96 96
97 TEST_F(EmbeddedWorkerDevToolsManagerTest, BasicTest) { 97 TEST_F(SharedWorkerDevToolsManagerTest, BasicTest) {
98 scoped_refptr<DevToolsAgentHostImpl> agent_host; 98 scoped_refptr<DevToolsAgentHostImpl> agent_host;
99 99
100 SharedWorkerInstance instance1(GURL("http://example.com/w.js"), 100 SharedWorkerInstance instance1(GURL("http://example.com/w.js"),
101 base::string16(), 101 base::string16(),
102 base::string16(), 102 base::string16(),
103 blink::WebContentSecurityPolicyTypeReport, 103 blink::WebContentSecurityPolicyTypeReport,
104 browser_context_->GetResourceContext(), 104 browser_context_->GetResourceContext(),
105 partition_id_); 105 partition_id_);
106 106
107 agent_host = manager_->GetDevToolsAgentHostForWorker(1, 1); 107 agent_host = manager_->GetDevToolsAgentHostForWorker(1, 1);
108 EXPECT_FALSE(agent_host.get()); 108 EXPECT_FALSE(agent_host.get());
109 109
110 // Created -> Started -> Destroyed 110 // Created -> Started -> Destroyed
111 CheckWorkerNotExist(1, 1); 111 CheckWorkerNotExist(1, 1);
112 manager_->SharedWorkerCreated(1, 1, instance1); 112 manager_->WorkerCreated(1, 1, instance1);
113 CheckWorkerState(1, 1, WorkerState::WORKER_UNINSPECTED); 113 CheckWorkerState(1, 1, WorkerState::WORKER_UNINSPECTED);
114 manager_->WorkerReadyForInspection(1, 1); 114 manager_->WorkerReadyForInspection(1, 1);
115 CheckWorkerState(1, 1, WorkerState::WORKER_UNINSPECTED); 115 CheckWorkerState(1, 1, WorkerState::WORKER_UNINSPECTED);
116 manager_->WorkerDestroyed(1, 1); 116 manager_->WorkerDestroyed(1, 1);
117 CheckWorkerNotExist(1, 1); 117 CheckWorkerNotExist(1, 1);
118 118
119 // Created -> GetDevToolsAgentHost -> Started -> Destroyed 119 // Created -> GetDevToolsAgentHost -> Started -> Destroyed
120 CheckWorkerNotExist(1, 2); 120 CheckWorkerNotExist(1, 2);
121 manager_->SharedWorkerCreated(1, 2, instance1); 121 manager_->WorkerCreated(1, 2, instance1);
122 CheckWorkerState(1, 2, WorkerState::WORKER_UNINSPECTED); 122 CheckWorkerState(1, 2, WorkerState::WORKER_UNINSPECTED);
123 agent_host = manager_->GetDevToolsAgentHostForWorker(1, 2); 123 agent_host = manager_->GetDevToolsAgentHostForWorker(1, 2);
124 EXPECT_TRUE(agent_host.get()); 124 EXPECT_TRUE(agent_host.get());
125 CheckWorkerState(1, 2, WorkerState::WORKER_UNINSPECTED); 125 CheckWorkerState(1, 2, WorkerState::WORKER_UNINSPECTED);
126 EXPECT_EQ(agent_host.get(), manager_->GetDevToolsAgentHostForWorker(1, 2)); 126 EXPECT_EQ(agent_host.get(), manager_->GetDevToolsAgentHostForWorker(1, 2));
127 manager_->WorkerReadyForInspection(1, 2); 127 manager_->WorkerReadyForInspection(1, 2);
128 CheckWorkerState(1, 2, WorkerState::WORKER_UNINSPECTED); 128 CheckWorkerState(1, 2, WorkerState::WORKER_UNINSPECTED);
129 manager_->WorkerDestroyed(1, 2); 129 manager_->WorkerDestroyed(1, 2);
130 CheckWorkerState(1, 2, WorkerState::WORKER_TERMINATED); 130 CheckWorkerState(1, 2, WorkerState::WORKER_TERMINATED);
131 agent_host = NULL; 131 agent_host = NULL;
132 CheckWorkerNotExist(1, 2); 132 CheckWorkerNotExist(1, 2);
133 133
134 // Created -> Started -> GetDevToolsAgentHost -> Destroyed 134 // Created -> Started -> GetDevToolsAgentHost -> Destroyed
135 CheckWorkerNotExist(1, 3); 135 CheckWorkerNotExist(1, 3);
136 manager_->SharedWorkerCreated(1, 3, instance1); 136 manager_->WorkerCreated(1, 3, instance1);
137 CheckWorkerState(1, 3, WorkerState::WORKER_UNINSPECTED); 137 CheckWorkerState(1, 3, WorkerState::WORKER_UNINSPECTED);
138 manager_->WorkerReadyForInspection(1, 3); 138 manager_->WorkerReadyForInspection(1, 3);
139 CheckWorkerState(1, 3, WorkerState::WORKER_UNINSPECTED); 139 CheckWorkerState(1, 3, WorkerState::WORKER_UNINSPECTED);
140 agent_host = manager_->GetDevToolsAgentHostForWorker(1, 3); 140 agent_host = manager_->GetDevToolsAgentHostForWorker(1, 3);
141 EXPECT_TRUE(agent_host.get()); 141 EXPECT_TRUE(agent_host.get());
142 CheckWorkerState(1, 3, WorkerState::WORKER_UNINSPECTED); 142 CheckWorkerState(1, 3, WorkerState::WORKER_UNINSPECTED);
143 manager_->WorkerDestroyed(1, 3); 143 manager_->WorkerDestroyed(1, 3);
144 CheckWorkerState(1, 3, WorkerState::WORKER_TERMINATED); 144 CheckWorkerState(1, 3, WorkerState::WORKER_TERMINATED);
145 agent_host = NULL; 145 agent_host = NULL;
146 CheckWorkerNotExist(1, 3); 146 CheckWorkerNotExist(1, 3);
147 147
148 // Created -> Destroyed 148 // Created -> Destroyed
149 CheckWorkerNotExist(1, 4); 149 CheckWorkerNotExist(1, 4);
150 manager_->SharedWorkerCreated(1, 4, instance1); 150 manager_->WorkerCreated(1, 4, instance1);
151 CheckWorkerState(1, 4, WorkerState::WORKER_UNINSPECTED); 151 CheckWorkerState(1, 4, WorkerState::WORKER_UNINSPECTED);
152 manager_->WorkerDestroyed(1, 4); 152 manager_->WorkerDestroyed(1, 4);
153 CheckWorkerNotExist(1, 4); 153 CheckWorkerNotExist(1, 4);
154 154
155 // Created -> GetDevToolsAgentHost -> Destroyed 155 // Created -> GetDevToolsAgentHost -> Destroyed
156 CheckWorkerNotExist(1, 5); 156 CheckWorkerNotExist(1, 5);
157 manager_->SharedWorkerCreated(1, 5, instance1); 157 manager_->WorkerCreated(1, 5, instance1);
158 CheckWorkerState(1, 5, WorkerState::WORKER_UNINSPECTED); 158 CheckWorkerState(1, 5, WorkerState::WORKER_UNINSPECTED);
159 agent_host = manager_->GetDevToolsAgentHostForWorker(1, 5); 159 agent_host = manager_->GetDevToolsAgentHostForWorker(1, 5);
160 EXPECT_TRUE(agent_host.get()); 160 EXPECT_TRUE(agent_host.get());
161 CheckWorkerState(1, 5, WorkerState::WORKER_UNINSPECTED); 161 CheckWorkerState(1, 5, WorkerState::WORKER_UNINSPECTED);
162 manager_->WorkerDestroyed(1, 5); 162 manager_->WorkerDestroyed(1, 5);
163 CheckWorkerState(1, 5, WorkerState::WORKER_TERMINATED); 163 CheckWorkerState(1, 5, WorkerState::WORKER_TERMINATED);
164 agent_host = NULL; 164 agent_host = NULL;
165 CheckWorkerNotExist(1, 5); 165 CheckWorkerNotExist(1, 5);
166 166
167 // Created -> GetDevToolsAgentHost -> Free agent_host -> Destroyed 167 // Created -> GetDevToolsAgentHost -> Free agent_host -> Destroyed
168 CheckWorkerNotExist(1, 6); 168 CheckWorkerNotExist(1, 6);
169 manager_->SharedWorkerCreated(1, 6, instance1); 169 manager_->WorkerCreated(1, 6, instance1);
170 CheckWorkerState(1, 6, WorkerState::WORKER_UNINSPECTED); 170 CheckWorkerState(1, 6, WorkerState::WORKER_UNINSPECTED);
171 agent_host = manager_->GetDevToolsAgentHostForWorker(1, 6); 171 agent_host = manager_->GetDevToolsAgentHostForWorker(1, 6);
172 EXPECT_TRUE(agent_host.get()); 172 EXPECT_TRUE(agent_host.get());
173 CheckWorkerState(1, 6, WorkerState::WORKER_UNINSPECTED); 173 CheckWorkerState(1, 6, WorkerState::WORKER_UNINSPECTED);
174 agent_host = NULL; 174 agent_host = NULL;
175 manager_->WorkerDestroyed(1, 6); 175 manager_->WorkerDestroyed(1, 6);
176 CheckWorkerNotExist(1, 6); 176 CheckWorkerNotExist(1, 6);
177 } 177 }
178 178
179 TEST_F(EmbeddedWorkerDevToolsManagerTest, AttachTest) { 179 TEST_F(SharedWorkerDevToolsManagerTest, AttachTest) {
180 scoped_refptr<DevToolsAgentHostImpl> agent_host1; 180 scoped_refptr<DevToolsAgentHostImpl> agent_host1;
181 scoped_refptr<DevToolsAgentHostImpl> agent_host2; 181 scoped_refptr<DevToolsAgentHostImpl> agent_host2;
182 182
183 SharedWorkerInstance instance1(GURL("http://example.com/w1.js"), 183 SharedWorkerInstance instance1(GURL("http://example.com/w1.js"),
184 base::string16(), 184 base::string16(),
185 base::string16(), 185 base::string16(),
186 blink::WebContentSecurityPolicyTypeReport, 186 blink::WebContentSecurityPolicyTypeReport,
187 browser_context_->GetResourceContext(), 187 browser_context_->GetResourceContext(),
188 partition_id_); 188 partition_id_);
189 SharedWorkerInstance instance2(GURL("http://example.com/w2.js"), 189 SharedWorkerInstance instance2(GURL("http://example.com/w2.js"),
190 base::string16(), 190 base::string16(),
191 base::string16(), 191 base::string16(),
192 blink::WebContentSecurityPolicyTypeReport, 192 blink::WebContentSecurityPolicyTypeReport,
193 browser_context_->GetResourceContext(), 193 browser_context_->GetResourceContext(),
194 partition_id_); 194 partition_id_);
195 195
196 // Created -> GetDevToolsAgentHost -> Register -> Started -> Destroyed 196 // Created -> GetDevToolsAgentHost -> Register -> Started -> Destroyed
197 scoped_ptr<TestDevToolsClientHost> client_host1(new TestDevToolsClientHost()); 197 scoped_ptr<TestDevToolsClientHost> client_host1(new TestDevToolsClientHost());
198 CheckWorkerNotExist(2, 1); 198 CheckWorkerNotExist(2, 1);
199 manager_->SharedWorkerCreated(2, 1, instance1); 199 manager_->WorkerCreated(2, 1, instance1);
200 CheckWorkerState(2, 1, WorkerState::WORKER_UNINSPECTED); 200 CheckWorkerState(2, 1, WorkerState::WORKER_UNINSPECTED);
201 agent_host1 = manager_->GetDevToolsAgentHostForWorker(2, 1); 201 agent_host1 = manager_->GetDevToolsAgentHostForWorker(2, 1);
202 EXPECT_TRUE(agent_host1.get()); 202 EXPECT_TRUE(agent_host1.get());
203 CheckWorkerState(2, 1, WorkerState::WORKER_UNINSPECTED); 203 CheckWorkerState(2, 1, WorkerState::WORKER_UNINSPECTED);
204 EXPECT_EQ(agent_host1.get(), manager_->GetDevToolsAgentHostForWorker(2, 1)); 204 EXPECT_EQ(agent_host1.get(), manager_->GetDevToolsAgentHostForWorker(2, 1));
205 client_host1->InspectAgentHost(agent_host1.get()); 205 client_host1->InspectAgentHost(agent_host1.get());
206 CheckWorkerState(2, 1, WorkerState::WORKER_INSPECTED); 206 CheckWorkerState(2, 1, WorkerState::WORKER_INSPECTED);
207 manager_->WorkerReadyForInspection(2, 1); 207 manager_->WorkerReadyForInspection(2, 1);
208 CheckWorkerState(2, 1, WorkerState::WORKER_INSPECTED); 208 CheckWorkerState(2, 1, WorkerState::WORKER_INSPECTED);
209 manager_->WorkerDestroyed(2, 1); 209 manager_->WorkerDestroyed(2, 1);
210 CheckWorkerState(2, 1, WorkerState::WORKER_TERMINATED); 210 CheckWorkerState(2, 1, WorkerState::WORKER_TERMINATED);
211 EXPECT_EQ(agent_host1.get(), manager_->GetDevToolsAgentHostForWorker(2, 1)); 211 EXPECT_EQ(agent_host1.get(), manager_->GetDevToolsAgentHostForWorker(2, 1));
212 212
213 // Created -> Started -> GetDevToolsAgentHost -> Register -> Destroyed 213 // Created -> Started -> GetDevToolsAgentHost -> Register -> Destroyed
214 scoped_ptr<TestDevToolsClientHost> client_host2(new TestDevToolsClientHost()); 214 scoped_ptr<TestDevToolsClientHost> client_host2(new TestDevToolsClientHost());
215 manager_->SharedWorkerCreated(2, 2, instance2); 215 manager_->WorkerCreated(2, 2, instance2);
216 CheckWorkerState(2, 2, WorkerState::WORKER_UNINSPECTED); 216 CheckWorkerState(2, 2, WorkerState::WORKER_UNINSPECTED);
217 manager_->WorkerReadyForInspection(2, 2); 217 manager_->WorkerReadyForInspection(2, 2);
218 CheckWorkerState(2, 2, WorkerState::WORKER_UNINSPECTED); 218 CheckWorkerState(2, 2, WorkerState::WORKER_UNINSPECTED);
219 agent_host2 = manager_->GetDevToolsAgentHostForWorker(2, 2); 219 agent_host2 = manager_->GetDevToolsAgentHostForWorker(2, 2);
220 EXPECT_TRUE(agent_host2.get()); 220 EXPECT_TRUE(agent_host2.get());
221 EXPECT_NE(agent_host1.get(), agent_host2.get()); 221 EXPECT_NE(agent_host1.get(), agent_host2.get());
222 EXPECT_EQ(agent_host2.get(), manager_->GetDevToolsAgentHostForWorker(2, 2)); 222 EXPECT_EQ(agent_host2.get(), manager_->GetDevToolsAgentHostForWorker(2, 2));
223 CheckWorkerState(2, 2, WorkerState::WORKER_UNINSPECTED); 223 CheckWorkerState(2, 2, WorkerState::WORKER_UNINSPECTED);
224 client_host2->InspectAgentHost(agent_host2.get()); 224 client_host2->InspectAgentHost(agent_host2.get());
225 CheckWorkerState(2, 2, WorkerState::WORKER_INSPECTED); 225 CheckWorkerState(2, 2, WorkerState::WORKER_INSPECTED);
226 manager_->WorkerDestroyed(2, 2); 226 manager_->WorkerDestroyed(2, 2);
227 CheckWorkerState(2, 2, WorkerState::WORKER_TERMINATED); 227 CheckWorkerState(2, 2, WorkerState::WORKER_TERMINATED);
228 EXPECT_EQ(agent_host2.get(), manager_->GetDevToolsAgentHostForWorker(2, 2)); 228 EXPECT_EQ(agent_host2.get(), manager_->GetDevToolsAgentHostForWorker(2, 2));
229 229
230 // Re-created -> Started -> ClientHostClosing -> Destroyed 230 // Re-created -> Started -> ClientHostClosing -> Destroyed
231 CheckWorkerState(2, 1, WorkerState::WORKER_TERMINATED); 231 CheckWorkerState(2, 1, WorkerState::WORKER_TERMINATED);
232 manager_->SharedWorkerCreated(2, 3, instance1); 232 manager_->WorkerCreated(2, 3, instance1);
233 CheckWorkerNotExist(2, 1); 233 CheckWorkerNotExist(2, 1);
234 CheckWorkerState(2, 3, WorkerState::WORKER_PAUSED_FOR_REATTACH); 234 CheckWorkerState(2, 3, WorkerState::WORKER_PAUSED_FOR_REATTACH);
235 EXPECT_EQ(agent_host1.get(), manager_->GetDevToolsAgentHostForWorker(2, 3)); 235 EXPECT_EQ(agent_host1.get(), manager_->GetDevToolsAgentHostForWorker(2, 3));
236 manager_->WorkerReadyForInspection(2, 3); 236 manager_->WorkerReadyForInspection(2, 3);
237 CheckWorkerState(2, 3, WorkerState::WORKER_INSPECTED); 237 CheckWorkerState(2, 3, WorkerState::WORKER_INSPECTED);
238 client_host1->InspectAgentHost(NULL); 238 client_host1->InspectAgentHost(NULL);
239 manager_->WorkerDestroyed(2, 3); 239 manager_->WorkerDestroyed(2, 3);
240 CheckWorkerState(2, 3, WorkerState::WORKER_TERMINATED); 240 CheckWorkerState(2, 3, WorkerState::WORKER_TERMINATED);
241 agent_host1 = NULL; 241 agent_host1 = NULL;
242 CheckWorkerNotExist(2, 3); 242 CheckWorkerNotExist(2, 3);
243 243
244 // Re-created -> Destroyed 244 // Re-created -> Destroyed
245 CheckWorkerState(2, 2, WorkerState::WORKER_TERMINATED); 245 CheckWorkerState(2, 2, WorkerState::WORKER_TERMINATED);
246 manager_->SharedWorkerCreated(2, 4, instance2); 246 manager_->WorkerCreated(2, 4, instance2);
247 CheckWorkerNotExist(2, 2); 247 CheckWorkerNotExist(2, 2);
248 CheckWorkerState(2, 4, WorkerState::WORKER_PAUSED_FOR_REATTACH); 248 CheckWorkerState(2, 4, WorkerState::WORKER_PAUSED_FOR_REATTACH);
249 EXPECT_EQ(agent_host2.get(), manager_->GetDevToolsAgentHostForWorker(2, 4)); 249 EXPECT_EQ(agent_host2.get(), manager_->GetDevToolsAgentHostForWorker(2, 4));
250 manager_->WorkerDestroyed(2, 4); 250 manager_->WorkerDestroyed(2, 4);
251 CheckWorkerNotExist(2, 2); 251 CheckWorkerNotExist(2, 2);
252 CheckWorkerState(2, 4, WorkerState::WORKER_TERMINATED); 252 CheckWorkerState(2, 4, WorkerState::WORKER_TERMINATED);
253 253
254 // Re-created -> ClientHostClosing -> Destroyed 254 // Re-created -> ClientHostClosing -> Destroyed
255 manager_->SharedWorkerCreated(2, 5, instance2); 255 manager_->WorkerCreated(2, 5, instance2);
256 CheckWorkerNotExist(2, 2); 256 CheckWorkerNotExist(2, 2);
257 CheckWorkerState(2, 5, WorkerState::WORKER_PAUSED_FOR_REATTACH); 257 CheckWorkerState(2, 5, WorkerState::WORKER_PAUSED_FOR_REATTACH);
258 EXPECT_EQ(agent_host2.get(), manager_->GetDevToolsAgentHostForWorker(2, 5)); 258 EXPECT_EQ(agent_host2.get(), manager_->GetDevToolsAgentHostForWorker(2, 5));
259 client_host2->InspectAgentHost(NULL); 259 client_host2->InspectAgentHost(NULL);
260 CheckWorkerCount(1); 260 CheckWorkerCount(1);
261 agent_host2 = NULL; 261 agent_host2 = NULL;
262 CheckWorkerCount(1); 262 CheckWorkerCount(1);
263 manager_->WorkerDestroyed(2, 5); 263 manager_->WorkerDestroyed(2, 5);
264 CheckWorkerCount(0); 264 CheckWorkerCount(0);
265 } 265 }
266 266
267 TEST_F(EmbeddedWorkerDevToolsManagerTest, ReattachTest) { 267 TEST_F(SharedWorkerDevToolsManagerTest, ReattachTest) {
268 SharedWorkerInstance instance(GURL("http://example.com/w3.js"), 268 SharedWorkerInstance instance(GURL("http://example.com/w3.js"),
269 base::string16(), 269 base::string16(),
270 base::string16(), 270 base::string16(),
271 blink::WebContentSecurityPolicyTypeReport, 271 blink::WebContentSecurityPolicyTypeReport,
272 browser_context_->GetResourceContext(), 272 browser_context_->GetResourceContext(),
273 partition_id_); 273 partition_id_);
274 scoped_ptr<TestDevToolsClientHost> client_host(new TestDevToolsClientHost()); 274 scoped_ptr<TestDevToolsClientHost> client_host(new TestDevToolsClientHost());
275 // Created -> GetDevToolsAgentHost -> Register -> Destroyed 275 // Created -> GetDevToolsAgentHost -> Register -> Destroyed
276 manager_->SharedWorkerCreated(3, 1, instance); 276 manager_->WorkerCreated(3, 1, instance);
277 CheckWorkerState(3, 1, WorkerState::WORKER_UNINSPECTED); 277 CheckWorkerState(3, 1, WorkerState::WORKER_UNINSPECTED);
278 scoped_refptr<DevToolsAgentHost> agent_host( 278 scoped_refptr<DevToolsAgentHost> agent_host(
279 manager_->GetDevToolsAgentHostForWorker(3, 1)); 279 manager_->GetDevToolsAgentHostForWorker(3, 1));
280 EXPECT_TRUE(agent_host.get()); 280 EXPECT_TRUE(agent_host.get());
281 CheckWorkerState(3, 1, WorkerState::WORKER_UNINSPECTED); 281 CheckWorkerState(3, 1, WorkerState::WORKER_UNINSPECTED);
282 client_host->InspectAgentHost(agent_host.get()); 282 client_host->InspectAgentHost(agent_host.get());
283 CheckWorkerState(3, 1, WorkerState::WORKER_INSPECTED); 283 CheckWorkerState(3, 1, WorkerState::WORKER_INSPECTED);
284 manager_->WorkerDestroyed(3, 1); 284 manager_->WorkerDestroyed(3, 1);
285 CheckWorkerState(3, 1, WorkerState::WORKER_TERMINATED); 285 CheckWorkerState(3, 1, WorkerState::WORKER_TERMINATED);
286 // ClientHostClosing -> Re-created -> release agent_host -> Destroyed 286 // ClientHostClosing -> Re-created -> release agent_host -> Destroyed
287 client_host->InspectAgentHost(NULL); 287 client_host->InspectAgentHost(NULL);
288 CheckWorkerState(3, 1, WorkerState::WORKER_TERMINATED); 288 CheckWorkerState(3, 1, WorkerState::WORKER_TERMINATED);
289 manager_->SharedWorkerCreated(3, 2, instance); 289 manager_->WorkerCreated(3, 2, instance);
290 CheckWorkerState(3, 2, WorkerState::WORKER_UNINSPECTED); 290 CheckWorkerState(3, 2, WorkerState::WORKER_UNINSPECTED);
291 agent_host = NULL; 291 agent_host = NULL;
292 CheckWorkerState(3, 2, WorkerState::WORKER_UNINSPECTED); 292 CheckWorkerState(3, 2, WorkerState::WORKER_UNINSPECTED);
293 manager_->WorkerDestroyed(3, 2); 293 manager_->WorkerDestroyed(3, 2);
294 CheckWorkerNotExist(3, 2); 294 CheckWorkerNotExist(3, 2);
295 CheckWorkerCount(0); 295 CheckWorkerCount(0);
296 } 296 }
297 297
298 } // namespace content 298 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/devtools/shared_worker_devtools_manager.cc ('k') | content/browser/devtools/worker_devtools_agent_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698