42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai<html>
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai<head>
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai <title>Base Core Tests</title>
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai <script type="text/javascript" src="/build/yui/yui.js"></script>
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai <style type="text/css">
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai #console .yui3-console-entry {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai padding:2px;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai margin:0px;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai min-height:0;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai #console .yui3-console-entry-fail .yui3-console-entry-cat {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai background-color:red;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai #console .yui3-console-entry-pass .yui3-console-entry-cat {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai background-color:green;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai #console .yui3-console-entry-perf .yui3-console-entry-cat {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai background-color:blue;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai #console {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai position:static;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai html, body {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai height:100%;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai </style>
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai <script type="text/javascript">
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai YUI({
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
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai function areObjectsReallyEqual(o1, o2) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.ObjectAssert.areEqual(o1, o2);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.ObjectAssert.areEqual(o2, o1);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
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 };
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Test.NAME = 'test';
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Test.ATTRS = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr1: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: "Foo",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(n) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return n;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr2: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: "Bar",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(n) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return n;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr3: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: true
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr4: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: 3
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr5: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: 3
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr6: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: false,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(lock) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return lock;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr7: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: false
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr8: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: true
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr9: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: true
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr10: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: false
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr11: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: true
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr12: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: false
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr13: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: false
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr14: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: false,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return val;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr15: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: null,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return false;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr16: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: ['default'],
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai getter: function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return false;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(g) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return g;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr17: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: null,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(g) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return g;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr18: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai writeOnce: true,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: null
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr19: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai writeOnce: true,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: null
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai attr20: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai writeOnce: true,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: null
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai };
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.extend(Test, Y.BaseCore, {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai foo: function() {}
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai });
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai function AttrHost(config) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai AttrHost.superclass.constructor.apply(this, arguments);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai AttrHost.NAME = "attrHost";
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai AttrHost.ATTRS = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"AVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai validator: Y.Lang.isString,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai broadcast:1
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai B: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai validator: function(value) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return (value === undefined || Y.Lang.isString(value) || Y.Lang.isNumber(value));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai broadcast:2
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai C: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai writeOnce: true
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai D: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"DVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai readOnly: true
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai E: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"EVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai writeOnce: true
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai DE: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai valueFn: function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return this.get("D") + this.get("E");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai complex: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai X : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: 1
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: 2
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Z : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: 3
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai initOnly : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai writeOnce:"initOnly"
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai };
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.extend(AttrHost, Y.BaseCore);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai // -----
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai function ExtendedAttrHost(config) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai AttrHost.superclass.constructor.apply(this, arguments);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai ExtendedAttrHost.NAME = "extendedAttrHost";
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai ExtendedAttrHost.ATTRS = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"ExtAVal"
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai B: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"ExtBVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai validator: function(value) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return ((value == undefined) || Y.Lang.isString(value));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai D: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"ExtDVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return (Y.Lang.isString(val)) ? val.toUpperCase() : val;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai E: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"ExtEVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai getter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return (Y.Lang.isString(val)) ? val.toLowerCase() : val;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai F: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:"ExtFVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return (Y.Lang.isString(val)) ? val : Y.AttributeCore.INVALID_VALUE;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "complex.X.A" : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: 1111
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai "complex.Y.A" : {
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 }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai G : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai valueFn:function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai // Referring to H before it's set up
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return this.get("H") + 10;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai H: {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:5,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai getter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return val*5;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai I : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value:{
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai a: 5
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai getter: "_getI",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: "_setI",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai validator: "_validateI"
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai PassThrough : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: "passthrough",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai getter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return this._passthrough;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai this._passthrough = val;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Z : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai value: "z",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai getter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return val.toUpperCase();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai };
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.extend(ExtendedAttrHost, AttrHost, {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai _validateI : function(val, name) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai if (name.indexOf(".") == -1) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("I", name);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai } else {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("I.a", name);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return true;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai _getI : function(val, name) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai if (name.indexOf(".") == -1) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("I", name);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai } else {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("I.a", name);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return val;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai _setI : function(val, name) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai if (name.indexOf(".") == -1) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("I", name);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai } else {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("I.a", name);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai });
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai function CoreTestsHost(config) {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai CoreTestsHost.superclass.constructor.apply(this, arguments);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai CoreTestsHost.NAME = "coreTestsHost";
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai CoreTestsHost.ATTRS = {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultObject : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai value : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai a:1,
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai b:2,
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai c:3
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultArray : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai value : ["foo", "bar", "foobar"]
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultString : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai value : "foo"
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultOverride : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai value : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai a:1, b:2, c:3
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultValue : false
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultShallow : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai value : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai a: {foo: "bar"}
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultValue : "shallow"
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultDeep : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai value : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai a: {foo: "bar"}
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultValue : "deep"
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai cloneDefaultComplex : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai value : new Y.BaseCore()
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai };
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.extend(CoreTestsHost, Y.BaseCore);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var coreTemplate = {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai name: "Core Tests",
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testInit : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost();
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(h.get("initialized"));
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testDestroy : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost();
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isFalse(h.get("destroyed"));
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai h.destroy();
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(h.get("destroyed"));
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testToString : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai re = /^coreTestsHost\[.*?\]$/,
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai str = h.toString();
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(re.test(str));
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testCloneDefaultValueObject : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai val = h.get("cloneDefaultObject");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultObject.value !== val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.ObjectAssert.areEqual({
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai a:1,
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai b:2,
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai c:3
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }, val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testCloneDefaultValueArray : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai val = h.get("cloneDefaultArray");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultArray.value !== val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.ArrayAssert.itemsAreEqual(["foo", "bar", "foobar"], val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testCloneDefaultValueString : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai val = h.get("cloneDefaultString");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultString.value === val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testCloneDefaultComplex : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai val = h.get("cloneDefaultComplex");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
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 },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testCloneDefaultShallow : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai val = h.get("cloneDefaultShallow");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultShallow.value !== val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultShallow.value.a === val.a);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.ObjectAssert.areEqual({
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai foo:"bar"
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }, val.a);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testCloneDefaultDeep : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai val = h.get("cloneDefaultDeep");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultDeep.value !== val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultDeep.value.a !== val.a);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.ObjectAssert.areEqual({
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai foo:"bar"
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }, val.a);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testCloneDefaultOverride : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var h = new CoreTestsHost(),
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai val = h.get("cloneDefaultOverride");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.isTrue(CoreTestsHost.ATTRS.cloneDefaultOverride.value === val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.ObjectAssert.areEqual({
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai a:1,
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai b:2,
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai c:3
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }, val);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai testInitializerDestructorInvocation : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var expected = ["beforeConstructorTwo", "beforeConstructorOne", "initializerOne", "initializerTwo", "afterConstructorOne", "afterConstructorTwo", "destructorTwo", "destructorOne"],
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai actual = [],
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai initCfg = {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai foo: 1
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai };
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
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 }
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.extend(One, Y.BaseCore, {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai initializer : function(cfg) {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.areSame(initCfg, cfg);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai actual.push("initializerOne");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai destructor : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai actual.push("destructorOne");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }, {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai NAME : "one",
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai ATTRS : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai "a" : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai value: 1
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai });
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
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 }
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.extend(Two, One, {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai initializer : function(cfg) {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.Assert.areSame(initCfg, cfg);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai actual.push("initializerTwo");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai },
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai destructor : function() {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai actual.push("destructorTwo");
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }, {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai NAME : "two",
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai ATTRS : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai "b" : {
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai value: 2
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai });
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai var o = new Two(initCfg);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai o.destroy();
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai Y.ArrayAssert.itemsAreEqual(expected, actual);
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai }
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai };
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var basicTemplate = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai name: "Base Class Tests",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai createHost : function(cfg) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return new AttrHost(cfg);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setUp : function() {},
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai tearDown : function() {},
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testDefault : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("AVal", h.get("A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("B"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("C"));
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
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("DValEVal", h.get("DE"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testConstructor : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost({A:"MyAVal", B:"MyBVal", C:"MyCVal", D:"MyDVal", E:"MyEVal", DE:"MyDEVal"});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("C", "MyNewCVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("D", "MyNewDVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("E", "MyNewEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyAVal", h.get("A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyBVal", h.get("B"));
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
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyDEVal", h.get("DE"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
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
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyNewAVal", h.get("A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyNewBVal", h.get("B"));
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
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyNewDEVal", h.get("DE"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testWriteOncePostInit : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("E", "MyNewEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("C", "MyNewCVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
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 },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testWriteOnce : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost({E:"MyEVal"});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("E", "MyNewEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyEVal", h.get("E")); // Write Once, on init
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testWriteOnceInitOnly : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost({ initOnly: "initOnlyVal"});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("initOnly", "NewInitOnlyVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("initOnlyVal", h.get("initOnly"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testWriteOnceInitOnlyNotProvided : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h1 = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h1.set("initOnly", "InitOnlyVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h1.get("initOnly"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testAdHocGetSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("AdHoc"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("AdHoc", "TestAdHoc");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("TestAdHoc", h.get("AdHoc"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.addAttr("AdHoc", {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setter: function(val) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return val.toUpperCase();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai });
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("AdHoc", "TestAdHocConfigured");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("TESTADHOCCONFIGURED", h.get("AdHoc"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai testAdHocConstructorEnabled : function() {
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai AttrHost.prototype._allowAdHocAttrs = true;
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai var h = this.createHost({
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai A: "MyAVal",
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai foo: "foo",
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai bar: "bar",
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai plugins : ["not"]
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai });
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai AttrHost.prototype._allowAdHocAttrs = false;
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai // Only add AdHoc Attrs
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai Y.Assert.areEqual("foo", h.get("foo"));
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai Y.Assert.areEqual("bar", h.get("bar"));
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai // Configured Attrs
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai Y.Assert.areEqual("DVal", h.get("D"));
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai Y.Assert.areEqual("MyAVal", h.get("A"));
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai // Not _NON_ATTRS_CFG
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai Y.Assert.isUndefined(h.get("plugins"));
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai },
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai testAdHocConstructorDisabled : function() {
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai var h = this.createHost({
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai A: "MyAVal",
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai foo: "foo",
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai bar: "bar",
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai plugins : ["not"]
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai });
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai // Only add AdHoc Attrs
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai Y.Assert.areEqual(undefined, h.get("foo"));
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai Y.Assert.areEqual(undefined, h.get("bar"));
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai // Configured attributes
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai Y.Assert.areEqual("DVal", h.get("D"));
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai Y.Assert.areEqual("MyAVal", h.get("A"));
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai // Not _NON_ATTRS_CFG
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai Y.Assert.isUndefined(h.get("plugins"));
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai },
4cd36cd90f40231cd88acf6c0ab9d2fa89041bf0Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testMassSetGet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.setAttrs({
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 });
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var expectedVals = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: "MyNewAVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai B: "MyNewBVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai C: "MyNewCVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai D: "DVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai E: "EVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai DE: "MyNewDEVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai complex: "MyNewComplexVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai initialized: true,
52275828c4435b5f53f868077b5b2041bbe0d85cDav Glass destroyed: false,
52275828c4435b5f53f868077b5b2041bbe0d85cDav Glass initOnly: undefined
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai };
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(expectedVals.A, h.get("A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(expectedVals.B, h.get("B"));
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
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual(expectedVals, h.getAttrs());
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testModifiedAttrs : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.setAttrs({
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: "MyNewAVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai C: "MyNewCVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai D: "MyNewDVal"
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai });
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var expectedVals = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: "MyNewAVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai initialized:true
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai };
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual(expectedVals, h.getAttrs(true));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testValidation : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("A", "MyAVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyAVal", h.get("A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("A", 100);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyAVal", h.get("A")); // Validation should prevent the attribute from being set
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("B", "two");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("two", h.get("B"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("B", 2);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(2, h.get("B"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("B", false);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(2, h.get("B")); // Validation should prevent the attribute from being set
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testPrivateSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("D", "MyNewDVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("E", "MyNewEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("DVal", h.get("D"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("EVal", h.get("E"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h._set("D", "TryDAgain");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h._set("E", "TryEAgain");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("TryDAgain", h.get("D"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("TryEAgain", h.get("E"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testComplexDefault : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var o = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai X : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: 1
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: 2
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Z : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: 3
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai };
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(1, h.get("complex.X.A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(2, h.get("complex.Y.A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(3, h.get("complex.Z.A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
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
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var val = h.get("complex");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.each(val, function(v, k) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual(v, o[k]);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai });
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testComplexSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("complex.X.A", 111);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(111, h.get("complex.X.A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("complex.X.B", 112);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(112, h.get("complex.X.B"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual({A:111, B:112}, h.get("complex.X"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("complex.W.B", 113);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("complex.W"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("complex.W.B"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("complex.Y", {B:222});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(222, h.get("complex.Y.B"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("complex.Y.A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
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 },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testProtect : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var q = h._protectAttrs(AttrHost.ATTRS);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areNotSame(AttrHost.ATTRS, q);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(Y.dump(AttrHost.ATTRS), Y.dump(q));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai q.A.newprop = "new prop value";
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai q.A.value = "modified value";
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areNotEqual(Y.dump(AttrHost.ATTRS), Y.dump(q));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai };
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var extendedTemplate = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai name: "Extended Class Tests",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai createHost : function(cfg) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai return new ExtendedAttrHost(cfg);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai setUp : function() {},
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai tearDown : function() {},
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testDefault : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("ExtAVal", h.get("A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("ExtBVal", h.get("B"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("C"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("EXTDVAL", h.get("D"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("exteval", h.get("E"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("ExtFVal", h.get("F"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("EXTDVALexteval", h.get("DE"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testConstructor : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost({A:"MyAVal", B:"MyBVal", C:"MyCVal", D:"MyDVal", E:"MyEVal", F:"MyFVal"});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("C", "MyNewCVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("D", "MyNewDVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("E", "MyNewEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyAVal", h.get("A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyBVal", h.get("B"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyCVal", h.get("C"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("EXTDVAL", h.get("D"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("myeval", h.get("E"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyFVal", h.get("F"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("EXTDVALmyeval", h.get("DE"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
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
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyNewAVal", h.get("A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyNewBVal", h.get("B"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyNewCVal", h.get("C"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("EXTDVAL", h.get("D"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("exteval", h.get("E"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyNewFVal", h.get("F"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyNewDEVal", h.get("DE"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testAdHocGetSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("AdHoc"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("AdHoc", "TestAdHoc");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("TestAdHoc", h.get("AdHoc"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testMassSetGet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.setAttrs({
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 "Z" : "MyZ"
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai });
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
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 G: 35,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai H: 25,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai I: "MyNewIVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai PassThrough: "MyPassThrough",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Z: "MYZ",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai initialized:true,
52275828c4435b5f53f868077b5b2041bbe0d85cDav Glass destroyed:false,
52275828c4435b5f53f868077b5b2041bbe0d85cDav Glass initOnly: undefined
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai };
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(expectedVals.A, h.get("A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(expectedVals.B, h.get("B"));
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.F, h.get("F"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(expectedVals.DE, h.get("DE"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual(expectedVals, h.getAttrs());
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testModifiedAttrs : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.setAttrs({
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: "MyNewAVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai C: "MyNewCVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai D: "MyNewDVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai F: "MyNewFVal"
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai });
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var expectedVals = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: "MyNewAVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai F: "MyNewFVal",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai initialized:true
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai };
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual(expectedVals, h.getAttrs(true));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testValidation : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("A", "MyAVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyAVal", h.get("A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("A", 100);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyAVal", h.get("A")); // Validation should prevent the attribute from being set
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("B", "two");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("two", h.get("B"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("B", 2);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("two", h.get("B")); // Validation should prevent the attribute from being set
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("B", true);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("two", h.get("B")); // Validation should prevent the attribute from being set
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("F", "MyNewFVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyNewFVal", h.get("F"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("F", 3);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("MyNewFVal", h.get("F")); // Validation should prevent the attribute from being set
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testPrivateSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("D", "MyNewDVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("E", "MyNewEVal");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("EXTDVAL", h.get("D"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("exteval", h.get("E"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h._set("D", "TryDAgain");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h._set("E", "TryEAgain");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("TRYDAGAIN", h.get("D"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual("tryeagain", h.get("E"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testComplexDefault : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var o = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai X : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: 1111
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: 2222
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Z : {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai A: 3
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai };
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(1111, h.get("complex.X.A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(2222, h.get("complex.Y.A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(3, h.get("complex.Z.A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
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
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var val = h.get("complex");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.each(val, function(v, k) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual(v, o[k]);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai });
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testComplexSet : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("complex.X.A", 111);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(111, h.get("complex.X.A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("complex.X.B", 112);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(112, h.get("complex.X.B"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai areObjectsReallyEqual({A:111, B:112}, h.get("complex.X"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("complex.W.B", 113);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("complex.W"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("complex.W.B"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("complex.Y", {B:222});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(222, h.get("complex.Y.B"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(undefined, h.get("complex.Y.A"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testOnDemandInit : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(35, h.get("G"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.areEqual(25, h.get("H"));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testGetterSetterValidatorNameArg : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var h = this.createHost();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("I.a", 6);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai h.set("I", {a:7, b:8});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai };
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var perfTemplate = {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai name: "Performance Tests",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testTimeConstruction: function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var start, end, n = 20, t, i;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai start = new Date().getTime();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai for (i = 0; i < n; i++) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = new Test(null, false);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t.getAttrs();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = null;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai end = new Date().getTime();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.log("Construction Time Populated (upfront): " + ((end-start)/n), "perf");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai start = new Date().getTime();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai for (i = 0; i < n; i++) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = new Test();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t.getAttrs();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = null;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai end = new Date().getTime();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.log("Construction Time Populated (lazy): " + ((end-start)/n), "perf");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai start = new Date().getTime();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai for (i = 0; i < n; i++) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = new Test(null, false);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = null;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai end = new Date().getTime();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.log("Construction Time (upfront): " + ((end-start)/n), "perf");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai start = new Date().getTime();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai for (i = 0; i < n; i++) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = new Test();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = null;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai end = new Date().getTime();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var time = (end-start)/n;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var expectedTime = (Y.UA.ie && Y.UA.ie <= 6) ? 15 : 10;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.log("Construction Time (lazy): " + time, "perf");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai start = new Date().getTime();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai for (i = 0; i < n; i++) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = new Test(null, true, true);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = null;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai end = new Date().getTime();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.log("Construction Time (lazy and silent init): " + ((end-start)/n), "perf");
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Assert.isTrue((time < expectedTime));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai },
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai testStateForPerfSwitches : function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai // Lazy
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = new Test();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var x = t.getAttrs();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai // Non Lazy (Upfront)
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = new Test(null, false);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var y = t.getAttrs();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai // Lazy and Silent
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai t = new Test(null, true, true);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var z = t.getAttrs();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
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 }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var suite = new Y.Test.Suite({name:"Base Core Unit Tests"});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai suite.add(new Y.Test.Case(coreTemplate));
9bdfc363ef897a298b7596475f598c1c4fd427b6Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai suite.add(new Y.Test.Case(basicTemplate));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai suite.add(new Y.Test.Case(extendedTemplate));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai suite.add(new Y.Test.Case(basicTemplate));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai suite.add(new Y.Test.Case(extendedTemplate));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Test.Runner.add(suite);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Test.Runner.setName("Base Core Tests");
1c99bd1672dfadc9e981726419cc465d406c474bSatyen Desai Y.Test.Runner.disableLogging();
1c99bd1672dfadc9e981726419cc465d406c474bSatyen Desai Y.Test.Runner.run();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var console;
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.one("#btnRun").set("disabled", false).on("click", function() {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai if (!console) {
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai //create the console
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai console = new Y.Console({
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai width:"100%",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai height:"95%",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai id:"console",
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai verbose : false,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai printTimeout: 0,
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai newestOnTop : false,
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 '</pre>',
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai render:true
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai });
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai var perfSuite = new Y.Test.Suite({name:"Attribute Performance Tests"});
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai perfSuite.add(new Y.Test.Case(perfTemplate));
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Test.Runner.add(perfSuite);
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai }
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Test.Runner.enableLogging();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai Y.Test.Runner.run();
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai });
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai });
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai </script>
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai</head>
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai<body class="yui3-skin-sam">
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai <p><input type="button" value="Run Tests" id="btnRun" disabled=true></p>
42ca760bb9929dcdf6624637a7613f6f1ebcb4b4Satyen Desai</body>
52275828c4435b5f53f868077b5b2041bbe0d85cDav Glass</html>