michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: third test"; michael@0: michael@0: michael@0: $("f1").setAttribute("src", doc1); michael@0: $("f2").setAttribute("src", doc2); michael@0: michael@0: function doTheTest() { michael@0: var strs = { "f1": "", "f2" : "" }; michael@0: function attachListener(node, type) { michael@0: var listener = function(e) { michael@0: if (strs[node.id]) strs[node.id] += " "; michael@0: strs[node.id] += node.id + ".page" + type; michael@0: } michael@0: node.addEventListener("page" + type, listener, false); michael@0: michael@0: listener.detach = function() { michael@0: node.removeEventListener("page" + type, listener, false); michael@0: } michael@0: return listener; michael@0: } michael@0: michael@0: var l1 = attachListener($("f1"), "show"); michael@0: var l2 = attachListener($("f1"), "hide"); michael@0: var l3 = attachListener($("f2"), "show"); michael@0: var l4 = attachListener($("f2"), "hide"); michael@0: michael@0: $("f1").swapDocShells($("f2")); michael@0: michael@0: is(strs["f1"], "f1.pagehide f1.pageshow", michael@0: "Expected hide then show on first loaded page"); michael@0: is(strs["f2"], "f2.pagehide f2.pageshow", michael@0: "Expected hide then show on second loaded page"); michael@0: michael@0: function listener2() { michael@0: $("f2").removeEventListener("testEvt", listener2, false); michael@0: michael@0: strs = { "f1": "", "f2" : "" }; michael@0: michael@0: $("f1").swapDocShells($("f2")); michael@0: is(strs["f1"], "f1.pagehide", michael@0: "Expected hide on already-loaded page, then nothing"); michael@0: is(strs["f2"], "f2.pageshow f2.pagehide f2.pageshow", michael@0: "Expected show on still-loading page, then hide on it, then show " + michael@0: "on already-loaded page"); michael@0: michael@0: strs = { "f1": "", "f2" : "" }; michael@0: michael@0: $("f1").addEventListener("pageshow", listener3, false); michael@0: } michael@0: michael@0: function listener3() { michael@0: $("f1").removeEventListener("pageshow", listener3, false); michael@0: michael@0: is(strs["f1"], "f1.pageshow", michael@0: "Expected show as our page finishes loading"); michael@0: is(strs["f2"], "", "Expected no more events here."); michael@0: michael@0: l1.detach(); michael@0: l2.detach(); michael@0: l3.detach(); michael@0: l4.detach(); michael@0: michael@0: window.close(); michael@0: SimpleTest.finish(); michael@0: } michael@0: michael@0: $("f2").addEventListener("testEvt", listener2, false, true); michael@0: $("f2").setAttribute("src", doc3); michael@0: } michael@0: michael@0: ]]> michael@0: