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

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: Merge Created 9 years, 1 month 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/test_compositor.h"
12 #include "views/widget/widget.h"
13
14 #if defined(USE_AURA) 11 #if defined(USE_AURA)
15 #include "ui/aura/desktop.h" 12 #include "ui/aura/desktop.h"
16 #include "ui/aura/test/test_desktop_delegate.h" 13 #include "ui/aura/test/test_desktop_delegate.h"
17 #endif 14 #endif
18 15
19 namespace views { 16 namespace views {
20 17
21 static ui::Compositor* TestCreateCompositor() {
22 return new ui::TestCompositor();
23 }
24
25 ViewsTestBase::ViewsTestBase() 18 ViewsTestBase::ViewsTestBase()
26 : setup_called_(false), 19 : setup_called_(false),
27 teardown_called_(false) { 20 teardown_called_(false) {
28 #if defined(OS_WIN) 21 #if defined(OS_WIN)
29 OleInitialize(NULL); 22 OleInitialize(NULL);
30 #endif 23 #endif
31 #if defined(USE_AURA) 24 #if defined(USE_AURA)
32 aura::Desktop::set_compositor_factory_for_testing(&TestCreateCompositor);
33 new aura::test::TestDesktopDelegate; 25 new aura::test::TestDesktopDelegate;
34 #else
35 Widget::set_compositor_factory_for_testing(&TestCreateCompositor);
36 #endif 26 #endif
37 } 27 }
38 28
39 ViewsTestBase::~ViewsTestBase() { 29 ViewsTestBase::~ViewsTestBase() {
40 #if defined(OS_WIN) 30 #if defined(OS_WIN)
41 OleUninitialize(); 31 OleUninitialize();
42 #endif 32 #endif
43 CHECK(setup_called_) 33 CHECK(setup_called_)
44 << "You have overridden SetUp but never called super class's SetUp"; 34 << "You have overridden SetUp but never called super class's SetUp";
45 CHECK(teardown_called_) 35 CHECK(teardown_called_)
46 << "You have overrideen TearDown but never called super class's TearDown"; 36 << "You have overrideen TearDown but never called super class's TearDown";
47 } 37 }
48 38
49 void ViewsTestBase::SetUp() { 39 void ViewsTestBase::SetUp() {
50 testing::Test::SetUp(); 40 testing::Test::SetUp();
51 setup_called_ = true; 41 setup_called_ = true;
52 if (!views_delegate_.get()) 42 if (!views_delegate_.get())
53 views_delegate_.reset(new TestViewsDelegate()); 43 views_delegate_.reset(new TestViewsDelegate());
54 } 44 }
55 45
56 void ViewsTestBase::TearDown() { 46 void ViewsTestBase::TearDown() {
57 // Flush the message loop because we have pending release tasks 47 // Flush the message loop because we have pending release tasks
58 // and these tasks if un-executed would upset Valgrind. 48 // and these tasks if un-executed would upset Valgrind.
59 RunPendingMessages(); 49 RunPendingMessages();
60 teardown_called_ = true; 50 teardown_called_ = true;
61 views_delegate_.reset(); 51 views_delegate_.reset();
62 testing::Test::TearDown(); 52 testing::Test::TearDown();
63 #if defined(USE_AURA)
64 aura::Desktop::set_compositor_factory_for_testing(NULL);
65 #else
66 Widget::set_compositor_factory_for_testing(NULL);
67 #endif
68 } 53 }
69 54
70 void ViewsTestBase::RunPendingMessages() { 55 void ViewsTestBase::RunPendingMessages() {
71 #if defined(USE_AURA) 56 #if defined(USE_AURA)
72 message_loop_.RunAllPendingWithDispatcher( 57 message_loop_.RunAllPendingWithDispatcher(
73 aura::Desktop::GetInstance()->GetDispatcher()); 58 aura::Desktop::GetInstance()->GetDispatcher());
74 #else 59 #else
75 message_loop_.RunAllPending(); 60 message_loop_.RunAllPending();
76 #endif 61 #endif
77 } 62 }
78 63
79 } // namespace views 64 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698