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

Unified Diff: content/renderer/disambiguation_popup_helper_unittest.cc

Issue 10885004: Implement disambiguation popup (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fixing visibility Created 8 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/disambiguation_popup_helper.cc ('k') | content/renderer/render_view_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/disambiguation_popup_helper_unittest.cc
diff --git a/content/renderer/disambiguation_popup_helper_unittest.cc b/content/renderer/disambiguation_popup_helper_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..2aaeb84e06f5d87023182ec825795e6162247809
--- /dev/null
+++ b/content/renderer/disambiguation_popup_helper_unittest.cc
@@ -0,0 +1,81 @@
+// Copyright (c) 2012 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 "content/renderer/disambiguation_popup_helper.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebRect.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebVector.h"
+#include "ui/gfx/rect.h"
+#include "ui/gfx/size.h"
+#include "ui/gfx/size_conversions.h"
+
+// these constants are copied from the implementation class
+namespace {
+const float kDisambiguationPopupMaxScale = 5.0;
+const float kDisambiguationPopupMinScale = 2.0;
+} // unnamed namespace
+
+namespace content {
+
+class DisambiguationPopupHelperUnittest : public testing::Test {
+ public:
+ DisambiguationPopupHelperUnittest()
+ : kViewportSize_(640, 480) { }
+ protected:
+ const gfx::Size kViewportSize_;
+};
+
+TEST_F(DisambiguationPopupHelperUnittest, ClipByViewport) {
+ gfx::Rect tap_rect(1000, 1000, 10, 10);
+ WebKit::WebVector<WebKit::WebRect> target_rects(static_cast<size_t>(1));
+ target_rects[0] = gfx::Rect(-20, -20, 10, 10);
+
+ gfx::Rect zoom_rect;
+ float scale = DisambiguationPopupHelper::ComputeZoomAreaAndScaleFactor(
+ tap_rect, target_rects, kViewportSize_, &zoom_rect);
+
+ EXPECT_TRUE(gfx::Rect(kViewportSize_).Contains(zoom_rect));
+ EXPECT_LE(kDisambiguationPopupMinScale, scale);
+
+ gfx::Size scaled_size = ToCeiledSize(zoom_rect.size().Scale(scale));
+ EXPECT_TRUE(gfx::Rect(kViewportSize_).Contains(gfx::Rect(scaled_size)));
+}
+
+TEST_F(DisambiguationPopupHelperUnittest, MiniTarget) {
+ gfx::Rect tap_rect(-5, -5, 20, 20);
+ WebKit::WebVector<WebKit::WebRect> target_rects(static_cast<size_t>(1));
+ target_rects[0] = gfx::Rect(10, 10, 1, 1);
+
+ gfx::Rect zoom_rect;
+ float scale = DisambiguationPopupHelper::ComputeZoomAreaAndScaleFactor(
+ tap_rect, target_rects, kViewportSize_, &zoom_rect);
+
+ EXPECT_TRUE(gfx::Rect(kViewportSize_).Contains(zoom_rect));
+ EXPECT_EQ(kDisambiguationPopupMaxScale, scale);
+ EXPECT_TRUE(zoom_rect.Contains(target_rects[0]));
+
+ gfx::Size scaled_size = ToCeiledSize(zoom_rect.size().Scale(scale));
+ EXPECT_TRUE(gfx::Rect(kViewportSize_).Contains(gfx::Rect(scaled_size)));
+}
+
+TEST_F(DisambiguationPopupHelperUnittest, LongLinks) {
+ gfx::Rect tap_rect(10, 10, 20, 20);
+ WebKit::WebVector<WebKit::WebRect> target_rects(static_cast<size_t>(2));
+ target_rects[0] = gfx::Rect(15, 15, 1000, 5);
+ target_rects[1] = gfx::Rect(15, 25, 1000, 5);
+
+ gfx::Rect zoom_rect;
+ float scale = DisambiguationPopupHelper::ComputeZoomAreaAndScaleFactor(
+ tap_rect, target_rects, kViewportSize_, &zoom_rect);
+
+ EXPECT_TRUE(gfx::Rect(kViewportSize_).Contains(zoom_rect));
+ EXPECT_EQ(kDisambiguationPopupMaxScale, scale);
+ EXPECT_TRUE(zoom_rect.Contains(tap_rect));
+
+ gfx::Size scaled_size = ToCeiledSize(zoom_rect.size().Scale(scale));
+ EXPECT_TRUE(gfx::Rect(kViewportSize_).Contains(gfx::Rect(scaled_size)));
+}
+
+} // namespace content
« no previous file with comments | « content/renderer/disambiguation_popup_helper.cc ('k') | content/renderer/render_view_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698