|
|
|
/*
|
|
|
|
Copyright (c) 2004-2006, The Dojo Foundation
|
|
|
|
All Rights Reserved.
|
|
|
|
|
|
|
|
Licensed under the Academic Free License version 2.1 or above OR the
|
|
|
|
modified BSD license. For more information on Dojo licensing, see:
|
|
|
|
|
|
|
|
http://dojotoolkit.org/community/licensing.shtml
|
|
|
|
*/
|
|
|
|
|
|
|
|
dojo.require("dojo.lang.declare");
|
|
|
|
|
|
|
|
function test_lang_declare() {
|
|
|
|
dojo.declare('my.classes.foo', null, {
|
|
|
|
instanceId: [ 'bad' ], // make sure we test a non-primitive
|
|
|
|
initializer: function(arg) {
|
|
|
|
this.instanceId = [ 'foo' ]; // this will supercede the prototype in every instance
|
|
|
|
},
|
|
|
|
getId: function() {
|
|
|
|
return "I am a foo";
|
|
|
|
}
|
|
|
|
});
|
|
|
|
jum.assertEquals("30", "function", typeof my.classes.foo);
|
|
|
|
|
|
|
|
dojo.declare('my.classes.bar', my.classes.foo, {
|
|
|
|
initializer: function(arg) {
|
|
|
|
this.instanceId = [ 'bar' ]; // this will supercede the prototype in every instance
|
|
|
|
},
|
|
|
|
getId: function() {
|
|
|
|
return "I am a bar and " + my.classes.bar.superclass.getId.apply(this, arguments);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
jum.assertEquals("31", "function", typeof my.classes.bar);
|
|
|
|
|
|
|
|
b = new my.classes.bar();
|
|
|
|
jum.assertEquals("32", "object", typeof b);
|
|
|
|
|
|
|
|
dojo.declare('my.classes.zot', my.classes.bar, {
|
|
|
|
initializer: function(arg) {
|
|
|
|
this.instanceId = [ 'zot' ]; // this will supercede the prototype in every instance
|
|
|
|
},
|
|
|
|
getId: function() {
|
|
|
|
return "I am a zot and " + my.classes.zot.superclass.getId.apply(this, arguments);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
jum.assertEquals("33", "function", typeof my.classes.zot);
|
|
|
|
|
|
|
|
f = new my.classes.foo();
|
|
|
|
jum.assertEquals("34", "object", typeof f);
|
|
|
|
|
|
|
|
z = new my.classes.zot("with an argument");
|
|
|
|
jum.assertEquals("35", "object", typeof z);
|
|
|
|
|
|
|
|
jum.assertEquals("36", "I am a foo", f.getId());
|
|
|
|
jum.assertEquals("37", "I am a bar and I am a foo", b.getId());
|
|
|
|
jum.assertEquals("38", "I am a zot and I am a bar and I am a foo", z.getId());
|
|
|
|
}
|