Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(206)

Unified Diff: chrome/test/base/module_system_test.h

Issue 359413004: Add support for using AMD modules from extensions modules. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: extensions_renderer should depend on gin Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/DEPS ('k') | chrome/test/base/module_system_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..e8dd221995950d4bf1d079e09fc26e9463a91fd9 100644
--- a/chrome/test/base/module_system_test.h
+++ b/chrome/test/base/module_system_test.h
@@ -8,9 +8,63 @@
#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|.
+ 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 ShutdownGin();
+
+ void ShutdownModuleSystem();
+
+ extensions::ModuleSystem* module_system() {
+ return context_->module_system();
+ }
+
+ extensions::ChromeV8Context* context() { return context_.get(); }
+
+ v8::Isolate* isolate() { return isolate_holder_->isolate(); }
+
+ AssertNatives* assert_natives() { return assert_natives_; }
+
+ private:
+ gin::IsolateHolder* isolate_holder_;
+ 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 +87,21 @@ 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);
+ ModuleSystemTestEnvironment* env() { return env_.get(); }
- // 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);
+ scoped_ptr<ModuleSystemTestEnvironment> CreateEnvironment();
// 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_;
+ private:
+ gin::IsolateHolder isolate_holder_;
+ scoped_ptr<ModuleSystemTestEnvironment> env_;
bool should_assertions_be_made_;
private:
« no previous file with comments | « chrome/test/DEPS ('k') | chrome/test/base/module_system_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698