123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- (function () {
- 'use strict';
- var deferred = m.deferred();
- window._promise = deferred.promise;
- window.setTimeout(function() {
- deferred.resolve();
- }, 50);
- var getElement = function(selector) {
- var deferred = m.deferred();
- var _getElement = function() {
- window.setTimeout(function() {
- var $element = $('#misago-fixture ' + selector);
- if ($element.length >= 1) {
- deferred.resolve($element);
- } else {
- _getElement();
- }
- }, 50);
- };
- _getElement();
- return deferred.promise;
- };
- var queueAction = function(action) {
- window._promise.then(function() {
- window._promise = action();
- });
- };
- window.click = function(selector) {
- queueAction(function() {
- var deferred = m.deferred();
- getElement(selector).then(function(element) {
- window.setTimeout(function() {
- element.trigger('click');
- window.setTimeout(function() {
- deferred.resolve();
- }, 50);
- }, 50);
- });
- return deferred.promise;
- });
- };
- window.fillIn = function(selector, value) {
- queueAction(function() {
- var deferred = m.deferred();
- getElement(selector).then(function(element) {
- window.setTimeout(function() {
- element.trigger('click');
- element.focus();
- element.trigger('keyDown');
- element.val(value || '');
- element.trigger('keyUp');
- element.trigger('input');
- element.trigger('change');
- window.setTimeout(function() {
- deferred.resolve();
- }, 50);
- }, 50);
- });
- return deferred.promise;
- });
- };
- window.then = function(callback, timeout) {
- queueAction(function() {
- var deferred = m.deferred();
- window.setTimeout(function() {
- callback();
- deferred.resolve();
- }, timeout || 80);
- return deferred.promise;
- });
- };
- window.waitForElement = function(selector) {
- queueAction(function() {
- var deferred = m.deferred();
- getElement(selector).then(function() {
- window.setTimeout(function() {
- deferred.resolve();
- }, 50);
- });
- return deferred.promise;
- });
- };
- window.waitForElementRemoval = function(selector) {
- queueAction(function() {
- var deferred = m.deferred();
- var _testElement = function() {
- window.setTimeout(function() {
- if (!$(selector).length) {
- deferred.resolve();
- } else {
- _testElement();
- }
- }, 50);
- };
- _testElement();
- return deferred.promise;
- });
- };
- window.onElement = function(selector, callback) {
- queueAction(function() {
- var deferred = m.deferred();
- getElement(selector).then(function(element) {
- window.setTimeout(function() {
- callback(element);
- deferred.resolve();
- }, 50);
- });
- return deferred.promise;
- });
- };
- window.onCleanUp = function(callback) {
- var waitForFixtureCleanUp = function() {
- window.setTimeout(function() {
- var content = $.trim($('#misago-fixture').html());
- if (!content) {
- window.setTimeout(function() {
- callback();
- }, 250);
- } else {
- waitForFixtureCleanUp();
- }
- }, 50);
- };
- waitForFixtureCleanUp();
- };
- }());
|