Index: chrome/browser/ui/autofill/popup_view_utils_unittest.cc |
diff --git a/chrome/browser/ui/autofill/popup_controller_common_unittest.cc b/chrome/browser/ui/autofill/popup_view_utils_unittest.cc |
similarity index 56% |
rename from chrome/browser/ui/autofill/popup_controller_common_unittest.cc |
rename to chrome/browser/ui/autofill/popup_view_utils_unittest.cc |
index 2de743e812bb2c388b1f3a5702d05cbc15e102e8..a2b789f9fdd3f64a3535df0730e81c93e8ef8e8e 100644 |
--- a/chrome/browser/ui/autofill/popup_controller_common_unittest.cc |
+++ b/chrome/browser/ui/autofill/popup_view_utils_unittest.cc |
@@ -1,88 +1,103 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/ui/autofill/popup_controller_common.h" |
+#include "chrome/browser/ui/autofill/popup_view_utils.h" |
#include <stddef.h> |
#include "base/macros.h" |
#include "base/memory/scoped_ptr.h" |
-#include "chrome/browser/ui/autofill/test_popup_controller_common.h" |
#include "chrome/test/base/chrome_render_view_host_test_harness.h" |
+#include "content/public/browser/web_contents.h" |
#include "ui/gfx/display.h" |
#include "ui/gfx/geometry/rect.h" |
namespace autofill { |
+namespace view_utils { |
-class PopupControllerBaseTest : public ChromeRenderViewHostTestHarness { |
+namespace { |
+ |
+// Test class which overrides specific behavior for testing. |
+class TestPopupViewUtils : public PopupViewUtils { |
+ public: |
+ explicit TestPopupViewUtils(const gfx::Display& display) |
+ : display_(display) {} |
+ |
+ gfx::Display GetDisplayNearestPoint(const gfx::Point& point, |
+ gfx::NativeView container_view) override { |
+ return display_; |
+ } |
+ |
+ private: |
+ gfx::Display display_; |
+}; |
+ |
+} // namespace |
+ |
+class PopupViewUtilsTest : public ChromeRenderViewHostTestHarness { |
public: |
- PopupControllerBaseTest() {} |
- ~PopupControllerBaseTest() override {} |
+ PopupViewUtilsTest() {} |
+ ~PopupViewUtilsTest() override {} |
private: |
- DISALLOW_COPY_AND_ASSIGN(PopupControllerBaseTest); |
+ DISALLOW_COPY_AND_ASSIGN(PopupViewUtilsTest); |
}; |
-TEST_F(PopupControllerBaseTest, GetPopupBoundsTest) { |
+TEST_F(PopupViewUtilsTest, CalculatePopupBounds) { |
int desired_width = 40; |
int desired_height = 16; |
// Set up the visible screen space. |
gfx::Display display(0, |
gfx::Rect(0, 0, 2 * desired_width, 2 * desired_height)); |
+ TestPopupViewUtils view_utils(display); |
struct { |
- gfx::RectF element_bounds; |
+ gfx::Rect element_bounds; |
gfx::Rect expected_popup_bounds_ltr; |
// Non-empty only when it differs from the ltr expectation. |
gfx::Rect expected_popup_bounds_rtl; |
} test_cases[] = { |
// The popup grows down and to the end. |
- {gfx::RectF(38, 0, 5, 0), |
- gfx::Rect(38, 0, desired_width, desired_height), |
+ {gfx::Rect(38, 0, 5, 0), gfx::Rect(38, 0, desired_width, desired_height), |
gfx::Rect(3, 0, desired_width, desired_height)}, |
// The popup grows down and to the left when there's no room on the right. |
- {gfx::RectF(2 * desired_width, 0, 5, 0), |
+ {gfx::Rect(2 * desired_width, 0, 5, 0), |
gfx::Rect(desired_width, 0, desired_width, desired_height)}, |
// The popup grows up and to the right. |
- {gfx::RectF(0, 2 * desired_height, 5, 0), |
+ {gfx::Rect(0, 2 * desired_height, 5, 0), |
gfx::Rect(0, desired_height, desired_width, desired_height)}, |
// The popup grows up and to the left. |
- {gfx::RectF(2 * desired_width, 2 * desired_height, 5, 0), |
+ {gfx::Rect(2 * desired_width, 2 * desired_height, 5, 0), |
gfx::Rect(desired_width, desired_height, desired_width, desired_height)}, |
// The popup would be partial off the top and left side of the screen. |
- {gfx::RectF(-desired_width / 2, -desired_height / 2, 5, 0), |
+ {gfx::Rect(-desired_width / 2, -desired_height / 2, 5, 0), |
gfx::Rect(0, 0, desired_width, desired_height)}, |
// The popup would be partially off the bottom and the right side of |
// the screen. |
- {gfx::RectF(desired_width * 1.5, desired_height * 1.5, 5, 0), |
+ {gfx::Rect(desired_width * 1.5, desired_height * 1.5, 5, 0), |
gfx::Rect((desired_width * 1.5 + 5 - desired_width), |
(desired_height * 1.5 - desired_height), desired_width, |
desired_height)}, |
}; |
for (size_t i = 0; i < arraysize(test_cases); ++i) { |
- scoped_ptr<TestPopupControllerCommon> popup_controller( |
- new TestPopupControllerCommon(test_cases[i].element_bounds, |
- base::i18n::LEFT_TO_RIGHT)); |
- popup_controller->set_display(display); |
- gfx::Rect actual_popup_bounds = |
- popup_controller->GetPopupBounds(desired_width, desired_height); |
+ gfx::Rect actual_popup_bounds = view_utils.CalculatePopupBounds( |
+ desired_width, desired_height, test_cases[i].element_bounds, |
+ web_contents()->GetNativeView(), /* is_rtl= */ false); |
EXPECT_EQ(test_cases[i].expected_popup_bounds_ltr.ToString(), |
actual_popup_bounds.ToString()) |
<< "Popup bounds failed to match for ltr test " << i; |
- popup_controller.reset(new TestPopupControllerCommon( |
- test_cases[i].element_bounds, base::i18n::RIGHT_TO_LEFT)); |
- popup_controller->set_display(display); |
- actual_popup_bounds = |
- popup_controller->GetPopupBounds(desired_width, desired_height); |
+ actual_popup_bounds = view_utils.CalculatePopupBounds( |
+ desired_width, desired_height, test_cases[i].element_bounds, |
+ web_contents()->GetNativeView(), /* is_rtl= */ true); |
gfx::Rect expected_popup_bounds = test_cases[i].expected_popup_bounds_rtl; |
if (expected_popup_bounds.IsEmpty()) |
expected_popup_bounds = test_cases[i].expected_popup_bounds_ltr; |
@@ -91,4 +106,5 @@ TEST_F(PopupControllerBaseTest, GetPopupBoundsTest) { |
} |
} |
+} // namespace view_utils |
} // namespace autofill |