X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/6a7e4474cba9d8be4b2ec445e10f1691f7277c50..0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6:/test/unit/widgets/layout/HBoxLayout.js diff --git a/test/unit/widgets/layout/HBoxLayout.js b/test/unit/widgets/layout/HBoxLayout.js index ef1262b4..6f6dc936 100644 --- a/test/unit/widgets/layout/HBoxLayout.js +++ b/test/unit/widgets/layout/HBoxLayout.js @@ -1,8 +1,8 @@ /*! - * Ext JS Library 3.2.0 - * Copyright(c) 2006-2010 Ext JS, Inc. - * licensing@extjs.com - * http://www.extjs.com/license + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license */ /** * Tests Ext.data.Store functionality @@ -157,6 +157,95 @@ } })); + suite.add(new Y.Test.Case({ + name: 'minWidth of items', + + setUp: function() { + this.layout = buildLayout(); + + this.layout.beforeCt = { + getWidth: function() { + return 0; + }, + createChild: Ext.emptyFn + }; + + this.layout.afterCt = { + getWidth: function() { + return 0; + }, + createChild: Ext.emptyFn + }; + + this.items = [ + buildFakeChild({width: 100, minWidth: 100}), + buildFakeChild({width: 200, minWidth: 120}), + buildFakeChild({width: 200, minWidth: 120}), + buildFakeChild({width: 200, minWidth: 120}) + ]; + }, + + testAvailableWidthIsSufficient: function() { + var targetSize = { + width : 700, + height: 25 + }; + + var calcs = this.layout.calculateChildBoxes(this.items, targetSize), + boxes = calcs.boxes; + + assert.areEqual(0, boxes[0].left); + assert.areEqual(100, boxes[1].left); + assert.areEqual(300, boxes[2].left); + assert.areEqual(500, boxes[3].left); + + assert.areEqual(100, boxes[0].width); + assert.areEqual(200, boxes[1].width); + assert.areEqual(200, boxes[2].width); + assert.areEqual(200, boxes[3].width); + }, + + testHasShortfall: function() { + var targetSize = { + width : 500, + height: 25 + }; + + var calcs = this.layout.calculateChildBoxes(this.items, targetSize), + boxes = calcs.boxes; + + assert.areEqual(100, boxes[0].width); + assert.areEqual(133, boxes[1].width); + assert.areEqual(133, boxes[2].width); + assert.areEqual(134, boxes[3].width); + + assert.areEqual(0, boxes[0].left); + assert.areEqual(100, boxes[1].left); + assert.areEqual(233, boxes[2].left); + assert.areEqual(366, boxes[3].left); + }, + + testTooNarrow: function() { + var targetSize = { + width : 400, + height: 25 + }; + + var calcs = this.layout.calculateChildBoxes(this.items, targetSize), + boxes = calcs.boxes; + + assert.areEqual(0, boxes[0].left); + assert.areEqual(100, boxes[1].left); + assert.areEqual(220, boxes[2].left); + assert.areEqual(340, boxes[3].left); + + assert.areEqual(100, boxes[0].width); + assert.areEqual(120, boxes[1].width); + assert.areEqual(120, boxes[2].width); + assert.areEqual(120, boxes[3].width); + } + })); + suite.add(new Y.Test.Case({ name: 'aligning',