OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #import "chrome/browser/ui/cocoa/dev_tools_controller.h" | 5 #import "chrome/browser/ui/cocoa/dev_tools_controller.h" |
6 | 6 |
7 #include "chrome/browser/devtools/devtools_window.h" | 7 #include "chrome/browser/devtools/devtools_window.h" |
8 #include "chrome/browser/ui/browser.h" | 8 #include "chrome/browser/ui/browser.h" |
9 #include "chrome/browser/ui/browser_list.h" | |
10 #include "chrome/browser/ui/browser_window.h" | 9 #include "chrome/browser/ui/browser_window.h" |
11 #include "chrome/browser/ui/cocoa/browser_window_controller.h" | 10 #include "chrome/browser/ui/cocoa/browser_window_controller.h" |
12 #include "chrome/common/url_constants.h" | 11 #include "chrome/common/url_constants.h" |
13 #include "chrome/test/base/in_process_browser_test.h" | 12 #include "chrome/test/base/in_process_browser_test.h" |
14 | 13 |
15 class DevToolsControllerTest : public InProcessBrowserTest { | 14 class DevToolsControllerTest : public InProcessBrowserTest { |
16 public: | 15 public: |
17 DevToolsControllerTest() : InProcessBrowserTest() { | 16 DevToolsControllerTest() : InProcessBrowserTest() { |
18 } | 17 } |
19 | 18 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 | 63 |
65 // When docked to the right the dev tools view should be shrunk so that it | 64 // When docked to the right the dev tools view should be shrunk so that it |
66 // doesn't overlap the bookmark bar. | 65 // doesn't overlap the bookmark bar. |
67 IN_PROC_BROWSER_TEST_F(DevToolsControllerTest, ViewSize) { | 66 IN_PROC_BROWSER_TEST_F(DevToolsControllerTest, ViewSize) { |
68 EXPECT_EQ(2u, [[[controller() splitView] subviews] count]); | 67 EXPECT_EQ(2u, [[[controller() splitView] subviews] count]); |
69 NSView* container_view = [[[controller() splitView] subviews] lastObject]; | 68 NSView* container_view = [[[controller() splitView] subviews] lastObject]; |
70 EXPECT_EQ(1u, [[container_view subviews] count]); | 69 EXPECT_EQ(1u, [[container_view subviews] count]); |
71 NSView* dev_tools_view = [[container_view subviews] lastObject]; | 70 NSView* dev_tools_view = [[container_view subviews] lastObject]; |
72 CGFloat width = NSWidth([[controller() splitView] bounds]); | 71 CGFloat width = NSWidth([[controller() splitView] bounds]); |
73 CGFloat height = NSHeight([[controller() splitView] bounds]); | 72 CGFloat height = NSHeight([[controller() splitView] bounds]); |
74 CGFloat offset = [controller() topContentOffset]; | 73 |
| 74 SetDockSide(DEVTOOLS_DOCK_SIDE_BOTTOM); |
| 75 EXPECT_EQ(width, NSWidth([dev_tools_view bounds])); |
| 76 |
| 77 SetDockSide(DEVTOOLS_DOCK_SIDE_RIGHT); |
| 78 EXPECT_EQ(height, NSHeight([dev_tools_view bounds])); |
| 79 |
| 80 CGFloat offset = 50; |
| 81 [controller() setTopContentOffset:offset]; |
75 | 82 |
76 SetDockSide(DEVTOOLS_DOCK_SIDE_BOTTOM); | 83 SetDockSide(DEVTOOLS_DOCK_SIDE_BOTTOM); |
77 EXPECT_EQ(width, NSWidth([dev_tools_view bounds])); | 84 EXPECT_EQ(width, NSWidth([dev_tools_view bounds])); |
78 | 85 |
79 SetDockSide(DEVTOOLS_DOCK_SIDE_RIGHT); | 86 SetDockSide(DEVTOOLS_DOCK_SIDE_RIGHT); |
80 EXPECT_EQ(height - offset, NSHeight([dev_tools_view bounds])); | 87 EXPECT_EQ(height - offset, NSHeight([dev_tools_view bounds])); |
81 | |
82 CGFloat new_offset = 50; | |
83 [controller() setTopContentOffset:new_offset]; | |
84 | |
85 SetDockSide(DEVTOOLS_DOCK_SIDE_BOTTOM); | |
86 EXPECT_EQ(width, NSWidth([dev_tools_view bounds])); | |
87 | |
88 SetDockSide(DEVTOOLS_DOCK_SIDE_RIGHT); | |
89 EXPECT_EQ(height - new_offset, NSHeight([dev_tools_view bounds])); | |
90 } | 88 } |
91 | 89 |
92 // Verify that the dev tool's web view is layed out correctly when docked to the | 90 // Verify that the dev tool's web view is layed out correctly when docked to the |
93 // right. | 91 // right. |
94 IN_PROC_BROWSER_TEST_F(DevToolsControllerTest, WebViewLayout) { | 92 IN_PROC_BROWSER_TEST_F(DevToolsControllerTest, WebViewLayout) { |
95 CGFloat offset = 50; | 93 CGFloat offset = 50; |
96 [controller() setTopContentOffset:offset]; | 94 [controller() setTopContentOffset:offset]; |
97 | 95 |
98 SetDockSide(DEVTOOLS_DOCK_SIDE_RIGHT); | 96 SetDockSide(DEVTOOLS_DOCK_SIDE_RIGHT); |
99 AddTabAtIndex(0, | 97 AddTabAtIndex(0, |
100 GURL(chrome::kAboutBlankURL), | 98 GURL(chrome::kAboutBlankURL), |
101 content::PAGE_TRANSITION_TYPED); | 99 content::PAGE_TRANSITION_TYPED); |
102 DevToolsWindow::ToggleDevToolsWindow(browser(), DEVTOOLS_TOGGLE_ACTION_SHOW); | 100 DevToolsWindow::ToggleDevToolsWindow(browser(), DEVTOOLS_TOGGLE_ACTION_SHOW); |
103 | 101 |
104 NSView* container_view = [[[controller() splitView] subviews] lastObject]; | 102 NSView* container_view = [[[controller() splitView] subviews] lastObject]; |
105 NSView* dev_tools_view = [[container_view subviews] lastObject]; | 103 NSView* dev_tools_view = [[container_view subviews] lastObject]; |
106 NSView* web_view = [[dev_tools_view subviews] lastObject]; | 104 NSView* web_view = [[dev_tools_view subviews] lastObject]; |
107 | 105 |
108 CGFloat height = NSHeight([[controller() splitView] bounds]); | 106 CGFloat height = NSHeight([[controller() splitView] bounds]); |
109 | 107 |
110 EXPECT_EQ(height - offset, NSHeight([web_view bounds])); | 108 EXPECT_EQ(height - offset, NSHeight([web_view bounds])); |
111 EXPECT_EQ(0, NSMinY([web_view bounds])); | 109 EXPECT_EQ(0, NSMinY([web_view bounds])); |
112 | 110 |
113 // Update the offset and verify that the view is resized. | 111 // Update the offset and verify that the view is resized. |
114 CGFloat new_offset = 25; | 112 CGFloat new_offset = 25; |
115 [controller() setTopContentOffset:new_offset]; | 113 [controller() setTopContentOffset:new_offset]; |
116 EXPECT_EQ(height - new_offset, NSHeight([web_view bounds])); | 114 EXPECT_EQ(height - new_offset, NSHeight([web_view bounds])); |
117 EXPECT_EQ(0, NSMinY([web_view bounds])); | 115 EXPECT_EQ(0, NSMinY([web_view bounds])); |
118 } | 116 } |
119 | |
120 // Verify that the dev tools undocked window is layed out correctly. | |
121 IN_PROC_BROWSER_TEST_F(DevToolsControllerTest, UndockedOffset) { | |
122 BrowserList* browser_list = | |
123 BrowserList::GetInstance(chrome::HOST_DESKTOP_TYPE_NATIVE); | |
124 EXPECT_EQ(1u, browser_list->size()); | |
125 SetDockSide(DEVTOOLS_DOCK_SIDE_UNDOCKED); | |
126 EXPECT_EQ(2u, browser_list->size()); | |
127 | |
128 Browser* dev_tools_browser = browser_list->get(1); | |
129 BrowserWindowController* window_controller = | |
130 [BrowserWindowController browserWindowControllerForWindow: | |
131 dev_tools_browser->window()->GetNativeWindow()]; | |
132 EXPECT_EQ(0.0, [[window_controller devToolsController] topContentOffset]); | |
133 } | |
OLD | NEW |