Ver Fonte

simulate window resize

Adam Shaw há 8 anos atrás
pai
commit
799849d363

+ 1 - 1
tests/automated/legacy/scroll-state.js

@@ -45,7 +45,7 @@ describe('scroll state', function() {
       setTimeout(function() { // wait until after browser's scroll state is applied
         scrollEl.scrollTop(9999) // all the way
         scroll0 = scrollEl.scrollTop()
-        $(window).trigger('resize')
+        $(window).simulate('resize')
       }, 0)
     })
 

+ 15 - 1
tests/automated/lib/simulate.js

@@ -24,13 +24,27 @@ var origSimulateEvent = $.simulate.prototype.simulateEvent
 var touchUID = Date.now()
 
 $.simulate.prototype.simulateEvent = function(elem, type, options) {
-  if (/^touch/.test(type)) {
+  if (elem === window && type === 'resize') {
+    return this.simulateWindowResize()
+  } else if (/^touch/.test(type)) {
     return this.simulateTouchEvent(elem, type, options)
   } else {
     return origSimulateEvent.apply(this, arguments)
   }
 }
 
+$.simulate.prototype.simulateWindowResize = function() {
+  // from https://stackoverflow.com/a/1818513/96342
+  let event
+  if (typeof Event !== 'undefined') {
+    event = new Event('resize')
+  } else {
+    event = document.createEvent('UIEvents')
+    event.initUIEvent('resize', true, false, window, 0)
+  }
+  this.dispatchEvent(window, 'resize', event)
+}
+
 $.simulate.prototype.simulateTouchEvent = function(elem, type, options) {
   // http://stackoverflow.com/a/29019278/96342
   var event = document.createEvent('Event')

+ 1 - 1
tests/automated/performance/rerenders.js

@@ -70,7 +70,7 @@ describe('rerender performance', function() {
           expect(executeEventRender.calls.count()).toBe(3) // +1
           expect(updateSize.calls.count()).toBe(5) // +2, TODO: get to just +1
 
-          $(window).trigger('resize')
+          $(window).simulate('resize')
 
           setTimeout(function() {