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

Side by Side Diff: chrome/browser/ui/views/frame/browser_view_layout_unittest.cc

Issue 2889623002: Apply View::set_preferred_size in some more places. (Closed)
Patch Set: fix SystemMenuButton Created 3 years, 7 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 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 #include "chrome/browser/ui/views/frame/browser_view_layout.h" 5 #include "chrome/browser/ui/views/frame/browser_view_layout.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "chrome/browser/ui/views/frame/browser_view.h" 8 #include "chrome/browser/ui/views/frame/browser_view.h"
9 #include "chrome/browser/ui/views/frame/browser_view_layout_delegate.h" 9 #include "chrome/browser/ui/views/frame/browser_view_layout_delegate.h"
10 #include "chrome/browser/ui/views/frame/contents_layout_manager.h" 10 #include "chrome/browser/ui/views/frame/contents_layout_manager.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 bool tab_strip_visible_; 63 bool tab_strip_visible_;
64 bool toolbar_visible_; 64 bool toolbar_visible_;
65 bool bookmark_bar_visible_; 65 bool bookmark_bar_visible_;
66 bool download_shelf_needs_layout_; 66 bool download_shelf_needs_layout_;
67 67
68 DISALLOW_COPY_AND_ASSIGN(MockBrowserViewLayoutDelegate); 68 DISALLOW_COPY_AND_ASSIGN(MockBrowserViewLayoutDelegate);
69 }; 69 };
70 70
71 /////////////////////////////////////////////////////////////////////////////// 71 ///////////////////////////////////////////////////////////////////////////////
72 72
73 // A simple view that prefers an initial size. 73 views::View* CreateFixedSizeView(const gfx::Size& size) {
74 class MockView : public views::View { 74 auto* view = new views::View;
75 public: 75 view->set_preferred_size(size);
76 explicit MockView(gfx::Size initial_size) 76 view->SizeToPreferredSize();
77 : size_(initial_size) { 77 return view;
78 SetBoundsRect(gfx::Rect(gfx::Point(), size_)); 78 }
79 }
80 ~MockView() override {}
81
82 // views::View overrides:
83 gfx::Size GetPreferredSize() const override { return size_; }
84
85 private:
86 gfx::Size size_;
87
88 DISALLOW_COPY_AND_ASSIGN(MockView);
89 };
90 79
91 /////////////////////////////////////////////////////////////////////////////// 80 ///////////////////////////////////////////////////////////////////////////////
92 81
93 class MockImmersiveModeController : public ImmersiveModeController { 82 class MockImmersiveModeController : public ImmersiveModeController {
94 public: 83 public:
95 MockImmersiveModeController() : ImmersiveModeController(Type::STUB) {} 84 MockImmersiveModeController() : ImmersiveModeController(Type::STUB) {}
96 ~MockImmersiveModeController() override {} 85 ~MockImmersiveModeController() override {}
97 86
98 // ImmersiveModeController overrides: 87 // ImmersiveModeController overrides:
99 void Init(BrowserView* browser_view) override {} 88 void Init(BrowserView* browser_view) override {}
(...skipping 27 matching lines...) Expand all
127 tab_strip_(nullptr), 116 tab_strip_(nullptr),
128 toolbar_(nullptr), 117 toolbar_(nullptr),
129 infobar_container_(nullptr), 118 infobar_container_(nullptr),
130 contents_container_(nullptr), 119 contents_container_(nullptr),
131 contents_web_view_(nullptr), 120 contents_web_view_(nullptr),
132 devtools_web_view_(nullptr) {} 121 devtools_web_view_(nullptr) {}
133 ~BrowserViewLayoutTest() override {} 122 ~BrowserViewLayoutTest() override {}
134 123
135 BrowserViewLayout* layout() { return layout_.get(); } 124 BrowserViewLayout* layout() { return layout_.get(); }
136 MockBrowserViewLayoutDelegate* delegate() { return delegate_; } 125 MockBrowserViewLayoutDelegate* delegate() { return delegate_; }
137 MockView* root_view() { return root_view_.get(); } 126 views::View* root_view() { return root_view_.get(); }
138 MockView* top_container() { return top_container_; } 127 views::View* top_container() { return top_container_; }
139 TabStrip* tab_strip() { return tab_strip_; } 128 TabStrip* tab_strip() { return tab_strip_; }
140 MockView* toolbar() { return toolbar_; } 129 views::View* toolbar() { return toolbar_; }
141 InfoBarContainerView* infobar_container() { return infobar_container_; } 130 InfoBarContainerView* infobar_container() { return infobar_container_; }
142 MockView* contents_container() { return contents_container_; } 131 views::View* contents_container() { return contents_container_; }
143 132
144 // BrowserWithTestWindowTest overrides: 133 // BrowserWithTestWindowTest overrides:
145 void SetUp() override { 134 void SetUp() override {
146 BrowserWithTestWindowTest::SetUp(); 135 BrowserWithTestWindowTest::SetUp();
147 136
148 root_view_.reset(new MockView(gfx::Size(800, 600))); 137 root_view_.reset(CreateFixedSizeView(gfx::Size(800, 600)));
149 138
150 immersive_mode_controller_.reset(new MockImmersiveModeController); 139 immersive_mode_controller_.reset(new MockImmersiveModeController);
151 140
152 top_container_ = new MockView(gfx::Size(800, 60)); 141 top_container_ = CreateFixedSizeView(gfx::Size(800, 60));
153 tab_strip_ = new TabStrip(nullptr); 142 tab_strip_ = new TabStrip(nullptr);
154 top_container_->AddChildView(tab_strip_); 143 top_container_->AddChildView(tab_strip_);
155 toolbar_ = new MockView(gfx::Size(800, 30)); 144 toolbar_ = CreateFixedSizeView(gfx::Size(800, 30));
156 top_container_->AddChildView(toolbar_); 145 top_container_->AddChildView(toolbar_);
157 root_view_->AddChildView(top_container_); 146 root_view_->AddChildView(top_container_);
158 147
159 infobar_container_ = new InfoBarContainerView(nullptr); 148 infobar_container_ = new InfoBarContainerView(nullptr);
160 root_view_->AddChildView(infobar_container_); 149 root_view_->AddChildView(infobar_container_);
161 150
162 contents_web_view_ = new MockView(gfx::Size(800, 600)); 151 contents_web_view_ = CreateFixedSizeView(gfx::Size(800, 600));
163 devtools_web_view_ = new MockView(gfx::Size(800, 600)); 152 devtools_web_view_ = CreateFixedSizeView(gfx::Size(800, 600));
164 devtools_web_view_->SetVisible(false); 153 devtools_web_view_->SetVisible(false);
165 154
166 contents_container_ = new MockView(gfx::Size(800, 600)); 155 contents_container_ = CreateFixedSizeView(gfx::Size(800, 600));
167 contents_container_->AddChildView(devtools_web_view_); 156 contents_container_->AddChildView(devtools_web_view_);
168 contents_container_->AddChildView(contents_web_view_); 157 contents_container_->AddChildView(contents_web_view_);
169 ContentsLayoutManager* contents_layout_manager = 158 ContentsLayoutManager* contents_layout_manager =
170 new ContentsLayoutManager(devtools_web_view_, contents_web_view_); 159 new ContentsLayoutManager(devtools_web_view_, contents_web_view_);
171 contents_container_->SetLayoutManager(contents_layout_manager); 160 contents_container_->SetLayoutManager(contents_layout_manager);
172 161
173 root_view_->AddChildView(contents_container_); 162 root_view_->AddChildView(contents_container_);
174 163
175 // TODO(jamescook): Attach |layout_| to |root_view_|? 164 // TODO(jamescook): Attach |layout_| to |root_view_|?
176 layout_.reset(new BrowserViewLayout); 165 layout_.reset(new BrowserViewLayout);
177 delegate_ = new MockBrowserViewLayoutDelegate(contents_web_view_); 166 delegate_ = new MockBrowserViewLayoutDelegate(contents_web_view_);
178 layout_->Init(delegate_, 167 layout_->Init(delegate_,
179 browser(), 168 browser(),
180 nullptr, // BrowserView. 169 nullptr, // BrowserView.
181 top_container_, 170 top_container_,
182 tab_strip_, 171 tab_strip_,
183 toolbar_, 172 toolbar_,
184 infobar_container_, 173 infobar_container_,
185 contents_container_, 174 contents_container_,
186 contents_layout_manager, 175 contents_layout_manager,
187 immersive_mode_controller_.get()); 176 immersive_mode_controller_.get());
188 } 177 }
189 178
190 private: 179 private:
191 std::unique_ptr<BrowserViewLayout> layout_; 180 std::unique_ptr<BrowserViewLayout> layout_;
192 MockBrowserViewLayoutDelegate* delegate_; // Owned by |layout_|. 181 MockBrowserViewLayoutDelegate* delegate_; // Owned by |layout_|.
193 std::unique_ptr<MockView> root_view_; 182 std::unique_ptr<views::View> root_view_;
194 183
195 // Views owned by |root_view_|. 184 // Views owned by |root_view_|.
196 MockView* top_container_; 185 views::View* top_container_;
197 TabStrip* tab_strip_; 186 TabStrip* tab_strip_;
198 MockView* toolbar_; 187 views::View* toolbar_;
199 InfoBarContainerView* infobar_container_; 188 InfoBarContainerView* infobar_container_;
200 MockView* contents_container_; 189 views::View* contents_container_;
201 MockView* contents_web_view_; 190 views::View* contents_web_view_;
202 MockView* devtools_web_view_; 191 views::View* devtools_web_view_;
203 192
204 std::unique_ptr<MockImmersiveModeController> immersive_mode_controller_; 193 std::unique_ptr<MockImmersiveModeController> immersive_mode_controller_;
205 194
206 DISALLOW_COPY_AND_ASSIGN(BrowserViewLayoutTest); 195 DISALLOW_COPY_AND_ASSIGN(BrowserViewLayoutTest);
207 }; 196 };
208 197
209 // Test basic construction and initialization. 198 // Test basic construction and initialization.
210 TEST_F(BrowserViewLayoutTest, BrowserViewLayout) { 199 TEST_F(BrowserViewLayoutTest, BrowserViewLayout) {
211 EXPECT_TRUE(layout()->browser()); 200 EXPECT_TRUE(layout()->browser());
212 EXPECT_TRUE(layout()->GetWebContentsModalDialogHost()); 201 EXPECT_TRUE(layout()->GetWebContentsModalDialogHost());
(...skipping 22 matching lines...) Expand all
235 // Now the toolbar has bounds and other views shift down. 224 // Now the toolbar has bounds and other views shift down.
236 EXPECT_EQ("0,0 0x0", tab_strip()->bounds().ToString()); 225 EXPECT_EQ("0,0 0x0", tab_strip()->bounds().ToString());
237 EXPECT_EQ("0,0 800x30", toolbar()->bounds().ToString()); 226 EXPECT_EQ("0,0 800x30", toolbar()->bounds().ToString());
238 EXPECT_EQ("0,30 800x0", infobar_container()->bounds().ToString()); 227 EXPECT_EQ("0,30 800x0", infobar_container()->bounds().ToString());
239 EXPECT_EQ("0,30 800x570", contents_container()->bounds().ToString()); 228 EXPECT_EQ("0,30 800x570", contents_container()->bounds().ToString());
240 229
241 // TODO(jamescook): Tab strip and bookmark bar. 230 // TODO(jamescook): Tab strip and bookmark bar.
242 } 231 }
243 232
244 TEST_F(BrowserViewLayoutTest, LayoutDownloadShelf) { 233 TEST_F(BrowserViewLayoutTest, LayoutDownloadShelf) {
245 std::unique_ptr<MockView> download_shelf(new MockView(gfx::Size(800, 50))); 234 std::unique_ptr<views::View> download_shelf(
235 CreateFixedSizeView(gfx::Size(800, 50)));
246 layout()->set_download_shelf(download_shelf.get()); 236 layout()->set_download_shelf(download_shelf.get());
247 237
248 // If download shelf doesn't need layout, it doesn't move the bottom edge. 238 // If download shelf doesn't need layout, it doesn't move the bottom edge.
249 delegate()->set_download_shelf_needs_layout(false); 239 delegate()->set_download_shelf_needs_layout(false);
250 const int kBottom = 500; 240 const int kBottom = 500;
251 EXPECT_EQ(kBottom, layout()->LayoutDownloadShelf(kBottom)); 241 EXPECT_EQ(kBottom, layout()->LayoutDownloadShelf(kBottom));
252 242
253 // Download shelf layout moves up the bottom edge and sets visibility. 243 // Download shelf layout moves up the bottom edge and sets visibility.
254 delegate()->set_download_shelf_needs_layout(true); 244 delegate()->set_download_shelf_needs_layout(true);
255 download_shelf->SetVisible(false); 245 download_shelf->SetVisible(false);
256 EXPECT_EQ(450, layout()->LayoutDownloadShelf(kBottom)); 246 EXPECT_EQ(450, layout()->LayoutDownloadShelf(kBottom));
257 EXPECT_TRUE(download_shelf->visible()); 247 EXPECT_TRUE(download_shelf->visible());
258 EXPECT_EQ("0,450 0x50", download_shelf->bounds().ToString()); 248 EXPECT_EQ("0,450 0x50", download_shelf->bounds().ToString());
259 } 249 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/arc_app_dialog_view.cc ('k') | components/constrained_window/constrained_window_views_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698