| 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 "chrome/browser/ui/views/tabs/tab.h" | 5 #include "chrome/browser/ui/views/tabs/tab.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 | 258 |
| 259 FakeTabController tab_controller; | 259 FakeTabController tab_controller; |
| 260 Tab tab(&tab_controller, nullptr); | 260 Tab tab(&tab_controller, nullptr); |
| 261 widget.GetContentsView()->AddChildView(&tab); | 261 widget.GetContentsView()->AddChildView(&tab); |
| 262 tab.SetBoundsRect(gfx::Rect(gfx::Point(0, 0), Tab::GetStandardSize())); | 262 tab.SetBoundsRect(gfx::Rect(gfx::Point(0, 0), Tab::GetStandardSize())); |
| 263 | 263 |
| 264 // Tabs are slanted, so a click halfway down the left edge won't hit it. | 264 // Tabs are slanted, so a click halfway down the left edge won't hit it. |
| 265 int middle_y = tab.height() / 2; | 265 int middle_y = tab.height() / 2; |
| 266 EXPECT_FALSE(tab.HitTestPoint(gfx::Point(0, middle_y))); | 266 EXPECT_FALSE(tab.HitTestPoint(gfx::Point(0, middle_y))); |
| 267 | 267 |
| 268 // Normally, tabs should not be hit if we click in the exclusion region, only | 268 // Tabs should not be hit if we click above them. |
| 269 // if we click below it. | |
| 270 const int exclusion = GetLayoutConstant(TAB_TOP_EXCLUSION_HEIGHT); | |
| 271 int middle_x = tab.width() / 2; | 269 int middle_x = tab.width() / 2; |
| 272 EXPECT_FALSE(tab.HitTestPoint(gfx::Point(middle_x, exclusion - 1))); | 270 EXPECT_FALSE(tab.HitTestPoint(gfx::Point(middle_x, -1))); |
| 273 EXPECT_TRUE(tab.HitTestPoint(gfx::Point(middle_x, exclusion))); | 271 EXPECT_TRUE(tab.HitTestPoint(gfx::Point(middle_x, 0))); |
| 274 | 272 |
| 275 // If the window is maximized, however, we want clicks in the top edge to | 273 // Make sure top edge clicks still select the tab when the window is |
| 276 // select the tab. | 274 // maximized. |
| 277 widget.Maximize(); | 275 widget.Maximize(); |
| 278 EXPECT_TRUE(tab.HitTestPoint(gfx::Point(middle_x, 0))); | 276 EXPECT_TRUE(tab.HitTestPoint(gfx::Point(middle_x, 0))); |
| 279 | 277 |
| 280 // But clicks in the area above the slanted sides should still miss. | 278 // But clicks in the area above the slanted sides should still miss. |
| 281 EXPECT_FALSE(tab.HitTestPoint(gfx::Point(0, 0))); | 279 EXPECT_FALSE(tab.HitTestPoint(gfx::Point(0, 0))); |
| 282 EXPECT_FALSE(tab.HitTestPoint(gfx::Point(tab.width() - 1, 0))); | 280 EXPECT_FALSE(tab.HitTestPoint(gfx::Point(tab.width() - 1, 0))); |
| 283 } | 281 } |
| 284 | 282 |
| 285 TEST_F(TabTest, LayoutAndVisibilityOfElements) { | 283 TEST_F(TabTest, LayoutAndVisibilityOfElements) { |
| 286 static const TabAlertState kAlertStatesToTest[] = { | 284 static const TabAlertState kAlertStatesToTest[] = { |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 490 } | 488 } |
| 491 | 489 |
| 492 TEST_F(TabTest, TitleHiddenWhenSmall) { | 490 TEST_F(TabTest, TitleHiddenWhenSmall) { |
| 493 FakeTabController tab_controller; | 491 FakeTabController tab_controller; |
| 494 Tab tab(&tab_controller, nullptr); | 492 Tab tab(&tab_controller, nullptr); |
| 495 tab.SetBounds(0, 0, 100, 50); | 493 tab.SetBounds(0, 0, 100, 50); |
| 496 EXPECT_GT(GetTitleWidth(tab), 0); | 494 EXPECT_GT(GetTitleWidth(tab), 0); |
| 497 tab.SetBounds(0, 0, 0, 50); | 495 tab.SetBounds(0, 0, 0, 50); |
| 498 EXPECT_EQ(0, GetTitleWidth(tab)); | 496 EXPECT_EQ(0, GetTitleWidth(tab)); |
| 499 } | 497 } |
| OLD | NEW |