Index: ash/mus/window_manager_unittest.cc |
diff --git a/ash/mus/window_manager_unittest.cc b/ash/mus/window_manager_unittest.cc |
index 4c2c0cd0e88246778ebfd775b94812bdbd1a1108..60e9862b46d44f2e237d7cf3f1c27f62f6e44c48 100644 |
--- a/ash/mus/window_manager_unittest.cc |
+++ b/ash/mus/window_manager_unittest.cc |
@@ -66,7 +66,28 @@ class WindowManagerTest : public service_manager::test::ServiceTest { |
WindowManagerTest() : service_manager::test::ServiceTest("mash_unittests") {} |
~WindowManagerTest() override {} |
+ // service_manager::test::ServiceTest: |
+ void SetUp() override { |
+ service_manager::test::ServiceTest::SetUp(); |
+ |
+ // This test triggers a path that clobbers the context_factory set on Env. |
msw
2017/02/19 21:49:20
Can you elaborate on the exact mechanism that clob
sky
2017/02/21 17:06:50
Done.
|
+ // As all tests share the same Env (see mash_test_suite) we need to restore |
+ // the context_factory when done. |
+ aura::Env* env = aura::Env::GetInstance(); |
+ initial_context_factory_ = env->context_factory(); |
+ initial_context_factory_private_ = env->context_factory_private(); |
+ } |
+ |
+ void TearDown() override { |
+ aura::Env* env = aura::Env::GetInstance(); |
+ env->set_context_factory(initial_context_factory_); |
+ env->set_context_factory_private(initial_context_factory_private_); |
+ } |
+ |
private: |
+ ui::ContextFactory* initial_context_factory_ = nullptr; |
+ ui::ContextFactoryPrivate* initial_context_factory_private_ = nullptr; |
+ |
DISALLOW_COPY_AND_ASSIGN(WindowManagerTest); |
}; |