зеркало из https://github.com/mozilla/gecko-dev.git
101 строка
3.5 KiB
HTML
101 строка
3.5 KiB
HTML
<html xmlns="http://www.w3.org/1999/xhtml" manifest="http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/simpleManifest.cacheManifest">
|
|
<head>
|
|
<title>Bug 460353</title>
|
|
|
|
<!--
|
|
This test checks that each iframe creates its own
|
|
scope. Actually, we just check that it loads and updates
|
|
its associated cache. There is no check that the cache is the
|
|
expected one, there is no API to gain that information.
|
|
-->
|
|
|
|
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
|
<script type="text/javascript" src="/tests/dom/tests/mochitest/ajax/offline/offlineTests.js"></script>
|
|
|
|
<script class="testbody" type="text/javascript">
|
|
|
|
var result = new Array();
|
|
var expectedUpdates = 3; // 2 iframes and our self
|
|
|
|
applicationCache.oncached = onUpdatePassed;
|
|
applicationCache.onnoupdate = onUpdatePassed;
|
|
|
|
SpecialPowers.pushPermissions([{'type': 'offline-app', 'allow': true, 'context': document}], init);
|
|
|
|
function onUpdatePassed()
|
|
{
|
|
if (!(--expectedUpdates))
|
|
SimpleTest.executeSoon(finish);
|
|
}
|
|
|
|
function init()
|
|
{
|
|
var iframes = document.getElementsByTagName('iframe');
|
|
iframes[0].src = "460353_iframe_nomanifest.html";
|
|
iframes[1].src = "460353_iframe_ownmanifest.html";
|
|
iframes[2].src = "460353_iframe_samemanifest.html";
|
|
}
|
|
|
|
function frameOnLoad(frameid, status)
|
|
{
|
|
var obj = new Object();
|
|
result[frameid] = obj;
|
|
|
|
result[frameid].load = true;
|
|
result[frameid].cacheStatus = status;
|
|
}
|
|
|
|
function frameOnUpdate(frameid, ok, status)
|
|
{
|
|
result[frameid].update = true;
|
|
result[frameid].updateOK = ok;
|
|
result[frameid].cacheStatus = status;
|
|
|
|
onUpdatePassed();
|
|
}
|
|
|
|
function finish()
|
|
{
|
|
SimpleTest.ok(result["same"].load || false, "Frame with the same manifest loads");
|
|
SimpleTest.ok(result["same"].update || false, "Frame with the same manifest cache update notification");
|
|
SimpleTest.ok(result["same"].updateOK || false, "Frame with the same manifest cache update passed OK");
|
|
SimpleTest.is(result["same"].cacheStatus || -1, 1, "Frame with the same manifest cache status was IDLE");
|
|
|
|
SimpleTest.ok(result["diff"].load || false, "Frame with different manifest loads");
|
|
SimpleTest.ok(result["diff"].update || false, "Frame with different manifest cache update notification");
|
|
SimpleTest.ok(result["diff"].updateOK || false, "Frame with different manifest cache update passed OK");
|
|
SimpleTest.is(result["diff"].cacheStatus || -1, 1, "Frame with different manifest cache status was IDLE");
|
|
|
|
SimpleTest.ok(result["noman"].load || false, "Frame with no manifest loads");
|
|
SimpleTest.ok(result["noman"].update == undefined, "Frame with no manifest cache update didn't notify");
|
|
SimpleTest.ok(result["noman"].updateOK == undefined, "Frame with no manifest cache update didn't pass");
|
|
SimpleTest.is(result["noman"].cacheStatus || -1, -1, "Frame with no manifest cache status was undefined");
|
|
|
|
OfflineTest.waitForUpdates(function() {
|
|
cleanCache("http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/simpleManifest.cacheManifest");
|
|
cleanCache("http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/updatingManifest.sjs");
|
|
|
|
SimpleTest.finish();
|
|
});
|
|
}
|
|
|
|
function cleanCache(manifestURL)
|
|
{
|
|
var cache = OfflineTest.getActiveCache(manifestURL);
|
|
dump("Discarding cache for " + manifestURL + " cache=" + cache + "\n");
|
|
if (cache)
|
|
cache.discard();
|
|
}
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
</script>
|
|
|
|
<body>
|
|
<iframe></iframe>
|
|
<iframe></iframe>
|
|
<iframe></iframe>
|
|
</body>
|
|
</html>
|