Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / views / apps / shaped_app_window_targeter_unittest.cc
index 05c6ae4..ef7d0cf 100644 (file)
@@ -19,7 +19,7 @@ class ShapedAppWindowTargeterTest : public aura::test::AuraTestBase {
       : web_view_(NULL) {
   }
 
-  virtual ~ShapedAppWindowTargeterTest() {}
+  ~ShapedAppWindowTargeterTest() override {}
 
   views::Widget* widget() { return widget_.get(); }
 
@@ -27,7 +27,7 @@ class ShapedAppWindowTargeterTest : public aura::test::AuraTestBase {
   ChromeNativeAppWindowViews* app_window_views() { return &app_window_; }
 
  protected:
-  virtual void SetUp() OVERRIDE {
+  void SetUp() override {
     aura::test::AuraTestBase::SetUp();
     new wm::DefaultActivationClient(root_window());
     widget_.reset(new views::Widget);
@@ -44,7 +44,7 @@ class ShapedAppWindowTargeterTest : public aura::test::AuraTestBase {
     widget_->Show();
   }
 
-  virtual void TearDown() OVERRIDE {
+  void TearDown() override {
     widget_.reset();
     aura::test::AuraTestBase::TearDown();
   }
@@ -72,6 +72,30 @@ TEST_F(ShapedAppWindowTargeterTest, HitTestBasic) {
   }
 
   scoped_ptr<SkRegion> region(new SkRegion);
+  region->op(SkIRect::MakeXYWH(0, 0, 0, 0), SkRegion::kUnion_Op);
+  app_window()->UpdateShape(region.Pass());
+  {
+    // With an empty custom shape, all events within the window should fall
+    // through to the root window.
+    ui::MouseEvent move(ui::ET_MOUSE_MOVED,
+                        gfx::Point(40, 40), gfx::Point(40, 40),
+                        ui::EF_NONE, ui::EF_NONE);
+    ui::EventDispatchDetails details =
+        event_processor()->OnEventFromSource(&move);
+    ASSERT_FALSE(details.dispatcher_destroyed);
+    EXPECT_EQ(root_window(), move.target());
+  }
+
+  // Window shape (global coordinates)
+  //    30       70    90        130
+  //  30 +        +-----+
+  //       .      |     |             <- mouse move (40,40)
+  //  70 +--------+     +---------+
+  //     |           .            |   <- mouse move (80,80)
+  //  90 +--------+     +---------+
+  //              |     |
+  // 130          +-----+
+  region.reset(new SkRegion);
   region->op(SkIRect::MakeXYWH(40, 0, 20, 100), SkRegion::kUnion_Op);
   region->op(SkIRect::MakeXYWH(0, 40, 100, 20), SkRegion::kUnion_Op);
   app_window()->UpdateShape(region.Pass());