Blame | Last modification | View Log | RSS feed
if(!dojo._hasResource["tests._base.declare"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["tests._base.declare"] = true;dojo.provide("tests._base.declare");tests.register("tests._base.declare",[function smokeTest(t){dojo.declare("tests._base.declare.tmp");var tmp = new tests._base.declare.tmp();dojo.declare("testsFoo");var tmp = new testsFoo();},function smokeTest2(t){dojo.declare("tests._base.declare.foo", null, {foo: "thonk"});var tmp = new tests._base.declare.foo();t.is("thonk", tmp.foo);dojo.declare("testsFoo2", null, {foo: "thonk"});var tmp2 = new testsFoo2();t.is("thonk", tmp2.foo);},function smokeTestWithCtor(t){dojo.declare("tests._base.declare.fooBar", null, {constructor: function(){this.foo = "blah";},foo: "thonk"});var tmp = new tests._base.declare.fooBar();t.is("blah", tmp.foo);},function smokeTestCompactArgs(t){dojo.declare("tests._base.declare.fooBar2", null, {foo: "thonk"});var tmp = new tests._base.declare.fooBar2();t.is("thonk", tmp.foo);},function subclass(t){dojo.declare("tests._base.declare.tmp3", null, {foo: "thonk"});dojo.declare("tests._base.declare.tmp4", tests._base.declare.tmp3);var tmp = new tests._base.declare.tmp4();t.is("thonk", tmp.foo);},function subclassWithCtor(t){dojo.declare("tests._base.declare.tmp5", null, {constructor: function(){this.foo = "blah";},foo: "thonk"});dojo.declare("tests._base.declare.tmp6", tests._base.declare.tmp5);var tmp = new tests._base.declare.tmp6();t.is("blah", tmp.foo);},function mixinSubclass(t){dojo.declare("tests._base.declare.tmp7", null, {foo: "thonk"});dojo.declare("tests._base.declare.tmp8", null, {constructor: function(){this.foo = "blah";}});var tmp = new tests._base.declare.tmp8();t.is("blah", tmp.foo);dojo.declare("tests._base.declare.tmp9",[tests._base.declare.tmp7, // prototypaltests._base.declare.tmp8 // mixin]);var tmp2 = new tests._base.declare.tmp9();t.is("blah", tmp2.foo);},function superclassRef(t){dojo.declare("tests._base.declare.tmp10", null, {foo: "thonk"});dojo.declare("tests._base.declare.tmp11", tests._base.declare.tmp10, {constructor: function(){this.foo = "blah";}});var tmp = new tests._base.declare.tmp11();t.is("blah", tmp.foo);t.is("thonk", tests._base.declare.tmp11.superclass.foo);},function inheritedCall(t){var foo = "xyzzy";dojo.declare("tests._base.declare.tmp12", null, {foo: "thonk",bar: function(arg1, arg2){if(arg1){this.foo = arg1;}if(arg2){foo = arg2;}}});dojo.declare("tests._base.declare.tmp13", tests._base.declare.tmp12, {constructor: function(){this.foo = "blah";}});var tmp = new tests._base.declare.tmp13();t.is("blah", tmp.foo);t.is("xyzzy", foo);tmp.bar("zot");t.is("zot", tmp.foo);t.is("xyzzy", foo);tmp.bar("trousers", "squiggle");t.is("trousers", tmp.foo);t.is("squiggle", foo);},function inheritedExplicitCall(t){var foo = "xyzzy";dojo.declare("tests._base.declare.tmp14", null, {foo: "thonk",bar: function(arg1, arg2){if(arg1){this.foo = arg1;}if(arg2){foo = arg2;}}});dojo.declare("tests._base.declare.tmp15", tests._base.declare.tmp14, {constructor: function(){this.foo = "blah";},bar: function(arg1, arg2){this.inherited("bar", arguments, [arg2, arg1]);},baz: function(arg1, arg2){tests._base.declare.tmp15.superclass.bar.apply(this, arguments);}});var tmp = new tests._base.declare.tmp15();t.is("blah", tmp.foo);t.is("xyzzy", foo);tmp.baz("zot");t.is("zot", tmp.foo);t.is("xyzzy", foo);tmp.bar("trousers", "squiggle");t.is("squiggle", tmp.foo);t.is("trousers", foo);},function inheritedMixinCalls(t){dojo.declare("tests._base.declare.tmp16", null, {foo: "",bar: function(){this.foo += "tmp16";}});dojo.declare("tests._base.declare.mixin16", null, {bar: function(){this.inherited(arguments);this.foo += ".mixin16";}});dojo.declare("tests._base.declare.mixin17", tests._base.declare.mixin16, {bar: function(){this.inherited(arguments);this.foo += ".mixin17";}});dojo.declare("tests._base.declare.tmp17", [tests._base.declare.tmp16, tests._base.declare.mixin17], {bar: function(){this.inherited(arguments);this.foo += ".tmp17";}});var tmp = new tests._base.declare.tmp17();tmp.bar();t.is("tmp16.mixin16.mixin17.tmp17", tmp.foo);},function mixinPreamble(t){var passed = false;dojo.declare("tests._base.declare.tmp16");new tests._base.declare.tmp16({ preamble: function(){ passed = true; } });t.t(passed);}// FIXME: there are still some permutations to test like:// - ctor arguments// - multi-level inheritance + L/R conflict checks]);}