summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/markup/test/browser_markup_events_form.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/inspector/markup/test/browser_markup_events_form.js')
-rw-r--r--devtools/client/inspector/markup/test/browser_markup_events_form.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/devtools/client/inspector/markup/test/browser_markup_events_form.js b/devtools/client/inspector/markup/test/browser_markup_events_form.js
new file mode 100644
index 000000000..ab029720c
--- /dev/null
+++ b/devtools/client/inspector/markup/test/browser_markup_events_form.js
@@ -0,0 +1,61 @@
+/* vim: set ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+// Testing the feature whereby custom registered actors can listen to
+// 'form' events sent by the NodeActor to hook custom data to it.
+// The test registers one backend actor providing custom form data
+// and checks that the value is properly sent to the client (NodeFront).
+
+const TEST_PAGE_URL = URL_ROOT + "doc_markup_events_form.html";
+const TEST_ACTOR_URL = CHROME_URL_ROOT + "actor_events_form.js";
+
+var {EventsFormFront} = require(TEST_ACTOR_URL);
+
+add_task(function* () {
+ info("Opening the Toolbox");
+ let tab = yield addTab(TEST_PAGE_URL);
+ let toolbox = yield openToolboxForTab(tab, "webconsole");
+
+ info("Registering test actor");
+ let {registrar, front} = yield registerTestActor(toolbox);
+
+ info("Selecting the Inspector panel");
+ let inspector = yield toolbox.selectTool("inspector");
+ let container = yield getContainerForSelector("#container", inspector);
+ isnot(container, null, "There must be requested container");
+
+ let nodeFront = container.node;
+ let value = nodeFront.getFormProperty("test-property");
+ is(value, "test-value", "There must be custom property");
+
+ info("Unregistering actor");
+ yield unregisterActor(registrar, front);
+});
+
+function registerTestActor(toolbox) {
+ let deferred = defer();
+
+ let options = {
+ prefix: "eventsFormActor",
+ actorClass: "EventsFormActor",
+ moduleUrl: TEST_ACTOR_URL,
+ };
+
+ // Register as a tab actor
+ let client = toolbox.target.client;
+ registerTabActor(client, options).then(({registrar, form}) => {
+ // Attach to the registered actor
+ let front = EventsFormFront(client, form);
+ front.attach().then(() => {
+ deferred.resolve({
+ front: front,
+ registrar: registrar,
+ });
+ });
+ });
+
+ return deferred.promise;
+}