cfa24b6c6102689f7e0e361591ef186e6fb4f2fcJeff ConniffYUI.add('dial-test', function(Y) {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff// copied this from event-key-test.js to add tests for changing value by keyboard
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff ConniffY.Node.prototype.key = function (code, mods, type) {
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff var simulate = Y.Event.simulate,
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff el = this._node,
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff config = Y.merge(mods || {}, { keyCode: code, charCode: code });
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff if (typeof code === "string") {
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff code = code.charCodeAt(0);
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff }
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff if (type) {
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff simulate(el, type, config);
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff } else {
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff simulate(el, 'keydown', config);
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff simulate(el, 'keyup', config);
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff simulate(el, 'keypress', config);
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff }
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff};
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff// END copied this from event-key-test.js to add tests for changing value by keyboard
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniffvar suite = new Y.Test.Suite("Y.Dial");
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniffsuite.add( new Y.Test.Case({
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff name: "Simple dial test",
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff setUp: function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one("body").append('<div id="testbed"></div>');
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff tearDown: function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one("#testbed").remove(true);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test default construction": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.isInstanceOf( Y.Dial, new Y.Dial() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff } //no comma
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff}));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniffsuite.add( new Y.Test.Case({
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff name: "Lifecycle",
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff setUp: function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one("body").append('<div id="testbed"></div>');
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff tearDown: function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one("#testbed").remove(true);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test default construction": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.isInstanceOf( Y.Dial, new Y.Dial() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test render(selector)": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one("#testbed").setContent(
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "<div></div>" + // block element
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff '<div class="floated" style="float:left"></div>' + // float
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "<p></p>" + // limited block element
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "<span></span>"); // inline element
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial().render("#testbed > div"));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial().render("#testbed > div.floated"));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial().render("#testbed > p"));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial().render("#testbed > span"));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var div = Y.one("#testbed > div"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff fl = Y.one("#testbed > div.floated"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff p = Y.one("#testbed > p"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff span = Y.one("#testbed > span");
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (div.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (fl.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (p.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (span.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (fl.get("offsetWidth") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (span.get("offsetWidth") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff //Check for IE VML and set different number of objects
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff var numObjs = (Y.UA.ie && Y.UA.ie < 9) ? 11 : 11;
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, div.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, fl.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, p.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, span.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test render( node )": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one("#testbed").setContent(
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "<div></div>" + // block element
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff '<div class="floated" style="float:left"></div>' + // float
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "<p></p>" + // limited block element
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "<span></span>"); // inline element
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var div = Y.one("#testbed > div"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff fl = Y.one("#testbed > div.floated"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff p = Y.one("#testbed > p"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff span = Y.one("#testbed > span");
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial().render(div));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial().render(fl));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial().render(p));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial().render(span));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (div.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (fl.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (p.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (span.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (fl.get("offsetWidth") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (span.get("offsetWidth") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff //Check for IE VML and set different number of objects
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff var numObjs = (Y.UA.ie && Y.UA.ie < 9) ? 11 : 11;
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, div.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, fl.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, p.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, span.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test render: selector attrib in constructor": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one("#testbed").setContent(
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "<div></div>" + // block element
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff '<div class="floated" style="float:left"></div>' + // float
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "<p></p>" + // limited block element
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "<span></span>"); // inline element
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial({ render: "#testbed > div" }));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial({ render: "#testbed > div.floated" }));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial({ render: "#testbed > p" }));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial({ render: "#testbed > span" }));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var div = Y.one("#testbed > div"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff fl = Y.one("#testbed > div.floated"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff p = Y.one("#testbed > p"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff span = Y.one("#testbed > span");
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (div.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (fl.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (p.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (span.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (fl.get("offsetWidth") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (span.get("offsetWidth") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff //Check for IE VML and set different number of objects
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff var numObjs = (Y.UA.ie && Y.UA.ie < 9) ? 11 : 11;
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, div.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, fl.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, p.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, span.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test render: node attrib in constructor": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one("#testbed").setContent(
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "<div></div>" + // block element
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff '<div class="floated" style="float:left"></div>' + // float
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "<p></p>" + // limited block element
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "<span></span>"); // inline element
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var div = Y.one("#testbed > div"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff fl = Y.one("#testbed > div.floated"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff p = Y.one("#testbed > p"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff span = Y.one("#testbed > span");
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial({ render: div }));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial({ render: fl }));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial({ render: p }));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial({ render: span }));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (div.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (fl.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (p.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (span.get("offsetHeight") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (fl.get("offsetWidth") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.assert( (span.get("offsetWidth") > 0) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff //Check for IE VML and set different number of objects
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff var numObjs = (Y.UA.ie && Y.UA.ie < 9) ? 11 : 11;
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, div.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, fl.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, p.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, span.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test render off DOM": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var container = Y.Node.create("<div></div>");
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff (new Y.Dial().render(container));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff //Check for IE VML and set different number of objects
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff var numObjs = (Y.UA.ie && Y.UA.ie < 9) ? 11 : 11;
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( numObjs, container.all("span,div").size() );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test destroy() before render": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var dial = new Y.Dial();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial.destroy();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.isTrue( dial.get("destroyed") );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test destroy() after render off DOM": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var container = Y.Node.create("<div></div>"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial = new Y.Dial();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial.render( container );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial.destroy();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.isTrue( dial.get("destroyed") );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.isNull( container.get("firstChild") );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test destroy() after render to DOM": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var dial = new Y.Dial();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial.render( "#testbed" );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial.destroy();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.isTrue( dial.get("destroyed") );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.isNull( Y.one("#testbed").get("firstChild") );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff }
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff}));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniffsuite.add( new Y.Test.Case({
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff name: "API",
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff setUp: function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one('body').append('<div id="testbed"></div>');
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff this.dial = new Y.Dial();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff tearDown: function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff this.dial.destroy();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one('#testbed').remove(true);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff "test getting a value from an angle": function () {
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff var testbed = Y.one("#dial"),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff ref = Y.one("#ref"),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff valueOfAngle,
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff dial = new Y.Dial({value: 0 }).render( testbed );
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff valueOfAngle = dial._getValueFromAngle(90);
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.Assert.areEqual( 25, valueOfAngle );
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff valueOfAngle = dial._getValueFromAngle(270);
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.Assert.areEqual( 75, valueOfAngle );
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff valueOfAngle = dial._getValueFromAngle(176);
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.Assert.areEqual( 49, valueOfAngle );
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff dial.destroy();
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff },
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test get('value')) and set('value', v) before render": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var d = this.dial;
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 0, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 50);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 50, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff/*
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 3.3333); // dial does not round value
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 3, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff // out of range constrained by setter FIX THIS BUG. leaving in 3.3.0
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', -500);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( -220, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff // out of range constrained by setter FIX THIS BUG. leaving in 3.3.0
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 500);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 220, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( d.get('value'), d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 6.77777); // dial does not round value
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 7, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( d.get('value'), d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff*/
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test get('value')) and set('value', v) after render() to hidden container": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var container = Y.Node.create('<div></div>'),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d = this.dial;
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.render( container );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 0, d.get('value'), "1" );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 50);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 50, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff/*
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 3.3333); // dial does not round value
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 3, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff // out of range constrained by setter FIX THIS BUG. leaving in 3.3.0
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', -500);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( -220, d.get('value'), "2" );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff // out of range constrained by setter FIX THIS BUG. leaving in 3.3.0
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 500);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 220, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( d.get('value'), d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 6.77777); // dial does not round value
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 7, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( d.get('value'), d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff*/
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test get('value')) and set('value', v) after render() to DOM": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var d = this.dial;
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.render('#testbed');
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 0, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 50);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 50, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff/*
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 3.3333); // dial does not round value
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 3, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff // out of range constrained by setter FIX THIS BUG. leaving in 3.3.0
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', -500);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( -220, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff // out of range constrained by setter FIX THIS BUG. leaving in 3.3.0
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 500);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 220, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( d.get('value'), d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 6.77777); // dial does not round value
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 7, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( d.get('value'), d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff*/
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "set('value', v) then render() should position _handleNode": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var d = this.dial;
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 20);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.render("#testbed");
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 76, parseInt(d._handleNode.getStyle("left"),10) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "set('value', v) after render() should move the _handleNode": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var d = this.dial;
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.render('#testbed');
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 40, parseInt(d._handleNode.getStyle('left'),10) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 20);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 76, parseInt(d._handleNode.getStyle('left'),10) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 0);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 0, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 40, parseInt(d._handleNode.getStyle('left'),10) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', -93);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( -93, d.get('value') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 56, parseInt(d._handleNode.getStyle('left'),10) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff }// no comma *****************
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff/*
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff // This works in everything but IE9. I don't know why.
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff // compare to similar test in slider's testsuite.js
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "setValue(v) when hidden should still move the handle-user": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var d = this.dial;
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one('#testbed').setStyle('visibility','block');
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.render('#testbed');
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 40, parseInt(d._handleNode.getStyle('left'),10) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff d.set('value', 20);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 76, parseInt(d._handleNode.getStyle('left'),10) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one('#testbed').setStyle('visibility','');
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( 76, parseInt(d._handleNode.getStyle('left'),10) );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff } // no comma *****************
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff*/
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff}));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniffsuite.add( new Y.Test.Case({
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff name: "Attributes",
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff// _should: {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff// fail: {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff// // TODO This is a bug. invalid construction value should fallback
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff// // to specified attribute default
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff// "axis should only accept 'x', 'X', 'y', and 'Y'": true
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff// }
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff// },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff setUp: function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one('body').append('<span id="testbed"></span>');
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff tearDown: function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one('#testbed').remove(true);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test diameter": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var testbed = Y.one("#dial"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff ref = Y.one("#ref"),
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial;
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial = new Y.Dial({ diameter: 300 }).render( testbed );
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff Y.Assert.areEqual( (300), dial._ringNode.get('offsetWidth') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff/* I don't believe the diameter should be able to be changed after render
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial.set('diameter', 200);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( (200 + delta), bb.get('offsetWidth') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial.set('diameter', "-140px");
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( (200 + delta), bb.get('offsetWidth') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff ref.setStyle("width", "150px");
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial.set('diameter', '150');
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( (ref.get('offsetWidth') + delta), bb.get('offsetWidth') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff*/
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial.destroy();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff "test handleDiameter": function () {
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff var testbed = Y.one("#dial"),
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff ref = Y.one("#ref"),
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial, calcSize;
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff dial = new Y.Dial({handleDiameter: 0.53 }).render( testbed );
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff calcSize = dial.get('diameter') * dial.get('handleDiameter');
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff Y.Assert.areEqual( calcSize, dial._handleNode.get('offsetWidth') );
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff dial.destroy();
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff },
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff
899dbacf118d7ad4f637548d13251cc2dd0a1dc6Jeff Conniff // Would like to test markerDiameter
899dbacf118d7ad4f637548d13251cc2dd0a1dc6Jeff Conniff // but it reads as zero I believe because _markerNode is hidden until the handle is dragged.
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff "test centerButtonDiameter": function () {
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff var testbed = Y.one("#dial"),
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff ref = Y.one("#ref"),
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff dial, calcSize, bb;
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff dial = new Y.Dial({centerButtonDiameter: 0.89 }).render( testbed );
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff bb = testbed.get('firstChild');
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff calcSize = dial.get('diameter') * dial.get('centerButtonDiameter');
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff Y.Assert.areEqual( calcSize, dial._centerButtonNode.get('offsetWidth') );
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff dial.destroy();
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff },
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff "test handleDistance": function () {
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff var testbed = Y.one("#dial"),
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff ref = Y.one("#ref"),
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff dial, calcHandleTop, bb;
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff dial = new Y.Dial({handleDistance: 1 }).render( testbed );
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff bb = testbed.get('firstChild');
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff calcHandleTop = -(dial.get('handleDiameter') * dial.get('diameter')) / 2;
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff Y.Assert.areEqual( calcHandleTop, parseInt(dial._handleNode.getStyle('top'),10) );
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff dial.destroy();
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff },
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test increments and min max": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test min, max, resetDial, incrMinor, decrMinor, incrMajor, decrMajor": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one('#testbed').append('<div id="dial"></div>');
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var testbed = Y.one("#dial"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial;
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial = new Y.Dial().render( testbed );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial._setToMin();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual(dial.get('min'), dial.get('value'));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial._setToMax();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual(dial.get('max'), dial.get('value'));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial._resetDial();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual(dial._originalValue, dial.get('value'));
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial.set('value', 0);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial._incrMinor();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual(1, dial.get('value'));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial._decrMinor();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual(0, dial.get('value'));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial._incrMajor();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual(10, dial.get('value'));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial._decrMajor();
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual(0, dial.get('value'));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test max": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test value": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff }
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff}));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniffsuite.add( new Y.Test.Case({
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff name: "String Changes After Render",
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff setUp: function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one('body').append('<span id="testbed"></span>');
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff tearDown: function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one('#testbed').remove(true);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test changing strings after rendering dial": function() {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var testbed = Y.one("#testbed"),
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff labelStr = 'My new label',
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff tooltipStr = 'My new tooltip';
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial = new Y.Dial().render("#testbed");
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial._setLabelString(labelStr);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial._setTooltipString(tooltipStr);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( labelStr, Y.one('.' + dial._classes[0].CSS_CLASSES.labelString).get('innerHTML') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff if(Y.UA.ie && Y.UA.ie < 9){
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff Y.Assert.areEqual( tooltipStr, Y.one('.' + dial._classes[0].CSS_CLASSES.handleVml).get('title') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff }else{
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff Y.Assert.areEqual( tooltipStr, Y.one('.' + dial._classes[0].CSS_CLASSES.handle).get('title') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff }
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff }
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff}));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniffsuite.add( new Y.Test.Case({
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff name: "International Strings",
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff setUp: function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one('body').append('<span id="testbed"></span>');
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff tearDown: function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.one('#testbed').remove(true);
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test international strings from lang files": function() {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff var testbed = Y.one("#testbed");
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Intl.add ( 'dial' , 'xs' , {label: 'My label lang test', resetStr: 'Reset lang test', tooltipHandle: 'Drag to set value lang test'} )
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Intl.setLang('dial', 'xs');
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff //alert(Y.Intl.setLang('dial', 'xs'));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff dial = new Y.Dial().render("#testbed");
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff Y.Assert.areEqual( Y.Intl.get('dial').label, Y.one('.' + dial._classes[0].CSS_CLASSES.labelString).get('innerHTML') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff if(Y.UA.ie && Y.UA.ie < 9){
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff Y.Assert.areEqual( Y.Intl.get('dial').tooltipHandle, Y.one('.' + dial._classes[0].CSS_CLASSES.handleVml).get('title') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff }else{
7dde237706b1869cfe33ea134cb83751ecdb06deJeff Conniff Y.Assert.areEqual( Y.Intl.get('dial').tooltipHandle, Y.one('.' + dial._classes[0].CSS_CLASSES.handle).get('title') );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff }
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff }
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff}));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
6bc576b441394b64944b925e027ba91d0cc92151Jeff Conniffsuite.add( new Y.Test.Case({
6bc576b441394b64944b925e027ba91d0cc92151Jeff Conniff
6bc576b441394b64944b925e027ba91d0cc92151Jeff Conniff name: "Change Value by mousedown",
6bc576b441394b64944b925e027ba91d0cc92151Jeff Conniff
6bc576b441394b64944b925e027ba91d0cc92151Jeff Conniff setUp: function () {
6bc576b441394b64944b925e027ba91d0cc92151Jeff Conniff Y.one('body').append('<span id="testbed"></span>');
6bc576b441394b64944b925e027ba91d0cc92151Jeff Conniff },
6bc576b441394b64944b925e027ba91d0cc92151Jeff Conniff
6bc576b441394b64944b925e027ba91d0cc92151Jeff Conniff tearDown: function () {
6bc576b441394b64944b925e027ba91d0cc92151Jeff Conniff Y.one('#testbed').remove(true);
6bc576b441394b64944b925e027ba91d0cc92151Jeff Conniff },
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // Places a red marker where the event (mousdown, drag:drag, drag:end) is going to take place.
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // In order to see it, you need to put a breakpoint on the ring.simulate line just after this is called
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // Turn the global enableVis to false before check in
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff visualInspection: function (x,y,dialObj){
ec52f1c294c711aa700a346f74a0726ccc66ad62Jeff Conniff var enableVis = false; // Global enable. You'll need to put breakpoints in code to see it.
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff if(enableVis){
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff var eventXYMarker,
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff scrollT = Y.one('document').get('scrollTop'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff scrollL = Y.one('document').get('scrollLeft');
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff if(Y.one('.mDMarker')){
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventXYMarker = Y.one('.mDMarker');
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff }else{
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventXYMarker = Y.Node.create('<div class="mDMarker" style="position:absolute; width:3px; height:3px; background-color:#f00;"></div>')
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.one('.yui3-dial-ring').append(eventXYMarker);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff }
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff //eventXYMarker.setXY([(dialObj._dialCenterX + dialObj._ringNode.getX() + x - scrollL), (dialObj._dialCenterY + dialObj._ringNode.getY() + y - scrollT)]);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventXYMarker.setStyles({'left':dial._dialCenterX + x, 'top':dial._dialCenterY + y});
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff }
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff },
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff "test md00 centerButton mousedown": function() { //string must start with "test
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff var testbed = Y.one("#dial"),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff ref = Y.one("#ref"),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff dial = new Y.Dial({handleDistance: 1, value: 90, min: 0, max: 100 }).render( testbed ),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff ring = Y.one('.yui3-dial-ring'),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff scrollT = Y.one('document').get('scrollTop'),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff scrollL = Y.one('document').get('scrollLeft'),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventX,
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventY,
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff getXYProps = function(){ // this returns the properties, the object literal needed for .simulate
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff return { clientX: (dial._dialCenterX + eventX - scrollL), clientY: (dial._dialCenterY + eventY - scrollT)};
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff };
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff // listeners that bind an event *unused* by Dial to the intended method
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff //Y.on('mouseover', Y.bind(dial._handleDrag, dial), dial._ringNode); // make mouseover do what a real drag:drag would do
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff //Y.on('mouseout', Y.bind(dial._handleDragEnd, dial), dial._ringNode); // make mouseover do what a real drag:end would do
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff //Y.on('gesturemovestart', Y.bind(this._resetDial, this), this._centerButtonNode);
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mousedown', Y.bind(dial._resetDial, dial), dial._centerButtonNode);
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff dial.set('value', 35);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 12; //Set the X for event simulation. This is offset from dial._dialCenterX
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventY = -12; //Set the Y for event simulation.
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff dial._centerButtonNode.simulate("mousedown", getXYProps());
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.Assert.areEqual( dial._originalValue, dial.get('value'));
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff },
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff "test md01 min:0 max:100 -- drag past max/max, then click 11 or 1 o'clock.": function() { //string must start with "test
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff var testbed = Y.one("#dial"),
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff ref = Y.one("#ref"),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial = new Y.Dial({handleDistance: 1, value: 90, min: 0, max: 100 }).render( testbed ),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring = Y.one('.yui3-dial-ring'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff scrollT = Y.one('document').get('scrollTop'),
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff scrollL = Y.one('document').get('scrollLeft'),
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX, // the desired X of the simulated event relative to the center of the ringNode
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY,
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff getXYProps = function(){ // this returns the properties, the object literal needed for .simulate mousedown only
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff var myX,myY;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff if(Y.UA.ios){ // clientX and clientY in iOS includes the scrollLeft and scrollTop
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }else{ // clientX and clientY in non-iOS do not include the scrollLeft and scrollTop. They are relative to the viewport
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX - scrollL); // but doesn't work zoomed if there's a breakpoint for some reason.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY - scrollT);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff return {clientX: myX, clientY: myY};
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff },
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle = function(){
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.setStyles({'left':(dial._dialCenterX + eventX), 'top':dial._dialCenterY + eventY})
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff };
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // listeners that bind an event *unused* by Dial to the intended method
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mouseover', Y.bind(dial._handleDrag, dial), dial._handleNode); // make mouseover do what a real drag:drag would do
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mouseout', Y.bind(dial._handleDragEnd, dial), dial._handleNode); // make mouseover do what a real drag:end would do
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mousedown', Y.bind(dial._handleMousedown, dial), dial._ringNode);
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff // test needs this for iOS testing.
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff // reason: Dial.js uses Y.on('gesturemovestart', Y.bind(this._handleMousedown, this), this._ringNode);
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff // it does because mousedown doesn't work as well as gesturemovestart on touch devices
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff // simulate doesn't support gesturemovestart
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff // so in testsuite, I use mousedown, but bind it to the same ringNode
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff // and the same handler, dial._handleMousedown
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 22; //Set the X for event simulation. This is offset from dial._dialCenterX
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = -30; //Set the Y for event simulation.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle();
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseover"); // bound to dial._handleDrag
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseout"); // bound to dial._handleDragEnd
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 100, dial.get('value'), 'drag CW past max:100');
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -22; //Set the X for event simulation. This is offset from dial._dialCenterX
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 90, dial.get('value'), 'then click 11 0clock');
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial.set('value', 10);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -22; //Set the X for event simulation. This is offset from dial._dialCenterX
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle();
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseover");
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseout");
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 0, dial.get('value'), 'drag CCW past min:0');
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 22; //Set the X for event simulation. This is offset from dial._dialCenterX
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 10, dial.get('value'), 'then click 1 0clock');
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial.set('value', 10);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -22; //Set the X for event simulation. This is offset from dial._dialCenterX
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle();
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseover");
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseout");
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 0, dial.get('value'), 'drag CCW past min:0');
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -22; //Set the X for event simulation. This is offset from dial._dialCenterX
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 90, dial.get('value'), 'then click 11 o`clock');
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff dial.destroy();
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff },
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff "test md02 mousedown Range = one revolution. Not at North": function() { //string must start with "test
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff var testbed = Y.one("#dial"),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff ref = Y.one("#ref"),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff dial = new Y.Dial({handleDistance: 1, value: 70, min: 50, max: 150 }).render( testbed ),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff ring = Y.one('.yui3-dial-ring'),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff scrollT = Y.one('document').get('scrollTop'),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff scrollL = Y.one('document').get('scrollLeft'),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventX,
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventY,
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff getXYProps = function(){ // this returns the properties, the object literal needed for .simulate mousedown only
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff var myX,myY;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff if(Y.UA.ios){ // clientX and clientY in iOS includes the scrollLeft and scrollTop
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }else{ // clientX and clientY in non-iOS do not include the scrollLeft and scrollTop. They are relative to the viewport
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX - scrollL); // but doesn't work zoomed if there's a breakpoint for some reason.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY - scrollT);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff return {clientX: myX, clientY: myY};
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff },
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle = function(){
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.setStyles({'left':(dial._dialCenterX + eventX), 'top':dial._dialCenterY + eventY})
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff };
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mousedown', Y.bind(dial._handleMousedown, dial), dial._ringNode); // needed for testsuite to bypass gesturemove
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 22; //Set the X for click simulation. This is offset from dial._dialCenterX
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = -30; //Set the Y for click simulation. This is offset from dial._dialCenterY
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff this.visualInspection(eventX,eventY,dial);
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff ring.simulate("mousedown", getXYProps());
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.Assert.areEqual( 110, dial.get('value'));
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff dial.destroy();
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff },
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff "test md03 min:0 max:100 -- mousedown on and off North. Range = one revolution": function() { //string must start with "test
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff var testbed = Y.one("#dial"),
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff ref = Y.one("#ref"),
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial = new Y.Dial({handleDistance: 1, value: 0, min: 0, max: 10, stepsPerRevolution:10 }).render( testbed ),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring = Y.one('.yui3-dial-ring'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff scrollT = Y.one('document').get('scrollTop'),
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff scrollL = Y.one('document').get('scrollLeft'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX,
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY,
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff getXYProps = function(){ // this returns the properties, the object literal needed for .simulate mousedown only
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff var myX,myY;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff if(Y.UA.ios){ // clientX and clientY in iOS includes the scrollLeft and scrollTop
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }else{ // clientX and clientY in non-iOS do not include the scrollLeft and scrollTop. They are relative to the viewport
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX - scrollL); // but doesn't work zoomed if there's a breakpoint for some reason.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY - scrollT);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff return {clientX: myX, clientY: myY};
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff },
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle = function(){
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.setStyles({'left':(dial._dialCenterX + eventX), 'top':dial._dialCenterY + eventY})
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff };
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // listeners that bind an event *unused* by Dial to the intended method
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mousedown', Y.bind(dial._handleMousedown, dial), dial._ringNode); // needed for testsuite to bypass gesturemove
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -20; //Set the X for click simulation. This is offset from dial._dialCenterX
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = 2; //Set the Y for click simulation. This is offset from dial._dialCenterY
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff Y.Assert.areEqual( 7, dial.get('value'));
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 1; //Set the X for click simulation. This is offset from dial._dialCenterX
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = -30; //Set the Y for click simulation. This is offset from dial._dialCenterY
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff Y.Assert.areEqual( 0, dial.get('value'));
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 0;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = 30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff Y.Assert.areEqual( 5, dial.get('value'));
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 2;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff Y.Assert.areEqual( 0, dial.get('value'));
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = 0;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff Y.Assert.areEqual( 10, dial.get('value'));
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff dial.destroy();
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff },
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff "test md04 min: 0, max: 200 -- drag past max/max, then click 11 or 1 o'clock.": function() { //string must start with "test
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff var testbed = Y.one("#dial"),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial = new Y.Dial({handleDistance: 1, value: 190, min: 0, max: 200 }).render( testbed ),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring = Y.one('.yui3-dial-ring'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff scrollT = Y.one('document').get('scrollTop'),
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff scrollL = Y.one('document').get('scrollLeft'),
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX,
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY,
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff getXYProps = function(){ // this returns the properties, the object literal needed for .simulate mousedown only
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff var myX,myY;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff if(Y.UA.ios){ // clientX and clientY in iOS includes the scrollLeft and scrollTop
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }else{ // clientX and clientY in non-iOS do not include the scrollLeft and scrollTop. They are relative to the viewport
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX - scrollL); // but doesn't work zoomed if there's a breakpoint for some reason.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY - scrollT);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff return {clientX: myX, clientY: myY};
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff },
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle = function(){
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.setStyles({'left':(dial._dialCenterX + eventX), 'top':dial._dialCenterY + eventY})
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff };
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // listeners that bind an event *unused* by Dial to the intended method
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mouseover', Y.bind(dial._handleDrag, dial), dial._handleNode); // make mouseover do what a real drag:drag would do
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mouseout', Y.bind(dial._handleDragEnd, dial), dial._handleNode); // make mouseover do what a real drag:end would do
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mousedown', Y.bind(dial._handleMousedown, dial), dial._ringNode); // needed for testsuite to bypass gesturemove
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 22; //Set the X for event simulation. This is offset from dial._dialCenterX
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30; //Set the Y for event simulation.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle();
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseover");
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseout");
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 200, dial.get('value'), 'drag CW past max:200');
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -22; //Set the X for event simulation. This is offset from dial._dialCenterX
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 190, dial.get('value'), 'then click 11 0clock');
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial.set('value', 10); ////////////////////////////////////////////////////////
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -22; //Set the X for event simulation. This is offset from dial._dialCenterX
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle();
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseover");
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseout");
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 0, dial.get('value'), 'drag CCW past min:0');
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 22; //Set the X for event simulation. This is offset from dial._dialCenterX
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 10, dial.get('value'), 'then click 1 0clock');
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial.set('value', 10); /////////////////////////////////////////////
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -22; //Set the X for event simulation. This is offset from dial._dialCenterX
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle();
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseover");
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseout");
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 0, dial.get('value'), 'drag CCW past min:0');
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -22; //Set the X for event simulation. This is offset from dial._dialCenterX
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 0, dial.get('value'), 'then click 11 o`clock');
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 22; //Set the X for event simulation. This is offset from dial._dialCenterX
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff eventY = 31; // weird that 30 results in dial.get('value') == 0
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 40, dial.get('value'), 'then click 5 o`clock');
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff dial.destroy();
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff },
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff "test md05 min: 0, max: 200 -- click through two revolutions CW": function() { //string must start with "test
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff var testbed = Y.one("#dial"),
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff ref = Y.one("#ref"),
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial = new Y.Dial({handleDistance: 1, value: 8, min: 0, max: 20, stepsPerRevolution:10 }).render( testbed ),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring = Y.one('.yui3-dial-ring'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff scrollT = Y.one('document').get('scrollTop'),
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff scrollL = Y.one('document').get('scrollLeft'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX,
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY,
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff getXYProps = function(){ // this returns the properties, the object literal needed for .simulate mousedown only
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff var myX,myY;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff if(Y.UA.ios){ // clientX and clientY in iOS includes the scrollLeft and scrollTop
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }else{ // clientX and clientY in non-iOS do not include the scrollLeft and scrollTop. They are relative to the viewport
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX - scrollL); // but doesn't work zoomed if there's a breakpoint for some reason.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY - scrollT);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff return {clientX: myX, clientY: myY};
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff },
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle = function(){
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.setStyles({'left':(dial._dialCenterX + eventX), 'top':dial._dialCenterY + eventY})
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff };
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // listeners that bind an event *unused* by Dial to the intended method
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mousedown', Y.bind(dial._handleMousedown, dial), dial._ringNode); // needed for testsuite to bypass gesturemove
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -15; //Set the X for click simulation. This is offset from dial._dialCenterX
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = -30; //Set the Y for click simulation. This is offset from dial._dialCenterY
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff Y.Assert.areEqual( 9, dial.get('value'), '@ 11 o\'clock');
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 0; //Set the X for click simulation. This is offset from dial._dialCenterX
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = -30; //Set the Y for click simulation. This is offset from dial._dialCenterY
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff Y.Assert.areEqual( 10, dial.get('value'));
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = 15;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff Y.Assert.areEqual( 11, dial.get('value'));
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 0;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = 30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff Y.Assert.areEqual( 15, dial.get('value'));
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -30;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = 0;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff this.visualInspection(eventX,eventY,dial);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff ring.simulate("mousedown", getXYProps());
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff Y.Assert.areEqual( 18, dial.get('value'));
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 0;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff Y.Assert.areEqual( 20, dial.get('value'));
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 10;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff Y.Assert.areEqual( 20, dial.get('value'), '@ beyond max of 200');
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff dial.destroy();
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff },
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff "test md06 min: -35, max: 35 -- drag past max/max, then click in/out of range also #2530597." : function() { //string must start with "test
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff var testbed = Y.one("#dial"),
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff ref = Y.one("#ref"),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial = new Y.Dial({handleDistance: 1, value: -25, min: -35, max: 35 }).render( testbed ),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring = Y.one('.yui3-dial-ring'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff scrollT = Y.one('document').get('scrollTop'),
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff scrollL = Y.one('document').get('scrollLeft'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX,
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY,
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff getXYProps = function(){ // this returns the properties, the object literal needed for .simulate mousedown only
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff var myX,myY;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff if(Y.UA.ios){ // clientX and clientY in iOS includes the scrollLeft and scrollTop
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }else{ // clientX and clientY in non-iOS do not include the scrollLeft and scrollTop. They are relative to the viewport
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX - scrollL); // but doesn't work zoomed if there's a breakpoint for some reason.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY - scrollT);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff return {clientX: myX, clientY: myY};
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff },
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle = function(){
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.setStyles({'left':(dial._dialCenterX + eventX), 'top':dial._dialCenterY + eventY})
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff };
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // listeners that bind an event *unused* by Dial to the intended method
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mouseover', Y.bind(dial._handleDrag, dial), dial._handleNode); // make mouseover do what a real drag:drag would do
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mouseout', Y.bind(dial._handleDragEnd, dial), dial._handleNode); // make mouseover do what a real drag:end would do
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mousedown', Y.bind(dial._handleMousedown, dial), dial._ringNode); // needed for testsuite to bypass gesturemove
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -22; //Set the X for click simulation. This is offset from dial._dialCenterX
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = 30; //Set the Y for click simulation. This is offset from dial._dialCenterY
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle();
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseover");
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseout");
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( -35, dial.get('value'), 'drag CCW past min:-35');
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = 30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = 0;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 25, dial.get('value'), 'then click 3 o`clock');
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = -22;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = 30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( -35, dial.get('value'), 'then click 7 o`clock. out of range, min');
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = 22;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = 30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 35, dial.get('value'), 'then click 5 o`clock. out of range, max');
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff //#2530597 issues with min at zero and other zero related problem
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // originally this bug was:
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // drag to get angle just slightly > 0 but value is Zero
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // then click to left side of dial
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // Handle snapped to max on the right side of the dial
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial.set('value', 10); /////////////////////////////////////////////
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial.set('decimalPlaces', 2);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = -8; // -8 results in value 0.35 ... -12. results in -0.35
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = -100; //Set the Y for click simulation. This is offset from dial._dialCenterY
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle();
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseover");
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseout");
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff// Y.Assert.areEqual( 0, dial.get('value'), 'drag to get value 0 but angle slightly > 0'); // check dial._prevAng
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial.set('decimalPlaces', 0); // round to integer for Y.assert
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = 0;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( -25, dial.get('value'), 'then click 9 o`clock.'); //#2530597
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff //#2530597 issues with min at zero and other zero related problem
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // Try the opposite
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial.set('value', -10); /////////////////////////////////////////////
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial.set('decimalPlaces', 2);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = -12; // -8 results in value 0.35 ... -12. results in -0.35
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = -100; //Set the Y for click simulation. This is offset from dial._dialCenterY
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle();
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseover");
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseout");
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff// Y.Assert.areEqual( 0, dial.get('value'), 'drag to get value 0 but angle slightly < 0'); // check dial._prevAng
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial.set('decimalPlaces', 0); // round to integer for Y.assert
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = 0;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( -25, dial.get('value'), 'then click 9 o`clock.'); //#2530597
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial.set('value', 0); /////////////////////////////////////////////
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = 0;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( -25, dial.get('value'), 'then click 9 o`clock.'); //#2530597
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial.set('value', 0); /////////////////////////////////////////////
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = 30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = 0;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 25, dial.get('value'), 'then click 3 o`clock.'); //#2530597
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial.destroy();
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff },
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff "test md07 min: 10, max: 25 -- mousedown text min max and opposite mid angle ": function() { //string must start with "test
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff var testbed = Y.one("#dial"),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ref = Y.one("#ref"),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial = new Y.Dial({handleDistance: 1, value: 12, min: 10, max: 25 }).render( testbed ),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring = Y.one('.yui3-dial-ring'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff scrollT = Y.one('document').get('scrollTop'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff scrollL = Y.one('document').get('scrollLeft'),
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX,
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY,
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff getXYProps = function(){ // this returns the properties, the object literal needed for .simulate mousedown only
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff var myX,myY;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff if(Y.UA.ios){ // clientX and clientY in iOS includes the scrollLeft and scrollTop
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }else{ // clientX and clientY in non-iOS do not include the scrollLeft and scrollTop. They are relative to the viewport
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX - scrollL); // but doesn't work zoomed if there's a breakpoint for some reason.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY - scrollT);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff return {clientX: myX, clientY: myY};
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff },
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle = function(){
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.setStyles({'left':(dial._dialCenterX + eventX), 'top':dial._dialCenterY + eventY})
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff };
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // listeners that bind an event *unused* by Dial to the intended method
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mousedown', Y.bind(dial._handleMousedown, dial), dial._ringNode); // needed for testsuite to bypass gesturemove
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -15; //Set the X for click simulation. This is offset from dial._dialCenterX
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = -30; //Set the Y for click simulation. This is offset from dial._dialCenterY
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 10, dial.get('value'));
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 28; //Set the X for click simulation. This is offset from dial._dialCenterX
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = -30; //Set the Y for click simulation. This is offset from dial._dialCenterY
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 12, dial.get('value'));
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = 25;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = 5;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 25, dial.get('value'));
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = -5;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 10, dial.get('value'));
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = 3;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = 30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 25, dial.get('value'));
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -3;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 10, dial.get('value'));
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = 5;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 10, dial.get('value'));
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff dial.destroy();
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff },
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff "test md08 min: 75, max: 90 -- mousedown test min max and opposite mid angle ": function() { //string must start with "test
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff var testbed = Y.one("#dial"),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff ref = Y.one("#ref"),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff dial = new Y.Dial({handleDistance: 1, value: 80, min: 75, max: 90 }).render( testbed ),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff ring = Y.one('.yui3-dial-ring'),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff scrollT = Y.one('document').get('scrollTop'),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff scrollL = Y.one('document').get('scrollLeft'),
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventX,
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventY,
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff getXYProps = function(){ // this returns the properties, the object literal needed for .simulate mousedown only
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff var myX,myY;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff if(Y.UA.ios){ // clientX and clientY in iOS includes the scrollLeft and scrollTop
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }else{ // clientX and clientY in non-iOS do not include the scrollLeft and scrollTop. They are relative to the viewport
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX - scrollL); // but doesn't work zoomed if there's a breakpoint for some reason.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY - scrollT);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff return {clientX: myX, clientY: myY};
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff },
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle = function(){
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.setStyles({'left':(dial._dialCenterX + eventX), 'top':dial._dialCenterY + eventY})
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff };
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff // listeners that bind an event *unused* by Dial to the intended method
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mousedown', Y.bind(dial._handleMousedown, dial), dial._ringNode); // needed for testsuite to bypass gesturemove
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 15; //Set the X for click simulation. This is offset from dial._dialCenterX
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = -30; //Set the Y for click simulation. This is offset from dial._dialCenterY
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff this.visualInspection(eventX,eventY,dial);
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff ring.simulate("mousedown", getXYProps());
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.Assert.areEqual( 90, dial.get('value'));
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -28; //Set the X for click simulation. This is offset from dial._dialCenterX
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = -30; //Set the Y for click simulation. This is offset from dial._dialCenterY
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff this.visualInspection(eventX,eventY,dial);
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff ring.simulate("mousedown", getXYProps());
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.Assert.areEqual( 88, dial.get('value'));
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventX = 25;
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventY = 5;
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff this.visualInspection(eventX,eventY,dial);
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff ring.simulate("mousedown", getXYProps());
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.Assert.areEqual( 90, dial.get('value'));
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventX = -5;
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventY = 30;
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff this.visualInspection(eventX,eventY,dial);
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff ring.simulate("mousedown", getXYProps());
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.Assert.areEqual( 75, dial.get('value'));
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventX = 28;
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventY = 8;
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff this.visualInspection(eventX,eventY,dial);
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff ring.simulate("mousedown", getXYProps());
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.Assert.areEqual( 90, dial.get('value'));
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventX = -30;
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventY = 3;
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff this.visualInspection(eventX,eventY,dial);
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff ring.simulate("mousedown", getXYProps());
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.Assert.areEqual(75, dial.get('value'));
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventX = -5;
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff eventY = -30;
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff this.visualInspection(eventX,eventY,dial);
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff ring.simulate("mousedown", getXYProps());
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff Y.Assert.areEqual( 90, dial.get('value'));
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff dial.destroy();
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff },
eb3266446a33b2f72f6f18bfa24c33b004da16abJeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff "test md09 min: 5, max: 80 -- mousedown text min max and opposite mid angle": function() { //string must start with "test
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff var testbed = Y.one("#dial"),
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff ref = Y.one("#ref"),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial = new Y.Dial({handleDistance: 1, value: 60, min: 5, max: 80 }).render( testbed ),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring = Y.one('.yui3-dial-ring'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff scrollT = Y.one('document').get('scrollTop'),
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff scrollL = Y.one('document').get('scrollLeft'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX,
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY,
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff getXYProps = function(){ // this returns the properties, the object literal needed for .simulate mousedown only
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff var myX,myY;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff if(Y.UA.ios){ // clientX and clientY in iOS includes the scrollLeft and scrollTop
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }else{ // clientX and clientY in non-iOS do not include the scrollLeft and scrollTop. They are relative to the viewport
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX - scrollL); // but doesn't work zoomed if there's a breakpoint for some reason.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY - scrollT);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff return {clientX: myX, clientY: myY};
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff },
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle = function(){
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.setStyles({'left':(dial._dialCenterX + eventX), 'top':dial._dialCenterY + eventY})
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff };
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // listeners that bind an event *unused* by Dial to the intended method
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mousedown', Y.bind(dial._handleMousedown, dial), dial._ringNode); // needed for testsuite to bypass gesturemove
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -5; //Set the X for click simulation. This is offset from dial._dialCenterX
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = -30; //Set the Y for click simulation. This is offset from dial._dialCenterY
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff Y.Assert.areEqual( 5, dial.get('value'));
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -30; //Set the X for click simulation. This is offset from dial._dialCenterX
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = 0; //Set the Y for click simulation. This is offset from dial._dialCenterY
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff Y.Assert.areEqual( 75, dial.get('value'));
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = 15;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff Y.Assert.areEqual( 7, dial.get('value'));
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = 2;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff Y.Assert.areEqual( 5, dial.get('value'));
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = -2;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff Y.Assert.areEqual( 5, dial.get('value'));
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -20;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff Y.Assert.areEqual( 80, dial.get('value'));
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff
2ea17401d5e587b3d45104f547c6793697202cefJeff Conniff dial.destroy();
2ea17401d5e587b3d45104f547c6793697202cefJeff Conniff },
2ea17401d5e587b3d45104f547c6793697202cefJeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff "test md10 drag CW past max, then click 11 O'clock -- min: 0, max: 100": function() { //string must start with "test
7a44817b47c1678ddaf633b1dbd535bc8a96ea75Jeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
7a44817b47c1678ddaf633b1dbd535bc8a96ea75Jeff Conniff var testbed = Y.one("#dial"),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ref = Y.one("#ref"),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial = new Y.Dial({handleDistance: 1, value: 90, min: 0, max: 100 }).render( testbed ),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring = Y.one('.yui3-dial-ring'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff scrollT = Y.one('document').get('scrollTop'),
7a44817b47c1678ddaf633b1dbd535bc8a96ea75Jeff Conniff scrollL = Y.one('document').get('scrollLeft'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX,
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY,
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff getXYProps = function(){ // this returns the properties, the object literal needed for .simulate mousedown only
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff var myX,myY;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff if(Y.UA.ios){ // clientX and clientY in iOS includes the scrollLeft and scrollTop
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }else{ // clientX and clientY in non-iOS do not include the scrollLeft and scrollTop. They are relative to the viewport
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX - scrollL); // but doesn't work zoomed if there's a breakpoint for some reason.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY - scrollT);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff return {clientX: myX, clientY: myY};
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff },
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle = function(){
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.setStyles({'left':(dial._dialCenterX + eventX), 'top':dial._dialCenterY + eventY})
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff };
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // listeners that bind an event *unused* by Dial to the intended method
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mouseover', Y.bind(dial._handleDrag, dial), dial._handleNode); // make mouseover do what a real drag:drag would do
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mouseout', Y.bind(dial._handleDragEnd, dial), dial._handleNode); // make mouseover do what a real drag:end would do
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mousedown', Y.bind(dial._handleMousedown, dial), dial._ringNode); // needed for testsuite to bypass gesturemove
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 22; //Set the X for event simulation. This is offset from dial._dialCenterX
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30; //Set the Y for event simulation.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle();
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff this.visualInspection(eventX,eventY,dial);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseover");
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseout");
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -22; //Set the X for event simulation. This is offset from dial._dialCenterX
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30; //Set the Y
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 90, dial.get('value'), 'past min CCW, then click 11 0clock');
7a44817b47c1678ddaf633b1dbd535bc8a96ea75Jeff Conniff
7a44817b47c1678ddaf633b1dbd535bc8a96ea75Jeff Conniff dial.destroy();
7a44817b47c1678ddaf633b1dbd535bc8a96ea75Jeff Conniff },
7a44817b47c1678ddaf633b1dbd535bc8a96ea75Jeff Conniff
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff "test md11 drag CCW past min, then click 1 O'clock -- min: 0, max: 100": function() { //string must start with "test
7a44817b47c1678ddaf633b1dbd535bc8a96ea75Jeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
7a44817b47c1678ddaf633b1dbd535bc8a96ea75Jeff Conniff var testbed = Y.one("#dial"),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ref = Y.one("#ref"),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff dial = new Y.Dial({handleDistance: 1, value: 10, min: 0, max: 100 }).render( testbed ),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring = Y.one('.yui3-dial-ring'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff scrollT = Y.one('document').get('scrollTop'),
7a44817b47c1678ddaf633b1dbd535bc8a96ea75Jeff Conniff scrollL = Y.one('document').get('scrollLeft'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX,
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY,
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff getXYProps = function(){ // this returns the properties, the object literal needed for .simulate mousedown only
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff var myX,myY;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff if(Y.UA.ios){ // clientX and clientY in iOS includes the scrollLeft and scrollTop
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }else{ // clientX and clientY in non-iOS do not include the scrollLeft and scrollTop. They are relative to the viewport
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX - scrollL); // but doesn't work zoomed if there's a breakpoint for some reason.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY - scrollT);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff return {clientX: myX, clientY: myY};
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff },
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle = function(){
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.setStyles({'left':(dial._dialCenterX + eventX), 'top':dial._dialCenterY + eventY})
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff };
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // listeners that bind an event *unused* by Dial to the intended method
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mouseover', Y.bind(dial._handleDrag, dial), dial._handleNode); // make mouseover do what a real drag:drag would do
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mouseout', Y.bind(dial._handleDragEnd, dial), dial._handleNode); // make mouseover do what a real drag:end would do
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mousedown', Y.bind(dial._handleMousedown, dial), dial._ringNode); // needed for testsuite to bypass gesturemove
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -22; //Set the X for event simulation. This is offset from dial._dialCenterX
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle();
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff this.visualInspection(eventX,eventY,dial);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseover");
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseout");
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 22; //Set the X for event simulation. This is offset from dial._dialCenterX
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY = -30;
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring.simulate("mousedown", getXYProps());
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff Y.Assert.areEqual( 10, dial.get('value'), 'past min CCW, then click 11 0clock');
7a44817b47c1678ddaf633b1dbd535bc8a96ea75Jeff Conniff dial.destroy();
7a44817b47c1678ddaf633b1dbd535bc8a96ea75Jeff Conniff },
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff "test md12 instantiate dial, increase margin, then click ring": function() { //string must start with "test
2ea17401d5e587b3d45104f547c6793697202cefJeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
2ea17401d5e587b3d45104f547c6793697202cefJeff Conniff var testbed = Y.one("#dial"),
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff ref = Y.one("#ref"),
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial = new Y.Dial({handleDistance: 1, value: 90, min: 0, max: 100 }).render( testbed ),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff ring = Y.one('.yui3-dial-ring'),
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff scrollT = Y.one('document').get('scrollTop'),
2ea17401d5e587b3d45104f547c6793697202cefJeff Conniff scrollL = Y.one('document').get('scrollLeft'),
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventX,
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff eventY,
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff getXYProps = function(){ // this returns the properties, the object literal needed for .simulate mousedown only
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff var myX,myY;
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff if(Y.UA.ios){ // clientX and clientY in iOS includes the scrollLeft and scrollTop
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }else{ // clientX and clientY in non-iOS do not include the scrollLeft and scrollTop. They are relative to the viewport
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX - scrollL); // but doesn't work zoomed if there's a breakpoint for some reason.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY - scrollT);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff return {clientX: myX, clientY: myY};
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff },
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle = function(){
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.setStyles({'left':(dial._dialCenterX + eventX), 'top':dial._dialCenterY + eventY})
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff };
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff // listeners that bind an event *unused* by Dial to the intended method
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mouseover', Y.bind(dial._handleDrag, dial), dial._handleNode); // make mouseover do what a real drag:drag would do
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mouseout', Y.bind(dial._handleDragEnd, dial), dial._handleNode); // make mouseover do what a real drag:end would do
0bf238ecbebdebe893866b5a730852e19a4e2624Jeff Conniff Y.on('mousedown', Y.bind(dial._handleMousedown, dial), dial._ringNode); // needed for testsuite to bypass gesturemove
2ea17401d5e587b3d45104f547c6793697202cefJeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff Y.one('#testbed').setStyle('margin', '3em');
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = 22; //Set the X for event simulation. This is offset from dial._dialCenterX
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = -30; //Set the Y for event simulation.
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff positionHandle();
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff this.visualInspection(eventX,eventY,dial);
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseover");
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff dial._handleNode.simulate("mouseout");
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
6c299ce58a8804eadd3d34ea217c3def48949662Jeff Conniff
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventX = -22; //Set the X for event simulation. This is offset from dial._dialCenterX
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff eventY = -30; //Set the Y
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff ring.simulate("mousedown", getXYProps());
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff Y.Assert.areEqual( 90, dial.get('value'), 'past min CCW, then click 11 0clock');
2ea17401d5e587b3d45104f547c6793697202cefJeff Conniff
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff dial.destroy();
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff },
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff "test md13 go past max more than maxTimesWrapped. ratchet to maxTimesWrapped": function() { //string must start with "test
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff var testbed = Y.one("#dial"),
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff ref = Y.one("#ref"),
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff dial = new Y.Dial({handleDistance: 1, value: 90, min: 1, max: 300 }).render( testbed ),
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff ring = Y.one('.yui3-dial-ring'),
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff scrollT = Y.one('document').get('scrollTop'),
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff scrollL = Y.one('document').get('scrollLeft'),
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff eventX,
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff eventY,
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff getXYProps = function(){ // this returns the properties, the object literal needed for .simulate mousedown only
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff var myX,myY;
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff if(Y.UA.ios){ // clientX and clientY in iOS includes the scrollLeft and scrollTop
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX);
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY);
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff }else{ // clientX and clientY in non-iOS do not include the scrollLeft and scrollTop. They are relative to the viewport
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff myX = (dial._ringNode.getX() + dial._dialCenterX + eventX - scrollL); // but doesn't work zoomed if there's a breakpoint for some reason.
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff myY = (dial._ringNode.getY() + dial._dialCenterY + eventY - scrollT);
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff }
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff return {clientX: myX, clientY: myY};
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff },
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff positionHandle = function(){
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff dial._handleNode.setStyles({'left':(dial._dialCenterX + eventX), 'top':dial._dialCenterY + eventY})
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff };
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff // listeners that bind an event *unused* by Dial to the intended method
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff Y.on('mouseover', Y.bind(dial._handleDrag, dial), dial._handleNode); // make mouseover do what a real drag:drag would do
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff Y.on('mouseout', Y.bind(dial._handleDragEnd, dial), dial._handleNode); // make mouseover do what a real drag:end would do
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff Y.on('mousedown', Y.bind(dial._handleMousedown, dial), dial._ringNode); // needed for testsuite to bypass gesturemove
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff dial._timesWrapped = dial._maxTimesWrapped; // set it to maxwrapped, then wrap it again
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff eventX = 30; //Set the X for event simulation. This is offset from dial._dialCenterX
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff eventY = 0; //Set the Y for event simulation.
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff positionHandle();
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff this.visualInspection(eventX,eventY,dial);
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff dial._handleNode.simulate("mouseover");
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff dial._handleNode.simulate("mouseout");
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff Y.Assert.areEqual( dial._maxTimesWrapped - 1, dial._timesWrapped, 'ratchet past maxTimesWrapped. stays at maxTimesWrapped -1');
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff dial.set('value', 10);
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff dial._timesWrapped = -10; // set it to CCW wrapped many times, then wrap it CCW again
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff eventX = -30; //Set the X for event simulation. This is offset from dial._dialCenterX
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff eventY = 0; //Set the Y for event simulation.
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff positionHandle();
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff this.visualInspection(eventX,eventY,dial);
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff dial._handleNode.simulate("mouseover");
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff dial._handleNode.simulate("mouseout");
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff Y.Assert.areEqual( 0, dial._timesWrapped, 'CCW, ratchet never < 0');
43505e8a0a678fc9e08ebf98acad98ca67eff976Jeff Conniff
f61be8b915b3e0b7e9be07d134145b61707bc881Jeff Conniff dial.destroy();
7ef04b5748675b524f9891e401b90ba8a0162b07Jeff Conniff }
6bc576b441394b64944b925e027ba91d0cc92151Jeff Conniff}));
6bc576b441394b64944b925e027ba91d0cc92151Jeff Conniff
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniffsuite.add( new Y.Test.Case({
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff name: "Keyboard value changes",
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff setUp: function () {
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.one('body').append('<span id="testbed"></span>');
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff },
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff tearDown: function () {
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.one('#testbed').remove(true);
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff },
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff "test changing dial value by keyboard": function () {
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.one('#testbed').append('<div id="dial"></div><div id="ref"></div>');
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff var testbed = Y.one("#dial"),
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff ref = Y.one("#ref"),
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff dial;
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff dial = new Y.Dial({value: 12, max: 97, min: -52 }).render( testbed );
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff var input = dial._ringNode;
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(33); // pageUp
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.Assert.areEqual(22, dial.get('value'));
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(38); // up
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.Assert.areEqual(23, dial.get('value'));
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(39); // right
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.Assert.areEqual(24, dial.get('value'));
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(33); // pageUp
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.Assert.areEqual(34, dial.get('value'));
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(40); // down
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.Assert.areEqual(33, dial.get('value'));
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(34); // pageDown
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.Assert.areEqual(23, dial.get('value'));
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(37); // left
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(37); // left
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.Assert.areEqual(21, dial.get('value'));
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(36); // home
1b07aeff237ef674214156cf3059f816aabcc34eJeff Conniff Y.Assert.areEqual(-52, dial.get('value'));
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(35); // end
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.Assert.areEqual(97, dial.get('value'));
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff // beyond max
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(33); // pageUp
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.Assert.areEqual(97, dial.get('value'));
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(38); // up
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.Assert.areEqual(97, dial.get('value'));
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(39); // right
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.Assert.areEqual(97, dial.get('value'));
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff // min and beyond
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff dial.set('value', -50);
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(34); // pageDown
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.Assert.areEqual(-52, dial.get('value'));
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(40); // down
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.Assert.areEqual(-52, dial.get('value'));
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff input.key(37); // left
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff Y.Assert.areEqual(-52, dial.get('value'));
9ce8f4e502e9207aa7bd2dd7f7d853b8c25823deJeff Conniff
9ce8f4e502e9207aa7bd2dd7f7d853b8c25823deJeff Conniff dial.destroy();
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff }
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff}));
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff
81ac9a1c6aa97312b5ddbe115b8972fc6c7fbb21Jeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff/*
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniffsuite.add( new Y.Test.Case({
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff name: "Bugs",
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff setUp: function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff tearDown: function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff },
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff "test ": function () {
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff }
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff}));
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff*/
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff ConniffY.Test.Runner.add( suite );
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
644f103ad609f6b7ff06f1f71e405f40de8d697fJeff Conniff
cfa24b6c6102689f7e0e361591ef186e6fb4f2fcJeff Conniff}, '@VERSION@' ,{requires:['test', 'dial']});