Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / ui / views / controls / single_split_view_unittest.cc
index f82c1b5..e0840bb 100644 (file)
@@ -2,15 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "ui/views/controls/single_split_view.h"
+
 #include "base/logging.h"
-#include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "ui/views/controls/single_split_view.h"
 #include "ui/views/controls/single_split_view_listener.h"
 
-using ::testing::_;
-using ::testing::Return;
-
 namespace {
 
 static void VerifySplitViewLayout(const views::SingleSplitView& split) {
@@ -44,9 +41,21 @@ static void VerifySplitViewLayout(const views::SingleSplitView& split) {
   }
 }
 
-class MockObserver : public views::SingleSplitViewListener {
+class SingleSplitViewListenerImpl : public views::SingleSplitViewListener {
  public:
-  MOCK_METHOD1(SplitHandleMoved, bool(views::SingleSplitView*));
+  SingleSplitViewListenerImpl() : count_(0) {}
+
+  bool SplitHandleMoved(views::SingleSplitView* sender) override {
+    ++count_;
+    return false;
+  }
+
+  int count() const { return count_; }
+
+ private:
+  int count_;
+
+  DISALLOW_COPY_AND_ASSIGN(SingleSplitViewListenerImpl);
 };
 
 class MinimumSizedView: public views::View {
@@ -55,10 +64,10 @@ class MinimumSizedView: public views::View {
 
  private:
   gfx::Size min_size_;
-  virtual gfx::Size GetMinimumSize() OVERRIDE;
+  gfx::Size GetMinimumSize() const override;
 };
 
-gfx::Size MinimumSizedView::GetMinimumSize() {
+gfx::Size MinimumSizedView::GetMinimumSize() const {
   return min_size_;
 }
 
@@ -111,7 +120,7 @@ TEST(SingleSplitViewTest, Resize) {
     split.Layout();
 
     // Run all test cases.
-    for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) {
+    for (size_t i = 0; i < arraysize(test_cases); ++i) {
       split.set_resize_leading_on_bounds_change(
           test_cases[i].resize_leading_on_bounds_change);
       if (split.orientation() == SingleSplitView::HORIZONTAL_SPLIT) {
@@ -141,20 +150,14 @@ TEST(SingleSplitViewTest, Resize) {
 }
 
 TEST(SingleSplitViewTest, MouseDrag) {
-  MockObserver observer;
   const int kMinimumChildSize = 25;
   MinimumSizedView *child0 =
       new MinimumSizedView(gfx::Size(5, kMinimumChildSize));
   MinimumSizedView *child1 =
       new MinimumSizedView(gfx::Size(5, kMinimumChildSize));
+  SingleSplitViewListenerImpl listener;
   SingleSplitView split(
-      child0, child1, SingleSplitView::VERTICAL_SPLIT, &observer);
-
-  ON_CALL(observer, SplitHandleMoved(_))
-      .WillByDefault(Return(true));
-  // SplitHandleMoved is called for two mouse moves and one mouse capture loss.
-  EXPECT_CALL(observer, SplitHandleMoved(_))
-      .Times(5);
+      child0, child1, SingleSplitView::VERTICAL_SPLIT, &listener);
 
   const int kTotalSplitSize = 100;
   split.SetBounds(0, 0, 10, kTotalSplitSize);
@@ -166,49 +169,53 @@ TEST(SingleSplitViewTest, MouseDrag) {
 
   gfx::Point press_point(7, kInitialDividerOffset + kMouseOffset);
   ui::MouseEvent mouse_pressed(
-      ui::ET_MOUSE_PRESSED, press_point, press_point, 0);
+      ui::ET_MOUSE_PRESSED, press_point, press_point, 0, 0);
   ASSERT_TRUE(split.OnMousePressed(mouse_pressed));
   EXPECT_EQ(kInitialDividerOffset, split.divider_offset());
+  EXPECT_EQ(0, listener.count());
 
   // Drag divider to the bottom.
   gfx::Point drag_1_point(
       5, kInitialDividerOffset + kMouseOffset + kMouseMoveDelta);
   ui::MouseEvent mouse_dragged_1(
-      ui::ET_MOUSE_DRAGGED, drag_1_point, drag_1_point, 0);
+      ui::ET_MOUSE_DRAGGED, drag_1_point, drag_1_point, 0, 0);
   ASSERT_TRUE(split.OnMouseDragged(mouse_dragged_1));
   EXPECT_EQ(kInitialDividerOffset + kMouseMoveDelta, split.divider_offset());
+  EXPECT_EQ(1, listener.count());
 
   // Drag divider to the top, beyond first child minimum size.
   gfx::Point drag_2_point(
       7, kMinimumChildSize - 5);
   ui::MouseEvent mouse_dragged_2(
-      ui::ET_MOUSE_DRAGGED, drag_2_point, drag_2_point, 0);
+      ui::ET_MOUSE_DRAGGED, drag_2_point, drag_2_point, 0,0 );
   ASSERT_TRUE(split.OnMouseDragged(mouse_dragged_2));
-  EXPECT_EQ(kMinimumChildSize,
-            split.divider_offset());
+  EXPECT_EQ(kMinimumChildSize, split.divider_offset());
+  EXPECT_EQ(2, listener.count());
 
   // Drag divider to the bottom, beyond second child minimum size.
   gfx::Point drag_3_point(
       7, kTotalSplitSize - kMinimumChildSize + 5);
   ui::MouseEvent mouse_dragged_3(
-      ui::ET_MOUSE_DRAGGED, drag_3_point, drag_3_point, 0);
+      ui::ET_MOUSE_DRAGGED, drag_3_point, drag_3_point, 0, 0);
   ASSERT_TRUE(split.OnMouseDragged(mouse_dragged_3));
   EXPECT_EQ(kTotalSplitSize - kMinimumChildSize - split.GetDividerSize(),
             split.divider_offset());
+  EXPECT_EQ(3, listener.count());
 
   // Drag divider between childs' minimum sizes.
   gfx::Point drag_4_point(
       6, kInitialDividerOffset + kMouseOffset + kMouseMoveDelta * 2);
   ui::MouseEvent mouse_dragged_4(
-      ui::ET_MOUSE_DRAGGED, drag_4_point, drag_4_point, 0);
+      ui::ET_MOUSE_DRAGGED, drag_4_point, drag_4_point, 0, 0);
   ASSERT_TRUE(split.OnMouseDragged(mouse_dragged_4));
   EXPECT_EQ(kInitialDividerOffset + kMouseMoveDelta * 2,
             split.divider_offset());
+  EXPECT_EQ(4, listener.count());
 
   gfx::Point release_point(
       7, kInitialDividerOffset + kMouseOffset + kMouseMoveDelta * 2);
   ui::MouseEvent mouse_released(
-      ui::ET_MOUSE_RELEASED, release_point, release_point, 0);
+      ui::ET_MOUSE_RELEASED, release_point, release_point, 0, 0);
   split.OnMouseReleased(mouse_released);
   EXPECT_EQ(kInitialDividerOffset + kMouseMoveDelta * 2,
             split.divider_offset());
@@ -217,6 +224,7 @@ TEST(SingleSplitViewTest, MouseDrag) {
   // This shouldn't occur after mouse release, but it's sufficient for testing.
   split.OnMouseCaptureLost();
   EXPECT_EQ(kInitialDividerOffset, split.divider_offset());
+  EXPECT_EQ(5, listener.count());
 }
 
 }  // namespace views