OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
7 #include "base/time/time.h" | 7 #include "base/time/time.h" |
8 #include "content/browser/devtools/devtools_manager.h" | 8 #include "content/browser/devtools/devtools_manager.h" |
9 #include "content/browser/devtools/embedded_worker_devtools_manager.h" | 9 #include "content/browser/devtools/embedded_worker_devtools_manager.h" |
10 #include "content/browser/devtools/render_view_devtools_agent_host.h" | 10 #include "content/browser/devtools/render_view_devtools_agent_host.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 namespace content { | 29 namespace content { |
30 namespace { | 30 namespace { |
31 | 31 |
32 class TestDevToolsClientHost : public DevToolsAgentHostClient { | 32 class TestDevToolsClientHost : public DevToolsAgentHostClient { |
33 public: | 33 public: |
34 TestDevToolsClientHost() | 34 TestDevToolsClientHost() |
35 : last_sent_message(NULL), | 35 : last_sent_message(NULL), |
36 closed_(false) { | 36 closed_(false) { |
37 } | 37 } |
38 | 38 |
39 virtual ~TestDevToolsClientHost() { | 39 ~TestDevToolsClientHost() override { EXPECT_TRUE(closed_); } |
40 EXPECT_TRUE(closed_); | |
41 } | |
42 | 40 |
43 void Close() { | 41 void Close() { |
44 EXPECT_FALSE(closed_); | 42 EXPECT_FALSE(closed_); |
45 close_counter++; | 43 close_counter++; |
46 agent_host_->DetachClient(); | 44 agent_host_->DetachClient(); |
47 closed_ = true; | 45 closed_ = true; |
48 } | 46 } |
49 | 47 |
50 virtual void AgentHostClosed( | 48 void AgentHostClosed(DevToolsAgentHost* agent_host, bool replaced) override { |
51 DevToolsAgentHost* agent_host, bool replaced) override { | |
52 FAIL(); | 49 FAIL(); |
53 } | 50 } |
54 | 51 |
55 virtual void DispatchProtocolMessage( | 52 void DispatchProtocolMessage(DevToolsAgentHost* agent_host, |
56 DevToolsAgentHost* agent_host, const std::string& message) override { | 53 const std::string& message) override { |
57 last_sent_message = &message; | 54 last_sent_message = &message; |
58 } | 55 } |
59 | 56 |
60 void InspectAgentHost(DevToolsAgentHost* agent_host) { | 57 void InspectAgentHost(DevToolsAgentHost* agent_host) { |
61 agent_host_ = agent_host; | 58 agent_host_ = agent_host; |
62 agent_host_->AttachClient(this); | 59 agent_host_->AttachClient(this); |
63 } | 60 } |
64 | 61 |
65 DevToolsAgentHost* agent_host() { return agent_host_.get(); } | 62 DevToolsAgentHost* agent_host() { return agent_host_.get(); } |
66 | 63 |
(...skipping 13 matching lines...) Expand all Loading... |
80 }; | 77 }; |
81 | 78 |
82 int TestDevToolsClientHost::close_counter = 0; | 79 int TestDevToolsClientHost::close_counter = 0; |
83 | 80 |
84 | 81 |
85 class TestWebContentsDelegate : public WebContentsDelegate { | 82 class TestWebContentsDelegate : public WebContentsDelegate { |
86 public: | 83 public: |
87 TestWebContentsDelegate() : renderer_unresponsive_received_(false) {} | 84 TestWebContentsDelegate() : renderer_unresponsive_received_(false) {} |
88 | 85 |
89 // Notification that the contents is hung. | 86 // Notification that the contents is hung. |
90 virtual void RendererUnresponsive(WebContents* source) override { | 87 void RendererUnresponsive(WebContents* source) override { |
91 renderer_unresponsive_received_ = true; | 88 renderer_unresponsive_received_ = true; |
92 } | 89 } |
93 | 90 |
94 bool renderer_unresponsive_received() const { | 91 bool renderer_unresponsive_received() const { |
95 return renderer_unresponsive_received_; | 92 return renderer_unresponsive_received_; |
96 } | 93 } |
97 | 94 |
98 private: | 95 private: |
99 bool renderer_unresponsive_received_; | 96 bool renderer_unresponsive_received_; |
100 }; | 97 }; |
101 | 98 |
102 class TestTarget : public DevToolsTarget { | 99 class TestTarget : public DevToolsTarget { |
103 public: | 100 public: |
104 explicit TestTarget(scoped_refptr<DevToolsAgentHost> agent_host) | 101 explicit TestTarget(scoped_refptr<DevToolsAgentHost> agent_host) |
105 : agent_host_(agent_host) {} | 102 : agent_host_(agent_host) {} |
106 virtual ~TestTarget() {} | 103 ~TestTarget() override {} |
107 | 104 |
108 virtual std::string GetId() const override { return agent_host_->GetId(); } | 105 std::string GetId() const override { return agent_host_->GetId(); } |
109 virtual std::string GetParentId() const override { return std::string(); } | 106 std::string GetParentId() const override { return std::string(); } |
110 virtual std::string GetType() const override { return std::string(); } | 107 std::string GetType() const override { return std::string(); } |
111 virtual std::string GetTitle() const override { | 108 std::string GetTitle() const override { return agent_host_->GetTitle(); } |
112 return agent_host_->GetTitle(); | 109 std::string GetDescription() const override { return std::string(); } |
113 } | 110 GURL GetURL() const override { return agent_host_->GetURL(); } |
114 virtual std::string GetDescription() const override { return std::string(); } | 111 GURL GetFaviconURL() const override { return GURL(); } |
115 virtual GURL GetURL() const override { return agent_host_->GetURL(); } | 112 base::TimeTicks GetLastActivityTime() const override { |
116 virtual GURL GetFaviconURL() const override { return GURL(); } | |
117 virtual base::TimeTicks GetLastActivityTime() const override { | |
118 return base::TimeTicks(); | 113 return base::TimeTicks(); |
119 } | 114 } |
120 virtual bool IsAttached() const override { return agent_host_->IsAttached(); } | 115 bool IsAttached() const override { return agent_host_->IsAttached(); } |
121 virtual scoped_refptr<DevToolsAgentHost> GetAgentHost() const override { | 116 scoped_refptr<DevToolsAgentHost> GetAgentHost() const override { |
122 return agent_host_; | 117 return agent_host_; |
123 } | 118 } |
124 virtual bool Activate() const override { return agent_host_->Activate(); } | 119 bool Activate() const override { return agent_host_->Activate(); } |
125 virtual bool Close() const override { return agent_host_->Close(); } | 120 bool Close() const override { return agent_host_->Close(); } |
126 | 121 |
127 private: | 122 private: |
128 scoped_refptr<DevToolsAgentHost> agent_host_; | 123 scoped_refptr<DevToolsAgentHost> agent_host_; |
129 }; | 124 }; |
130 | 125 |
131 class TestDevToolsManagerDelegate : public DevToolsManagerDelegate { | 126 class TestDevToolsManagerDelegate : public DevToolsManagerDelegate { |
132 public: | 127 public: |
133 virtual ~TestDevToolsManagerDelegate() {} | 128 ~TestDevToolsManagerDelegate() override {} |
134 | 129 |
135 virtual void Inspect(BrowserContext* browser_context, | 130 void Inspect(BrowserContext* browser_context, |
136 DevToolsAgentHost* agent_host) override {} | 131 DevToolsAgentHost* agent_host) override {} |
137 | 132 |
138 virtual void DevToolsAgentStateChanged(DevToolsAgentHost* agent_host, | 133 void DevToolsAgentStateChanged(DevToolsAgentHost* agent_host, |
139 bool attached) override {} | 134 bool attached) override {} |
140 | 135 |
141 virtual base::DictionaryValue* HandleCommand( | 136 base::DictionaryValue* HandleCommand( |
142 DevToolsAgentHost* agent_host, | 137 DevToolsAgentHost* agent_host, |
143 base::DictionaryValue* command) override { return NULL; } | 138 base::DictionaryValue* command) override { |
| 139 return NULL; |
| 140 } |
144 | 141 |
145 virtual scoped_ptr<DevToolsTarget> CreateNewTarget(const GURL& url) override { | 142 scoped_ptr<DevToolsTarget> CreateNewTarget(const GURL& url) override { |
146 return scoped_ptr<DevToolsTarget>(); | 143 return scoped_ptr<DevToolsTarget>(); |
147 } | 144 } |
148 | 145 |
149 virtual void EnumerateTargets(TargetCallback callback) override { | 146 void EnumerateTargets(TargetCallback callback) override { |
150 TargetList result; | 147 TargetList result; |
151 DevToolsAgentHost::List agents = DevToolsAgentHost::GetOrCreateAll(); | 148 DevToolsAgentHost::List agents = DevToolsAgentHost::GetOrCreateAll(); |
152 for (DevToolsAgentHost::List::iterator it = agents.begin(); | 149 for (DevToolsAgentHost::List::iterator it = agents.begin(); |
153 it != agents.end(); ++it) { | 150 it != agents.end(); ++it) { |
154 if ((*it)->GetType() == DevToolsAgentHost::TYPE_WEB_CONTENTS) | 151 if ((*it)->GetType() == DevToolsAgentHost::TYPE_WEB_CONTENTS) |
155 result.insert(result.begin(), new TestTarget(*it)); | 152 result.insert(result.begin(), new TestTarget(*it)); |
156 else | 153 else |
157 result.push_back(new TestTarget(*it)); | 154 result.push_back(new TestTarget(*it)); |
158 } | 155 } |
159 callback.Run(result); | 156 callback.Run(result); |
160 } | 157 } |
161 | 158 |
162 virtual std::string GetPageThumbnailData(const GURL& url) override { | 159 std::string GetPageThumbnailData(const GURL& url) override { |
163 return std::string(); | 160 return std::string(); |
164 } | 161 } |
165 }; | 162 }; |
166 | 163 |
167 class ContentBrowserClientWithDevTools : public TestContentBrowserClient { | 164 class ContentBrowserClientWithDevTools : public TestContentBrowserClient { |
168 public: | 165 public: |
169 virtual ~ContentBrowserClientWithDevTools() {} | 166 ~ContentBrowserClientWithDevTools() override {} |
170 virtual content::DevToolsManagerDelegate* | 167 content::DevToolsManagerDelegate* GetDevToolsManagerDelegate() override { |
171 GetDevToolsManagerDelegate() override { | |
172 return new TestDevToolsManagerDelegate(); | 168 return new TestDevToolsManagerDelegate(); |
173 } | 169 } |
174 }; | 170 }; |
175 | 171 |
176 class TestDevToolsManagerObserver : public DevToolsManager::Observer { | 172 class TestDevToolsManagerObserver : public DevToolsManager::Observer { |
177 public: | 173 public: |
178 TestDevToolsManagerObserver() | 174 TestDevToolsManagerObserver() |
179 : updates_count_(0) {} | 175 : updates_count_(0) {} |
180 virtual ~TestDevToolsManagerObserver() {} | 176 ~TestDevToolsManagerObserver() override {} |
181 | 177 |
182 int updates_count() { return updates_count_; } | 178 int updates_count() { return updates_count_; } |
183 const std::vector<scoped_refptr<DevToolsAgentHost>> hosts() { | 179 const std::vector<scoped_refptr<DevToolsAgentHost>> hosts() { |
184 return hosts_; | 180 return hosts_; |
185 } | 181 } |
186 | 182 |
187 virtual void TargetListChanged(const TargetList& targets) override { | 183 void TargetListChanged(const TargetList& targets) override { |
188 updates_count_++; | 184 updates_count_++; |
189 hosts_.clear(); | 185 hosts_.clear(); |
190 for (TargetList::const_iterator it = targets.begin(); | 186 for (TargetList::const_iterator it = targets.begin(); |
191 it != targets.end(); ++it) { | 187 it != targets.end(); ++it) { |
192 hosts_.push_back((*it)->GetAgentHost()); | 188 hosts_.push_back((*it)->GetAgentHost()); |
193 } | 189 } |
194 } | 190 } |
195 | 191 |
196 private: | 192 private: |
197 int updates_count_; | 193 int updates_count_; |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 void recordEvent(const std::string& name) { | 308 void recordEvent(const std::string& name) { |
313 if (event_counter_.find(name) == event_counter_.end()) | 309 if (event_counter_.find(name) == event_counter_.end()) |
314 event_counter_[name] = 0; | 310 event_counter_[name] = 0; |
315 event_counter_[name] = event_counter_[name] + 1; | 311 event_counter_[name] = event_counter_[name] + 1; |
316 } | 312 } |
317 | 313 |
318 void expectEvent(int count, const std::string& name) { | 314 void expectEvent(int count, const std::string& name) { |
319 EXPECT_EQ(count, event_counter_[name]); | 315 EXPECT_EQ(count, event_counter_[name]); |
320 } | 316 } |
321 | 317 |
322 virtual void Attach(DevToolsExternalAgentProxy* proxy) override { | 318 void Attach(DevToolsExternalAgentProxy* proxy) override { |
323 recordEvent("Attach"); | 319 recordEvent("Attach"); |
324 }; | 320 }; |
325 | 321 |
326 virtual void Detach() override { | 322 void Detach() override { recordEvent("Detach"); }; |
327 recordEvent("Detach"); | |
328 }; | |
329 | 323 |
330 virtual void SendMessageToBackend(const std::string& message) override { | 324 void SendMessageToBackend(const std::string& message) override { |
331 recordEvent(std::string("SendMessageToBackend.") + message); | 325 recordEvent(std::string("SendMessageToBackend.") + message); |
332 }; | 326 }; |
333 | 327 |
334 public : | 328 public : |
335 virtual ~TestExternalAgentDelegate() { | 329 ~TestExternalAgentDelegate() override { |
336 expectEvent(1, "Attach"); | 330 expectEvent(1, "Attach"); |
337 expectEvent(1, "Detach"); | 331 expectEvent(1, "Detach"); |
338 expectEvent(0, "SendMessageToBackend.message0"); | 332 expectEvent(0, "SendMessageToBackend.message0"); |
339 expectEvent(1, "SendMessageToBackend.message1"); | 333 expectEvent(1, "SendMessageToBackend.message1"); |
340 expectEvent(2, "SendMessageToBackend.message2"); | 334 expectEvent(2, "SendMessageToBackend.message2"); |
341 } | 335 } |
342 }; | 336 }; |
343 | 337 |
344 TEST_F(DevToolsManagerTest, TestExternalProxy) { | 338 TEST_F(DevToolsManagerTest, TestExternalProxy) { |
345 TestExternalAgentDelegate* delegate = new TestExternalAgentDelegate(); | 339 TestExternalAgentDelegate* delegate = new TestExternalAgentDelegate(); |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 EXPECT_TRUE(scheduler.IsEmpty()); | 451 EXPECT_TRUE(scheduler.IsEmpty()); |
458 EXPECT_EQ(4, observer->updates_count()); | 452 EXPECT_EQ(4, observer->updates_count()); |
459 | 453 |
460 manager->RemoveObserver(observer.get()); | 454 manager->RemoveObserver(observer.get()); |
461 | 455 |
462 EXPECT_TRUE(scheduler.IsEmpty()); | 456 EXPECT_TRUE(scheduler.IsEmpty()); |
463 manager->SetSchedulerForTest(DevToolsManager::Scheduler()); | 457 manager->SetSchedulerForTest(DevToolsManager::Scheduler()); |
464 } | 458 } |
465 | 459 |
466 } // namespace content | 460 } // namespace content |
OLD | NEW |