Index: chrome/test/base/view_event_test_base.cc |
diff --git a/chrome/test/base/view_event_test_base.cc b/chrome/test/base/view_event_test_base.cc |
index 2d64c5d408c07be184b86a8d40b21c808205ad9a..b2d252f246d103efd7dbb33239f1c87c005c6b7a 100644 |
--- a/chrome/test/base/view_event_test_base.cc |
+++ b/chrome/test/base/view_event_test_base.cc |
@@ -44,6 +44,30 @@ |
namespace { |
+class ViewEventTestBaseViewsDelegate : public ChromeViewsDelegate { |
+ public: |
+ ViewEventTestBaseViewsDelegate() : context_factory_(NULL) { |
+ views::ViewsDelegate::views_delegate = this; |
+ } |
+ virtual ~ViewEventTestBaseViewsDelegate() { |
+ views::ViewsDelegate::views_delegate = NULL; |
+ } |
+ |
+ void set_context_factory(ui::ContextFactory* context_factory) { |
+ context_factory_ = context_factory; |
+ } |
+ |
+ // ChromeViewsDelegate: |
+ virtual ui::ContextFactory* GetContextFactory() OVERRIDE { |
+ return context_factory_; |
+ } |
+ |
+ private: |
+ ui::ContextFactory* context_factory_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ViewEventTestBaseViewsDelegate); |
+}; |
+ |
// View subclass that allows you to specify the preferred size. |
class TestView : public views::View { |
public: |
@@ -103,13 +127,18 @@ void ViewEventTestBase::SetUpTestCase() { |
void ViewEventTestBase::SetUp() { |
wm_state_.reset(new wm::WMState); |
- views::ViewsDelegate::views_delegate = &views_delegate_; |
+ ViewEventTestBaseViewsDelegate* views_delegate = |
+ new ViewEventTestBaseViewsDelegate; |
+ views_delegate_.reset(views_delegate); |
+ |
ui::InitializeInputMethodForTesting(); |
gfx::NativeView context = NULL; |
// The ContextFactory must exist before any Compositors are created. |
bool enable_pixel_output = false; |
- ui::InitializeContextFactoryForTests(enable_pixel_output); |
+ ui::ContextFactory* context_factory = |
+ ui::InitializeContextFactoryForTests(enable_pixel_output); |
+ views_delegate->set_context_factory(context_factory); |
#if defined(USE_ASH) |
#if defined(OS_WIN) |
@@ -131,6 +160,7 @@ void ViewEventTestBase::SetUp() { |
new ash::test::TestShellDelegate(); |
ash::ShellInitParams init_params; |
init_params.delegate = shell_delegate; |
+ init_params.context_factory = context_factory; |
ash::Shell::CreateInstance(init_params); |
shell_delegate->test_session_state_delegate() |
->SetActiveUserSessionStarted(true); |
@@ -143,7 +173,7 @@ void ViewEventTestBase::SetUp() { |
// the test screen. |
aura_test_helper_.reset( |
new aura::test::AuraTestHelper(base::MessageLoopForUI::current())); |
- aura_test_helper_->SetUp(); |
+ aura_test_helper_->SetUp(context_factory); |
new wm::DefaultActivationClient(aura_test_helper_->root_window()); |
context = aura_test_helper_->root_window(); |
#endif // !USE_ASH && USE_AURA |
@@ -180,7 +210,8 @@ void ViewEventTestBase::TearDown() { |
ui::TerminateContextFactoryForTests(); |
ui::ShutdownInputMethodForTesting(); |
- views::ViewsDelegate::views_delegate = NULL; |
+ |
+ views_delegate_.reset(); |
wm_state_.reset(); |
} |