base-core.html revision 52275828c4435b5f53f868077b5b2041bbe0d85c
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter <script type="text/javascript" src="/build/yui/yui.js"></script>
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter #console .yui3-console-entry {
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter min-height:0;
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter #console .yui3-console-entry-fail .yui3-console-entry-cat {
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter background-color:red;
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter #console .yui3-console-entry-pass .yui3-console-entry-cat {
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter background-color:green;
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter #console .yui3-console-entry-perf .yui3-console-entry-cat {
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter background-color:blue;
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter position:static;
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter useBrowserConsole:false,
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter filter: (window.location.search.match(/[?&]filter=([^&]+)/) || [])[1] || 'min'
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter }).use("dump", "base-core", "console", "test", function(Y) {
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter function areObjectsReallyEqual(o1, o2) {
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter function Test(cfg, lazy, silentInit) {
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter this._lazyAddAttrs = lazy;
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter this._silentInit = silentInit;
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter Test.superclass.constructor.apply(this, arguments);
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter value: "Foo",
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter setter: function(n) {
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter value: "Bar",
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter setter: function(n) {
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter value: false,
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter setter: function(lock) {
f5bbd7023cc96dccff382d0f7911d356fcd9769dkenneth_suter value: false,
f5bbd7023cc96dccff382d0f7911d356fcd9769dkenneth_suter setter: function(val) {
f5bbd7023cc96dccff382d0f7911d356fcd9769dkenneth_suter setter: function(val) {
f5bbd7023cc96dccff382d0f7911d356fcd9769dkenneth_suter return false;
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter value: ['default'],
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter getter: function() {
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter return false;
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter setter: function(g) {
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter setter: function(g) {
a313cf705a3574cba04fca2d90aba50def9c12d3kenneth_suter writeOnce: true,
a313cf705a3574cba04fca2d90aba50def9c12d3kenneth_suter writeOnce: true,
a313cf705a3574cba04fca2d90aba50def9c12d3kenneth_suter writeOnce: true,
a313cf705a3574cba04fca2d90aba50def9c12d3kenneth_suter foo: function() {}
a313cf705a3574cba04fca2d90aba50def9c12d3kenneth_suter function AttrHost(config) {
e291e2bb1467a8bbd781667d82ab5d0c59a9918ekenneth_suter AttrHost.superclass.constructor.apply(this, arguments);
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter value:"AVal",
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter validator: function(value) {
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter return (value === undefined || Y.Lang.isString(value) || Y.Lang.isNumber(value));
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter writeOnce: true
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter value:"DVal",
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter readOnly: true
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter value:"EVal",
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter writeOnce: true
b32049ed823adcd7ea32882b06ae3ec35ada1364kenneth_suter valueFn: function() {
AttrHost.superclass.constructor.apply(this, arguments);
ExtendedAttrHost.NAME = "extendedAttrHost";
return ((value == undefined) || Y.Lang.isString(value));
"complex.X.A" : {
"complex.Y.A" : {
return this.get("H") + 10;
return val.toUpperCase();
Y.extend(ExtendedAttrHost, AttrHost, {
if (name.indexOf(".") == -1) {
Y.Assert.areEqual("I", name);
if (name.indexOf(".") == -1) {
Y.Assert.areEqual("I", name);
if (name.indexOf(".") == -1) {
Y.Assert.areEqual("I", name);
var h = this.createHost();
var h = this.createHost({A:"MyAVal", B:"MyBVal", C:"MyCVal", D:"MyDVal", E:"MyEVal", DE:"MyDEVal"});
h.set("C", "MyNewCVal");
h.set("D", "MyNewDVal");
h.set("E", "MyNewEVal");
var h = this.createHost();
h.set("A", "MyNewAVal");
h.set("B", "MyNewBVal");
h.set("C", "MyNewCVal");
h.set("D", "MyNewDVal");
h.set("E", "MyNewEVal");
h.set("DE", "MyNewDEVal");
var h = this.createHost();
h.set("E", "MyNewEVal");
h.set("C", "MyNewCVal");
var h = this.createHost({E:"MyEVal"});
h.set("E", "MyNewEVal");
var h = this.createHost({ initOnly: "initOnlyVal"});
h.set("initOnly", "NewInitOnlyVal");
var h1 = this.createHost();
h1.set("initOnly", "InitOnlyVal");
var h = this.createHost();
h.set("AdHoc", "TestAdHoc");
h.addAttr("AdHoc", {
return val.toUpperCase();
h.set("AdHoc", "TestAdHocConfigured");
var h = this.createHost({
AttrHost.prototype._allowAdHocAttrs = false;
var h = this.createHost({
var h = this.createHost();
areObjectsReallyEqual(expectedVals, h.getAttrs());
var h = this.createHost();
areObjectsReallyEqual(expectedVals, h.getAttrs(true));
var h = this.createHost();
h.set("A", "MyAVal");
h.set("A", 100);
h.set("B", "two");
h.set("B", 2);
h.set("B", false);
var h = this.createHost();
h.set("D", "MyNewDVal");
h.set("E", "MyNewEVal");
var h = this.createHost();
var val = h.get("complex");
Y.each(val, function(v, k) {
var h = this.createHost();
var h = this.createHost({A:5});
Y.Assert.areEqual("AVal", h.get("A")); // Numerical value validation failure should revert to default value
var h = this.createHost();
var q = h._protectAttrs(AttrHost.ATTRS);
q.A.newprop = "new prop value";
q.A.value = "modified value";
var h = this.createHost();
var h = this.createHost({A:"MyAVal", B:"MyBVal", C:"MyCVal", D:"MyDVal", E:"MyEVal", F:"MyFVal"});
h.set("C", "MyNewCVal");
h.set("D", "MyNewDVal");
h.set("E", "MyNewEVal");
var h = this.createHost();
h.set("A", "MyNewAVal");
h.set("B", "MyNewBVal");
h.set("C", "MyNewCVal");
h.set("D", "MyNewDVal");
h.set("E", "MyNewEVal");
h.set("F", "MyNewFVal");
h.set("DE", "MyNewDEVal");
var h = this.createHost();
h.set("AdHoc", "TestAdHoc");
var h = this.createHost();
areObjectsReallyEqual(expectedVals, h.getAttrs());
var h = this.createHost();
areObjectsReallyEqual(expectedVals, h.getAttrs(true));
var h = this.createHost();
h.set("A", "MyAVal");
h.set("A", 100);
h.set("B", "two");
h.set("B", 2);
h.set("B", true);
h.set("F", "MyNewFVal");
h.set("F", 3);
Y.Assert.areEqual("MyNewFVal", h.get("F")); // Validation should prevent the attribute from being set
var h = this.createHost();
h.set("D", "MyNewDVal");
h.set("E", "MyNewEVal");
var h = this.createHost();
var val = h.get("complex");
Y.each(val, function(v, k) {
var h = this.createHost();
var h = this.createHost();
var h = this.createHost();
h.set("I", {a:7, b:8});
t.getAttrs();
t.getAttrs();
Y.log("Construction Time Populated (lazy): " + ((end-start)/n), "perf");
Y.log("Construction Time (lazy and silent init): " + ((end-start)/n), "perf");