Index: chrome/test/base/module_system_test.h |
diff --git a/chrome/test/base/module_system_test.h b/chrome/test/base/module_system_test.h |
index 8402d57b39e2e74921ffd3a11797cca91045dd74..529568fd2f6bdec9f72e3591f92ba200300fc7fb 100644 |
--- a/chrome/test/base/module_system_test.h |
+++ b/chrome/test/base/module_system_test.h |
@@ -8,9 +8,60 @@ |
#include "chrome/renderer/extensions/chrome_v8_context.h" |
#include "extensions/renderer/module_system.h" |
#include "extensions/renderer/scoped_persistent.h" |
+#include "gin/public/context_holder.h" |
+#include "gin/public/isolate_holder.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "v8/include/v8.h" |
+class ModuleSystemTestEnvironment { |
+ public: |
+ class AssertNatives; |
+ class StringSourceMap; |
+ |
+ explicit ModuleSystemTestEnvironment(gin::IsolateHolder* isolate_holder); |
+ ~ModuleSystemTestEnvironment(); |
+ |
+ // Register a named JS module in the module system. |
+ void RegisterModule(const std::string& name, const std::string& code); |
+ |
+ // Register a named JS module with source retrieved from a ResourceBundle. |
+ void RegisterModule(const std::string& name, int resource_id); |
+ |
+ // Register a named JS module in the module system and tell the module system |
+ // to use it to handle any requireNative() calls for native modules with that |
+ // name. |
+ void OverrideNativeHandler(const std::string& name, const std::string& code); |
+ |
+ // Registers |file_name| from chrome/test/data/extensions as a module name |
+ // |module_name|. |
not at google - send to devlin
2014/07/07 23:18:50
heh, we should use this more. those embedded strin
|
+ void RegisterTestFile(const std::string& module_name, |
+ const std::string& file_name); |
+ |
+ // Create an empty object in the global scope with name |name|. |
+ v8::Handle<v8::Object> CreateGlobal(const std::string& name); |
+ |
+ void DeleteContextHolder(); |
not at google - send to devlin
2014/07/07 23:18:50
I don't know what ContextHolder is. would it be ac
Sam McNally
2014/07/08 00:07:04
Done.
|
+ |
+ void DeleteModuleSystem(); |
+ |
+ extensions::ModuleSystem* module_system() { |
+ return context_->module_system(); |
+ } |
+ |
+ extensions::ChromeV8Context* context() { return context_.get(); } |
+ |
+ AssertNatives* assert_natives() { return assert_natives_; } |
+ |
+ private: |
+ scoped_ptr<gin::ContextHolder> context_holder_; |
+ v8::HandleScope handle_scope_; |
+ scoped_ptr<extensions::ChromeV8Context> context_; |
+ AssertNatives* assert_natives_; |
+ scoped_ptr<StringSourceMap> source_map_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ModuleSystemTestEnvironment); |
+}; |
+ |
// Test fixture for testing JS that makes use of the module system. |
// |
// Typically tests will look like: |
@@ -33,36 +84,16 @@ class ModuleSystemTest : public testing::Test { |
virtual void TearDown() OVERRIDE; |
protected: |
- // Register a named JS module in the module system. |
- void RegisterModule(const std::string& name, const std::string& code); |
- |
- // Register a named JS module with source retrieved from a ResourceBundle. |
- void RegisterModule(const std::string& name, int resource_id); |
- |
- // Register a named JS module in the module system and tell the module system |
- // to use it to handle any requireNative() calls for native modules with that |
- // name. |
- void OverrideNativeHandler(const std::string& name, const std::string& code); |
- |
- // Registers |file_name| from chrome/test/data/extensions as a module name |
- // |module_name|. |
- void RegisterTestFile(const std::string& module_name, |
- const std::string& file_name); |
- |
// Make the test fail if any asserts are called. By default a test will fail |
// if no asserts are called. |
void ExpectNoAssertionsMade(); |
- // Create an empty object in the global scope with name |name|. |
- v8::Handle<v8::Object> CreateGlobal(const std::string& name); |
+ // Runs promises that have been resolved. Resolved promises will not run |
+ // until this is called. |
+ void RunResolvedPromises(); |
- v8::Isolate* isolate_; |
- v8::HandleScope handle_scope_; |
- scoped_ptr<extensions::ChromeV8Context> context_; |
- class AssertNatives; |
- AssertNatives* assert_natives_; |
- class StringSourceMap; |
- scoped_ptr<StringSourceMap> source_map_; |
+ gin::IsolateHolder isolate_holder_; |
not at google - send to devlin
2014/07/07 23:18:50
could you expose a CreateEnvironment() and make th
Sam McNally
2014/07/08 00:07:04
Done.
|
+ ModuleSystemTestEnvironment env_; |
not at google - send to devlin
2014/07/07 23:18:50
it would be nicer if all of these were private, an
Sam McNally
2014/07/08 00:07:04
Done.
|
bool should_assertions_be_made_; |
private: |