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

Unified Diff: aura/window_unittest.cc

Issue 7886042: Move Aura to UI subdir. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 3 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
« no previous file with comments | « aura/window_manager.cc ('k') | build/all.gyp » ('j') | ui/aura/aura.gyp » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: aura/window_unittest.cc
===================================================================
--- aura/window_unittest.cc (revision 100961)
+++ aura/window_unittest.cc (working copy)
@@ -1,281 +0,0 @@
-// Copyright (c) 2011 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 "aura/desktop.h"
-#include "aura/event.h"
-#include "aura/focus_manager.h"
-#include "aura/root_window.h"
-#include "aura/window_delegate.h"
-#include "base/basictypes.h"
-#include "base/compiler_specific.h"
-#include "base/message_loop.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/gfx/canvas_skia.h"
-#include "ui/base/keycodes/keyboard_codes.h"
-
-#if !defined(OS_WIN)
-#include "aura/hit_test.h"
-#endif
-
-namespace aura {
-namespace internal {
-
-namespace {
-
-// WindowDelegate implementation with all methods stubbed out.
-class WindowDelegateImpl : public WindowDelegate {
- public:
- WindowDelegateImpl() {}
- virtual ~WindowDelegateImpl() {}
-
- // Overriden from WindowDelegate:
- virtual void OnFocus() OVERRIDE {}
- virtual void OnBlur() OVERRIDE {}
- virtual bool OnKeyEvent(KeyEvent* event) OVERRIDE {
- return false;
- }
- virtual int GetNonClientComponent(const gfx::Point& point) const OVERRIDE {
- return HTCLIENT;
- }
- virtual bool OnMouseEvent(MouseEvent* event) OVERRIDE { return false; }
- virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE {}
- virtual void OnWindowDestroying() OVERRIDE {}
- virtual void OnWindowDestroyed() OVERRIDE {}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(WindowDelegateImpl);
-};
-
-// Used for verifying destruction methods are invoked.
-class DestroyTrackingDelegateImpl : public WindowDelegateImpl {
- public:
- DestroyTrackingDelegateImpl()
- : destroying_count_(0),
- destroyed_count_(0),
- in_destroying_(false) {}
-
- void clear_destroying_count() { destroying_count_ = 0; }
- int destroying_count() const { return destroying_count_; }
-
- void clear_destroyed_count() { destroyed_count_ = 0; }
- int destroyed_count() const { return destroyed_count_; }
-
- bool in_destroying() const { return in_destroying_; }
-
- virtual void OnWindowDestroying() OVERRIDE {
- EXPECT_FALSE(in_destroying_);
- in_destroying_ = true;
- destroying_count_++;
- }
-
- virtual void OnWindowDestroyed() OVERRIDE {
- EXPECT_TRUE(in_destroying_);
- in_destroying_ = false;
- destroyed_count_++;
- }
-
- private:
- bool in_destroying_;
- int destroying_count_;
- int destroyed_count_;
-
- DISALLOW_COPY_AND_ASSIGN(DestroyTrackingDelegateImpl);
-};
-
-// Used to verify that when OnWindowDestroying is invoked the parent is also
-// is in the process of being destroyed.
-class ChildWindowDelegateImpl : public DestroyTrackingDelegateImpl {
- public:
- explicit ChildWindowDelegateImpl(
- DestroyTrackingDelegateImpl* parent_delegate)
- : parent_delegate_(parent_delegate) {
- }
-
- virtual void OnWindowDestroying() OVERRIDE {
- EXPECT_TRUE(parent_delegate_->in_destroying());
- DestroyTrackingDelegateImpl::OnWindowDestroying();
- }
-
- private:
- DestroyTrackingDelegateImpl* parent_delegate_;
-
- DISALLOW_COPY_AND_ASSIGN(ChildWindowDelegateImpl);
-};
-
-// A simple WindowDelegate implementation for these tests. It owns itself
-// (deletes itself when the Window it is attached to is destroyed).
-class TestWindowDelegate : public WindowDelegateImpl {
- public:
- TestWindowDelegate(SkColor color)
- : color_(color),
- last_key_code_(ui::VKEY_UNKNOWN) {
- }
- virtual ~TestWindowDelegate() {}
-
- ui::KeyboardCode last_key_code() const { return last_key_code_; }
-
- // Overridden from WindowDelegateImpl:
- virtual bool OnKeyEvent(KeyEvent* event) OVERRIDE {
- last_key_code_ = event->key_code();
- return true;
- }
- virtual void OnWindowDestroyed() OVERRIDE {
- delete this;
- }
- virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE {
- canvas->AsCanvasSkia()->drawColor(color_, SkXfermode::kSrc_Mode);
- }
-
- private:
- SkColor color_;
- ui::KeyboardCode last_key_code_;
-
- DISALLOW_COPY_AND_ASSIGN(TestWindowDelegate);
-};
-
-class WindowTest : public testing::Test {
- public:
- WindowTest() : main_message_loop(MessageLoop::TYPE_UI) {
- aura::Desktop::GetInstance()->Show();
- aura::Desktop::GetInstance()->SetSize(gfx::Size(500, 500));
- }
- virtual ~WindowTest() {}
-
- // Overridden from testing::Test:
- virtual void SetUp() OVERRIDE {
- }
-
- virtual void TearDown() OVERRIDE {
- }
-
- Window* CreateTestWindow(SkColor color,
- int id,
- const gfx::Rect& bounds,
- Window* parent) {
- return CreateTestWindowWithDelegate(new TestWindowDelegate(color),
- id, bounds, parent);
- }
-
- Window* CreateTestWindowWithDelegate(WindowDelegate* delegate,
- int id,
- const gfx::Rect& bounds,
- Window* parent) {
- Window* window = new Window(delegate);
- window->set_id(id);
- window->Init();
- window->SetBounds(bounds, 0);
- window->SetVisibility(Window::VISIBILITY_SHOWN);
- window->SetParent(parent);
- return window;
- }
-
- void RunPendingMessages() {
- MessageLoop message_loop(MessageLoop::TYPE_UI);
- MessageLoopForUI::current()->Run(NULL);
- }
-
- private:
- MessageLoop main_message_loop;
-
- DISALLOW_COPY_AND_ASSIGN(WindowTest);
-};
-
-} // namespace
-
-TEST_F(WindowTest, HitTest) {
- Window w1(new TestWindowDelegate(SK_ColorWHITE));
- w1.set_id(1);
- w1.Init();
- w1.SetBounds(gfx::Rect(10, 10, 50, 50), 0);
- w1.SetVisibility(Window::VISIBILITY_SHOWN);
- w1.SetParent(NULL);
-
- // Points are in the Window's coordinates.
- EXPECT_TRUE(w1.HitTest(gfx::Point(1, 1)));
- EXPECT_FALSE(w1.HitTest(gfx::Point(-1, -1)));
-
- // TODO(beng): clip Window to parent.
-}
-
-TEST_F(WindowTest, GetEventHandlerForPoint) {
- scoped_ptr<Window> w1(
- CreateTestWindow(SK_ColorWHITE, 1, gfx::Rect(10, 10, 500, 500), NULL));
- scoped_ptr<Window> w11(
- CreateTestWindow(SK_ColorGREEN, 11, gfx::Rect(5, 5, 100, 100), w1.get()));
- scoped_ptr<Window> w111(
- CreateTestWindow(SK_ColorCYAN, 111, gfx::Rect(5, 5, 75, 75), w11.get()));
- scoped_ptr<Window> w1111(
- CreateTestWindow(SK_ColorRED, 1111, gfx::Rect(5, 5, 50, 50), w111.get()));
- scoped_ptr<Window> w12(
- CreateTestWindow(SK_ColorMAGENTA, 12, gfx::Rect(10, 420, 25, 25),
- w1.get()));
- scoped_ptr<Window> w121(
- CreateTestWindow(SK_ColorYELLOW, 121, gfx::Rect(5, 5, 5, 5), w12.get()));
- scoped_ptr<Window> w13(
- CreateTestWindow(SK_ColorGRAY, 13, gfx::Rect(5, 470, 50, 50), w1.get()));
-
- Window* desktop = Desktop::GetInstance()->window();
- EXPECT_EQ(desktop, desktop->GetEventHandlerForPoint(gfx::Point(5, 5)));
- EXPECT_EQ(w1.get(), desktop->GetEventHandlerForPoint(gfx::Point(11, 11)));
- EXPECT_EQ(w11.get(), desktop->GetEventHandlerForPoint(gfx::Point(16, 16)));
- EXPECT_EQ(w111.get(), desktop->GetEventHandlerForPoint(gfx::Point(21, 21)));
- EXPECT_EQ(w1111.get(), desktop->GetEventHandlerForPoint(gfx::Point(26, 26)));
- EXPECT_EQ(w12.get(), desktop->GetEventHandlerForPoint(gfx::Point(21, 431)));
- EXPECT_EQ(w121.get(), desktop->GetEventHandlerForPoint(gfx::Point(26, 436)));
- EXPECT_EQ(w13.get(), desktop->GetEventHandlerForPoint(gfx::Point(26, 481)));
-}
-
-TEST_F(WindowTest, Focus) {
- scoped_ptr<Window> w1(
- CreateTestWindow(SK_ColorWHITE, 1, gfx::Rect(10, 10, 500, 500), NULL));
- scoped_ptr<Window> w11(
- CreateTestWindow(SK_ColorGREEN, 11, gfx::Rect(5, 5, 100, 100), w1.get()));
- scoped_ptr<Window> w111(
- CreateTestWindow(SK_ColorCYAN, 111, gfx::Rect(5, 5, 75, 75), w11.get()));
- scoped_ptr<Window> w1111(
- CreateTestWindow(SK_ColorRED, 1111, gfx::Rect(5, 5, 50, 50), w111.get()));
- scoped_ptr<Window> w12(
- CreateTestWindow(SK_ColorMAGENTA, 12, gfx::Rect(10, 420, 25, 25),
- w1.get()));
- TestWindowDelegate* w121delegate = new TestWindowDelegate(SK_ColorYELLOW);
- scoped_ptr<Window> w121(
- CreateTestWindowWithDelegate(w121delegate, 121, gfx::Rect(5, 5, 5, 5),
- w12.get()));
- scoped_ptr<Window> w13(
- CreateTestWindow(SK_ColorGRAY, 13, gfx::Rect(5, 470, 50, 50), w1.get()));
-
- // Click on a sub-window (w121) to focus it.
- Desktop* desktop = Desktop::GetInstance();
- gfx::Point click_point = w121->bounds().CenterPoint();
- Window::ConvertPointToWindow(w121->parent(), desktop->window(), &click_point);
- desktop->OnMouseEvent(
- MouseEvent(ui::ET_MOUSE_PRESSED, click_point, ui::EF_LEFT_BUTTON_DOWN));
- internal::FocusManager* focus_manager = w121->GetFocusManager();
- EXPECT_EQ(w121.get(), focus_manager->focused_window());
-
- // The key press should be sent to the focused sub-window.
- desktop->OnKeyEvent(KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_E, 0));
- EXPECT_EQ(ui::VKEY_E, w121delegate->last_key_code());
-}
-
-// Various destruction assertions.
-TEST_F(WindowTest, DestroyTest) {
- DestroyTrackingDelegateImpl parent_delegate;
- ChildWindowDelegateImpl child_delegate(&parent_delegate);
- {
- scoped_ptr<Window> parent(
- CreateTestWindowWithDelegate(&parent_delegate, 0, gfx::Rect(), NULL));
- Window* child = CreateTestWindowWithDelegate(&child_delegate, 0,
- gfx::Rect(), parent.get());
- }
- // Both the parent and child should have been destroyed.
- EXPECT_EQ(1, parent_delegate.destroying_count());
- EXPECT_EQ(1, parent_delegate.destroyed_count());
- EXPECT_EQ(1, child_delegate.destroying_count());
- EXPECT_EQ(1, child_delegate.destroyed_count());
-}
-
-} // namespace internal
-} // namespace aura
-
« no previous file with comments | « aura/window_manager.cc ('k') | build/all.gyp » ('j') | ui/aura/aura.gyp » ('J')

Powered by Google App Engine
This is Rietveld 408576698