diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/gears/urlcapture_test.html')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/gears/urlcapture_test.html | 392 |
1 files changed, 0 insertions, 392 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/gears/urlcapture_test.html b/contexts/data/lib/closure-library/closure/goog/gears/urlcapture_test.html deleted file mode 100644 index 9a1f2c4..0000000 --- a/contexts/data/lib/closure-library/closure/goog/gears/urlcapture_test.html +++ /dev/null @@ -1,392 +0,0 @@ -<!DOCTYPE html> -<html> -<!-- -Copyright 2010 The Closure Library Authors. All Rights Reserved. - -Use of this source code is governed by the Apache License, Version 2.0. -See the COPYING file for details. ---> -<head> -<meta http-equiv="X-UA-Compatible" content="IE=edge"> -<title>UrlCapture tests</title> -<script src="../base.js"></script> -<script> - goog.require('goog.gears.UrlCapture'); - goog.require('goog.testing.jsunit'); - goog.require('goog.testing.LooseMock'); -</script> -</head> -<body> -<script> - -/** - * @return {GearsLocalServer} Stub local server. - */ -function newStubLocalServer() { - return { - createStore: function() {}, - openStore: function() {}, - removeStore: function() {} - }; -} - -/** - * @return {GearsResourceStore} Stub resource store. - */ -function newStubResourceStore() { - var nextCaptureId = 0; - var capturedUrls = []; - - var result = {}; - result.callbacks = {}; - - result.capture = function(urls, callback) { - var id = nextCaptureId++; - this.callbacks[id] = function(url, success, captureId) { - if (url && success) { - capturedUrls.push(url); - } - callback(url, success, captureId); - } - return id; - }; - - result.rename = function(oldUrl, newUrl) { - goog.array.remove(capturedUrls, oldUrl); - capturedUrls.push(newUrl); - }; - - result.copy = function(oldUrl, newUrl) { - capturedUrls.push(newUrl); - }; - - result.remove = function(url) { - goog.array.remove(capturedUrls, url); - }; - - result.isCaptured = function(url) { - return goog.array.contains(capturedUrls, url); - }; - - result.abortCapture = function(id) { - delete this.callbacks[id]; - }; - - return result; -} - -/** - * @param {GearsResourceStore} ResourceStore to be returned by #createStore. - * @return {Mock.<GearsLocalServer>} Mock local server expecting a single call - * to #createStore returning #stubResourceStore. - */ -function newMockLocalServerCreateStore(stubResourceStore) { - var result = new goog.testing.LooseMock(newStubLocalServer()); - result.createStore(STORE_NAME, COOKIE_NAME).$returns( - stubResourceStore); - result.$replay(); - return result; -} - -/** - * @return {Object} Event listener for UrlCapture. - */ -function newListener(uut) { - var result = { - url_success: [], - url_error: [], - complete: [], - abort: [] - }; - goog.events.listen(uut, goog.gears.UrlCapture.EventType.URL_SUCCESS, - function(e) { result.url_success.push(e); }); - goog.events.listen(uut, goog.gears.UrlCapture.EventType.URL_ERROR, - function(e) { result.url_error.push(e); }); - goog.events.listen(uut, goog.gears.UrlCapture.EventType.COMPLETE, - function(e) { result.complete.push(e); }); - goog.events.listen(uut, goog.gears.UrlCapture.EventType.ABORT, - function(e) { result.abort.push(e); }); - return result; -} - -function assertEventEquals(expectedType, expectedCaptureId, expectedUri, - expectedErrorUris, actualEvent) { - assertEquals('wrong type', expectedType, actualEvent.type); - assertEquals('wrong capture ID', expectedCaptureId, actualEvent.captureId); - assertEquals('wrong URL', expectedUri, actualEvent.uri); - assertArrayEquals('wrong error URIs', expectedErrorUris, - actualEvent.errorUris); -} - -function assertIsCaptured(expectedCapturedUrls, expectedUncapturedUrls, uut) { - for (var i = 0; i < expectedCapturedUrls.length; ++i) { - var url = expectedCapturedUrls[i]; - assertTrue('not captured: ' + url, uut.isCaptured(url)); - } - for (var i = 0; i < expectedUncapturedUrls.length; ++i) { - var url = expectedUncapturedUrls[i]; - assertFalse('captured: ' + url, uut.isCaptured(url)); - } -} - -var STORE_NAME = 'TestCapture'; -var COOKIE_NAME = 'TestCookie'; - -/** - * Tests resource store exists. - */ -function testExists() { - var mockLocalServer = new goog.testing.LooseMock(newStubLocalServer()); - mockLocalServer.openStore(STORE_NAME, COOKIE_NAME).$returns(true); - mockLocalServer.$replay(); - - var uut = new goog.gears.UrlCapture(STORE_NAME, COOKIE_NAME, mockLocalServer); - assertTrue('exists failed for ' + STORE_NAME, uut.exists()); - mockLocalServer.$verify(); -} - -/** - * Tests resource store does not exist. - */ -function testNotExists() { - var mockLocalServer = new goog.testing.LooseMock(newStubLocalServer()); - mockLocalServer.openStore(STORE_NAME, COOKIE_NAME).$returns(false); - mockLocalServer.$replay(); - - var uut = new goog.gears.UrlCapture(STORE_NAME, COOKIE_NAME, mockLocalServer); - assertFalse('exists succeeded for ' + STORE_NAME, uut.exists()); - mockLocalServer.$verify(); -} - -/** - * Test remove resource store. - */ -function testRemoveStore() { - var mockLocalServer = new goog.testing.LooseMock(newStubLocalServer()); - mockLocalServer.removeStore(STORE_NAME, COOKIE_NAME); - mockLocalServer.$replay(); - - var uut = new goog.gears.UrlCapture(STORE_NAME, COOKIE_NAME, mockLocalServer); - uut.removeStore(); - mockLocalServer.$verify(); -} - -/** - * Test empty capture request. - */ -function testEmptyCapture() { - var uut = new goog.gears.UrlCapture(STORE_NAME, COOKIE_NAME, - newStubLocalServer()); - assertThrows('should fail for null uris', function() { uut.capture(); }); - assertThrows('should fail for 0 uris', function() { uut.capture([]); }); -} - -/** - * Test successful capture. - */ -function testCaptureUrlSuccess() { - // Create stubs and mocks. - var stubResourceStore = newStubResourceStore(); - var mockLocalServer = newMockLocalServerCreateStore(stubResourceStore); - - // Create url capturer and event listener. - var uut = new goog.gears.UrlCapture(STORE_NAME, COOKIE_NAME, mockLocalServer); - var listener = newListener(uut); - - // Start capture. - var url = '/foo.html'; - var id = uut.capture([url]); - mockLocalServer.$verify(); - assertEquals('wrong capture ID', 0, id); - var callback = stubResourceStore.callbacks[id]; - assertEquals('missing callback', 'function', typeof callback); - - // Callback capture success. - var uncapturedUrl = '/uncaptured.html'; - assertIsCaptured([], [url, uncapturedUrl], uut); - callback(url, true, id); - assertIsCaptured([url], [uncapturedUrl], uut); - - // Assert events. - assertEquals('url error', 0, listener.url_error.length); - assertEquals('abort', 0, listener.abort.length); - assertEquals('url success', 1, listener.url_success.length); - assertEventEquals(goog.gears.UrlCapture.EventType.URL_SUCCESS, id, url, [], - listener.url_success[0]); - assertEquals('url complete', 1, listener.complete.length); - assertEventEquals(goog.gears.UrlCapture.EventType.COMPLETE, id, null, [], - listener.complete[0]); -} - -/** - * Test unsuccessful capture. - */ -function testCaptureUrlFail() { - // Create stubs and mocks. - var stubResourceStore = newStubResourceStore(); - var mockLocalServer = newMockLocalServerCreateStore(stubResourceStore); - - // Create url capturer and event listener. - var uut = new goog.gears.UrlCapture(STORE_NAME, COOKIE_NAME, mockLocalServer); - var listener = newListener(uut); - - // Start capture. - var url = '/foo.html'; - var id = uut.capture([url]); - mockLocalServer.$verify(); - assertEquals('wrong capture ID', 0, id); - var callback = stubResourceStore.callbacks[id]; - assertEquals('missing callback', 'function', typeof callback); - - // Callback capture success. - assertIsCaptured([], [url], uut); - callback(url, false, id); - assertIsCaptured([], [url], uut); - - // Assert events. - assertEquals('url error', 1, listener.url_error.length); - assertEventEquals(goog.gears.UrlCapture.EventType.URL_ERROR, id, url, [], - listener.url_error[0]); - assertEquals('abort', 0, listener.abort.length); - assertEquals('url success', 0, listener.url_success.length); - assertEquals('url complete', 1, listener.complete.length); - assertEventEquals(goog.gears.UrlCapture.EventType.COMPLETE, id, null, [url], - listener.complete[0]); -} - -/** - * Test abort capture. - */ -function testAbortCapture() { - // Create stubs and mocks. - var stubResourceStore = newStubResourceStore(); - var mockLocalServer = newMockLocalServerCreateStore(stubResourceStore); - - // Create url capturer and event listener. - var uut = new goog.gears.UrlCapture(STORE_NAME, COOKIE_NAME, mockLocalServer); - var listener = newListener(uut); - - // Throw exception for aborting with no ID. - assertThrows('should fail for no ID', function() { uut.abort(); }); - assertThrows('should fail for null ID', function() { uut.abort(null); }); - - // Start capture. - var url = '/foo.html'; - var id = uut.capture([url]); - mockLocalServer.$verify(); - var callback = stubResourceStore.callbacks[id]; - assertEquals('missing callback', 'function', typeof callback); - - // Abort capture. - assertIsCaptured([], [url], uut); - uut.abort(id); - assertEquals('abort', 1, listener.abort.length); - assertFalse('found aborted callback', !!stubResourceStore.callbacks[id]); - assertIsCaptured([], [url], uut); - - // Callback after abort captures URL but dispatches no events. - callback(url, true, id); - assertIsCaptured([url], [], uut); - - // Assert events. - assertEquals('url error', 0, listener.url_error.length); - assertEquals('url success', 0, listener.url_success.length); - assertEquals('url complete', 0, listener.complete.length); -} - -/** - * Test removing captured URL. - */ -function testRemoveUrl() { - // Create stubs and mocks. - var stubResourceStore = newStubResourceStore(); - var mockLocalServer = newMockLocalServerCreateStore(stubResourceStore); - - // Create url capturer. - var uut = new goog.gears.UrlCapture(STORE_NAME, COOKIE_NAME, mockLocalServer); - - // Throw exception for removing with no URL. - assertThrows('should fail for no URL', function() { uut.remove(); }); - assertThrows('should fail for null URL', function() { uut.remove(null); }); - - // Start capture. - var url = '/foo.html'; - var id = uut.capture([url]); - mockLocalServer.$verify(); - assertIsCaptured([], [url], uut); - - // Capture callback success. - stubResourceStore.callbacks[id](url, true, id); - assertIsCaptured([url], [], uut); - - // Remove URL. - uut.remove(url); - assertIsCaptured([], [url], uut); -} - -/** - * Test renaming captured URL. - */ -function testRenameUrl() { - // Create stubs and mocks. - var stubResourceStore = newStubResourceStore(); - var mockLocalServer = newMockLocalServerCreateStore(stubResourceStore); - - // Create url capturer. - var uut = new goog.gears.UrlCapture(STORE_NAME, COOKIE_NAME, mockLocalServer); - - // Throw exception for removing with no URL. - assertThrows('should fail for no URL', function() { uut.rename(); }); - assertThrows('should fail for null URL', function() { uut.rename(null); }); - - // Start capture. - var url = '/foo.html'; - var renamedUrl = '/renamed.html'; - var id = uut.capture([url]); - mockLocalServer.$verify(); - assertIsCaptured([], [url, renamedUrl], uut); - - // Callback capture success. - stubResourceStore.callbacks[id](url, true, id); - assertIsCaptured([url], [renamedUrl], uut); - - // Rename URL. - uut.rename(url, renamedUrl); - assertIsCaptured([renamedUrl], [url], uut); -} - -/** - * Test copying captured URL. - */ -function testCopyUrl() { - // Create stubs and mocks. - var stubResourceStore = newStubResourceStore(); - var mockLocalServer = newMockLocalServerCreateStore(stubResourceStore); - - // Create url capturer. - var uut = new goog.gears.UrlCapture(STORE_NAME, COOKIE_NAME, mockLocalServer); - - // Throw exception for removing with no URL. - assertThrows('should fail for no URL', function() { uut.copy(); }); - assertThrows('should fail for null URL', function() { uut.copy(null); }); - - // Start capture. - var url = '/foo.html'; - var copiedUrl = '/renamed.html'; - var id = uut.capture([url]); - mockLocalServer.$verify(); - assertIsCaptured([], [url, copiedUrl], uut); - - // Callback capture success. - stubResourceStore.callbacks[id](url, true, id); - assertIsCaptured([url], [copiedUrl], uut); - - // Copy URL. - uut.copy(url, copiedUrl); - assertIsCaptured([url, copiedUrl], [], uut); -} - -</script> - -</body> -</html> |