desktopbrowsers.test.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. describe("desktopbrowsers",function(){
  2. var $item;
  3. var item;
  4. before(function(){
  5. $(document.body).append("<div id='desktopbrowsers'></div>");
  6. $item=$("#desktopbrowsers");
  7. item=$item.get(0);
  8. });
  9. function fakeMouseEvent(evt,target,x,y){
  10. var mousedownEvent = document.createEvent ("MouseEvent");
  11. mousedownEvent.initMouseEvent (evt, true, true, window, 0,
  12. x,y,x,y,
  13. 0,0,0,0,
  14. 0, null);
  15. target.dispatchEvent (mousedownEvent);
  16. }
  17. after(function(){
  18. $("#desktopbrowsers").remove();
  19. })
  20. it("mouse click should trigger a touchstart",function(done){
  21. $item.one("touchstart",function(){done();});
  22. fakeMouseEvent("mousedown",item,1,1);
  23. });
  24. it("should trigger touchmove from mousemove",function(done){
  25. $item.one("touchmove",function(){
  26. done();
  27. });
  28. fakeMouseEvent("mousemove",item,2,2);
  29. });
  30. it("should NOT trigger touchmove from mousemove with no movement",function(done){
  31. var bad=true;
  32. $item.one("touchmove",function(){
  33. bad=false;
  34. });
  35. setTimeout(function(){
  36. expect(bad).to.be.true
  37. done();
  38. },100);
  39. fakeMouseEvent("mousemove",item,1,1);
  40. });
  41. it("should trigger touchend from mouseup event",function(done){
  42. $item.one("touchend",function(){done();});
  43. fakeMouseEvent("mouseup",item,1,1);
  44. });
  45. it("should NOT trigger touchmove from mousemove with no mousedown",function(done){
  46. var bad=true;
  47. $item.one("touchmove",function(){
  48. bad=false;
  49. });
  50. setTimeout(function(){
  51. expect(bad).to.be.true
  52. done();
  53. },100);
  54. fakeMouseEvent("mousemove",item,1,1);
  55. });
  56. });