Blame | Last modification | View Log | RSS feed
if(!dojo._hasResource["tests._base.lang"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["tests._base.lang"] = true;dojo.provide("tests._base.lang");tests.register("tests._base.lang",[function mixin(t){var src = {foo: function(){t.debug("foo");},bar: "bar"};var dest = {};dojo.mixin(dest, src);t.assertEqual("function", typeof dest["foo"]);t.assertEqual("string", typeof dest["bar"]);},function extend(t){var src = {foo: function(){t.debug("foo");},bar: "bar"};function dest(){}dojo.extend(dest, src);var test = new dest();t.assertEqual("function", typeof test["foo"]);t.assertEqual("string", typeof test["bar"]);},function isObject(t){t.assertFalse(dojo.isObject(true));t.assertFalse(dojo.isObject(false));t.assertFalse(dojo.isObject("foo"));t.assertTrue(dojo.isObject(new String("foo")));t.assertTrue(dojo.isObject(null));t.assertTrue(dojo.isObject({}));t.assertTrue(dojo.isObject([]));t.assertTrue(dojo.isObject(new Array()));},function isArray(t){t.assertTrue(dojo.isArray([]));t.assertTrue(dojo.isArray(new Array()));t.assertFalse(dojo.isArray({}));},function isArrayLike(t){t.assertFalse(dojo.isArrayLike("thinger"));t.assertTrue(dojo.isArrayLike(new Array()));t.assertFalse(dojo.isArrayLike({}));t.assertTrue(dojo.isArrayLike(arguments));},function isString(t){t.assertFalse(dojo.isString(true));t.assertFalse(dojo.isString(false));t.assertTrue(dojo.isString("foo"));t.assertTrue(dojo.isString(new String("foo")));t.assertFalse(dojo.isString(null));t.assertFalse(dojo.isString({}));t.assertFalse(dojo.isString([]));},function partial(t){var scope = { foo: "bar" };var scope2 = { foo: "baz" };function thinger(arg1, arg2){return [this.foo, arg1, arg2];}var st1 = dojo.partial(thinger);t.assertEqual("bar", st1.call(scope)[0]);t.assertEqual(undefined, st1()[0]);var st2 = dojo.partial(thinger, "foo", "bar");t.assertEqual("bar", st2()[2]);var st3 = dojo.partial(thinger, "foo", "bar");},function nestedPartial(t){function thinger(arg1, arg2){return [arg1, arg2];}var st1 = dojo.partial(thinger, "foo");t.assertEqual(undefined, st1()[1]);t.assertEqual("bar", st1("bar")[1]);// partials can accumulatevar st2 = dojo.partial(st1, "thud");t.assertEqual("foo", st2()[0]);t.assertEqual("thud", st2()[1]);},function hitch(t){var scope = { foo: "bar" };var scope2 = { foo: "baz" };function thinger(){return [this.foo, arguments.length];}var st1 = dojo.hitch(scope, thinger);t.assertEqual("bar", st1()[0]);t.assertEqual(0, st1()[1]);var st2 = dojo.hitch(scope2, thinger);t.assertEqual("baz", st2()[0]);t.assertEqual(0, st1()[1]);t.assertEqual(1, st1("blah")[1]);// st2 should be "scope proof"t.assertEqual("baz", st2.call(scope)[0]);},function hitchWithArgs(t){var scope = { foo: "bar" };var scope2 = { foo: "baz" };function thinger(){return [this.foo, arguments.length];}var st1 = dojo.hitch(scope, thinger, "foo", "bar");t.assertEqual("bar", st1()[0]);t.assertEqual(2, st1()[1]);var st2 = dojo.hitch(scope2, thinger, "foo", "bar");t.assertEqual("baz", st2()[0]);t.assertEqual(2, st2()[1]);},function hitchAsPartial(t){var scope = { foo: "bar" };var scope2 = { foo: "baz" };function thinger(arg1, arg2){return [this.foo, arg1, arg2];}var st1 = dojo.hitch(null, thinger);t.assertEqual("bar", st1.call(scope)[0]);t.assertEqual(undefined, st1()[0]);var st2 = dojo.hitch(null, thinger, "foo", "bar");t.assertEqual("bar", st2()[2]);var st3 = dojo.hitch(null, thinger, "foo", "bar");},function _toArray(t){var obj1 = [ 'foo', 'bar', 'spam', 'ham' ];function thinger(){return dojo._toArray(arguments);}var obj2 = thinger.apply(this, obj1);t.assertEqual(obj1[0], obj2[0]);},function clone(t) {var obj1 = {foo: 'bar', answer: 42, jan102007: new Date(2007, 0, 10),baz: {a: null,b: [1, "b", 2.3, true, false//, function(){ return 4; }, /\d+/gm]}};var obj2 = dojo.clone(obj1);t.assertEqual(obj1.foo, obj2.foo);t.assertEqual(obj1.answer, obj2.answer);t.assertEqual(obj1.jan102007, obj2.jan102007);t.assertEqual(obj1.baz.a, obj2.baz.a);for(var i = 0; i < obj1.baz.b.length; ++i){t.assertEqual(obj1.baz.b[i], obj2.baz.b[i]);}}]);}