UNPKG

dojo

Version:

Dojo core is a powerful, lightweight library that makes common tasks quicker and easier. Animate elements, manipulate the DOM, and query with easy CSS syntax, all without sacrificing performance.

158 lines (148 loc) 4.38 kB
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); } ]); });