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

Unified Diff: chrome/browser/ui/views/apps/shaped_app_window_targeter_unittest.cc

Issue 171003004: Extract Chrome-specific code from NativeAppWindowViews (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix win, clang (split_native_app_window) Created 6 years, 10 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
Index: chrome/browser/ui/views/apps/shaped_app_window_targeter_unittest.cc
diff --git a/chrome/browser/ui/views/apps/shaped_app_window_targeter_unittest.cc b/chrome/browser/ui/views/apps/shaped_app_window_targeter_unittest.cc
deleted file mode 100644
index 08bd65ed1fcf83dff17fc3de0bf921ae4fb706d0..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/views/apps/shaped_app_window_targeter_unittest.cc
+++ /dev/null
@@ -1,151 +0,0 @@
-// 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 "chrome/browser/ui/views/apps/shaped_app_window_targeter.h"
-
-#include "chrome/browser/ui/views/apps/native_app_window_views.h"
-#include "ui/aura/root_window.h"
-#include "ui/aura/test/aura_test_base.h"
-#include "ui/aura/window.h"
-#include "ui/views/controls/webview/webview.h"
-#include "ui/wm/public/easy_resize_window_targeter.h"
-
-class ShapedAppWindowTargeterTest : public aura::test::AuraTestBase {
- public:
- ShapedAppWindowTargeterTest()
- : web_view_(NULL) {
- }
-
- virtual ~ShapedAppWindowTargeterTest() {}
-
- views::Widget* widget() { return widget_.get(); }
-
- apps::NativeAppWindow* app_window() { return &app_window_; }
- NativeAppWindowViews* app_window_views() { return &app_window_; }
-
- protected:
- virtual void SetUp() OVERRIDE {
- aura::test::AuraTestBase::SetUp();
- widget_.reset(new views::Widget);
- views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW);
- params.remove_standard_frame = true;
- params.bounds = gfx::Rect(30, 30, 100, 100);
- params.context = root_window();
- params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
- widget_->Init(params);
-
- app_window_.web_view_ = &web_view_;
- app_window_.window_ = widget_.get();
-
- widget_->Show();
- }
-
- virtual void TearDown() OVERRIDE {
- widget_.reset();
- aura::test::AuraTestBase::TearDown();
- }
-
- private:
- views::WebView web_view_;
- scoped_ptr<views::Widget> widget_;
- NativeAppWindowViews app_window_;
-
- DISALLOW_COPY_AND_ASSIGN(ShapedAppWindowTargeterTest);
-};
-
-TEST_F(ShapedAppWindowTargeterTest, HitTestBasic) {
- aura::Window* window = widget()->GetNativeWindow();
- {
- // Without any custom shapes, the event should be targeted correctly to the
- // 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 = dispatcher()->OnEventFromSource(&move);
- ASSERT_FALSE(details.dispatcher_destroyed);
- EXPECT_EQ(window, move.target());
- }
-
- scoped_ptr<SkRegion> region(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());
- {
- // With the custom shape, the events that don't fall within the custom shape
- // will go 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 = dispatcher()->OnEventFromSource(&move);
- ASSERT_FALSE(details.dispatcher_destroyed);
- EXPECT_EQ(root_window(), move.target());
-
- // But events within the shape will still reach the window.
- ui::MouseEvent move2(ui::ET_MOUSE_MOVED,
- gfx::Point(80, 80), gfx::Point(80, 80),
- ui::EF_NONE, ui::EF_NONE);
- details = dispatcher()->OnEventFromSource(&move2);
- ASSERT_FALSE(details.dispatcher_destroyed);
- EXPECT_EQ(window, move2.target());
- }
-}
-
-TEST_F(ShapedAppWindowTargeterTest, HitTestOnlyForShapedWindow) {
- // Install a window-targeter on the root window that allows a window to
- // receive events outside of its bounds. Verify that this window-targeter is
- // active unless the window has a custom shape.
- gfx::Insets inset(-30, -30, -30, -30);
- root_window()->SetEventTargeter(scoped_ptr<ui::EventTargeter>(
- new wm::EasyResizeWindowTargeter(root_window(), inset, inset)));
-
- aura::Window* window = widget()->GetNativeWindow();
- {
- // Without any custom shapes, an event within the window bounds should be
- // targeted correctly to the 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 = dispatcher()->OnEventFromSource(&move);
- ASSERT_FALSE(details.dispatcher_destroyed);
- EXPECT_EQ(window, move.target());
- }
- {
- // Without any custom shapes, an event that falls just outside the window
- // bounds should also be targeted correctly to the window, because of the
- // targeter installed on the root-window.
- ui::MouseEvent move(ui::ET_MOUSE_MOVED,
- gfx::Point(10, 10), gfx::Point(10, 10),
- ui::EF_NONE, ui::EF_NONE);
- ui::EventDispatchDetails details = dispatcher()->OnEventFromSource(&move);
- ASSERT_FALSE(details.dispatcher_destroyed);
- EXPECT_EQ(window, move.target());
- }
-
- scoped_ptr<SkRegion> region(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());
- {
- // With the custom shape, the events that don't fall within the custom shape
- // will go through to the root window.
- ui::MouseEvent move(ui::ET_MOUSE_MOVED,
- gfx::Point(10, 10), gfx::Point(10, 10),
- ui::EF_NONE, ui::EF_NONE);
- ui::EventDispatchDetails details = dispatcher()->OnEventFromSource(&move);
- ASSERT_FALSE(details.dispatcher_destroyed);
- EXPECT_EQ(root_window(), move.target());
- }
-
- // Remove the custom shape. This should restore the behaviour of targeting the
- // app window for events just outside its bounds.
- app_window()->UpdateShape(scoped_ptr<SkRegion>());
- {
- ui::MouseEvent move(ui::ET_MOUSE_MOVED,
- gfx::Point(10, 10), gfx::Point(10, 10),
- ui::EF_NONE, ui::EF_NONE);
- ui::EventDispatchDetails details = dispatcher()->OnEventFromSource(&move);
- ASSERT_FALSE(details.dispatcher_destroyed);
- EXPECT_EQ(window, move.target());
- }
-}

Powered by Google App Engine
This is Rietveld 408576698