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

Side by Side Diff: views/test/views_test_base.cc

Issue 8240006: Use a mocked compositor for unit tests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: missed views_test_base.cc Created 9 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "views/test/views_test_base.h" 5 #include "views/test/views_test_base.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <ole2.h> 8 #include <ole2.h>
9 #endif 9 #endif
10 10
11 #include "ui/gfx/compositor/compositor.h"
11 #include "ui/gfx/compositor/test_compositor.h" 12 #include "ui/gfx/compositor/test_compositor.h"
12 #include "views/widget/widget.h"
13 13
14 #if defined(USE_AURA) 14 #if defined(USE_AURA)
15 #include "ui/aura/desktop.h" 15 #include "ui/aura/desktop.h"
16 #include "ui/aura/test/test_desktop_delegate.h" 16 #include "ui/aura/test/test_desktop_delegate.h"
17 #endif 17 #endif
18 18
19 namespace views { 19 namespace views {
20 20
21 static ui::Compositor* TestCreateCompositor() { 21 static ui::Compositor* TestCreateCompositor(ui::CompositorDelegate *owner) {
22 return new ui::TestCompositor(); 22 return new ui::TestCompositor(owner);
23 } 23 }
24 24
25 ViewsTestBase::ViewsTestBase() 25 ViewsTestBase::ViewsTestBase()
26 : setup_called_(false), 26 : setup_called_(false),
27 teardown_called_(false) { 27 teardown_called_(false) {
28 #if defined(OS_WIN) 28 #if defined(OS_WIN)
29 OleInitialize(NULL); 29 OleInitialize(NULL);
30 #endif 30 #endif
31 ui::Compositor::set_compositor_factory_for_testing(&TestCreateCompositor);
31 #if defined(USE_AURA) 32 #if defined(USE_AURA)
32 aura::Desktop::set_compositor_factory_for_testing(&TestCreateCompositor);
33 new aura::test::TestDesktopDelegate; 33 new aura::test::TestDesktopDelegate;
34 #else
35 Widget::set_compositor_factory_for_testing(&TestCreateCompositor);
36 #endif 34 #endif
37 } 35 }
38 36
39 ViewsTestBase::~ViewsTestBase() { 37 ViewsTestBase::~ViewsTestBase() {
40 #if defined(OS_WIN) 38 #if defined(OS_WIN)
41 OleUninitialize(); 39 OleUninitialize();
42 #endif 40 #endif
43 CHECK(setup_called_) 41 CHECK(setup_called_)
44 << "You have overridden SetUp but never called super class's SetUp"; 42 << "You have overridden SetUp but never called super class's SetUp";
45 CHECK(teardown_called_) 43 CHECK(teardown_called_)
46 << "You have overrideen TearDown but never called super class's TearDown"; 44 << "You have overrideen TearDown but never called super class's TearDown";
47 } 45 }
48 46
49 void ViewsTestBase::SetUp() { 47 void ViewsTestBase::SetUp() {
50 testing::Test::SetUp(); 48 testing::Test::SetUp();
51 setup_called_ = true; 49 setup_called_ = true;
52 if (!views_delegate_.get()) 50 if (!views_delegate_.get())
53 views_delegate_.reset(new TestViewsDelegate()); 51 views_delegate_.reset(new TestViewsDelegate());
54 } 52 }
55 53
56 void ViewsTestBase::TearDown() { 54 void ViewsTestBase::TearDown() {
57 // Flush the message loop because we have pending release tasks 55 // Flush the message loop because we have pending release tasks
58 // and these tasks if un-executed would upset Valgrind. 56 // and these tasks if un-executed would upset Valgrind.
59 RunPendingMessages(); 57 RunPendingMessages();
60 teardown_called_ = true; 58 teardown_called_ = true;
61 views_delegate_.reset(); 59 views_delegate_.reset();
62 testing::Test::TearDown(); 60 testing::Test::TearDown();
63 #if defined(USE_AURA) 61 ui::Compositor::set_compositor_factory_for_testing(NULL);
64 aura::Desktop::set_compositor_factory_for_testing(NULL);
65 #else
66 Widget::set_compositor_factory_for_testing(NULL);
67 #endif
68 } 62 }
69 63
70 void ViewsTestBase::RunPendingMessages() { 64 void ViewsTestBase::RunPendingMessages() {
71 #if defined(USE_AURA) 65 #if defined(USE_AURA)
72 message_loop_.RunAllPendingWithDispatcher( 66 message_loop_.RunAllPendingWithDispatcher(
73 aura::Desktop::GetInstance()->GetDispatcher()); 67 aura::Desktop::GetInstance()->GetDispatcher());
74 #else 68 #else
75 message_loop_.RunAllPending(); 69 message_loop_.RunAllPending();
76 #endif 70 #endif
77 } 71 }
78 72
79 } // namespace views 73 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698