Upgrade to ExtJS 3.2.0 - Released 03/30/2010
[extjs.git] / test / unit / widgets / layout / FormLayout.js
diff --git a/test/unit/widgets/layout/FormLayout.js b/test/unit/widgets/layout/FormLayout.js
new file mode 100644 (file)
index 0000000..9d1e892
--- /dev/null
@@ -0,0 +1,97 @@
+/*!
+ * Ext JS Library 3.2.0
+ * Copyright(c) 2006-2010 Ext JS, Inc.
+ * licensing@extjs.com
+ * http://www.extjs.com/license
+ */
+/**
+ * Tests Ext.data.Store functionality
+ * @author Ed Spencer
+ */
+(function() {
+    var suite  = Ext.test.session.getSuite('Ext.layout.FormLayout'),
+        assert = Y.Assert;
+    
+    function buildLayout(config) {
+        var layout = new Ext.layout.FormLayout(config || {});
+        
+        //give a mock container
+        layout.container = {
+            itemCls: 'ctCls'
+        };
+        
+        return layout;
+    };
+    
+    suite.add(new Y.Test.Case({
+        name: 'getTemplateArgs',
+        
+        setUp: function() {
+            this.layout = buildLayout({
+                labelStyle  : 'color: red;',
+                elementStyle: 'padding-left:0;'
+            });
+            
+            //mock fields
+            this.field1 = {
+                id        : 'myField',
+                itemCls   : 'myCls',
+                clearCls  : 'myClearCls',
+                fieldLabel: 'A Label',
+                labelStyle: 'border-top: 10px;'
+            };
+            
+            this.field2 = {
+                id            : 'myField2',
+                fieldLabel    : 'My Label',
+                labelSeparator: '@'
+            };
+            
+            this.field3 = Ext.apply({}, {
+                fieldLabel: 'Third label',
+                hideLabel : true
+            }, this.field2);
+            
+            this.args1 = this.layout.getTemplateArgs(this.field1);
+            this.args2 = this.layout.getTemplateArgs(this.field2);
+            this.args3 = this.layout.getTemplateArgs(this.field3);
+        },
+        
+        testId: function() {
+            assert.areEqual('myField',  this.args1.id);
+            assert.areEqual('myField2', this.args2.id);
+        },
+        
+        testLabel: function() {
+            assert.areEqual('A Label',     this.args1.label);
+            assert.areEqual('My Label',    this.args2.label);
+            assert.areEqual('Third label', this.args3.label);
+        },
+        
+        //adds field's label style to layout's general label style
+        testLabelStyle: function() {
+            assert.areEqual('color: red;border-top: 10px;', this.args1.labelStyle);
+        },
+        
+        testElementStyle: function() {
+            assert.areEqual('padding-left:0;', this.args1.elementStyle);
+        },
+        
+        testLabelSeparator: function() {
+            assert.areEqual(':', this.args1.labelSeparator);
+            assert.areEqual('@', this.args2.labelSeparator);
+            assert.areEqual('',  this.args3.labelSeparator);
+        },
+        
+        testItemCls: function() {
+            assert.areEqual('myCls', this.args1.itemCls);
+            assert.areEqual('ctCls', this.args2.itemCls);
+            assert.areEqual('ctCls x-hide-label', this.args3.itemCls);
+        },
+        
+        testClearCls: function() {
+            assert.areEqual('myClearCls',        this.args1.clearCls);
+            assert.areEqual('x-form-clear-left', this.args2.clearCls);            
+        }
+    }));
+})();
\ No newline at end of file