4b1ca32b107db5aba328c40574d62b0773cab275Eric FerraiuoloYUI.add('widget-stack-test', function (Y) {
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolovar Assert = Y.Assert,
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo ArrayAssert = Y.ArrayAssert,
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo TestWidget, suite;
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo// -- Suite --------------------------------------------------------------------
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolosuite = new Y.Test.Suite('WidgetStack');
4b1ca32b107db5aba328c40574d62b0773cab275Eric FerraiuoloTestWidget = Y.Base.create('testWidget', Y.Widget, [Y.WidgetStack]);
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo// -- Lifecycle ----------------------------------------------------------------
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolosuite.add(new Y.Test.Case({
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo name: 'Lifecycle',
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo tearDown: function () {
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo this.widget && this.widget.destroy();
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo delete this.widget;
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo Y.one('#test').empty();
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo },
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo
def498f726d18f7ebbb4412cb6cae1b39fcc96ccEric Ferraiuolo 'WidgetStack should add `shim` and `zIndex` attributes': function () {
def498f726d18f7ebbb4412cb6cae1b39fcc96ccEric Ferraiuolo this.widget = new TestWidget({
def498f726d18f7ebbb4412cb6cae1b39fcc96ccEric Ferraiuolo zIndex : 10,
def498f726d18f7ebbb4412cb6cae1b39fcc96ccEric Ferraiuolo shim : true,
def498f726d18f7ebbb4412cb6cae1b39fcc96ccEric Ferraiuolo render : '#test',
def498f726d18f7ebbb4412cb6cae1b39fcc96ccEric Ferraiuolo visible: false
def498f726d18f7ebbb4412cb6cae1b39fcc96ccEric Ferraiuolo });
def498f726d18f7ebbb4412cb6cae1b39fcc96ccEric Ferraiuolo
def498f726d18f7ebbb4412cb6cae1b39fcc96ccEric Ferraiuolo this.widget.show();
def498f726d18f7ebbb4412cb6cae1b39fcc96ccEric Ferraiuolo
def498f726d18f7ebbb4412cb6cae1b39fcc96ccEric Ferraiuolo Assert.areSame(10, this.widget.get('zIndex'), '`zIndex` is not 10.');
def498f726d18f7ebbb4412cb6cae1b39fcc96ccEric Ferraiuolo Assert.areSame(true, this.widget.get('shim'), '`shim` is not `true`.');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo }
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo}));
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo// -- Attributes and Properties ------------------------------------------------
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolosuite.add(new Y.Test.Case({
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo name: 'Attributes and Properties',
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo tearDown: function () {
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo this.widget && this.widget.destroy();
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo delete this.widget;
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo Y.one('#test').empty();
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo },
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo 'zIndex of "auto" parsed from a node should not override the default': function () {
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo // The follow nodes should all be considered to have an "auto" `zIndex`.
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo var offDoc = Y.Node.create('<div />'),
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo offDocStyle = Y.Node.create('<div style="z-index: 10;" />'),
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo offDocStylePos = Y.Node.create('<div style="z-index: 10; position: relative;" />'),
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo inDoc = Y.Node.create('<div />').appendTo('#test'),
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo inDocStyle = Y.Node.create('<div style="z-index: 10" />').appendTo('#test'),
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo inDocCss = Y.Node.create('<div />').addClass('css-htmlparser').appendTo('#test'),
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo parseZIndex = Y.WidgetStack.prototype._parseZIndex;
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo Assert.areSame(null, parseZIndex(offDoc), 'offDoc did not have z-index: auto');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo Assert.areSame(null, parseZIndex(offDocStyle), 'offDocStyle did not have z-index: auto');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo Assert.areSame(null, parseZIndex(offDocStylePos), 'offDocStylePos did not have z-index: auto');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo Assert.areSame(null, parseZIndex(inDoc), 'inDoc did not have z-index: auto');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo Assert.areSame(null, parseZIndex(inDocStyle), 'inDocStyle did not have z-index: auto');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo Assert.areSame(null, parseZIndex(inDocCss), 'inDocCss did not have z-index: auto');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo this.widget = new TestWidget({
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo srcNode: inDocStyle.cloneNode().appendTo('#test'),
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo render : true
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo });
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo Assert.areSame(0, this.widget.get('zIndex'), 'widget zIndex was not 0.');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo Assert.areSame(0, parseInt(this.widget.get('boundingBox').getStyle('zIndex'), 10), 'widget bb zIndex was not 0.');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo },
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo 'srcNode in the document with position should have its zIndex parsed from the DOM': function () {
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo var style = Y.Node.create('<div style="z-index: 10; position: relative;" />').appendTo('#test'),
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo css = Y.Node.create('<div style="position: relative;" />').addClass('css-htmlparser').appendTo('#test');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo this.widget = new TestWidget({
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo srcNode: style,
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo render : true
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo });
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo Assert.areSame(10, this.widget.get('zIndex'), 'widget zIndex was not 10.');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo Assert.areSame(10, parseInt(this.widget.get('boundingBox').getStyle('zIndex'), 10), 'widget bb zIndex was not 10.');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo // Clean up.
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo this.widget.destroy();
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo this.widget = new TestWidget({
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo srcNode: css,
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo render : true
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo });
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo Assert.areSame(2, this.widget.get('zIndex'), 'widget zIndex was not 2.');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo Assert.areSame(2, parseInt(this.widget.get('boundingBox').getStyle('zIndex'), 10), 'widget bb zIndex was not 2.');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo },
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo 'A user specified zIndex should override the parsed zIndex value': function () {
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo var srcNode = Y.Node.create('<div style="z-index: 10; position: relative;" />').appendTo('#test');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo this.widget = new TestWidget({
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo srcNode: srcNode,
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo zIndex : 11,
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo render : true
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo });
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo Assert.areSame(11, this.widget.get('zIndex'), 'widget zIndex was not 11.');
7fac276f7bad8999927d1d86d779393dc7240ce6Eric Ferraiuolo Assert.areSame(11, parseInt(this.widget.get('boundingBox').getStyle('zIndex'), 10), 'widget bb zIndex was not 11.');
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo }
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo}));
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo
4b1ca32b107db5aba328c40574d62b0773cab275Eric FerraiuoloY.Test.Runner.add(suite);
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo}, '@VERSION@', {
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo requires: ['widget-stack', 'test']
4b1ca32b107db5aba328c40574d62b0773cab275Eric Ferraiuolo});