diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/net/iframe_xhr_test.html')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/net/iframe_xhr_test.html | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/net/iframe_xhr_test.html b/contexts/data/lib/closure-library/closure/goog/net/iframe_xhr_test.html deleted file mode 100644 index d2f4a14..0000000 --- a/contexts/data/lib/closure-library/closure/goog/net/iframe_xhr_test.html +++ /dev/null @@ -1,147 +0,0 @@ -<!DOCTYPE html> -<html> -<!-- -Copyright 2007 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 - Iframe/XHR Execution Context</title> -<script src="../base.js"></script> -<script> - goog.require('goog.events'); - goog.require('goog.debug.Console'); - goog.require('goog.net.XhrLite'); - goog.require('goog.net.IframeIo'); - goog.require('goog.testing.AsyncTestCase'); - goog.require('goog.testing.jsunit'); - goog.require('goog.Timer'); -</script> -</head> -<body> - <p> - XmlHttpRequests that initiate from code executed in an iframe, that is then - destroyed, result in an error in FireFox. This test case is used to verify - that Closure's IframeIo and XhrLite do not suffer from this problem. See - <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=369939"> - https://bugzilla.mozilla.org/show_bug.cgi?id=369939</a>. - </p> - <p> - NOTE(pupius): 14/11/2011 The XhrMonitor code has been removed since the - above bug doesn't manifest in any currently supported versions. This test - is left in place as a way of verifying the problem doesn't resurface. - </p> - <script> - var c = new goog.debug.Console; - c.setCapturing(true); - goog.debug.LogManager.getRoot().setLevel(goog.debug.Logger.Level.ALL); - - // Can't use exportSymbol if we want JsUnit support - top.GG_iframeFn = goog.net.IframeIo.handleIncrementalData; - - // Make the dispose time short enough that it will cause the bug to appear - goog.net.IframeIo.IFRAME_DISPOSE_DELAY_MS = 0; - - - var fileName = 'iframe_xhr_test_response.html'; - var iframeio; - - // Create an async test case - var testCase = new goog.testing.AsyncTestCase(document.title); - testCase.stepTimeout = 4 * 1000; - testCase.resultCount = 0; - testCase.xhrCount = 0; - testCase.error = null; - - /** Set up the iframe io and request the test response page. */ - testCase.setUpPage = function() { - testCase.waitForAsync('setUpPage'); - iframeio = new goog.net.IframeIo(); - goog.events.listen( - iframeio, 'incrementaldata', this.onIframeData, false, this); - goog.events.listen( - iframeio, 'ready', this.onIframeReady, false, this); - iframeio.send(fileName); - - this.add(new goog.testing.TestCase.Test( - 'test results', this.testResults, this)); - }; - - /** Disposes the iframe object. */ - testCase.tearDownPage = function() { - iframeio.dispose(); - }; - - /** Handles the packets received from the Iframe incremental results. */ - testCase.onIframeData = function(e) { - this.log('Data received : ' + e.data); - this.resultCount++; - goog.net.XhrLite.send(fileName, goog.bind(this.onXhrData, this)); - }; - - /** Handles the iframe becoming ready. */ - testCase.onIframeReady = function(e) { - this.log('Iframe ready'); - var me = this; - goog.net.XhrLite.send(fileName, goog.bind(this.onXhrData, this)); - }; - - /** Handles the response from an Xhr request. */ - testCase.onXhrData = function(e) { - this.xhrCount++; - // We access status directly so that XhrLite doesn't mask the error that - // would be thrown in FF if this worked correctly. - try { - this.log('Xhr Received: ' + e.target.xhr_.status); - } catch (e) { - this.log('ERROR: ' + e.message); - this.error = e; - } - if (this.xhrCount == 4 && this.resultCount == 3) { - // Wait for the async iframe disposal to fire. - this.log('Test set up finished, waiting 500ms for iframe disposal'); - goog.Timer.callOnce(goog.bind(this.continueTesting, this), 0); - } - }; - - /** The main test function that validates the results were as expected. */ - testCase.testResults = function() { - assertEquals('There should be 3 data packets', 3, this.resultCount); - // 3 results + 1 ready - assertEquals('There should be 4 XHR results', 4, this.xhrCount); - if (this.error) { - throw this.error; - } - - assertEquals('There should be no iframes left', 0, - document.getElementsByTagName('iframe').length); - } - - /** This test only runs on GECKO browsers. */ - if (goog.userAgent.GECKO) { - /** Used by the JsUnit test runner. */ - var testXhrMonitorWorksForIframeIoRequests = function() { - testCase.reset(); - testCase.cycleTests(); - } - - /** Used by the JsUnit test runner. */ - var setUpPage = function() { - testCase.runTests(); - } - } - - // Standalone Closure Test Runner. - if (typeof G_testRunner != 'undefined') { - if (goog.userAgent.GECKO) { - G_testRunner.initialize(testCase); - } else { - G_testRunner.setStrict(false); - } - } - - </script> -</body> -</html> |