summaryrefslogtreecommitdiffstats
path: root/extensions/renderer/api_test_base.h
diff options
context:
space:
mode:
authorsammc <sammc@chromium.org>2015-02-09 17:10:15 -0800
committerCommit bot <commit-bot@chromium.org>2015-02-10 01:10:55 +0000
commit5cc0cb8eae54f6b228f390c5e2e48ba76764e564 (patch)
treeda1a3f2d50455a381458c7518af654b2859af33f /extensions/renderer/api_test_base.h
parent02d9ead993610863dfff6dd600cfc464db35d0ac (diff)
downloadchromium_src-5cc0cb8eae54f6b228f390c5e2e48ba76764e564.zip
chromium_src-5cc0cb8eae54f6b228f390c5e2e48ba76764e564.tar.gz
chromium_src-5cc0cb8eae54f6b228f390c5e2e48ba76764e564.tar.bz2
Add a JS stash client.
The stash client allows clients to stash services during renderer shut-down and retrieve them during renderer start-up. BUG=389016 Review URL: https://codereview.chromium.org/661423007 Cr-Commit-Position: refs/heads/master@{#315463}
Diffstat (limited to 'extensions/renderer/api_test_base.h')
-rw-r--r--extensions/renderer/api_test_base.h39
1 files changed, 30 insertions, 9 deletions
diff --git a/extensions/renderer/api_test_base.h b/extensions/renderer/api_test_base.h
index 26a60a7..9e6feab 100644
--- a/extensions/renderer/api_test_base.h
+++ b/extensions/renderer/api_test_base.h
@@ -71,6 +71,30 @@ class TestServiceProvider : public gin::Wrappable<TestServiceProvider> {
service_factories_;
};
+// An environment for unit testing apps/extensions API custom bindings
+// implemented on Mojo services. This augments a ModuleSystemTestEnvironment
+// with a TestServiceProvider and other modules available in a real extensions
+// environment.
+class ApiTestEnvironment {
+ public:
+ explicit ApiTestEnvironment(ModuleSystemTestEnvironment* environment);
+ ~ApiTestEnvironment();
+ void RunTest(const std::string& file_name, const std::string& test_name);
+ TestServiceProvider* service_provider() { return service_provider_; }
+ ModuleSystemTestEnvironment* env() { return env_; }
+
+ private:
+ void RegisterModules();
+ void InitializeEnvironment();
+ void RunTestInner(const std::string& test_name,
+ const base::Closure& quit_closure);
+ void RunPromisesAgain();
+
+ ModuleSystemTestEnvironment* env_;
+ TestServiceProvider* service_provider_;
+ scoped_ptr<V8SchemaRegistry> v8_schema_registry_;
+};
+
// A base class for unit testing apps/extensions API custom bindings implemented
// on Mojo services. To use:
// 1. Register test Mojo service implementations on service_provider().
@@ -85,18 +109,15 @@ class ApiTestBase : public ModuleSystemTest {
~ApiTestBase() override;
void SetUp() override;
void RunTest(const std::string& file_name, const std::string& test_name);
- TestServiceProvider* service_provider() { return service_provider_; }
- private:
- void RegisterModules();
- void InitializeEnvironment();
- void RunTestInner(const std::string& test_name,
- const base::Closure& quit_closure);
- void RunPromisesAgain();
+ ApiTestEnvironment* api_test_env() { return test_env_.get(); }
+ TestServiceProvider* service_provider() {
+ return test_env_->service_provider();
+ }
+ private:
base::MessageLoop message_loop_;
- TestServiceProvider* service_provider_;
- scoped_ptr<V8SchemaRegistry> v8_schema_registry_;
+ scoped_ptr<ApiTestEnvironment> test_env_;
};
} // namespace extensions