aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/net/channelrequest_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/net/channelrequest_test.html')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/net/channelrequest_test.html280
1 files changed, 0 insertions, 280 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/net/channelrequest_test.html b/contexts/data/lib/closure-library/closure/goog/net/channelrequest_test.html
deleted file mode 100644
index 4581067..0000000
--- a/contexts/data/lib/closure-library/closure/goog/net/channelrequest_test.html
+++ /dev/null
@@ -1,280 +0,0 @@
-<!DOCTYPE html>
-<html>
-<!--
-Copyright 2008 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>Closure Unit Tests - goog.net.ChannelRequest</title>
-<script src="../base.js" type="text/javascript"></script>
-<script type="text/javascript">
-goog.require('goog.functions');
-goog.require('goog.net.BrowserChannel');
-goog.require('goog.net.ChannelDebug');
-goog.require('goog.net.ChannelRequest');
-goog.require('goog.testing.MockClock');
-goog.require('goog.testing.PropertyReplacer');
-goog.require('goog.testing.jsunit');
-goog.require('goog.testing.net.XhrIo');
-goog.require('goog.testing.recordFunction');
-</script>
-</head>
-<body>
-<script type="text/javascript">
-
-var channelRequest;
-var mockBrowserChannel;
-var mockClock;
-var stubs;
-var xhrIo;
-
-/**
- * Time to wait for a network request to time out, before aborting.
- */
-var WATCHDOG_TIME = 2000;
-
-/**
- * Time to throttle readystatechange events.
- */
-var THROTTLE_TIME = 500;
-
-/**
- * A really long time - used to make sure no more timeouts will fire.
- */
-var ALL_DAY_MS = 1000 * 60 * 60 * 24;
-
-
-function setUp() {
- mockClock = new goog.testing.MockClock();
- mockClock.install();
- stubs = new goog.testing.PropertyReplacer();
-}
-
-
-function tearDown() {
- stubs.reset();
- mockClock.uninstall();
-}
-
-
-/**
- * Constructs a duck-type BrowserChannel that tracks the completed requests.
- * @constructor
- */
-function MockBrowserChannel() {
- this.reachabilityEvents = {};
- this.isClosed = function() {
- return false;
- };
- this.isActive = function() {
- return true;
- };
- this.shouldUseSecondaryDomains = function() {
- return false;
- }
- this.completedRequests = [];
- this.notifyServerReachabilityEvent = function(reachabilityType) {
- if (!this.reachabilityEvents[reachabilityType]) {
- this.reachabilityEvents[reachabilityType] = 0;
- }
- this.reachabilityEvents[reachabilityType]++;
- };
- this.onRequestComplete = function(request) {
- this.completedRequests.push(request);
- };
- this.onRequestData = function(request, data) {};
-}
-
-
-/**
- * Creates a real ChannelRequest object, with some modifications for
- * testability:
- * <ul>
- * <li>The BrowserChannel is a MockBrowserChannel.
- * <li>The new watchdogTimeoutCallCount property tracks onWatchDogTimeout_()
- * calls.
- * <li>The timeout is set to WATCHDOG_TIME.
- * </ul>
- */
-function createChannelRequest() {
- xhrIo = new goog.testing.net.XhrIo();
- xhrIo.abort = xhrIo.abort || function() {
- this.active_ = false;
- };
-
- // Install mock browser channel and no-op debug logger.
- mockBrowserChannel = new MockBrowserChannel();
- channelRequest = new goog.net.ChannelRequest(
- mockBrowserChannel,
- new goog.net.ChannelDebug());
-
- // Install test XhrIo.
- mockBrowserChannel.createXhrIo = function() {
- return xhrIo;
- };
-
- // Install watchdogTimeoutCallCount.
- channelRequest.watchdogTimeoutCallCount = 0;
- channelRequest.originalOnWatchDogTimeout = channelRequest.onWatchDogTimeout_;
- channelRequest.onWatchDogTimeout_ = function() {
- this.watchdogTimeoutCallCount++;
- return this.originalOnWatchDogTimeout();
- };
-
- channelRequest.setTimeout(WATCHDOG_TIME);
-}
-
-
-/**
- * Run through the lifecycle of a long lived request, checking that the right
- * network events are reported.
- */
-function testNetworkEvents() {
- createChannelRequest();
-
- channelRequest.xmlHttpPost(new goog.Uri('some_uri'), 'some_postdata', true);
- checkReachabilityEvents(1, 0, 0, 0);
- if (goog.net.ChannelRequest.supportsXhrStreaming()) {
- xhrIo.simulatePartialResponse('17\nI am a BC Message');
- checkReachabilityEvents(1, 0, 0, 1);
- xhrIo.simulatePartialResponse('23\nI am another BC Message');
- checkReachabilityEvents(1, 0, 0, 2);
- xhrIo.simulateResponse(200, '16\Final BC Message');
- checkReachabilityEvents(1, 1, 0, 2);
- } else {
- xhrIo.simulateResponse(200, '16\Final BC Message');
- checkReachabilityEvents(1, 1, 0, 0);
- }
-}
-
-
-/**
- * Test throttling of readystatechange events.
- */
-function testNetworkEvents_throttleReadyStateChange() {
- createChannelRequest();
- channelRequest.setReadyStateChangeThrottle(THROTTLE_TIME);
-
- var recordedHandler =
- goog.testing.recordFunction(channelRequest.xmlHttpHandler_);
- stubs.set(channelRequest, 'xmlHttpHandler_', recordedHandler);
-
- channelRequest.xmlHttpPost(new goog.Uri('some_uri'), 'some_postdata', true);
- assertEquals(1, recordedHandler.getCallCount());
-
- checkReachabilityEvents(1, 0, 0, 0);
- if (goog.net.ChannelRequest.supportsXhrStreaming()) {
- xhrIo.simulatePartialResponse('17\nI am a BC Message');
- checkReachabilityEvents(1, 0, 0, 1);
- assertEquals(3, recordedHandler.getCallCount());
-
- // Second event should be throttled
- xhrIo.simulatePartialResponse('23\nI am another BC Message');
- assertEquals(3, recordedHandler.getCallCount());
-
- xhrIo.simulatePartialResponse('27\nI am yet another BC Message');
- assertEquals(3, recordedHandler.getCallCount());
- mockClock.tick(THROTTLE_TIME);
-
- checkReachabilityEvents(1, 0, 0, 3);
- // Only one more call because of throttling.
- assertEquals(4, recordedHandler.getCallCount());
-
- xhrIo.simulateResponse(200, '16\Final BC Message');
- checkReachabilityEvents(1, 1, 0, 3);
- assertEquals(5, recordedHandler.getCallCount());
- } else {
- xhrIo.simulateResponse(200, '16\Final BC Message');
- checkReachabilityEvents(1, 1, 0, 0);
- }
-}
-
-
-/**
- * Make sure that the request "completes" with an error when the timeout
- * expires.
- */
-function testRequestTimeout() {
- createChannelRequest();
-
- channelRequest.xmlHttpPost(new goog.Uri('some_uri'), 'some_postdata', true);
- assertEquals(0, channelRequest.watchdogTimeoutCallCount);
- assertEquals(0, channelRequest.channel_.completedRequests.length);
-
- // Watchdog timeout.
- mockClock.tick(WATCHDOG_TIME);
- assertEquals(1, channelRequest.watchdogTimeoutCallCount);
- assertEquals(1, channelRequest.channel_.completedRequests.length);
- assertFalse(channelRequest.getSuccess());
-
- // Make sure no more timers are firing.
- mockClock.tick(ALL_DAY_MS);
- assertEquals(1, channelRequest.watchdogTimeoutCallCount);
- assertEquals(1, channelRequest.channel_.completedRequests.length);
-
- checkReachabilityEvents(1, 0, 1, 0);
-}
-
-
-function testRequestTimeoutWithUnexpectedException() {
- createChannelRequest();
- channelRequest.channel_.createXhrIo = goog.functions.error('Weird error');
-
- try {
- channelRequest.xmlHttpGet(new goog.Uri('some_uri'), true, null);
- fail('Expected error');
- } catch (e) {
- assertEquals('Weird error', e.message);
- }
-
-
- assertEquals(0, channelRequest.watchdogTimeoutCallCount);
- assertEquals(0, channelRequest.channel_.completedRequests.length);
-
- // Watchdog timeout.
- mockClock.tick(WATCHDOG_TIME);
- assertEquals(1, channelRequest.watchdogTimeoutCallCount);
- assertEquals(1, channelRequest.channel_.completedRequests.length);
- assertFalse(channelRequest.getSuccess());
-
- // Make sure no more timers are firing.
- mockClock.tick(ALL_DAY_MS);
- assertEquals(1, channelRequest.watchdogTimeoutCallCount);
- assertEquals(1, channelRequest.channel_.completedRequests.length);
-
- checkReachabilityEvents(0, 0, 1, 0);
-}
-
-function testActiveXBlocked() {
- createChannelRequest();
- stubs.set(goog.global, 'ActiveXObject',
- goog.functions.error('Active X blocked'));
-
- channelRequest.tridentGet(new goog.Uri('some_uri'), false);
- assertFalse(channelRequest.getSuccess());
- assertEquals(goog.net.ChannelRequest.Error.ACTIVE_X_BLOCKED,
- channelRequest.getLastError());
-
- checkReachabilityEvents(0, 0, 0, 0);
-}
-
-function checkReachabilityEvents(reqMade, reqSucceeded, reqFail, backChannel) {
- var Reachability = goog.net.BrowserChannel.ServerReachability;
- assertEquals(reqMade,
- mockBrowserChannel.reachabilityEvents[Reachability.REQUEST_MADE] || 0);
- assertEquals(reqSucceeded,
- mockBrowserChannel.reachabilityEvents[Reachability.REQUEST_SUCCEEDED] || 0);
- assertEquals(reqFail,
- mockBrowserChannel.reachabilityEvents[Reachability.REQUEST_FAILED] || 0);
- assertEquals(backChannel,
- mockBrowserChannel.reachabilityEvents[Reachability.BACK_CHANNEL_ACTIVITY]
- || 0);
-}
-</script>
-</body>
-</html>