dom/browser-element/mochitest/browserElement_Reload.js

changeset 2
7e26c7da4463
equal deleted inserted replaced
-1:000000000000 0:38cf137804f0
1 /* Any copyright is dedicated to the public domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
3
4 // Bug 741717 - Test the reload ability of <iframe mozbrowser>.
5
6 "use strict";
7 SimpleTest.waitForExplicitFinish();
8 browserElementTestHelpers.setEnabledPref(true);
9 browserElementTestHelpers.addPermission();
10
11 var iframeScript = function() {
12 sendAsyncMessage('test:innerHTML', {
13 data: XPCNativeWrapper.unwrap(content).document.body.innerHTML
14 });
15 }
16
17 var mm;
18 var iframe;
19 var loadedEvents = 0;
20 var countAcc;
21
22 function runTest() {
23 iframe = document.createElement('iframe');
24 SpecialPowers.wrap(iframe).mozbrowser = true;
25
26 iframe.addEventListener('mozbrowserloadend', mozbrowserLoaded);
27
28 iframe.src = 'file_bug741717.sjs';
29 document.body.appendChild(iframe);
30 }
31
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 }
51
52 function mozbrowserLoaded() {
53 loadedEvents++;
54 mm = SpecialPowers.getBrowserFrameMessageManager(iframe);
55 mm.addMessageListener('test:innerHTML', iframeBodyRecv);
56 mm.loadFrameScript('data:,(' + iframeScript.toString() + ')();', false);
57 }
58
59 addEventListener('testready', runTest);

mercurial