Files
openlayers/master/examples/window.html
Éric Lemoine 5d14b9e2d4 Updated
2013-02-20 10:38:25 +01:00

105 lines
3.7 KiB
HTML

<html>
<head>
<title>withDoc test</title>
<style type="text/css">
iframe {
width: 100%;
height: 120px;
}
</style>
<body>
<script type="text/javascript" src="../../dojo.js" data-dojo-config="async:1"></script>
<script type="text/javascript">
var frameLoaded; // callback for iframes, defined later
require(["dojo/_base/kernel", "doh", "dojo/dom-construct", "dojo/has", "dojo/_base/window", "dojo/_base/sniff"],
function(dojo, doh, domConstruct, has, win){
var
fStandards, fQuirks, // iframes used for tests
tests, numFrames = 2, framesLoaded = 0;
frameLoaded = function(){
// Called by each child frame.
// Tests start running when all iframes are loaded.
if(++framesLoaded == numFrames){
doh.run();
}
};
tests = [
function withDoc(t){
var d = fQuirks.contentWindow.document, finished,
thisObj = {test: "myThis"};
dojo.withDoc(d, function(a1, a2){
t.is(1, a1, "first passed argument should be 1");
t.is(2, a2, "second passed argument should be 2");
t.is(this.test, "myThis", "context should be re-hitched");
t.is(d, dojo.doc, "dojo.doc should be reassigned");
finished = true;
}, thisObj, [1, 2]);
t.t(finished, "Did withDoc test function complete?");
t.is(document, dojo.doc, "dojo.doc should be restored");
},
function withGlobal(t){
var w = fQuirks.contentWindow, finished,
thisObj = {test: "myThis"};
dojo.withGlobal(w, function(a1, a2){
t.is(1, a1, "first passed argument should be 1");
t.is(2, a2, "second passed argument should be 2");
t.is(this.test, "myThis", "context should be re-hitched");
t.is(42, dojo.global.answer, "dojo.global should be reassigned");
t.is(w.document, dojo.doc, "dojo.doc should be reassigned");
finished = true;
}, thisObj, [1, 2]);
t.t(finished, "Did withGlobal test function complete?");
t.is(window, dojo.global, "dojo.global should be restored");
t.is(document, dojo.doc, "dojo.doc should be restored");
},
function isQuirks(t){
var origQuirks = has("quirks");
win.withGlobal(fQuirks.contentWindow, function(){
t.t(true === dojo.isQuirks && true === has("quirks"),
"dojo.isQuirks / has('quirks') should be true in withDoc w/ quirks document");
});
t.t(origQuirks === dojo.isQuirks && origQuirks === has("quirks"),
"dojo.isQuirks / has('quirks') should be reset to initial value");
win.withGlobal(fStandards.contentWindow, function(){
t.t(false === dojo.isQuirks && false === has("quirks"),
"dojo.isQuirks / has('quirks') should be false in withDoc w/ standards document");
});
t.t(origQuirks === dojo.isQuirks && origQuirks === has("quirks"),
"dojo.isQuirks / has('quirks') should be reset to initial value (again)");
}
];
if(has("ie") > 7){ // add isIE test for X-UA-Compatible-triggered switch
tests.push(function isIE(t){
var origIE = has("ie");
win.withGlobal(fStandards.contentWindow, function(){
console.log('isIE=' + dojo.isIE + ' / has: ' + has("ie"));
t.t(7 === dojo.isIE && 7 === has("ie"),
"dojo.isIE / has('ie') should be 7 in withDoc w/ standards document w/ EmulateIE7");
});
t.t(origIE === dojo.isIE && origIE === has("ie"),
"dojo.isIE / has('ie') should be reset to initial value");
});
}
doh.register("_base/window", tests);
// Add iframe to page w/ document in standards mode
fStandards = domConstruct.create("iframe", {
src: "window_iframe_standards.html"
}, document.body);
// Add iframe to page w/ document in quirks mode
fQuirks = domConstruct.create("iframe", {
src: "window_iframe_quirks.html"
}, document.body);
});
</script>
</body>
</html>