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

Unified Diff: chrome/renderer/module_system_unittest.cc

Issue 9657026: Revert 125801 - Implement a module system for the extension bindings JS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 9 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/renderer/module_system.cc ('k') | chrome/renderer/native_handler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/module_system_unittest.cc
===================================================================
--- chrome/renderer/module_system_unittest.cc (revision 125813)
+++ chrome/renderer/module_system_unittest.cc (working copy)
@@ -4,14 +4,12 @@
#include "base/callback.h"
#include "base/memory/scoped_ptr.h"
-#include "base/string_piece.h"
#include "chrome/renderer/module_system.h"
#include "testing/gtest/include/gtest/gtest.h"
#include <map>
#include <string>
-// Native JS functions for doing asserts.
class AssertNatives : public NativeHandler {
public:
AssertNatives()
@@ -35,69 +33,22 @@
bool failed_;
};
-class StringSourceMap : public ModuleSystem::SourceMap {
- public:
- StringSourceMap() {}
-
- v8::Handle<v8::Value> GetSource(const std::string& name) OVERRIDE {
- if (source_map_.count(name) == 0)
- return v8::Undefined();
- return v8::String::New(source_map_[name].c_str());
- }
-
- bool Contains(const std::string& name) OVERRIDE {
- return source_map_.count(name);
- }
-
- void RegisterModule(const std::string& name, const std::string& source) {
- source_map_[name] = source;
- }
-
- private:
- std::map<std::string, std::string> source_map_;
-};
-
-// Native JS functions for disabling injection in ModuleSystem.
-class DisableNativesHandler : public NativeHandler {
- public:
- explicit DisableNativesHandler(ModuleSystem* module_system)
- : module_system_(module_system) {
- RouteFunction("DisableNatives",
- base::Bind(&DisableNativesHandler::DisableNatives,
- base::Unretained(this)));
- }
-
- v8::Handle<v8::Value> DisableNatives(const v8::Arguments& args) {
- module_system_->set_natives_enabled(false);
- return v8::Undefined();
- }
-
- private:
- ModuleSystem* module_system_;
-};
-
class ModuleSystemTest : public testing::Test {
public:
ModuleSystemTest()
: context_(v8::Context::New()),
- handle_scope_(),
- assert_natives_(new AssertNatives()),
- source_map_(new StringSourceMap()),
- module_system_(new ModuleSystem(source_map_)) {
+ assert_natives_(new AssertNatives()) {
context_->Enter();
+ source_map_["add"] = "exports.Add = function(x, y) { return x + y; };";
+ module_system_.reset(new ModuleSystem(&source_map_));
module_system_->RegisterNativeHandler("assert", scoped_ptr<NativeHandler>(
assert_natives_));
- RegisterModule("add", "exports.Add = function(x, y) { return x + y; };");
}
~ModuleSystemTest() {
context_.Dispose();
}
- void RegisterModule(const std::string& name, const std::string& code) {
- source_map_->RegisterModule(name, code);
- }
-
virtual void TearDown() {
// All tests must call a native function at least once.
ASSERT_TRUE(assert_natives_->native_function_called());
@@ -105,63 +56,45 @@
ASSERT_FALSE(try_catch_.HasCaught());
}
- v8::Persistent<v8::Context> context_;
v8::HandleScope handle_scope_;
v8::TryCatch try_catch_;
+ v8::Persistent<v8::Context> context_;
AssertNatives* assert_natives_;
- StringSourceMap* source_map_;
+ std::map<std::string, std::string> source_map_;
scoped_ptr<ModuleSystem> module_system_;
};
TEST_F(ModuleSystemTest, TestRequire) {
- RegisterModule("test",
+ source_map_["test"] =
"var Add = require('add').Add;"
- "requireNative('assert').AssertTrue(Add(3, 5) == 8);");
+ "requireNative('assert').AssertTrue(Add(3, 5) == 8);";
module_system_->Require("test");
}
TEST_F(ModuleSystemTest, TestNestedRequire) {
- RegisterModule("double",
+ source_map_["double"] =
"var Add = require('add').Add;"
- "exports.Double = function(x) { return Add(x, x); };");
- RegisterModule("test",
+ "exports.Double = function(x) { return Add(x, x); };";
+ source_map_["test"] =
"var Double = require('double').Double;"
- "requireNative('assert').AssertTrue(Double(3) == 6);");
+ "requireNative('assert').AssertTrue(Double(3) == 6);";
module_system_->Require("test");
}
TEST_F(ModuleSystemTest, TestModuleInsulation) {
- RegisterModule("x",
+ source_map_["x"] =
"var x = 10;"
- "exports.X = function() { return x; };");
- RegisterModule("y",
+ "exports.X = function() { return x; };";
+ source_map_["y"] =
"var x = 15;"
"require('x');"
- "exports.Y = function() { return x; };");
- RegisterModule("test",
+ "exports.Y = function() { return x; };";
+ source_map_["test"] =
"var Y = require('y').Y;"
"var X = require('x').X;"
"var assert = requireNative('assert');"
"assert.AssertTrue(!this.hasOwnProperty('x'));"
"assert.AssertTrue(Y() == 15);"
- "assert.AssertTrue(X() == 10);");
+ "assert.AssertTrue(X() == 10);";
module_system_->Require("test");
}
-
-TEST_F(ModuleSystemTest, TestDisableNativesPreventsNativeModulesBeingLoaded) {
- module_system_->RegisterNativeHandler("disable",
- scoped_ptr<NativeHandler>(
- new DisableNativesHandler(module_system_.get())));
- RegisterModule("test",
- "var assert = requireNative('assert');"
- "var disable = requireNative('disable');"
- "disable.DisableNatives();"
- "var caught = false;"
- "try {"
- " requireNative('assert');"
- "} catch (e) {"
- " caught = true;"
- "}"
- "assert.AssertTrue(caught);");
- module_system_->Require("test");
-}
« no previous file with comments | « chrome/renderer/module_system.cc ('k') | chrome/renderer/native_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698