attribute.html revision 8b31a65685adffca50a9cd65e89f8ac8e780a852
0N/A<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2362N/A<html>
0N/A<head>
0N/A <title>Attribute Tests</title>
0N/A <script type="text/javascript" src="/build/yui/yui.js"></script>
0N/A <script type="text/javascript" src="/build/dom/dom.js"></script>
2362N/A <script type="text/javascript" src="/build/test/test.js"></script>
0N/A <script type="text/javascript" src="/build/base/base.js"></script>
2362N/A <script type="text/javascript" src="/build/attribute/attribute.js"></script>
0N/A
0N/A <script type="text/javascript">
0N/A
0N/A (function() {
0N/A var Y = YUI().use("base", "test");
0N/A
0N/A var CLONE_ENUM = Y.Attribute.CLONE;
0N/A
0N/A function AttHost(config) {
0N/A AttHost.superclass.constructor.apply(this, arguments);
0N/A }
2362N/A AttHost.NAME = "atthost";
2362N/A
2362N/A AttHost.ATTRS = {
0N/A A: {
0N/A value:"AVal"
0N/A },
0N/A
0N/A B: {
0N/A value:"BVal"
0N/A },
0N/A
0N/A C: {
0N/A value:"CVal",
0N/A readOnly: true
0N/A },
0N/A
0N/A D: {
0N/A value:"DVal",
0N/A writeOnce: true
0N/A }
0N/A };
0N/A
0N/A Y.extend(AttHost, Y.Base);
0N/A
0N/A var template = {
0N/A createHost : function(cfg) {
0N/A return new AttHost(cfg);
0N/A },
0N/A
0N/A setUp : function() {
0N/A },
0N/A
0N/A tearDown : function() {
0N/A },
0N/A
0N/A test : function() {
0N/A var h = this.createHost({A:"MyAVal", B:"MyBVal", C:"MyCVal", D:"MyDVal"});
0N/A h.set("D", "MyNewDVal");
0N/A Y.Assert.areEqual("MyAVal", h.get("A"));
0N/A Y.Assert.areEqual("MyBVal", h.get("B"));
0N/A Y.Assert.areEqual("CVal", h.get("C")); // Readonly
0N/A Y.Assert.areEqual("MyDVal", h.get("D")); // Write once, but not twice
0N/A }
0N/A };
0N/A
0N/A Y.Test.Runner.clear();
0N/A Y.Test.Runner.add(new Y.Test.Case(template));
0N/A Y.Test.Runner.run();
0N/A
0N/A /*
0N/A AttHost.ATTRS = {
0N/A A: {
0N/A value : {
0N/A a : {
0N/A aa : "foo"
0N/A },
0N/A b : "bar"
0N/A },
0N/A clone : CLONE_ENUM.DEEP
0N/A },
0N/A
0N/A B: {
0N/A value : {
0N/A b : {
0N/A bb : [0,1,2]
0N/A }
0N/A },
0N/A clone : CLONE_ENUM.SHALLOW
0N/A },
0N/A
0N/A C: {
0N/A value : {
0N/A c : {
0N/A cc : Y.Node.get("#foo")
0N/A }
0N/A }
0N/A },
0N/A
0N/A D: {
0N/A value : {
0N/A d : {
0N/A dd : 15
0N/A }
0N/A }
0N/A },
0N/A
0N/A E: {
0N/A value : {foo:"Ebar"},
0N/A set: function(val) {
0N/A val.foo += "Modified";
0N/A }
0N/A },
0N/A
0N/A F: {
0N/A value : "Ffoo",
0N/A readOnly: true,
0N/A set : function(val) {
0N/A return val.toUpperCase();
0N/A }
0N/A },
0N/A
0N/A G: {
0N/A writeOnce: true,
0N/A value:"GFoo"
0N/A },
0N/A
0N/A H: {
0N/A value:"HFoo",
0N/A }
0N/A };
0N/A */
0N/A })();
0N/A </script>
0N/A</head>
0N/A<body>
0N/A <div id="foo"></div>
0N/A</body>
0N/A</html>