Форк Rambox
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

130 lines
3.9 KiB

describe("Ext.GlobalEvents", function() {
describe('idle event', function() {
var delay = Ext.isIE ? 50 : 10,
idleFired, done;
function onIdle() {
idleFired = true;
}
beforeEach(function() {
idleFired = false;
done = false;
Ext.on('idle', onIdle);
});
afterEach(function() {
Ext.un('idle', onIdle);
});
it("should fire after DOM event handler are invoked, but before control is returned to the browser", function() {
var element = Ext.getBody().createChild(),
handledCount = 0;
function expectFalse() {
expect(idleFired).toBe(false);
handledCount ++;
}
// attach a couple mousedown listeners, the idle event should fire after both
// handlers have fired
element.on('mousedown', expectFalse);
element.on('mousedown', function() {
expectFalse();
});
jasmine.fireMouseEvent(element, 'mousedown');
expect(handledCount).toBe(2);
expect(idleFired).toBe(true);
element.destroy();
});
it("should fire after a JsonPProxy processes a return packet", function() {
var store = Ext.create('Ext.data.Store', {
proxy: {
type: 'jsonp',
reader: {
rootProperty: 'topics',
totalProperty: 'totalCount'
},
url: 'http://www.sencha.com/forum/remote_topics/index.php'
},
fields: ['title'],
listeners: {
load: function() {
done = true;
}
}
});
store.loadPage(1);
waitsFor(function() {
return done === true;
});
runs(function() {
waits(delay);
runs(function() {
expect(idleFired).toBe(true);
store.destroy();
});
});
});
it("should fire after a JsonP request is processed", function() {
Ext.data.JsonP.request({
url: 'http://www.sencha.com/forum/remote_topics/index.php?page=1&start=0&limit=100',
callback: function() {
done = true;
}
});
waitsFor(function() {
return done === true;
});
runs(function() {
waits(delay);
runs(function() {
expect(idleFired).toBe(true);
});
});
});
it("should fire after an Ajax request is processed", function() {
Ext.Ajax.request({
url: 'resources/foo.json',
callback: function() {
done = true;
}
});
waitsFor(function() {
return done === true;
});
runs(function() {
waits(delay);
runs(function() {
expect(idleFired).toBe(true);
});
});
});
it("should fire after a scheduled Task is run", function() {
Ext.TaskManager.newTask({
run: function(){
done = true;
},
repeat: 1,
interval: 1
}).start();
waitsFor(function() {
return done === true;
});
runs(function() {
waits(delay);
runs(function() {
expect(idleFired).toBe(true);
});
});
});
});
});