1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
var vm = require("vm"),
fs = require("fs"),
pathUtil = require("path"),
expect = require("expect.js"),
browserify = require("browserify");
/**
* Executes the source in a context that pretends to be a browser
* @param {!String} src
*/
function runInFakeBrowserContext(src, filename) {
vm.runInNewContext(src, {
window: {
console: console,
describe: describe,
it: it,
before: before,
after: after,
beforeEach: beforeEach,
afterEach: afterEach,
setTimeout: setTimeout,
clearTimeout: clearTimeout,
setInterval: setInterval,
clearInterval: clearInterval,
parseFloat: parseFloat,
parseInt: parseInt,
encodeURIComponent: function () {},
decodeURIComponent: function () {},
document: {}
},
console: console
}, filename);
}
describe("browserifyRewire", function () {
before(require("./testHelpers/createFakePackageJSON.js"));
after(require("./testHelpers/removeFakePackageJSON.js"));
it("should run all sharedTestCases without exception", function () {
var b = browserify({debug: true}),
middleware = require("rewire").browserify,
browserOutput = __dirname + "/browserify/bundle.js",
browserBundle,
vmBundle;
b.use(middleware);
b.addEntry(__dirname + "/testModules/sharedTestCases.js");
vmBundle = b.bundle();
browserBundle = vmBundle;
// Setup for mocha
browserBundle = "function enableTests() {" + browserBundle + "}";
/*
vmBundle += 'window.browserifyRequire("/test/testModules/sharedTestCases.js");'; */
// Output for browser-testing
fs.writeFileSync(browserOutput, browserBundle, "utf8");
// This should throw no exception.
runInFakeBrowserContext(vmBundle, browserOutput);
});
});
|