diff options
Diffstat (limited to 'devtools/client/webide/test/test_import.html')
-rw-r--r-- | devtools/client/webide/test/test_import.html | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/devtools/client/webide/test/test_import.html b/devtools/client/webide/test/test_import.html new file mode 100644 index 000000000..830198cca --- /dev/null +++ b/devtools/client/webide/test/test_import.html @@ -0,0 +1,82 @@ +<!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> |