Home | History | Annotate | Download | only in wm
      1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "ash/wm/partial_screenshot_view.h"
      6 
      7 #include "ash/screenshot_delegate.h"
      8 #include "ash/shell.h"
      9 #include "ash/shell_window_ids.h"
     10 #include "ash/test/ash_test_base.h"
     11 #include "ash/test/test_screenshot_delegate.h"
     12 #include "ui/aura/test/event_generator.h"
     13 #include "ui/aura/window_event_dispatcher.h"
     14 
     15 namespace ash {
     16 
     17 class PartialScreenshotViewTest : public test::AshTestBase {
     18  public:
     19   PartialScreenshotViewTest() : view_(NULL) {}
     20   virtual ~PartialScreenshotViewTest() {}
     21 
     22   virtual void SetUp() OVERRIDE {
     23     test::AshTestBase::SetUp();
     24     std::vector<PartialScreenshotView*> views =
     25         PartialScreenshotView::StartPartialScreenshot(GetScreenshotDelegate());
     26     ASSERT_EQ(1u, views.size());
     27     view_ = views[0];
     28   }
     29 
     30  protected:
     31   PartialScreenshotView* view_;
     32 
     33  private:
     34   DISALLOW_COPY_AND_ASSIGN(PartialScreenshotViewTest);
     35 };
     36 
     37 TEST_F(PartialScreenshotViewTest, BasicMouse) {
     38   aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
     39 
     40   generator.MoveMouseTo(100, 100);
     41   generator.PressLeftButton();
     42   EXPECT_FALSE(view_->is_dragging_);
     43   EXPECT_EQ("100,100", view_->start_position_.ToString());
     44 
     45   generator.MoveMouseTo(200, 200);
     46   EXPECT_TRUE(view_->is_dragging_);
     47   EXPECT_EQ("200,200", view_->current_position_.ToString());
     48 
     49   generator.ReleaseLeftButton();
     50   EXPECT_FALSE(view_->is_dragging_);
     51   EXPECT_EQ("100,100 100x100", GetScreenshotDelegate()->last_rect().ToString());
     52   EXPECT_EQ(1, GetScreenshotDelegate()->handle_take_partial_screenshot_count());
     53 }
     54 
     55 TEST_F(PartialScreenshotViewTest, BasicTouch) {
     56   aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
     57 
     58   generator.set_current_location(gfx::Point(100,100));
     59   generator.GestureTapDownAndUp(gfx::Point(100,100));
     60   EXPECT_FALSE(view_->is_dragging_);
     61   EXPECT_EQ(0, GetScreenshotDelegate()->handle_take_partial_screenshot_count());
     62 
     63   generator.PressTouch();
     64   EXPECT_FALSE(view_->is_dragging_);
     65   EXPECT_EQ("100,100", view_->start_position_.ToString());
     66 
     67   generator.MoveTouch(gfx::Point(200, 200));
     68   EXPECT_TRUE(view_->is_dragging_);
     69   EXPECT_EQ("200,200", view_->current_position_.ToString());
     70 
     71   generator.ReleaseTouch();
     72   EXPECT_FALSE(view_->is_dragging_);
     73   EXPECT_EQ(1, GetScreenshotDelegate()->handle_take_partial_screenshot_count());
     74   EXPECT_EQ("100,100 100x100", GetScreenshotDelegate()->last_rect().ToString());
     75 }
     76 
     77 }  // namespace ash
     78