test_pan.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. var el,
  2. hammer;
  3. module('Pan Gesture', {
  4. setup: function() {
  5. el = document.createElement('div');
  6. document.body.appendChild(el);
  7. hammer = new Hammer(el, {recognizers: []});
  8. },
  9. teardown: function() {
  10. document.body.removeChild(el);
  11. hammer.destroy();
  12. }
  13. });
  14. test('`panstart` and `panmove` should be recognized', function() {
  15. expect(2);
  16. var panMoveCount = 0;
  17. var pan = new Hammer.Pan({threshold: 1});
  18. hammer.add(pan);
  19. hammer.on('panstart', function() {
  20. ok(true);
  21. });
  22. hammer.on('panmove', function() {
  23. panMoveCount++;
  24. });
  25. utils.dispatchTouchEvent(el, 'start', 50, 50);
  26. utils.dispatchTouchEvent(el, 'move', 70, 50);
  27. utils.dispatchTouchEvent(el, 'move', 90, 50);
  28. equal(panMoveCount, 1);
  29. });
  30. asyncTest('Pan event flow should be start -> left -> end', function() {
  31. expect(1);
  32. var pan = new Hammer.Pan({threshold: 1});
  33. hammer.add(pan);
  34. var eventflow = "";
  35. var isCalledPanleft = false;
  36. hammer.on('panstart', function() {
  37. eventflow += "start";
  38. });
  39. hammer.on('panleft', function() {
  40. if(!isCalledPanleft){
  41. isCalledPanleft = true;
  42. eventflow += "left";
  43. }
  44. });
  45. hammer.on('panend', function() {
  46. eventflow += "end";
  47. isCalledPanleft = true;
  48. });
  49. Simulator.gestures.pan(el, { deltaX: -100, deltaY: 0 }, function() {
  50. equal(eventflow,"startleftend");
  51. start();
  52. });
  53. });