mock.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. ;(function(){
  2. window.patch_date = function(f){
  3. const NativeDate = window.Date;
  4. const date = function date(y,m,d,h,i,s,j){
  5. switch(arguments.length){
  6. case 0: return new NativeDate(date.now());
  7. case 1: return new NativeDate(y);
  8. case 2: return new NativeDate(y,m);
  9. case 3: return new NativeDate(y,m,d);
  10. case 4: return new NativeDate(y,m,d,h);
  11. case 5: return new NativeDate(y,m,d,h,i);
  12. case 6: return new NativeDate(y,m,d,h,i,s);
  13. case 7: return new NativeDate(y,y,m,d,h,i,s,j);
  14. }
  15. };
  16. date.now = NativeDate.now;
  17. date.UTC = NativeDate.UTC;
  18. return function(){
  19. Array.prototype.push.call(arguments, date);
  20. window.Date = date;
  21. f.apply(this, arguments);
  22. window.Date = NativeDate;
  23. };
  24. };
  25. window.patch_show_hide = function(f){
  26. var oldShow = $.fn.show,
  27. newShow = function () {
  28. $(this).removeClass('foo');
  29. return oldShow.apply(this, arguments);
  30. };
  31. var oldHide = $.fn.hide,
  32. newHide = function () {
  33. $(this).addClass('foo');
  34. return oldHide.apply(this, arguments);
  35. };
  36. return function(){
  37. $.fn.show = newShow;
  38. $.fn.hide = newHide;
  39. f.apply(this, arguments);
  40. $.fn.show = oldShow;
  41. $.fn.hide = oldHide;
  42. };
  43. };
  44. }());