start building out views
This commit is contained in:
146
bower_components/jsdom/test/window/script.js
vendored
Normal file
146
bower_components/jsdom/test/window/script.js
vendored
Normal file
@@ -0,0 +1,146 @@
|
||||
var jsdom = require('../../lib/jsdom'),
|
||||
path = require('path')
|
||||
jQueryPath = path.resolve(__dirname, '../jquery-fixtures/jquery-1.4.2.js');
|
||||
|
||||
exports.tests = {
|
||||
scripts_share_a_global_context: function(test) {
|
||||
var window = jsdom.jsdom('\
|
||||
<html><head>\
|
||||
<script type="text/javascript">\
|
||||
Object.prototype.a = 1;\
|
||||
hello = "hello";\
|
||||
window.bye = "good";\
|
||||
var abc = 123;\
|
||||
var localOnWindow = "look at me, im on a window";\
|
||||
</script>\
|
||||
\
|
||||
<script type="text/javascript">\
|
||||
window.object = new Object();\
|
||||
hello += " world";\
|
||||
bye = bye + "bye";\
|
||||
window.confirmTheLocalIsOnTheWindow = localOnWindow;\
|
||||
(function() {\
|
||||
var hidden = "hidden";\
|
||||
window.exposed = hidden;\
|
||||
this.imOnAWindow = true;\
|
||||
})();\
|
||||
</script>\
|
||||
</head><body></body></html>'
|
||||
).createWindow();
|
||||
|
||||
test.equal(window.confirmTheLocalIsOnTheWindow, window.localOnWindow, 'local variables should be attached to the window');
|
||||
test.equal(window.hello, "hello world", 'window should be the global context');
|
||||
test.equal(window.bye, "goodbye", 'window should be the global context');
|
||||
test.equal(window.abc, 123, 'local vars should not leak out to the window');
|
||||
test.strictEqual(window.hidden, undefined, 'vars in a closure are safe');
|
||||
test.equal(window.exposed, 'hidden', 'vars exposed to the window are global');
|
||||
test.equal(window.imOnAWindow, true, 'setting this in the outer context should apply to the window');
|
||||
test.equal(window.object.a, 1, 'prototypes should be maintained across contexts');
|
||||
test.done();
|
||||
},
|
||||
|
||||
scripts_jquerify_have_jsdom_class: function(test) {
|
||||
var window = jsdom.jsdom().createWindow();
|
||||
jsdom.jQueryify(window, [jQueryPath] , function(dom) {
|
||||
test.ok(dom.window.$('script').hasClass("jsdom"));
|
||||
test.done();
|
||||
});
|
||||
},
|
||||
|
||||
scripts_env_have_jsdom_class: function(test) {
|
||||
var htmlString = '<html><head></head><body></body></html>';
|
||||
|
||||
jsdom.env(htmlString, [jQueryPath] , function(error, dom) {
|
||||
test.ok(dom.window.$('script').hasClass("jsdom"));
|
||||
test.done();
|
||||
});
|
||||
},
|
||||
|
||||
global_is_window_in_scripts: function(test){
|
||||
var window = jsdom.jsdom('<html><head>\
|
||||
<script type="text/javascript">\
|
||||
var results=[window===this,\
|
||||
window===this.window,\
|
||||
window.window===this,\
|
||||
document.parentWindow===this];\
|
||||
</script>\
|
||||
</head><body></body></html>').createWindow();
|
||||
|
||||
test.strictEqual(window.results[0], true, "window should equal global this");
|
||||
test.strictEqual(window.results[1], true, "window should equal this.window");
|
||||
test.strictEqual(window.results[2], true, "this should equal window.window");
|
||||
test.strictEqual(window.results[3], true, "this should equal document.parentWindow");
|
||||
test.strictEqual(window.document.parentWindow, window, "outside window context, document.parentWindow should be window as well");
|
||||
test.done();
|
||||
},
|
||||
|
||||
global_in_object_should_be_valid_in_other_scripts: function(test){
|
||||
var window = jsdom.jsdom('<html><head>\
|
||||
<script>\
|
||||
aGlobal={win:this};\
|
||||
</script>\
|
||||
<script>\
|
||||
appVersion = aGlobal.win.navigator.appVersion\
|
||||
</script>\
|
||||
</head><body></body></html>').createWindow();
|
||||
|
||||
test.strictEqual(window.appVersion, process.version);
|
||||
test.done();
|
||||
},
|
||||
|
||||
window_functions: function(test){
|
||||
var window = jsdom.jsdom('<html><head>\
|
||||
<script>\
|
||||
function handle(){};\
|
||||
window.addEventListener("load", handle, false);\
|
||||
window.removeEventListener("load", handle, false);\
|
||||
var ev = document.createEvent("MouseEvents");\
|
||||
ev.initEvent("click", true, true);\
|
||||
window.dispatchEvent(ev);\
|
||||
window.DONE=1;\
|
||||
</script>\
|
||||
</head><body></body></html>').createWindow();
|
||||
test.strictEqual(window.DONE, 1);
|
||||
test.done();
|
||||
},
|
||||
|
||||
script_execution_in_body : function(test) {
|
||||
var window, caught = false;
|
||||
var html = '<html><body>\
|
||||
<script>\
|
||||
document.body.innerHTML = "monkey"\
|
||||
</script></body></html>';
|
||||
test.doesNotThrow(function() {
|
||||
jsdom.jsdom(html).createWindow();
|
||||
})
|
||||
test.done();
|
||||
},
|
||||
|
||||
// see: https://github.com/tmpvar/jsdom/issues/163
|
||||
issue_163 : function(test) {
|
||||
jsdom.env('<a />', [__dirname + '/files/163.js'], function(errors, window) {
|
||||
test.ok(!errors, 'no errors');
|
||||
test.ok(window.hasNativeObjects === true, 'window has the expected properties');
|
||||
test.done();
|
||||
});
|
||||
},
|
||||
|
||||
// see: https://github.com/tmpvar/jsdom/issues/179
|
||||
issue_179 : function(test) {
|
||||
jsdom.env('<a />', [__dirname + '/files/179.js'], function(errors, window) {
|
||||
test.ok(!errors, 'no errors');
|
||||
test.ok(window.b === 42, 'local var gets hung off of the window');
|
||||
test.ok(window.exposed === 42, 'read local var from window and exposed it');
|
||||
test.done();
|
||||
});
|
||||
},
|
||||
|
||||
timer_executes_in_context : function (test) {
|
||||
jsdom.env('<a />', [__dirname + '/files/timer_in_context.js'], function (errors, window) {
|
||||
setTimeout(function () {
|
||||
test.ok(window.x == 1);
|
||||
test.done();
|
||||
}, 1);
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user