added outstanding request queue

This commit is contained in:
Andres Ornelas
2010-05-26 15:21:58 -07:00
parent 0d41c86522
commit aedf12f25e
3 changed files with 77 additions and 27 deletions

48
test/BrowserSpecs.js Normal file
View File

@@ -0,0 +1,48 @@
describe('browser', function(){
var browser, location;
beforeEach(function(){
location = {href:"http://server", hash:""};
browser = new Browser(location, {});
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();
});
});
});

View File

@@ -1,25 +0,0 @@
BrowserTest = TestCase('BrowserTest');
BrowserTest.prototype.testUrlWatcher = function () {
expectAsserts(2);
var location = {href:"http://server", hash:""};
var watcher = new Browser(location, {});
watcher.delay = 1;
watcher.watchUrl(function(url){
assertEquals('http://getangular.test', url);
});
watcher.setTimeout = function(fn, delay){
assertEquals(1, delay);
location.href = "http://getangular.test";
watcher.setTimeout = function(fn, delay) {
};
fn();
};
watcher.startUrlWatcher();
};
FunctionTest = TestCase("FunctionTest");
FunctionTest.prototype.testEscapeHtml = function () {
assertEquals("&lt;div&gt;&amp;amp;&lt;/div&gt;", escapeHtml('<div>&amp;</div>'));
};