<!DOCTYPE html> <html> <head> <meta charset="utf8"> <title></title> <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> <script type="application/javascript" src="chrome://mochikit/content/chrome-harness.js"></script> <script type="application/javascript;version=1.8" src="head.js"></script> <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"> </head> <body> <script type="application/javascript;version=1.8"> window.onload = function() { SimpleTest.waitForExplicitFinish(); Task.spawn(function*() { let win = yield openWebIDE(); let docProject = getProjectDocument(win); let winProject = getProjectWindow(win); let packagedAppLocation = getTestFilePath("app"); yield win.AppProjects.load(); is(win.AppProjects.projects.length, 0, "IDB is empty"); info("to call importPackagedApp(" + packagedAppLocation + ")"); ok(!win.UI._busyPromise, "UI is not busy"); let onValidated = waitForUpdate(win, "project-validated"); let onDetails = waitForUpdate(win, "details"); yield winProject.projectList.importPackagedApp(packagedAppLocation); yield onValidated; yield onDetails; let project = win.AppManager.selectedProject; is(project.location, packagedAppLocation, "Location is valid"); is(project.name, "A name (in app directory)", "name field has been updated"); is(project.manifest.launch_path, "/index.html", "manifest found. launch_path valid."); is(project.manifest.description, "desc", "manifest found. description valid"); yield nextTick(); let hostedAppManifest = TEST_BASE + "hosted_app.manifest"; yield winProject.projectList.importHostedApp(hostedAppManifest); yield waitForUpdate(win, "project-validated"); project = win.AppManager.selectedProject; is(project.location, hostedAppManifest, "Location is valid"); is(project.name, "hosted manifest name property", "name field has been updated"); yield nextTick(); hostedAppManifest = TEST_BASE + "/app"; yield winProject.projectList.importHostedApp(hostedAppManifest); yield waitForUpdate(win, "project-validated"); project = win.AppManager.selectedProject; ok(project.location.endsWith('manifest.webapp'), "The manifest was found and the project was updated"); let panelNode = docProject.querySelector("#project-panel"); let items = panelNode.querySelectorAll(".panel-item"); // 4 controls, + 2 projects is(items.length, 6, "6 projects in panel"); is(items[3].querySelector("span").textContent, "A name (in app directory)", "Panel text is correct"); is(items[4].querySelector("span").textContent, "hosted manifest name property", "Panel text is correct"); yield closeWebIDE(win); yield removeAllProjects(); SimpleTest.finish(); }).then(null, e => { ok(false, "Exception: " + e); SimpleTest.finish(); }); } </script> </body> </html>