Index: ash/test/ash_test_environment.h |
diff --git a/ash/test/ash_test_environment.h b/ash/test/ash_test_environment.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a763936066dc2f60d89538fcafb8addad5cfa057 |
--- /dev/null |
+++ b/ash/test/ash_test_environment.h |
@@ -0,0 +1,52 @@ |
+// Copyright 2016 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. |
+ |
+#ifndef ASH_TEST_ASH_TEST_ENVIRONMENT_H_ |
+#define ASH_TEST_ASH_TEST_ENVIRONMENT_H_ |
+ |
+#include <memory> |
+ |
+namespace base { |
+class SequencedWorkerPool; |
+} |
+ |
+namespace views { |
+class ViewsDelegate; |
+} |
+ |
+namespace ash { |
+namespace test { |
+ |
+// AshTestEnvironment creates objects specific to an environment. Two |
+// environments are provided, one for content (AshTestEnvironmentContent) |
+// and one without content (AshTestEnvironmentDefault). |
+// |
+// AshTestBase creates an AshTestEnvironment by way of |
+// AshTestEnvironment::Create(). The implementation of Create() depends upon |
+// the ash target that was linked against: //ash:test_support_with_content |
+// includes AshTestEnvironmentContent and //ash:test_support_without_content |
+// includes AshTestEnvironmentDefault. |
+class AshTestEnvironment { |
+ public: |
+ virtual ~AshTestEnvironment() {} |
+ |
+ // Creates the object appropriate to the current environment. |
+ static std::unique_ptr<AshTestEnvironment> Create(); |
+ |
+ // Called from AshTestHelper::SetUp()/TearDown(). |
+ virtual void SetUp() {} |
+ virtual void TearDown() {} |
+ |
+ virtual base::SequencedWorkerPool* GetBlockingPool() = 0; |
+ |
+ virtual std::unique_ptr<views::ViewsDelegate> CreateViewsDelegate() = 0; |
+ |
+ protected: |
+ AshTestEnvironment() {} |
+}; |
+ |
+} // namespace test |
+} // namespace ash |
+ |
+#endif // ASH_TEST_ASH_TEST_ENVIRONMENT_H_ |