summaryrefslogtreecommitdiffstats
path: root/devtools/client/jsonview/test/browser_jsonview_copy_json.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/jsonview/test/browser_jsonview_copy_json.js')
-rw-r--r--devtools/client/jsonview/test/browser_jsonview_copy_json.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/devtools/client/jsonview/test/browser_jsonview_copy_json.js b/devtools/client/jsonview/test/browser_jsonview_copy_json.js
new file mode 100644
index 000000000..b4c08b843
--- /dev/null
+++ b/devtools/client/jsonview/test/browser_jsonview_copy_json.js
@@ -0,0 +1,31 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* 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";
+
+const TEST_JSON_URL = URL_ROOT + "simple_json.json";
+
+add_task(function* () {
+ info("Test copy JSON started");
+
+ yield addJsonViewTab(TEST_JSON_URL);
+
+ let countBefore = yield getElementCount(".jsonPanelBox .treeTable .treeRow");
+ ok(countBefore == 1, "There must be one row");
+
+ let text = yield getElementText(".jsonPanelBox .treeTable .treeRow");
+ is(text, "name\"value\"", "There must be proper JSON displayed");
+
+ // Verify JSON copy into the clipboard.
+ let value = "{\"name\": \"value\"}\n";
+ let browser = gBrowser.selectedBrowser;
+ let selector = ".jsonPanelBox .toolbar button.copy";
+ yield waitForClipboardPromise(function setup() {
+ BrowserTestUtils.synthesizeMouseAtCenter(selector, {}, browser);
+ }, function validator(result) {
+ let str = normalizeNewLines(result);
+ return str == value;
+ });
+});