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

Side by Side Diff: content/browser/debugger/devtools_manager_unittest.cc

Issue 8549022: Define DevTools content API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: DevToolsManager -> DevToolsManagerImpl, moved client to public Created 9 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/time.h" 6 #include "base/time.h"
7 #include "content/browser/debugger/devtools_client_host.h" 7 #include "content/browser/debugger/devtools_manager_impl.h"
8 #include "content/browser/debugger/devtools_manager.h"
9 #include "content/browser/debugger/render_view_devtools_agent_host.h" 8 #include "content/browser/debugger/render_view_devtools_agent_host.h"
10 #include "content/browser/mock_content_browser_client.h" 9 #include "content/browser/mock_content_browser_client.h"
11 #include "content/browser/renderer_host/test_render_view_host.h" 10 #include "content/browser/renderer_host/test_render_view_host.h"
12 #include "content/browser/tab_contents/tab_contents_delegate.h" 11 #include "content/browser/tab_contents/tab_contents_delegate.h"
13 #include "content/browser/tab_contents/test_tab_contents.h" 12 #include "content/browser/tab_contents/test_tab_contents.h"
14 #include "content/common/view_messages.h" 13 #include "content/common/view_messages.h"
15 #include "content/public/browser/content_browser_client.h" 14 #include "content/public/browser/content_browser_client.h"
15 #include "content/public/browser/devtools/devtools_agent_host_registry.h"
16 #include "content/public/browser/devtools/devtools_client_host.h"
16 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
17 18
18 using base::TimeDelta; 19 using base::TimeDelta;
20 using content::DevToolsAgentHost;
21 using content::DevToolsAgentHostRegistry;
22 using content::DevToolsClientHost;
23 using content::DevToolsManager;
24 using content::DevToolsManagerImpl;
19 25
20 namespace { 26 namespace {
21 27
22 class TestDevToolsClientHost : public DevToolsClientHost { 28 class TestDevToolsClientHost : public DevToolsClientHost {
23 public: 29 public:
24 TestDevToolsClientHost() 30 TestDevToolsClientHost()
25 : last_sent_message(NULL), 31 : last_sent_message(NULL),
26 closed_(false) { 32 closed_(false) {
27 } 33 }
28 34
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 private: 91 private:
86 bool renderer_unresponsive_received_; 92 bool renderer_unresponsive_received_;
87 }; 93 };
88 94
89 class DevToolsManagerTestBrowserClient 95 class DevToolsManagerTestBrowserClient
90 : public content::MockContentBrowserClient { 96 : public content::MockContentBrowserClient {
91 public: 97 public:
92 DevToolsManagerTestBrowserClient() { 98 DevToolsManagerTestBrowserClient() {
93 } 99 }
94 100
95 virtual DevToolsManager* GetDevToolsManager() OVERRIDE {
96 return &dev_tools_manager_;
97 }
98
99 virtual bool ShouldSwapProcessesForNavigation( 101 virtual bool ShouldSwapProcessesForNavigation(
100 const GURL& current_url, 102 const GURL& current_url,
101 const GURL& new_url) OVERRIDE { 103 const GURL& new_url) OVERRIDE {
102 return true; 104 return true;
103 } 105 }
104 106
105 private: 107 private:
106 DevToolsManager dev_tools_manager_;
107
108 DISALLOW_COPY_AND_ASSIGN(DevToolsManagerTestBrowserClient); 108 DISALLOW_COPY_AND_ASSIGN(DevToolsManagerTestBrowserClient);
109 }; 109 };
110 110
111 } // namespace 111 } // namespace
112 112
113 class DevToolsManagerTest : public RenderViewHostTestHarness { 113 class DevToolsManagerTest : public RenderViewHostTestHarness {
114 public: 114 public:
115 DevToolsManagerTest() : RenderViewHostTestHarness() { 115 DevToolsManagerTest() : RenderViewHostTestHarness() {
116 } 116 }
117 117
(...skipping 10 matching lines...) Expand all
128 RenderViewHostTestHarness::TearDown(); 128 RenderViewHostTestHarness::TearDown();
129 content::GetContentClient()->set_browser(original_browser_client_); 129 content::GetContentClient()->set_browser(original_browser_client_);
130 } 130 }
131 131
132 private: 132 private:
133 content::ContentBrowserClient* original_browser_client_; 133 content::ContentBrowserClient* original_browser_client_;
134 DevToolsManagerTestBrowserClient browser_client_; 134 DevToolsManagerTestBrowserClient browser_client_;
135 }; 135 };
136 136
137 TEST_F(DevToolsManagerTest, OpenAndManuallyCloseDevToolsClientHost) { 137 TEST_F(DevToolsManagerTest, OpenAndManuallyCloseDevToolsClientHost) {
138 DevToolsManager manager; 138 DevToolsManagerImpl manager;
139 139
140 DevToolsClientHost* host = manager.GetDevToolsClientHostFor(rvh()); 140 DevToolsAgentHost* agent =
141 DevToolsAgentHostRegistry::GetDevToolsAgentHost(rvh());
142 DevToolsClientHost* host = manager.GetDevToolsClientHostFor(agent);
141 EXPECT_TRUE(NULL == host); 143 EXPECT_TRUE(NULL == host);
142 144
143 TestDevToolsClientHost client_host; 145 TestDevToolsClientHost client_host;
144 manager.RegisterDevToolsClientHostFor(rvh(), &client_host); 146 manager.RegisterDevToolsClientHostFor(agent, &client_host);
145 // Test that just registered devtools host is returned. 147 // Test that just registered devtools host is returned.
146 host = manager.GetDevToolsClientHostFor(rvh()); 148 host = manager.GetDevToolsClientHostFor(agent);
147 EXPECT_TRUE(&client_host == host); 149 EXPECT_TRUE(&client_host == host);
148 EXPECT_EQ(0, TestDevToolsClientHost::close_counter); 150 EXPECT_EQ(0, TestDevToolsClientHost::close_counter);
149 151
150 // Test that the same devtools host is returned. 152 // Test that the same devtools host is returned.
151 host = manager.GetDevToolsClientHostFor(rvh()); 153 host = manager.GetDevToolsClientHostFor(agent);
152 EXPECT_TRUE(&client_host == host); 154 EXPECT_TRUE(&client_host == host);
153 EXPECT_EQ(0, TestDevToolsClientHost::close_counter); 155 EXPECT_EQ(0, TestDevToolsClientHost::close_counter);
154 156
155 client_host.Close(); 157 client_host.Close();
156 EXPECT_EQ(1, TestDevToolsClientHost::close_counter); 158 EXPECT_EQ(1, TestDevToolsClientHost::close_counter);
157 host = manager.GetDevToolsClientHostFor(rvh()); 159 host = manager.GetDevToolsClientHostFor(agent);
158 EXPECT_TRUE(NULL == host); 160 EXPECT_TRUE(NULL == host);
159 } 161 }
160 162
161 TEST_F(DevToolsManagerTest, ForwardMessageToClient) { 163 TEST_F(DevToolsManagerTest, ForwardMessageToClient) {
162 DevToolsManager manager; 164 DevToolsManagerImpl manager;
163 165
164 TestDevToolsClientHost client_host; 166 TestDevToolsClientHost client_host;
165 manager.RegisterDevToolsClientHostFor(rvh(), &client_host); 167 DevToolsAgentHost* agent_host =
168 DevToolsAgentHostRegistry::GetDevToolsAgentHost(rvh());
169 manager.RegisterDevToolsClientHostFor(agent_host, &client_host);
166 EXPECT_EQ(0, TestDevToolsClientHost::close_counter); 170 EXPECT_EQ(0, TestDevToolsClientHost::close_counter);
167 171
168 IPC::Message m; 172 IPC::Message m;
169 DevToolsAgentHost* agent_host = RenderViewDevToolsAgentHost::FindFor(rvh()); 173 agent_host = DevToolsAgentHostRegistry::GetDevToolsAgentHost(rvh());
170 manager.ForwardToDevToolsClient(agent_host, m); 174 manager.ForwardToDevToolsClient(agent_host, m);
171 EXPECT_TRUE(&m == client_host.last_sent_message); 175 EXPECT_TRUE(&m == client_host.last_sent_message);
172 176
173 client_host.Close(); 177 client_host.Close();
174 EXPECT_EQ(1, TestDevToolsClientHost::close_counter); 178 EXPECT_EQ(1, TestDevToolsClientHost::close_counter);
175 } 179 }
176 180
177 TEST_F(DevToolsManagerTest, NoUnresponsiveDialogInInspectedTab) { 181 TEST_F(DevToolsManagerTest, NoUnresponsiveDialogInInspectedTab) {
178 TestRenderViewHost* inspected_rvh = rvh(); 182 TestRenderViewHost* inspected_rvh = rvh();
179 inspected_rvh->set_render_view_created(true); 183 inspected_rvh->set_render_view_created(true);
180 EXPECT_FALSE(contents()->delegate()); 184 EXPECT_FALSE(contents()->delegate());
181 TestTabContentsDelegate delegate; 185 TestTabContentsDelegate delegate;
182 contents()->set_delegate(&delegate); 186 contents()->set_delegate(&delegate);
183 187
184 TestDevToolsClientHost client_host; 188 TestDevToolsClientHost client_host;
185 content::GetContentClient()->browser()->GetDevToolsManager()-> 189 DevToolsAgentHost* agent_host =
186 RegisterDevToolsClientHostFor(inspected_rvh, &client_host); 190 DevToolsAgentHostRegistry::GetDevToolsAgentHost(inspected_rvh);
191 DevToolsManager::GetInstance()->
192 RegisterDevToolsClientHostFor(agent_host, &client_host);
187 193
188 // Start with a short timeout. 194 // Start with a short timeout.
189 inspected_rvh->StartHangMonitorTimeout(TimeDelta::FromMilliseconds(10)); 195 inspected_rvh->StartHangMonitorTimeout(TimeDelta::FromMilliseconds(10));
190 // Wait long enough for first timeout and see if it fired. 196 // Wait long enough for first timeout and see if it fired.
191 MessageLoop::current()->PostDelayedTask(FROM_HERE, 197 MessageLoop::current()->PostDelayedTask(FROM_HERE,
192 new MessageLoop::QuitTask(), 10); 198 new MessageLoop::QuitTask(), 10);
193 MessageLoop::current()->Run(); 199 MessageLoop::current()->Run();
194 EXPECT_FALSE(delegate.renderer_unresponsive_received()); 200 EXPECT_FALSE(delegate.renderer_unresponsive_received());
195 201
196 // Now close devtools and check that the notification is delivered. 202 // Now close devtools and check that the notification is delivered.
(...skipping 16 matching lines...) Expand all
213 controller().LoadURL( 219 controller().LoadURL(
214 url, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 220 url, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
215 ViewHostMsg_FrameNavigate_Params params1; 221 ViewHostMsg_FrameNavigate_Params params1;
216 InitNavigateParams(&params1, 1, url, content::PAGE_TRANSITION_TYPED); 222 InitNavigateParams(&params1, 1, url, content::PAGE_TRANSITION_TYPED);
217 TestRenderViewHost* orig_rvh = rvh(); 223 TestRenderViewHost* orig_rvh = rvh();
218 contents()->TestDidNavigate(orig_rvh, params1); 224 contents()->TestDidNavigate(orig_rvh, params1);
219 EXPECT_FALSE(contents()->cross_navigation_pending()); 225 EXPECT_FALSE(contents()->cross_navigation_pending());
220 226
221 TestDevToolsClientHost client_host; 227 TestDevToolsClientHost client_host;
222 DevToolsManager* devtools_manager = DevToolsManager::GetInstance(); 228 DevToolsManager* devtools_manager = DevToolsManager::GetInstance();
223 devtools_manager->RegisterDevToolsClientHostFor(rvh(), &client_host); 229 devtools_manager->RegisterDevToolsClientHostFor(
230 DevToolsAgentHostRegistry::GetDevToolsAgentHost(rvh()),
231 &client_host);
224 232
225 // Navigate to new site which should get a new RenderViewHost. 233 // Navigate to new site which should get a new RenderViewHost.
226 const GURL url2("http://www.yahoo.com"); 234 const GURL url2("http://www.yahoo.com");
227 controller().LoadURL( 235 controller().LoadURL(
228 url2, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 236 url2, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
229 EXPECT_TRUE(contents()->cross_navigation_pending()); 237 EXPECT_TRUE(contents()->cross_navigation_pending());
230 EXPECT_EQ(&client_host, 238 EXPECT_EQ(&client_host, devtools_manager->GetDevToolsClientHostFor(
231 devtools_manager->GetDevToolsClientHostFor(pending_rvh())); 239 DevToolsAgentHostRegistry::GetDevToolsAgentHost(pending_rvh())));
232 240
233 // Interrupt pending navigation and navigate back to the original site. 241 // Interrupt pending navigation and navigate back to the original site.
234 controller().LoadURL( 242 controller().LoadURL(
235 url, GURL(), content::PAGE_TRANSITION_TYPED, std::string()); 243 url, GURL(), content::PAGE_TRANSITION_TYPED, std::string());
236 contents()->TestDidNavigate(orig_rvh, params1); 244 contents()->TestDidNavigate(orig_rvh, params1);
237 EXPECT_FALSE(contents()->cross_navigation_pending()); 245 EXPECT_FALSE(contents()->cross_navigation_pending());
238 EXPECT_EQ(&client_host, devtools_manager->GetDevToolsClientHostFor(rvh())); 246 EXPECT_EQ(&client_host, devtools_manager->GetDevToolsClientHostFor(
247 DevToolsAgentHostRegistry::GetDevToolsAgentHost(rvh())));
239 client_host.Close(); 248 client_host.Close();
240 } 249 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698