dom/browser-element/mochitest/browserElement_ExposableURI.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

michael@0 1 /* Any copyright is dedicated to the public domain.
michael@0 2 http://creativecommons.org/publicdomain/zero/1.0/ */
michael@0 3
michael@0 4 // Bug 795317: Test that the browser element sanitizes its URIs by removing the
michael@0 5 // "unexposable" parts before sending them in the locationchange event.
michael@0 6
michael@0 7 "use strict";
michael@0 8 SimpleTest.waitForExplicitFinish();
michael@0 9 browserElementTestHelpers.setEnabledPref(true);
michael@0 10 browserElementTestHelpers.addPermission();
michael@0 11
michael@0 12 var iframe;
michael@0 13
michael@0 14 function testPassword() {
michael@0 15 function locationchange(e) {
michael@0 16 var uri = e.detail;
michael@0 17 is(uri, 'http://mochi.test:8888/tests/dom/browser-element/mochitest/file_empty.html',
michael@0 18 "Username and password shouldn't be exposed in uri.");
michael@0 19 SimpleTest.finish();
michael@0 20 }
michael@0 21
michael@0 22 iframe.addEventListener('mozbrowserlocationchange', locationchange);
michael@0 23 iframe.src = "http://iamuser:iampassword@mochi.test:8888/tests/dom/browser-element/mochitest/file_empty.html";
michael@0 24 }
michael@0 25
michael@0 26 function testWyciwyg() {
michael@0 27 var locationChangeCount = 0;
michael@0 28
michael@0 29 function locationchange(e) {
michael@0 30 // locationChangeCount:
michael@0 31 // 0 - the first load.
michael@0 32 // 1 - after document.write().
michael@0 33 if (locationChangeCount == 0) {
michael@0 34 locationChangeCount ++;
michael@0 35 } else if (locationChangeCount == 1) {
michael@0 36 var uri = e.detail;
michael@0 37 is(uri, 'http://mochi.test:8888/tests/dom/browser-element/mochitest/file_wyciwyg.html', "Scheme in string shouldn't be wyciwyg");
michael@0 38 iframe.removeEventListener('mozbrowserlocationchange', locationchange);
michael@0 39 SimpleTest.executeSoon(testPassword);
michael@0 40 }
michael@0 41 }
michael@0 42
michael@0 43 // file_wyciwyg.html calls document.write() to create a wyciwyg channel.
michael@0 44 iframe.src = 'file_wyciwyg.html';
michael@0 45 iframe.addEventListener('mozbrowserlocationchange', locationchange);
michael@0 46 }
michael@0 47
michael@0 48 function runTest() {
michael@0 49 iframe = document.createElement('iframe');
michael@0 50 SpecialPowers.wrap(iframe).mozbrowser = true;
michael@0 51 document.body.appendChild(iframe);
michael@0 52 testWyciwyg();
michael@0 53 }
michael@0 54
michael@0 55 addEventListener('testready', runTest);

mercurial