blob: 16e988480f701f4d2f85723705a9f7342a8c8377 [file] [log] [blame]
var fs = require("fs"),
path = require("path"),
vm = require("vm"),
long = require("long"),
tape = require("tape");
var distPath = path.join(__dirname, "..", "..", "dist");
[
{
name: "full",
data: fs.readFileSync(path.join(distPath, "protobuf.min.js")).toString("utf8")
},
{
name: "light",
data: fs.readFileSync(path.join(distPath, "light/protobuf.min.js")).toString("utf8")
},
{
name: "minimal",
data: fs.readFileSync(path.join(distPath, "minimal/protobuf.min.js")).toString("utf8")
}
]
.forEach(function(dist) {
tape.test(dist.name + " build", function(test) {
test.test(test.name + " - script tags", function(test) {
var sandbox;
var dcodeIO = { Long: long };
vm.runInNewContext(dist.data, sandbox = {
window: {
dcodeIO: dcodeIO
},
dcodeIO: dcodeIO
});
test.ok(sandbox.window.protobuf, "should load the library as a global");
test.ok(sandbox.window.protobuf.util.Long, "should load long.js to util");
test.end();
});
test.test(test.name + " - webworkers", function(test) {
var sandbox;
var dcodeIO = { Long: long };
vm.runInNewContext(dist.data, sandbox = {
self: {
dcodeIO: dcodeIO
},
dcodeIO: dcodeIO
});
test.ok(sandbox.self.protobuf, "should load the library as a global");
test.ok(sandbox.self.protobuf.util.Long, "should load long.js to util");
test.end();
});
test.test(test.name + " - amd loaders", function(test) {
var sandbox;
function fakeDefine(deps, factory) {
test.same(deps, [ "long" ], "should request long.js as a dependency");
test.notOk(sandbox.window.protobuf.util.Long, "should not have loaded long.js before calling the factory function");
factory(long);
test.ok(sandbox.window.protobuf.util.Long, "should have loaded long.js after calling the factory function");
}
fakeDefine.amd = true;
vm.runInNewContext(dist.data, sandbox = {
define: fakeDefine,
window: {},
require: undefined,
console: console
});
test.ok(sandbox.window.protobuf, "should load the library as a global");
test.end();
});
});
});
// commonjs uses ./src