flick-tests.js revision b709b3f1548f4819325e64c133062c2fbf1ed07d
b709b3f1548f4819325e64c133062c2fbf1ed07dDav GlassYUI.add('flick-tests', function(Y) {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass var eventData = {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass flick: Y.Node.DOM_EVENTS.flick.eventDef,
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass },
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Assert = Y.Assert,
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass noop = function() { },
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass CE = {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass fire: noop
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass },
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass node = Y.one('#tester'),
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass event = {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass target: node,
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass currentTarget: node,
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass touches: [
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass pageX: 100,
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass pageY: 100,
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass clientX: 100,
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass clientY: 100,
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass screenX: 100,
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass screenY: 100
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass }
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass ]
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass },
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass suite = new Y.Test.Suite('Flick Event Suite');
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass console.log(eventData);
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass suite.add(new Y.Test.Case({
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass name: 'flick',
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass setUp: function() {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass this.handles = [];
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass this.handles.push(node.on('flick', noop));
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass this.handles.push(node.delegate('flick', noop));
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass },
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass tearDown: function() {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Y.Array.each(this.handles, function(h) {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass h.detach();
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass });
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass },
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass 'test: _onStart()': function() {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass eventData.flick._onStart(event,node, {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass _extra: {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass minTime: 5,
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass minDistance: 5
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass }
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass }, {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass fire: function(e) {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Assert.areSame(event.target, e.target);
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Assert.areSame('flick', e.type);
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Assert.areEqual(1, e.button);
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass }
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass });
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass },
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass 'test: _onMove()': function() {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass var sub = { '_fs': { flick: { } } };
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass eventData.flick._onMove(event,node, sub);
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Assert.isTrue((sub['_fs'].flick.time > 0));
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass },
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass 'test: _onEnd()': function() {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass var en = event;
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass en.changedTouches = en.touches;
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass en.touches = [];
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass eventData.flick._onEnd(en,node, {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass _fs: {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass flick: {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass time: ((new Date().getTime()) - 3000)
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass },
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass pageX: 5,
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass pageY: 5,
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass detach: noop
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass },
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass _fmh: {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass detach: noop
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass },
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass _extra: {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass axis: 'x',
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass minTime: 1,
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass minDistance: 0,
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass minVelocity: 0,
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass preventDefault: noop
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass }
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass }, {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass fire: function(e) {
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Assert.areSame('flick', e.type);
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Assert.isObject(e.flick);
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Assert.areSame('x', e.flick.axis);
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Assert.areSame(95, e.flick.distance);
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Assert.isTrue((e.flick.time >- 3000));
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Assert.areSame(0.03166666666666667, e.flick.velocity);
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Assert.areSame(0, e.touches.length);
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Assert.areSame(1, e.changedTouches.length);
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Assert.areSame(node, e.target);
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Assert.areSame(node, e.currentTarget);
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass }
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass });
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass }
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass }));
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass Y.Test.Runner.add(suite);
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass
b709b3f1548f4819325e64c133062c2fbf1ed07dDav Glass});