author | Ehsan Akhgari <ehsan@mozilla.com> |
Sat, 08 Aug 2015 18:13:51 -0400 | |
changeset 256976 | 7a7febd0dcbe437086acdeee2225f3fe9209e4d1 |
parent 256975 | bbc6b3d81906c5eab30f27ee14c65128dbb60bea |
child 256977 | 858b4f682c5a5367ee10d001c27badb1de887373 |
push id | 29197 |
push user | philringnalda@gmail.com |
push date | Sun, 09 Aug 2015 20:35:19 +0000 |
treeherder | mozilla-central@fd69d51a4068 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
bugs | 1187159 |
milestone | 42.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
netwerk/test/mochitests/mochitest.ini | file | annotate | diff | comparison | revisions | |
netwerk/test/mochitests/test_web_packaged_app.html | file | annotate | diff | comparison | revisions | |
netwerk/test/mochitests/web_packaged_app.sjs | file | annotate | diff | comparison | revisions |
--- a/netwerk/test/mochitests/mochitest.ini +++ b/netwerk/test/mochitests/mochitest.ini @@ -5,24 +5,22 @@ support-files = method.sjs partial_content.sjs rel_preconnect.sjs user_agent.sjs user_agent_update.sjs redirect_idn.html^headers^ redirect_idn.html empty.html - web_packaged_app.sjs [test_arraybufferinputstream.html] [test_partially_cached_content.html] [test_rel_preconnect.html] skip-if = e10s [test_uri_scheme.html] [test_user_agent_overrides.html] skip-if = e10s [test_user_agent_updates.html] skip-if = e10s [test_user_agent_updates_reset.html] [test_xhr_method_case.html] skip-if = e10s [test_idn_redirect.html] -[test_web_packaged_app.html]
deleted file mode 100644 --- a/netwerk/test/mochitests/test_web_packaged_app.html +++ /dev/null @@ -1,210 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <title> Web packaged app </title> - <script type="text/javascript" src="/MochiKit/MochiKit.js"></script> - <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> - <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> -</head> -<body> - -<p id="display"></p> -<div id="content" style="display: none"> - -</div> -<pre id="test"> -<script class="testbody" type="application/javascript;version=1.7"> - -var Cc = SpecialPowers.Cc; -var Ci = SpecialPowers.Ci; -var Cu = SpecialPowers.Cu; -var Cr = SpecialPowers.Cr; -var LoadContextInfo = Cu.import("resource://gre/modules/LoadContextInfo.jsm", {}).LoadContextInfo; -var CommonUtils = Cu.import("resource://services-common/utils.js", {}).CommonUtils; - -function CacheCallback(expect) { - this.expect = expect || true; -} - -CacheCallback.prototype = { - QueryInterface: function(iid) { - if (!iid.equals(Ci.nsISupports) && - !iid.equals(Ci.nsICacheEntryOpenCallback)) { - throw Cr.NS_ERROR_NO_INTERFACE; - } - return this; - }, - onCacheEntryCheck: function() { return Ci.nsICacheEntryOpenCallback.ENTRY_WANTED; }, - onCacheEntryAvailable: function(entry, isnew, applicationCache, status) { - is(status, this.expect ? Cr.NS_OK : Cr.NS_ERROR_CACHE_KEY_NOT_FOUND, "check status"); - is(!!entry, this.expect, "check if entry exists"); - SpecialPowers.executeSoon(continueTest); - } -}; - -function checkCacheEntry(url, exists, appId) { - var loadContext = appId ? LoadContextInfo.custom(false, false, appId, false) : LoadContextInfo.default; - var cacheService = Cc["@mozilla.org/netwerk/cache-storage-service;1"] - .getService(Ci.nsICacheStorageService); - var cache = cacheService.diskCacheStorage(loadContext, false); - cache.asyncOpenURI(CommonUtils.makeURI(url), "", 0, new CacheCallback(exists)); -} - -var gGenerator = runTest(); - -addLoadEvent(go); -function go() { - SpecialPowers.pushPermissions( - [ - { "type": "webapps-manage", "allow": 1, "context": document }, - { "type": "embed-apps", "allow": 1, "context": document }, - { "type": "browser", "allow": 1, "context": document } - ], - function() { - SpecialPowers.pushPrefEnv({"set": [['network.http.enable-packaged-apps', true], - ["dom.mozBrowserFramesEnabled", true]]}, - function() { gGenerator.next(); } ); - }); -} - -function continueTest() { - try { - gGenerator.next(); - } catch (e if e instanceof StopIteration) { - finish(); - } -} - -function finish() { - SimpleTest.finish(); -} - -function cbError(aEvent) { - ok(false, "Error callback invoked " + - aEvent.target.error.name + " " + aEvent.target.error.message); - finish(); -} - -SimpleTest.waitForExplicitFinish(); - -function runTest() { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - // Install the app - SpecialPowers.setAllAppsLaunchable(true); - var manifestURL = "http://test/tests/dom/apps/tests/file_app.sjs?apptype=hosted&getmanifest=true"; - - SpecialPowers.autoConfirmAppInstall(continueTest); - yield undefined; - - SpecialPowers.autoConfirmAppUninstall(continueTest); - yield undefined; - - var request = navigator.mozApps.install(manifestURL, { }); - request.onerror = cbError; - request.onsuccess = continueTest; - yield undefined; - - var app = request.result; - ok(app, "App is non-null"); - is(app.manifestURL, manifestURL, "App manifest url is correct."); - - // Get the AppID - let appsService = Cc["@mozilla.org/AppsService;1"].getService(Ci.nsIAppsService); - let appId = appsService.getAppLocalIdByManifestURL(manifestURL); - - checkCacheEntry("http://mochi.test:8888/tests/netwerk/test/mochitests/web_packaged_app.sjs", false, appId); - yield undefined; - - // Check that the entry does not exist - checkCacheEntry("http://mochi.test:8888/tests/netwerk/test/mochitests/web_packaged_app.sjs!//index.html", false, appId); - yield undefined; - - // Run the app and load a resource from the package - runApp(app, continueTest); - yield undefined; - - // Check that the cache entry exists after being loaded in the app - checkCacheEntry("http://mochi.test:8888/tests/netwerk/test/mochitests/web_packaged_app.sjs!//index.html", true, appId); - yield undefined; - - checkCacheEntry("http://mochi.test:8888/tests/netwerk/test/mochitests/web_packaged_app.sjs", true, appId); - yield undefined; - - request = navigator.mozApps.mgmt.uninstall(app); - request.onerror = cbError; - request.onsuccess = continueTest; - yield undefined; - is(request.result, manifestURL, "App uninstalled."); - - // Check that the cache entry went away after uninstalling the app - checkCacheEntry("http://mochi.test:8888/tests/netwerk/test/mochitests/web_packaged_app.sjs!//index.html", false, appId); - yield undefined; - - checkCacheEntry("http://mochi.test:8888/tests/netwerk/test/mochitests/web_packaged_app.sjs", false); - yield undefined; - - // Check that the entry does not exist - checkCacheEntry("http://mochi.test:8888/tests/netwerk/test/mochitests/web_packaged_app.sjs!//scripts/app.js", false); - yield undefined; - - // Test that we can load a file in an iframe, with default permissions - var iframe = document.createElement("iframe"); - iframe.addEventListener("load", continueTest, false); - document.body.appendChild(iframe); - iframe.src = "http://mochi.test:8888/tests/netwerk/test/mochitests/web_packaged_app.sjs!//scripts/app.js"; - yield undefined; - ok(iframe.contentWindow.document.body.innerHTML.includes("..."), "This is the right file"); - document.body.removeChild(iframe); - - checkCacheEntry("http://mochi.test:8888/tests/netwerk/test/mochitests/web_packaged_app.sjs", true); - yield undefined; - - // Check that the entry now exists - checkCacheEntry("http://mochi.test:8888/tests/netwerk/test/mochitests/web_packaged_app.sjs!//scripts/app.js", true); - yield undefined; - - // Test that a fetch works - fetch('http://mochi.test:8888/tests/netwerk/test/mochitests/web_packaged_app.sjs!//index.html') - .then(function(res) { - ok(res.ok, "completed fetch"); - res.text().then(function(body) { - ok(body.includes("Web Packaged App Index"), "correct content"); - continueTest(); - }); } - , function(e) { - ok(false, "error in fetch"); - }); - yield undefined; - -} - -function runApp(aApp, aCallback) { - var ifr = document.createElement('iframe'); - ifr.setAttribute('mozbrowser', 'true'); - ifr.setAttribute('mozapp', aApp.manifestURL); - ifr.src = "web_packaged_app.sjs!//index.html"; - - ifr.addEventListener('mozbrowsershowmodalprompt', function onAlert(e) { - var message = e.detail.message; - info("Got message " + message); - - if (message.startsWith("OK:")) { - ok(true, message.substring(3, message.length)); - } else if (message.startsWith("ERROR:")) { - ok(false, message.substring(6, message.length)); - } else if (message == "DONE") { - ok(true, "Done test"); - ifr.removeEventListener('mozbrowsershowmodalprompt', onAlert, false); - document.body.removeChild(ifr); - continueTest(); - } - }, false); - - document.body.appendChild(ifr); -} - -</script> -</pre> -</body> -</html>
deleted file mode 100644 --- a/netwerk/test/mochitests/web_packaged_app.sjs +++ /dev/null @@ -1,35 +0,0 @@ -var Cc = Components.classes; -var Ci = Components.interfaces; -var Cu = Components.utils; - -function handleRequest(request, response) -{ - response.setHeader("Content-Type", "application/package", false); - response.write(octetStreamData.getData()); - return; -} - -// The package content -// getData formats it as described at http://www.w3.org/TR/web-packaging/#streamable-package-format -var octetStreamData = { - content: [ - { headers: ["Content-Location: /index.html", "Content-Type: text/html"], data: "<html>\r\n <head>\r\n <script> alert('OK: hello'); alert('DONE'); </script>\r\n</head>\r\n Web Packaged App Index\r\n</html>\r\n", type: "text/html" }, - { headers: ["Content-Location: /scripts/app.js", "Content-Type: text/javascript"], data: "module Math from '/scripts/helpers/math.js';\r\n...\r\n", type: "text/javascript" }, - { headers: ["Content-Location: /scripts/helpers/math.js", "Content-Type: text/javascript"], data: "export function sum(nums) { ... }\r\n...\r\n", type: "text/javascript" } - ], - token : "gc0pJq0M:08jU534c0p", - getData: function() { - var str = ""; - for (var i in this.content) { - str += "--" + this.token + "\r\n"; - for (var j in this.content[i].headers) { - str += this.content[i].headers[j] + "\r\n"; - } - str += "\r\n"; - str += this.content[i].data + "\r\n"; - } - - str += "--" + this.token + "--"; - return str; - } -}