browser_bug519216.js (1369B)
1 function test() { 2 waitForExplicitFinish(); 3 gBrowser.addProgressListener(progressListener1); 4 gBrowser.addProgressListener(progressListener2); 5 gBrowser.addProgressListener(progressListener3); 6 BrowserTestUtils.startLoadingURIString(gBrowser, "data:text/plain,bug519216"); 7 } 8 9 var calledListener1 = false; 10 var progressListener1 = { 11 onLocationChange: function onLocationChange() { 12 calledListener1 = true; 13 gBrowser.removeProgressListener(this); 14 }, 15 }; 16 17 var calledListener2 = false; 18 var progressListener2 = { 19 onLocationChange: function onLocationChange() { 20 ok(calledListener1, "called progressListener1 before progressListener2"); 21 calledListener2 = true; 22 gBrowser.removeProgressListener(this); 23 }, 24 }; 25 26 var progressListener3 = { 27 onLocationChange: function onLocationChange() { 28 ok(calledListener2, "called progressListener2 before progressListener3"); 29 gBrowser.removeProgressListener(this); 30 gBrowser.addProgressListener(progressListener4); 31 executeSoon(function () { 32 expectListener4 = true; 33 gBrowser.reload(); 34 }); 35 }, 36 }; 37 38 var expectListener4 = false; 39 var progressListener4 = { 40 onLocationChange: function onLocationChange() { 41 ok( 42 expectListener4, 43 "didn't call progressListener4 for the first location change" 44 ); 45 gBrowser.removeProgressListener(this); 46 executeSoon(finish); 47 }, 48 };