You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
4.3 KiB
157 lines
4.3 KiB
define(["dojo", "doh", "../../../_base/sniff", "require"], function(dojo, doh, has, require){ |
|
doh.register("testsDOH._base._loader.bootstrap", [ |
|
function hasConsole(t){ |
|
t.assertTrue("console" in dojo.global); |
|
t.assertTrue("assert" in console); |
|
t.assertEqual("function", typeof console.assert); |
|
}, |
|
|
|
function getText(t){ |
|
if(require.getText){ |
|
var text = require.getText(require.toUrl("dojo/testsDOH/_base/loader/getText.txt")).replace(/\r|\n/g, ""); |
|
t.assertEqual("dojo._getText() test data", text); |
|
if(dojo._getText){ |
|
text = dojo._getText(require.toUrl("dojo/testsDOH/_base/loader/getText.txt")).replace(/\r|\n/g, ""); |
|
t.assertEqual("dojo._getText() test data", text); |
|
} |
|
} |
|
}, |
|
|
|
{ |
|
name: "getObject", |
|
setUp: function(){ |
|
//Set an object in global scope. |
|
dojo.global.globalValue = { |
|
color: "blue", |
|
size: 20 |
|
}; |
|
|
|
//Set up an object in a specific scope. |
|
this.foo = { |
|
bar: { |
|
color: "red", |
|
size: 100 |
|
} |
|
}; |
|
}, |
|
runTest: function(t){ |
|
//Test for existing object using global as root path. |
|
var globalVar = dojo.getObject("globalValue"); |
|
t.is("object", (typeof globalVar)); |
|
t.assertEqual("blue", globalVar.color); |
|
t.assertEqual(20, globalVar.size); |
|
t.assertEqual("blue", dojo.getObject("globalValue.color")); |
|
|
|
//Test for non-existent object using global as root path. |
|
//Then create it. |
|
t.assertFalse(dojo.getObject("something.thatisNew")); |
|
t.assertTrue(typeof(dojo.getObject("something.thatisNew", true)) == "object"); |
|
|
|
//Test for existing object using another object as root path. |
|
var scopedVar = dojo.getObject("foo.bar", false, this); |
|
t.assertTrue(typeof(scopedVar) == "object"); |
|
t.assertEqual("red", scopedVar.color); |
|
t.assertEqual(100, scopedVar.size); |
|
t.assertEqual("red", dojo.getObject("foo.bar.color", true, this)); |
|
|
|
//Test for existing object using another object as root path. |
|
//Then create it. |
|
t.assertFalse(dojo.getObject("something.thatisNew", false, this)); |
|
t.assertTrue(typeof(dojo.getObject("something.thatisNew", true, this)) == "object"); |
|
}, |
|
tearDown: function(){ |
|
//Clean up global object that should not exist if |
|
//the test is re-run. |
|
try{ |
|
delete dojo.global.something; |
|
delete this.something; |
|
}catch(e){} |
|
} |
|
}, |
|
|
|
{ |
|
name: "exists", |
|
setUp: function(){ |
|
this.foo = { |
|
bar: {}, |
|
baz: 0, |
|
bam: false, |
|
bal: "", |
|
ban: null |
|
}; |
|
}, |
|
runTest: function(t){ |
|
t.assertTrue(dojo.exists("foo.bar", this)); |
|
t.assertFalse(dojo.exists("foo.bar")); |
|
t.assertTrue(dojo.exists("foo.baz", this)); |
|
t.assertTrue(dojo.exists("foo.bal", this)); |
|
t.assertTrue(dojo.exists("foo.ban", this)); |
|
t.assertTrue(dojo.exists("foo.bam", this)); |
|
t.assertFalse(dojo.exists("foo.bat", this)); |
|
t.assertTrue(dojo.exists("a.b", { a:{ b:0 }})); |
|
t.assertFalse(dojo.exists("foo.bar.baz.bam.bap", this)); |
|
} |
|
}, |
|
|
|
function evalWorks(t){ |
|
t.assertTrue(dojo.eval("(true)")); |
|
t.assertFalse(dojo.eval("(false)")); |
|
if(!has("ie")){ |
|
// eval truly executes in global scope for non IE |
|
t.is(window.rawld, undefined); |
|
dojo.eval("var rawld = 3.14;"); |
|
t.assertEqual(rawld, 3.14); |
|
t.assertEqual(window.rawld, 3.14); |
|
window.rawld = undefined; |
|
}else{ |
|
// example of how to compensate for IE |
|
t.is(window.rawld, undefined); |
|
dojo.eval("window.rawld = 3.14;"); |
|
t.assertEqual(rawld, 3.14); |
|
t.assertEqual(window.rawld, 3.14); |
|
window.rawld = undefined; |
|
} |
|
}, |
|
|
|
function _mixin(t){ |
|
var a = { |
|
x: 1, |
|
y: function(){ return 2; }, |
|
z1: 99, |
|
w: 2, |
|
v: undefined |
|
}; |
|
var b = { |
|
x: 11, |
|
y: function(){ return 12; }, |
|
z2: 33, |
|
toString: function(){ return "bark!"; }, |
|
toLocaleString: function(){ return "le bark-s!"; }, |
|
w: undefined, |
|
v: undefined, |
|
u: undefined |
|
}; |
|
t.is(1, a.x); |
|
t.is(2, a.y()); |
|
t.is(99, a.z1); |
|
t.t("w" in a); |
|
t.is(2, a.w); |
|
t.t("v" in a); |
|
t.is(undefined, a.v); |
|
t.f("u" in a); |
|
dojo._mixin(a, b); |
|
t.is(11, a.x); |
|
t.is(12, a.y()); |
|
t.is("bark!", a.toString()); |
|
t.is("le bark-s!", a.toLocaleString()); |
|
t.is(99, a.z1); |
|
t.is(33, a.z2); |
|
t.t("w" in a); |
|
t.is(undefined, a.w); |
|
t.t("v" in a); |
|
t.is(undefined, a.v); |
|
t.t("u" in a); |
|
t.is(undefined, a.u); |
|
} |
|
]); |
|
});
|
|
|