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

Side by Side Diff: components/ui_devtools/views/ui_devtools_unittest.cc

Issue 2959263002: Show corresponding window/widget/view in UIElement tree when clicking on a UI element. (Closed)
Patch Set: set handled for cancelable event mouse click Created 3 years, 5 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
« no previous file with comments | « components/ui_devtools/views/ui_devtools_overlay_agent.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/memory/ptr_util.h" 5 #include "base/memory/ptr_util.h"
6 #include "base/strings/stringprintf.h" 6 #include "base/strings/stringprintf.h"
7 #include "components/ui_devtools/views/ui_devtools_css_agent.h" 7 #include "components/ui_devtools/views/ui_devtools_css_agent.h"
8 #include "components/ui_devtools/views/ui_devtools_dom_agent.h" 8 #include "components/ui_devtools/views/ui_devtools_dom_agent.h"
9 #include "components/ui_devtools/views/ui_devtools_overlay_agent.h"
9 #include "components/ui_devtools/views/ui_element.h" 10 #include "components/ui_devtools/views/ui_element.h"
10 #include "components/ui_devtools/views/view_element.h" 11 #include "components/ui_devtools/views/view_element.h"
11 #include "components/ui_devtools/views/widget_element.h" 12 #include "components/ui_devtools/views/widget_element.h"
12 #include "components/ui_devtools/views/window_element.h" 13 #include "components/ui_devtools/views/window_element.h"
13 #include "ui/aura/client/window_parenting_client.h" 14 #include "ui/aura/client/window_parenting_client.h"
14 #include "ui/aura/window_tree_host.h" 15 #include "ui/aura/window_tree_host.h"
15 #include "ui/display/display.h" 16 #include "ui/display/display.h"
16 #include "ui/views/background.h" 17 #include "ui/views/background.h"
17 #include "ui/views/test/views_test_base.h" 18 #include "ui/views/test/views_test_base.h"
18 #include "ui/views/widget/native_widget_private.h" 19 #include "ui/views/widget/native_widget_private.h"
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 151
151 std::unique_ptr<DOM::RGBA> SkColorToRGBA(const SkColor& color) { 152 std::unique_ptr<DOM::RGBA> SkColorToRGBA(const SkColor& color) {
152 return DOM::RGBA::create() 153 return DOM::RGBA::create()
153 .setA(SkColorGetA(color) / 255) 154 .setA(SkColorGetA(color) / 255)
154 .setB(SkColorGetB(color)) 155 .setB(SkColorGetB(color))
155 .setG(SkColorGetG(color)) 156 .setG(SkColorGetG(color))
156 .setR(SkColorGetR(color)) 157 .setR(SkColorGetR(color))
157 .build(); 158 .build();
158 } 159 }
159 160
160 std::unique_ptr<DOM::HighlightConfig> CreateHighlightConfig( 161 std::unique_ptr<Overlay::HighlightConfig> CreateHighlightConfig(
161 const SkColor& background_color, 162 const SkColor& background_color,
162 const SkColor& border_color) { 163 const SkColor& border_color) {
163 return DOM::HighlightConfig::create() 164 return Overlay::HighlightConfig::create()
164 .setContentColor(SkColorToRGBA(background_color)) 165 .setContentColor(SkColorToRGBA(background_color))
165 .setBorderColor(SkColorToRGBA(border_color)) 166 .setBorderColor(SkColorToRGBA(border_color))
166 .build(); 167 .build();
167 } 168 }
168 169
169 void ExpectHighlighted(const gfx::Rect& bounds, 170 void ExpectHighlighted(const gfx::Rect& bounds,
170 aura::Window* highlight_window) { 171 aura::Window* highlight_window) {
171 ui::Layer* highlighting_layer = GetHighlightingLayer(highlight_window); 172 ui::Layer* highlighting_layer = GetHighlightingLayer(highlight_window);
172 EXPECT_TRUE(highlighting_layer->visible()); 173 EXPECT_TRUE(highlighting_layer->visible());
173 EXPECT_EQ(bounds, highlighting_layer->bounds()); 174 EXPECT_EQ(bounds, highlighting_layer->bounds());
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 void SetUp() override { 218 void SetUp() override {
218 fake_frontend_channel_ = base::MakeUnique<FakeFrontendChannel>(); 219 fake_frontend_channel_ = base::MakeUnique<FakeFrontendChannel>();
219 uber_dispatcher_ = 220 uber_dispatcher_ =
220 base::MakeUnique<UberDispatcher>(fake_frontend_channel_.get()); 221 base::MakeUnique<UberDispatcher>(fake_frontend_channel_.get());
221 dom_agent_ = base::MakeUnique<ui_devtools::UIDevToolsDOMAgent>(); 222 dom_agent_ = base::MakeUnique<ui_devtools::UIDevToolsDOMAgent>();
222 dom_agent_->Init(uber_dispatcher_.get()); 223 dom_agent_->Init(uber_dispatcher_.get());
223 css_agent_ = 224 css_agent_ =
224 base::MakeUnique<ui_devtools::UIDevToolsCSSAgent>(dom_agent_.get()); 225 base::MakeUnique<ui_devtools::UIDevToolsCSSAgent>(dom_agent_.get());
225 css_agent_->Init(uber_dispatcher_.get()); 226 css_agent_->Init(uber_dispatcher_.get());
226 css_agent_->enable(); 227 css_agent_->enable();
228 overlay_agent_ =
229 base::MakeUnique<ui_devtools::UIDevToolsOverlayAgent>(dom_agent_.get());
230 overlay_agent_->Init(uber_dispatcher_.get());
231 overlay_agent_->enable();
227 232
228 // We need to create |dom_agent| first to observe creation of 233 // We need to create |dom_agent| first to observe creation of
229 // WindowTreeHosts in ViewTestBase::SetUp(). 234 // WindowTreeHosts in ViewTestBase::SetUp().
230 views::ViewsTestBase::SetUp(); 235 views::ViewsTestBase::SetUp();
231 236
232 top_window = CreateChildWindow(GetPrimaryRootWindow()); 237 top_window = CreateChildWindow(GetPrimaryRootWindow());
233 top_default_container_window = CreateChildWindow(GetPrimaryRootWindow()); 238 top_default_container_window = CreateChildWindow(GetPrimaryRootWindow());
234 top_overlay_window = CreateChildWindow(GetPrimaryRootWindow(), 239 top_overlay_window = CreateChildWindow(GetPrimaryRootWindow(),
235 aura::client::WINDOW_TYPE_UNKNOWN); 240 aura::client::WINDOW_TYPE_UNKNOWN);
236 } 241 }
237 242
238 void TearDown() override { 243 void TearDown() override {
239 top_overlay_window.reset(); 244 top_overlay_window.reset();
240 top_default_container_window.reset(); 245 top_default_container_window.reset();
241 top_window.reset(); 246 top_window.reset();
242 css_agent_.reset(); 247 css_agent_.reset();
248 overlay_agent_.reset();
243 dom_agent_.reset(); 249 dom_agent_.reset();
244 uber_dispatcher_.reset(); 250 uber_dispatcher_.reset();
245 fake_frontend_channel_.reset(); 251 fake_frontend_channel_.reset();
246 views::ViewsTestBase::TearDown(); 252 views::ViewsTestBase::TearDown();
247 } 253 }
248 254
249 void ExpectChildNodeInserted(int parent_id, int prev_sibling_id) { 255 void ExpectChildNodeInserted(int parent_id, int prev_sibling_id) {
250 EXPECT_EQ(1, frontend_channel()->CountProtocolNotificationMessageStartsWith( 256 EXPECT_EQ(1, frontend_channel()->CountProtocolNotificationMessageStartsWith(
251 base::StringPrintf("{\"method\":\"DOM.childNodeInserted\"," 257 base::StringPrintf("{\"method\":\"DOM.childNodeInserted\","
252 "\"params\":{\"parentNodeId\":%d," 258 "\"params\":{\"parentNodeId\":%d,"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 EXPECT_EQ(success, 299 EXPECT_EQ(success,
294 css_agent_->setStyleTexts(std::move(edits), &output).isSuccess()); 300 css_agent_->setStyleTexts(std::move(edits), &output).isSuccess());
295 301
296 if (success) 302 if (success)
297 ASSERT_TRUE(output); 303 ASSERT_TRUE(output);
298 else 304 else
299 ASSERT_FALSE(output); 305 ASSERT_FALSE(output);
300 } 306 }
301 307
302 void HighlightNode(int node_id) { 308 void HighlightNode(int node_id) {
303 dom_agent_->highlightNode( 309 overlay_agent_->highlightNode(
304 CreateHighlightConfig(kBackgroundColor, kBorderColor), node_id); 310 CreateHighlightConfig(kBackgroundColor, kBorderColor), node_id);
305 } 311 }
306 312
307 void HideHighlight(int root_window_index) { 313 void HideHighlight(int root_window_index) {
308 dom_agent_->hideHighlight(); 314 dom_agent_->hideHighlight();
309 DCHECK_GE(root_window_index, 0); 315 DCHECK_GE(root_window_index, 0);
310 DCHECK_LE(root_window_index, 316 DCHECK_LE(root_window_index,
311 static_cast<int>(dom_agent()->root_windows().size())); 317 static_cast<int>(dom_agent()->root_windows().size()));
312 ASSERT_FALSE( 318 ASSERT_FALSE(
313 GetHighlightingLayer(dom_agent()->root_windows()[root_window_index]) 319 GetHighlightingLayer(dom_agent()->root_windows()[root_window_index])
314 ->visible()); 320 ->visible());
315 } 321 }
316 322
317 FakeFrontendChannel* frontend_channel() { 323 FakeFrontendChannel* frontend_channel() {
318 return fake_frontend_channel_.get(); 324 return fake_frontend_channel_.get();
319 } 325 }
320 326
321 aura::Window* GetPrimaryRootWindow() { 327 aura::Window* GetPrimaryRootWindow() {
322 DCHECK(dom_agent()->root_windows().size()); 328 DCHECK(dom_agent()->root_windows().size());
323 return dom_agent()->root_windows()[0]; 329 return dom_agent()->root_windows()[0];
324 } 330 }
325 331
326 ui_devtools::UIDevToolsCSSAgent* css_agent() { return css_agent_.get(); } 332 ui_devtools::UIDevToolsCSSAgent* css_agent() { return css_agent_.get(); }
327 ui_devtools::UIDevToolsDOMAgent* dom_agent() { return dom_agent_.get(); } 333 ui_devtools::UIDevToolsDOMAgent* dom_agent() { return dom_agent_.get(); }
334 ui_devtools::UIDevToolsOverlayAgent* overlay_agent() {
335 return overlay_agent_.get();
336 }
328 337
329 std::unique_ptr<aura::Window> top_overlay_window; 338 std::unique_ptr<aura::Window> top_overlay_window;
330 std::unique_ptr<aura::Window> top_window; 339 std::unique_ptr<aura::Window> top_window;
331 std::unique_ptr<aura::Window> top_default_container_window; 340 std::unique_ptr<aura::Window> top_default_container_window;
332 341
333 private: 342 private:
334 std::unique_ptr<UberDispatcher> uber_dispatcher_; 343 std::unique_ptr<UberDispatcher> uber_dispatcher_;
335 std::unique_ptr<FakeFrontendChannel> fake_frontend_channel_; 344 std::unique_ptr<FakeFrontendChannel> fake_frontend_channel_;
336 std::unique_ptr<ui_devtools::UIDevToolsDOMAgent> dom_agent_; 345 std::unique_ptr<ui_devtools::UIDevToolsDOMAgent> dom_agent_;
337 std::unique_ptr<ui_devtools::UIDevToolsCSSAgent> css_agent_; 346 std::unique_ptr<ui_devtools::UIDevToolsCSSAgent> css_agent_;
347 std::unique_ptr<ui_devtools::UIDevToolsOverlayAgent> overlay_agent_;
338 348
339 DISALLOW_COPY_AND_ASSIGN(UIDevToolsTest); 349 DISALLOW_COPY_AND_ASSIGN(UIDevToolsTest);
340 }; 350 };
341 351
342 TEST_F(UIDevToolsTest, GetDocumentWithWindowWidgetView) { 352 TEST_F(UIDevToolsTest, GetDocumentWithWindowWidgetView) {
343 std::unique_ptr<views::Widget> widget( 353 std::unique_ptr<views::Widget> widget(
344 CreateTestWidget(gfx::Rect(1, 1, 1, 1))); 354 CreateTestWidget(gfx::Rect(1, 1, 1, 1)));
345 aura::Window* parent_window = widget->GetNativeWindow(); 355 aura::Window* parent_window = widget->GetNativeWindow();
346 parent_window->SetName("parent_window"); 356 parent_window->SetName("parent_window");
347 std::unique_ptr<aura::Window> child_window = CreateChildWindow(parent_window); 357 std::unique_ptr<aura::Window> child_window = CreateChildWindow(parent_window);
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after
868 SetStyleTexts(root_view_node, "\nheight: 73;\n ", true); 878 SetStyleTexts(root_view_node, "\nheight: 73;\n ", true);
869 EXPECT_EQ(gfx::Rect(25, 35, 45, 73), root_view->bounds()); 879 EXPECT_EQ(gfx::Rect(25, 35, 45, 73), root_view->bounds());
870 880
871 SetStyleTexts(root_view_node, "\nx: 10; y: 23; width: 52;\nvisibility: 1;\n", 881 SetStyleTexts(root_view_node, "\nx: 10; y: 23; width: 52;\nvisibility: 1;\n",
872 true); 882 true);
873 EXPECT_EQ(gfx::Rect(10, 23, 52, 73), root_view->bounds()); 883 EXPECT_EQ(gfx::Rect(10, 23, 52, 73), root_view->bounds());
874 EXPECT_TRUE(root_view->visible()); 884 EXPECT_TRUE(root_view->visible());
875 } 885 }
876 886
877 } // namespace ui_devtools 887 } // namespace ui_devtools
OLDNEW
« no previous file with comments | « components/ui_devtools/views/ui_devtools_overlay_agent.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698