diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/window/window_test.html')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/window/window_test.html | 239 |
1 files changed, 0 insertions, 239 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/window/window_test.html b/contexts/data/lib/closure-library/closure/goog/window/window_test.html deleted file mode 100644 index ac0e40b..0000000 --- a/contexts/data/lib/closure-library/closure/goog/window/window_test.html +++ /dev/null @@ -1,239 +0,0 @@ -<!DOCTYPE html> -<html> -<!-- -Copyright 2009 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. ---> -<!-- - - @author marcosalmeida@google.com (Marcos Almeida) ---> -<head> -<meta http-equiv="X-UA-Compatible" content="IE=edge"> -<title>Closure Unit Tests - goog.window</title> -<script src="../base.js"></script> -<script> - goog.require('goog.dom'); - goog.require('goog.events'); - goog.require('goog.string'); - goog.require('goog.testing.AsyncTestCase'); - goog.require('goog.testing.jsunit'); - goog.require('goog.window'); -</script> -<style type='text/css'> - -.goog-like-link { - color: blue; - text-decoration: underline; - cursor: pointer; -} - -</style> -</head> -<body> - -<h4>Some links for testing referrer stripping manually.</h4> -<div class='goog-like-link'>http://www.google.com/search?q=;</div> -<div class='goog-like-link'>http://www.google.com/search?q=x&lang=en</div> -<div class='goog-like-link'>http://www.google.com/search?q=x;lang=en</div> -<div class='goog-like-link'>http://www.google.com/search?q="</div> -<div class='goog-like-link'>http://www.google.com/search?q='</div> -<div class='goog-like-link'>http://www.google.com/search?q=<</div> -<div class='goog-like-link'>http://www.google.com/search?q=></div> - -<script> - - var newWin; - var REDIRECT_URL_PREFIX = 'window_test.html?runTests='; - var asyncTestCase = - goog.testing.AsyncTestCase.createAndInstall(document.title); - asyncTestCase.stepTimeout = 5000; - - var WIN_LOAD_TRY_TIMEOUT = 100; - var MAX_WIN_LOAD_TRIES = 50; // 50x100ms = 5s waiting for window to load. - var winLoadCounter; - - function setUpPage() { - var anchors = goog.dom.getElementsByTagNameAndClass( - 'div', 'goog-like-link'); - for (var i = 0; i < anchors.length; i++) { - goog.events.listen( - anchors[i], 'click', - function(e) { - goog.window.open( - goog.dom.getTextContent(e.target), {'noreferrer': true}); - }); - } - } - - /** - * Some tests should only run locally, because they will trigger - * popup blockers on http urls. - */ - function canOpenPopups() { - // TODO(nicksantos): Fix the test runner farm. - return window.location.toString().indexOf('file://') == 0; - } - - if (canOpenPopups()) { - // To test goog.window.open we open a new window with this file again. Once - // the new window gets to this point in the file it notifies the opener that - // it has loaded, so that the opener knows that the new window has been - // populated with properties like referrer and location. - var newWinLoaded = false; - if (window.opener && window.opener.newWinLoaded === false) { - window.opener.newWinLoaded = true; - } - } - - function setUp() { - newWinLoaded = false; - } - - function tearDown() { - if (newWin) { - newWin.close(); - } - } - - /** - * Uses setTimeout to keep checking if a new window has been loaded, and once - * it has, calls the given continuation function and then calls - * asyncTestCase.continueTesting() to resume the flow of the test. - * @param {Function} continueFn Continuation function to be called when the - * new window has loaded. - * @param {number=} opt_numTries Number of times this method has checked if - * the window has loaded, to prevent getting in an endless setTimeout - * loop. (Used internally, callers should omit.) - */ - function continueAfterWindowLoaded(continueFn, opt_numTries) { - opt_numTries = opt_numTries || 0; - if (newWinLoaded) { - continueFn(); - asyncTestCase.continueTesting(); - } else if (opt_numTries > MAX_WIN_LOAD_TRIES) { - fail('Window did not load after maximum number of checks.'); - asyncTestCase.continueTesting(); - } else { - setTimeout(goog.partial(continueAfterWindowLoaded, - continueFn, ++opt_numTries), - WIN_LOAD_TRY_TIMEOUT); - } - } - - /** - * Helper to kick off a test that opens a window and checks that the referrer - * is hidden if requested and the url is properly encoded/decoded. - * @param {boolean} noreferrer Whether to test the noreferrer option. - * @param {string} urlParam Url param to append to the url being opened. - */ - function doTestOpenWindow(noreferrer, urlParam) { - if (!canOpenPopups()) { - return; - } - newWin = goog.window.open(REDIRECT_URL_PREFIX + urlParam, - {'noreferrer': noreferrer}); - asyncTestCase.waitForAsync('Waiting for window to open and load.'); - continueAfterWindowLoaded( - goog.partial(continueTestOpenWindow, noreferrer, urlParam)); - } - - /** - * Helper callback to do asserts after the window opens. - * @param noreferrer Whether the noreferrer option is being tested. - * @param urlParam Url param appended to the url being opened. - */ - function continueTestOpenWindow(noreferrer, urlParam) { - if (noreferrer) { - assertEquals('Referrer should have been stripped', - '', newWin.document.referrer); - } - - var newWinUrl = decodeURI(newWin.location); - var expectedUrlSuffix = decodeURI(urlParam); - assertTrue('New window href should have ended with <' + expectedUrlSuffix + - '> but was <' + newWinUrl + '>', - goog.string.endsWith(newWinUrl, expectedUrlSuffix)); - } - - - function testOpenNotEncoded() { - doTestOpenWindow(false, '"bogus~"'); - } - - function testOpenEncoded() { - doTestOpenWindow(false, '"bogus%7E"'); - } - - function testOpenEncodedPercent() { - // Intent of url is to pass %7E to the server, so it was encoded to %257E . - doTestOpenWindow(false, '"bogus%257E"'); - } - - function testOpenNotEncodedHidingReferrer() { - doTestOpenWindow(true, '"bogus~"'); - } - - function testOpenEncodedHidingReferrer() { - doTestOpenWindow(true, '"bogus%7E"'); - } - - function testOpenEncodedPercentHidingReferrer() { - // Intent of url is to pass %7E to the server, so it was encoded to %257E . - doTestOpenWindow(true, '"bogus%257E"'); - } - - function testOpenSemicolon() { - doTestOpenWindow(true, "beforesemi;aftersemi"); - } - - function testTwoSemicolons() { - doTestOpenWindow(true, "a;b;c"); - } - - function testOpenAmpersand() { - doTestOpenWindow(true, "this&that"); - } - - function testOpenSingleQuote() { - doTestOpenWindow(true, "'"); - } - - function testOpenDoubleQuote() { - doTestOpenWindow(true, '"'); - } - - function testOpenDoubleQuote() { - doTestOpenWindow(true, '<'); - } - - function testOpenDoubleQuote() { - doTestOpenWindow(true, '>'); - } - - function testOpenBlank() { - if (!canOpenPopups()) { - return; - } - newWin = goog.window.openBlank('Loading...'); - asyncTestCase.waitForAsync('Waiting for temp window to open and load.'); - var urlParam = 'bogus~'; - - var continueFn = function() { - newWin.location.href = REDIRECT_URL_PREFIX + urlParam; - continueAfterWindowLoaded( - goog.partial(continueTestOpenWindow, false, urlParam)); - } - setTimeout(continueFn, 100); - } - - /** @this {Element} */ - function stripReferrer() { - goog.window.open(this.href, {'noreferrer': true}); - } - -</script> -</body> -</html> |