| Index: ui/base/touch/touch_editing_controller_unittest.cc
|
| diff --git a/ui/base/touch/touch_editing_controller_unittest.cc b/ui/base/touch/touch_editing_controller_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d6b047e5cdf14cd9cc11b913a01efe6523ea9bed
|
| --- /dev/null
|
| +++ b/ui/base/touch/touch_editing_controller_unittest.cc
|
| @@ -0,0 +1,99 @@
|
| +// Copyright 2014 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 "ui/base/touch/touch_editing_controller.h"
|
| +
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace ui {
|
| +
|
| +namespace {
|
| +
|
| +}
|
| +
|
| +TEST(TouchEditingControllerTest, SelectionBound) {
|
| + SelectionBound b1, b2;
|
| + // Simple case of aligned vertical bounds of equal height
|
| + b1.edge_top = gfx::Point(0, 20);
|
| + b1.edge_bottom = gfx::Point(0, 25);
|
| + b2.edge_top = gfx::Point(110, 20);
|
| + b2.edge_bottom = gfx::Point(110, 25);
|
| + EXPECT_EQ(gfx::Rect(b1.edge_top,
|
| + gfx::Size(b2.edge_top.x() - b1.edge_top.x(),
|
| + b2.edge_bottom.y() - b2.edge_top.y())),
|
| + RectBetweenSelectionBounds(b1, b2));
|
| + EXPECT_EQ(RectBetweenSelectionBounds(b1, b2),
|
| + RectBetweenSelectionBounds(b2, b1));
|
| +
|
| + // Parallel vertical bounds of different heights
|
| + b1.edge_top = gfx::Point(10, 20);
|
| + b1.edge_bottom = gfx::Point(10, 25);
|
| + b2.edge_top = gfx::Point(110, 0);
|
| + b2.edge_bottom = gfx::Point(110, 35);
|
| + EXPECT_EQ(gfx::Rect(gfx::Point(b1.edge_top.x(), b2.edge_top.y()),
|
| + gfx::Size(b2.edge_top.x() - b1.edge_top.x(),
|
| + b2.edge_bottom.y() - b2.edge_top.y())),
|
| + RectBetweenSelectionBounds(b1, b2));
|
| + EXPECT_EQ(RectBetweenSelectionBounds(b1, b2),
|
| + RectBetweenSelectionBounds(b2, b1));
|
| +
|
| + b1.edge_top = gfx::Point(10, 20);
|
| + b1.edge_bottom = gfx::Point(10, 30);
|
| + b2.edge_top = gfx::Point(110, 25);
|
| + b2.edge_bottom = gfx::Point(110, 45);
|
| + EXPECT_EQ(gfx::Rect(b1.edge_top,
|
| + gfx::Size(b2.edge_top.x() - b1.edge_top.x(),
|
| + b2.edge_bottom.y() - b1.edge_top.y())),
|
| + RectBetweenSelectionBounds(b1, b2));
|
| + EXPECT_EQ(RectBetweenSelectionBounds(b1, b2),
|
| + RectBetweenSelectionBounds(b2, b1));
|
| +
|
| + b1.edge_top = gfx::Point(10, 20);
|
| + b1.edge_bottom = gfx::Point(10, 30);
|
| + b2.edge_top = gfx::Point(110, 40);
|
| + b2.edge_bottom = gfx::Point(110, 60);
|
| + EXPECT_EQ(gfx::Rect(b1.edge_top,
|
| + gfx::Size(b2.edge_top.x() - b1.edge_top.x(),
|
| + b2.edge_bottom.y() - b1.edge_top.y())),
|
| + RectBetweenSelectionBounds(b1, b2));
|
| + EXPECT_EQ(RectBetweenSelectionBounds(b1, b2),
|
| + RectBetweenSelectionBounds(b2, b1));
|
| +
|
| + // Overlapping vertical bounds
|
| + b1.edge_top = gfx::Point(10, 20);
|
| + b1.edge_bottom = gfx::Point(10, 30);
|
| + b2.edge_top = gfx::Point(10, 25);
|
| + b2.edge_bottom = gfx::Point(10, 40);
|
| + EXPECT_EQ(gfx::Rect(b1.edge_top,
|
| + gfx::Size(0, b2.edge_bottom.y() - b1.edge_top.y())),
|
| + RectBetweenSelectionBounds(b1, b2));
|
| + EXPECT_EQ(RectBetweenSelectionBounds(b1, b2),
|
| + RectBetweenSelectionBounds(b2, b1));
|
| +
|
| + // Non-vertical bounds: "\ \"
|
| + b1.edge_top = gfx::Point(10, 20);
|
| + b1.edge_bottom = gfx::Point(20, 30);
|
| + b2.edge_top = gfx::Point(110, 40);
|
| + b2.edge_bottom = gfx::Point(120, 60);
|
| + EXPECT_EQ(gfx::Rect(b1.edge_top,
|
| + gfx::Size(b2.edge_bottom.x() - b1.edge_top.x(),
|
| + b2.edge_bottom.y() - b1.edge_top.y())),
|
| + RectBetweenSelectionBounds(b1, b2));
|
| + EXPECT_EQ(RectBetweenSelectionBounds(b1, b2),
|
| + RectBetweenSelectionBounds(b2, b1));
|
| +
|
| + // Non-vertical bounds: "/ \"
|
| + b1.edge_top = gfx::Point(20, 30);
|
| + b1.edge_bottom = gfx::Point(0, 40);
|
| + b2.edge_top = gfx::Point(110, 30);
|
| + b2.edge_bottom = gfx::Point(120, 40);
|
| + EXPECT_EQ(gfx::Rect(gfx::Point(b1.edge_bottom.x(), b1.edge_top.y()),
|
| + gfx::Size(b2.edge_bottom.x() - b1.edge_bottom.x(),
|
| + b2.edge_bottom.y() - b2.edge_top.y())),
|
| + RectBetweenSelectionBounds(b1, b2));
|
| + EXPECT_EQ(RectBetweenSelectionBounds(b1, b2),
|
| + RectBetweenSelectionBounds(b2, b1));
|
| +}
|
| +
|
| +} // namespace ui
|
|
|