mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-17 15:40:22 +00:00
70 lines
2.1 KiB
JavaScript
70 lines
2.1 KiB
JavaScript
describe('browser', function(){
|
|
|
|
var browser, location, head;
|
|
|
|
beforeEach(function(){
|
|
location = {href:"http://server", hash:""};
|
|
head = {
|
|
scripts: [],
|
|
append: function(node){head.scripts.push(node);}
|
|
};
|
|
browser = new Browser(location, jqLite(window.document), head);
|
|
browser.setTimeout = noop;
|
|
});
|
|
|
|
it('should watch url', function(){
|
|
browser.delay = 1;
|
|
expectAsserts(2);
|
|
browser.watchUrl(function(url){
|
|
assertEquals('http://getangular.test', url);
|
|
});
|
|
browser.setTimeout = function(fn, delay){
|
|
assertEquals(1, delay);
|
|
location.href = "http://getangular.test";
|
|
browser.setTimeout = function(fn, delay) {};
|
|
fn();
|
|
};
|
|
browser.startUrlWatcher();
|
|
});
|
|
|
|
describe('outstading requests', function(){
|
|
it('should process callbacks immedietly with no outstanding requests', function(){
|
|
var callback = jasmine.createSpy('callback');
|
|
browser.notifyWhenNoOutstandingRequests(callback);
|
|
expect(callback).wasCalled();
|
|
});
|
|
|
|
it('should queue callbacks with outstanding requests', function(){
|
|
var callback = jasmine.createSpy('callback');
|
|
browser.outstandingRequests.count = 1;
|
|
browser.notifyWhenNoOutstandingRequests(callback);
|
|
expect(callback).not.wasCalled();
|
|
|
|
browser.processRequestCallbacks();
|
|
expect(callback).not.wasCalled();
|
|
|
|
browser.outstandingRequests.count = 0;
|
|
browser.processRequestCallbacks();
|
|
expect(callback).wasCalled();
|
|
});
|
|
});
|
|
|
|
describe('xhr', function(){
|
|
describe('JSON', function(){
|
|
it('should add script tag for request', function() {
|
|
var log = "";
|
|
browser.xhr('JSON', 'http://example.org/path?cb=JSON_CALLBACK', function(code, data){
|
|
log += code + ':' + data + ';';
|
|
});
|
|
expect(head.scripts.length).toEqual(1);
|
|
var url = head.scripts[0].src.split('?cb=');
|
|
expect(url[0]).toEqual('http://example.org/path');
|
|
expect(typeof window[url[1]]).toEqual('function');
|
|
window[url[1]]('data');
|
|
expect(log).toEqual('200:data;');
|
|
expect(typeof window[url[1]]).toEqual('undefined');
|
|
});
|
|
});
|
|
});
|
|
|
|
});
|