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 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) {
f73e114472cbbf13620d87d85c9bf053ed8973a8Dav Glass Assert.areSame(event.target, e.target, 'Target not set properly');
f73e114472cbbf13620d87d85c9bf053ed8973a8Dav Glass Assert.areSame('flick', e.type, 'Event type is wrong');
f73e114472cbbf13620d87d85c9bf053ed8973a8Dav Glass Assert.areEqual(1, e.button, 'e.button is not set');
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);
f73e114472cbbf13620d87d85c9bf053ed8973a8Dav Glass Assert.isTrue((sub['_fs'].flick.time > 0), 'Flick time was not set on move');
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) {
f73e114472cbbf13620d87d85c9bf053ed8973a8Dav Glass Assert.areSame('flick', e.type, 'Event type is incorrect');
f73e114472cbbf13620d87d85c9bf053ed8973a8Dav Glass Assert.isObject(e.flick, 'e.click is not an Object');
f73e114472cbbf13620d87d85c9bf053ed8973a8Dav Glass Assert.areSame('x', e.flick.axis, 'flick axis is not X');
f73e114472cbbf13620d87d85c9bf053ed8973a8Dav Glass Assert.areSame(95, e.flick.distance, 'Did not flick the proper distance');
f73e114472cbbf13620d87d85c9bf053ed8973a8Dav Glass Assert.isTrue((e.flick.time >- 3000), 'flick time is not set properly');
f73e114472cbbf13620d87d85c9bf053ed8973a8Dav Glass Assert.isTrue((e.flick.velocity >= 0.020), 'Failed to move in the proper velocity');
f73e114472cbbf13620d87d85c9bf053ed8973a8Dav Glass Assert.areSame(0, e.touches.length, 'e.touches.length should be 0');
f73e114472cbbf13620d87d85c9bf053ed8973a8Dav Glass Assert.areSame(1, e.changedTouches.length), 'e.changedTouches.length should be 1';
f73e114472cbbf13620d87d85c9bf053ed8973a8Dav Glass Assert.areSame(node, e.target, 'Event target is not set properly');
f73e114472cbbf13620d87d85c9bf053ed8973a8Dav Glass Assert.areSame(node, e.currentTarget, 'Event currentTarget is not set properly');
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});