Wed, 31 Dec 2014 06:55:50 +0100
Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2
1 /* Any copyright is dedicated to the public domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
4 // Bug 741717 - Test the reload ability of <iframe mozbrowser>.
6 "use strict";
7 SimpleTest.waitForExplicitFinish();
8 browserElementTestHelpers.setEnabledPref(true);
9 browserElementTestHelpers.addPermission();
11 var iframeScript = function() {
12 sendAsyncMessage('test:innerHTML', {
13 data: XPCNativeWrapper.unwrap(content).document.body.innerHTML
14 });
15 }
17 var mm;
18 var iframe;
19 var loadedEvents = 0;
20 var countAcc;
22 function runTest() {
23 iframe = document.createElement('iframe');
24 SpecialPowers.wrap(iframe).mozbrowser = true;
26 iframe.addEventListener('mozbrowserloadend', mozbrowserLoaded);
28 iframe.src = 'file_bug741717.sjs';
29 document.body.appendChild(iframe);
30 }
32 function iframeBodyRecv(data) {
33 data = SpecialPowers.wrap(data);
34 var previousCount = countAcc;
35 var currentCount = parseInt(data.json.data, 10);
36 countAcc = currentCount;
37 switch (loadedEvents) {
38 case 1:
39 iframe.reload();
40 break;
41 case 2:
42 ok(true, 'reload was triggered');
43 ok(previousCount === currentCount, 'reload was a soft reload');
44 iframe.reload(true);
45 break;
46 case 3:
47 ok(currentCount > previousCount, 'reload was a hard reload');
48 SimpleTest.finish();
49 }
50 }
52 function mozbrowserLoaded() {
53 loadedEvents++;
54 mm = SpecialPowers.getBrowserFrameMessageManager(iframe);
55 mm.addMessageListener('test:innerHTML', iframeBodyRecv);
56 mm.loadFrameScript('data:,(' + iframeScript.toString() + ')();', false);
57 }
59 addEventListener('testready', runTest);