42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai <script type="text/javascript" src="/build/yui/yui.js"></script>
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai #console .yui3-console-entry {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai padding:2px;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai min-height:0;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai #console .yui3-console-entry-fail .yui3-console-entry-cat {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai background-color:red;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai #console .yui3-console-entry-pass .yui3-console-entry-cat {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai background-color:green;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai #console .yui3-console-entry-perf .yui3-console-entry-cat {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai background-color:blue;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai position:static;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai html, body {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai height:100%;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai useBrowserConsole:false,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai filter: (window.location.search.match(/[?&]filter=([^&]+)/) || [])[1] || 'min'
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }).use("dump", "base-core", "console", "test", function(Y) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai function areObjectsReallyEqual(o1, o2) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai function Test(cfg, lazy, silentInit) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai this._lazyAddAttrs = lazy;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai this._silentInit = silentInit;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Test.superclass.constructor.apply(this, arguments);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: "Foo",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(n) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: "Bar",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(n) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: false,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(lock) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return lock;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: false
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: false
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: false
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: false
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: false,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: null,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return false;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: ['default'],
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai getter: function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return false;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(g) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: null,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(g) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai writeOnce: true,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai writeOnce: true,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai writeOnce: true,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai foo: function() {}
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai function AttrHost(config) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai AttrHost.superclass.constructor.apply(this, arguments);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"AVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai validator: function(value) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return (value === undefined || Y.Lang.isString(value) || Y.Lang.isNumber(value));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai writeOnce: true
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"DVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai readOnly: true
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"EVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai writeOnce: true
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai valueFn: function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai initOnly : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai writeOnce:"initOnly"
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai function ExtendedAttrHost(config) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai AttrHost.superclass.constructor.apply(this, arguments);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai ExtendedAttrHost.NAME = "extendedAttrHost";
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"ExtAVal"
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"ExtBVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai validator: function(value) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return ((value == undefined) || Y.Lang.isString(value));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"ExtDVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return (Y.Lang.isString(val)) ? val.toUpperCase() : val;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"ExtEVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai getter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return (Y.Lang.isString(val)) ? val.toLowerCase() : val;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"ExtFVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return (Y.Lang.isString(val)) ? val : Y.AttributeCore.INVALID_VALUE;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: 2222,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(val) { // Should be ignored. Can't set setters for complex sub vals
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return val + 10000;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai valueFn:function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai // Referring to H before it's set up
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return this.get("H") + 10;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai getter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return val*5;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai getter: "_getI",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: "_setI",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai validator: "_validateI"
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai PassThrough : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: "passthrough",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai getter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return this._passthrough;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai this._passthrough = val;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai getter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.extend(ExtendedAttrHost, AttrHost, {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai _validateI : function(val, name) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai if (name.indexOf(".") == -1) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return true;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai _getI : function(val, name) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai if (name.indexOf(".") == -1) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai _setI : function(val, name) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai if (name.indexOf(".") == -1) {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai function CoreTestsHost(config) {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai CoreTestsHost.superclass.constructor.apply(this, arguments);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai CoreTestsHost.NAME = "coreTestsHost";
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultObject : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultArray : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai value : ["foo", "bar", "foobar"]
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultString : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai value : "foo"
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultOverride : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai a:1, b:2, c:3
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultValue : false
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultShallow : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai a: {foo: "bar"}
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultValue : "shallow"
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultDeep : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai a: {foo: "bar"}
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultValue : "deep"
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultComplex : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var coreTemplate = {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai name: "Core Tests",
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testInit : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost();
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testDestroy : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost();
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testToString : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai re = /^coreTestsHost\[.*?\]$/,
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testCloneDefaultValueObject : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai val = h.get("cloneDefaultObject");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultObject.value !== val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testCloneDefaultValueArray : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai val = h.get("cloneDefaultArray");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultArray.value !== val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.ArrayAssert.itemsAreEqual(["foo", "bar", "foobar"], val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testCloneDefaultValueString : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai val = h.get("cloneDefaultString");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultString.value === val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testCloneDefaultComplex : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai val = h.get("cloneDefaultComplex");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai // Don't try to clone by default. We may hurt our backs
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultComplex.value === val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testCloneDefaultShallow : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai val = h.get("cloneDefaultShallow");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultShallow.value !== val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultShallow.value.a === val.a);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testCloneDefaultDeep : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai val = h.get("cloneDefaultDeep");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultDeep.value !== val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultDeep.value.a !== val.a);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testCloneDefaultOverride : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai val = h.get("cloneDefaultOverride");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultOverride.value === val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testInitializerDestructorInvocation : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var expected = ["beforeConstructorTwo", "beforeConstructorOne", "initializerOne", "initializerTwo", "afterConstructorOne", "afterConstructorTwo", "destructorTwo", "destructorOne"],
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai actual = [],
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai function One(cfg) {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai actual.push("beforeConstructorOne");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai One.superclass.constructor.apply(this, arguments);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai actual.push("afterConstructorOne");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai initializer : function(cfg) {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai actual.push("initializerOne");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai destructor : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai actual.push("destructorOne");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai NAME : "one",
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai function Two(cfg) {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai actual.push("beforeConstructorTwo");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Two.superclass.constructor.apply(this, arguments);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai actual.push("afterConstructorTwo");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai initializer : function(cfg) {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai actual.push("initializerTwo");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai destructor : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai actual.push("destructorTwo");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai NAME : "two",
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var o = new Two(initCfg);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.ArrayAssert.itemsAreEqual(expected, actual);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var basicTemplate = {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai name: "Base Class Tests",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai createHost : function(cfg) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return new AttrHost(cfg);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setUp : function() {},
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai tearDown : function() {},
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testDefault : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("DVal", h.get("D")); // Readonly
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("EVal", h.get("E")); // Write once, but not twice
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testConstructor : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost({A:"MyAVal", B:"MyBVal", C:"MyCVal", D:"MyDVal", E:"MyEVal", DE:"MyDEVal"});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("C", "MyNewCVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("D", "MyNewDVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("E", "MyNewEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyCVal", h.get("C")); // Write Once, set in constructor
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("DVal", h.get("D")); // Read Only
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyEVal", h.get("E")); // Write Once, set in constructor
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("A", "MyNewAVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("B", "MyNewBVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("C", "MyNewCVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("D", "MyNewDVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("E", "MyNewEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("DE", "MyNewDEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyNewCVal", h.get("C")); // Write once, set on first set.
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("DVal", h.get("D")); // Read Only
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("EVal", h.get("E")); // Write Once
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testWriteOncePostInit : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("E", "MyNewEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("C", "MyNewCVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyNewCVal", h.get("C")); // Write Once, default value
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("EVal", h.get("E")); // Write Once, default value
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testWriteOnce : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost({E:"MyEVal"});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("E", "MyNewEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyEVal", h.get("E")); // Write Once, on init
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testWriteOnceInitOnly : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost({ initOnly: "initOnlyVal"});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("initOnly", "NewInitOnlyVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("initOnlyVal", h.get("initOnly"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testWriteOnceInitOnlyNotProvided : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h1.set("initOnly", "InitOnlyVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h1.get("initOnly"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testAdHocGetSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("AdHoc", "TestAdHoc");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("TestAdHoc", h.get("AdHoc"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("AdHoc", "TestAdHocConfigured");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("TESTADHOCCONFIGURED", h.get("AdHoc"));
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai testAdHocConstructorEnabled : function() {
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai A: "MyAVal",
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai plugins : ["not"]
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai // Only add AdHoc Attrs
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai // Configured Attrs
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai // Not _NON_ATTRS_CFG
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai testAdHocConstructorDisabled : function() {
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai A: "MyAVal",
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai plugins : ["not"]
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai // Only add AdHoc Attrs
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai // Configured attributes
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai // Not _NON_ATTRS_CFG
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testMassSetGet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "A" : "MyNewAVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "B": "MyNewBVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "C": "MyNewCVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "D": "MyNewDVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "E": "MyNewEVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "DE": "MyNewDEVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai complex: "MyNewComplexVal"
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var expectedVals = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: "MyNewAVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai B: "MyNewBVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai C: "MyNewCVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai DE: "MyNewDEVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai complex: "MyNewComplexVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai initialized: true,
52275828c4435b5f53f868077b5b2041bbe0d85cDav Glass destroyed: false,
52275828c4435b5f53f868077b5b2041bbe0d85cDav Glass initOnly: undefined
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(expectedVals.C, h.get("C")); // Write once, set on first set.
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(expectedVals.D, h.get("D")); // Read Only
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(expectedVals.E, h.get("E")); // Write Once
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(expectedVals.DE, h.get("DE"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual(expectedVals, h.getAttrs());
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testModifiedAttrs : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: "MyNewAVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai C: "MyNewCVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai D: "MyNewDVal"
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var expectedVals = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: "MyNewAVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai initialized:true
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual(expectedVals, h.getAttrs(true));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testValidation : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("A", "MyAVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyAVal", h.get("A")); // Validation should prevent the attribute from being set
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(2, h.get("B")); // Validation should prevent the attribute from being set
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testPrivateSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("D", "MyNewDVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("E", "MyNewEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h._set("D", "TryDAgain");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h._set("E", "TryEAgain");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testComplexDefault : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual({A:1}, h.get("complex.X"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual({A:2}, h.get("complex.Y"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual({A:3}, h.get("complex.Z"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var val = h.get("complex");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.each(val, function(v, k) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual(v, o[k]);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testComplexSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual({A:111, B:112}, h.get("complex.X"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("complex.W"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("complex.W.B"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("complex.Y.A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testInitialValidation: function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost({A:5});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("AVal", h.get("A")); // Numerical value validation failure should revert to default value
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testProtect : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var q = h._protectAttrs(AttrHost.ATTRS);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(Y.dump(AttrHost.ATTRS), Y.dump(q));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai q.A.newprop = "new prop value";
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai q.A.value = "modified value";
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areNotEqual(Y.dump(AttrHost.ATTRS), Y.dump(q));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var extendedTemplate = {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai name: "Extended Class Tests",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai createHost : function(cfg) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return new ExtendedAttrHost(cfg);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setUp : function() {},
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai tearDown : function() {},
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testDefault : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("EXTDVALexteval", h.get("DE"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testConstructor : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost({A:"MyAVal", B:"MyBVal", C:"MyCVal", D:"MyDVal", E:"MyEVal", F:"MyFVal"});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("C", "MyNewCVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("D", "MyNewDVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("E", "MyNewEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("EXTDVALmyeval", h.get("DE"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("A", "MyNewAVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("B", "MyNewBVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("C", "MyNewCVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("D", "MyNewDVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("E", "MyNewEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("F", "MyNewFVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("DE", "MyNewDEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testAdHocGetSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("AdHoc", "TestAdHoc");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("TestAdHoc", h.get("AdHoc"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testMassSetGet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "A" : "MyNewAVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "B": "MyNewBVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "C": "MyNewCVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "D": "MyNewDVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "E": "MyNewEVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "F": "MyNewFVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "DE": "MyNewDEVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai complex: "MyNewComplexVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "I" : "MyNewIVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "PassThrough" : "MyPassThrough",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var expectedVals = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: "MyNewAVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai B: "MyNewBVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai C: "MyNewCVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai D: "EXTDVAL",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai E: "exteval",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai F: "MyNewFVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai DE: "MyNewDEVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai complex: "MyNewComplexVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai I: "MyNewIVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai PassThrough: "MyPassThrough",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai initialized:true,
52275828c4435b5f53f868077b5b2041bbe0d85cDav Glass destroyed:false,
52275828c4435b5f53f868077b5b2041bbe0d85cDav Glass initOnly: undefined
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(expectedVals.C, h.get("C")); // Write once, set on first set.
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(expectedVals.D, h.get("D")); // Read Only
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(expectedVals.E, h.get("E")); // Write Once
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(expectedVals.DE, h.get("DE"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual(expectedVals, h.getAttrs());
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testModifiedAttrs : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: "MyNewAVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai C: "MyNewCVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai D: "MyNewDVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai F: "MyNewFVal"
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var expectedVals = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: "MyNewAVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai F: "MyNewFVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai initialized:true
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual(expectedVals, h.getAttrs(true));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testValidation : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("A", "MyAVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyAVal", h.get("A")); // Validation should prevent the attribute from being set
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("two", h.get("B")); // Validation should prevent the attribute from being set
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("two", h.get("B")); // Validation should prevent the attribute from being set
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("F", "MyNewFVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyNewFVal", h.get("F")); // Validation should prevent the attribute from being set
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testPrivateSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("D", "MyNewDVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("E", "MyNewEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h._set("D", "TryDAgain");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h._set("E", "TryEAgain");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testComplexDefault : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual({A:1111}, h.get("complex.X"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual({A:2222}, h.get("complex.Y"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual({A:3}, h.get("complex.Z"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var val = h.get("complex");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.each(val, function(v, k) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual(v, o[k]);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testComplexSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual({A:111, B:112}, h.get("complex.X"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("complex.W"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("complex.W.B"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("complex.Y.A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testOnDemandInit : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testGetterSetterValidatorNameArg : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("I", {a:7, b:8});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var perfTemplate = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai name: "Performance Tests",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testTimeConstruction: function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var start, end, n = 20, t, i;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai start = new Date().getTime();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.log("Construction Time Populated (upfront): " + ((end-start)/n), "perf");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = new Test();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai end = new Date().getTime();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.log("Construction Time Populated (lazy): " + ((end-start)/n), "perf");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai start = new Date().getTime();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.log("Construction Time (upfront): " + ((end-start)/n), "perf");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = new Test();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai end = new Date().getTime();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var time = (end-start)/n;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var expectedTime = (Y.UA.ie && Y.UA.ie <= 6) ? 15 : 10;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.log("Construction Time (lazy): " + time, "perf");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = new Test(null, true, true);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai end = new Date().getTime();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.log("Construction Time (lazy and silent init): " + ((end-start)/n), "perf");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(Y.dump(x), Y.dump(y), "Lazy vs. Upfront: attr state is not equal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(Y.dump(y), Y.dump(z), "Upfront vs. Lazy and Silent: attr state is not equal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var suite = new Y.Test.Suite({name:"Base Core Unit Tests"});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.one("#btnRun").set("disabled", false).on("click", function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai entryTemplate: '<pre class="{entry_class} {cat_class} {src_class}">'+
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai '<span class="{entry_cat_class}">{label}</span>'+
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai '<span class="{entry_content_class}">{message}</span>'+
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var perfSuite = new Y.Test.Suite({name:"Attribute Performance Tests"});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai <p><input type="button" value="Run Tests" id="btnRun" disabled=true></p>