62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
/* 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";
|
|
|
|
const jsonText = '{ "name": "value" }\n';
|
|
const prettyJson = '{\n "name": "value"\n}';
|
|
|
|
add_task(async function () {
|
|
info("Test copy raw data started");
|
|
|
|
await addJsonViewTab(TEST_JSON_URL);
|
|
|
|
// Select the RawData tab
|
|
await selectJsonViewContentTab("rawdata");
|
|
|
|
// Check displayed JSON
|
|
const text = await getElementText(".textPanelBox .data");
|
|
is(text, jsonText, "Proper JSON must be displayed in DOM");
|
|
|
|
const browser = gBrowser.selectedBrowser;
|
|
|
|
// Verify JSON copy into the clipboard.
|
|
await waitForClipboardPromise(function setup() {
|
|
BrowserTestUtils.synthesizeMouseAtCenter(
|
|
".textPanelBox .toolbar button.copy",
|
|
{},
|
|
browser
|
|
);
|
|
}, jsonText);
|
|
|
|
// Click 'Pretty Print' button
|
|
await BrowserTestUtils.synthesizeMouseAtCenter(
|
|
".textPanelBox .toolbar button.prettyprint",
|
|
{},
|
|
browser
|
|
);
|
|
|
|
let prettyText = await getElementText(".textPanelBox .data");
|
|
prettyText = normalizeNewLines(prettyText);
|
|
ok(
|
|
prettyText.startsWith(prettyJson),
|
|
"Pretty printed JSON must be displayed"
|
|
);
|
|
|
|
// Verify JSON copy into the clipboard.
|
|
await waitForClipboardPromise(
|
|
function setup() {
|
|
BrowserTestUtils.synthesizeMouseAtCenter(
|
|
".textPanelBox .toolbar button.copy",
|
|
{},
|
|
browser
|
|
);
|
|
},
|
|
function validator(value) {
|
|
const str = normalizeNewLines(value);
|
|
return str == prettyJson;
|
|
}
|
|
);
|
|
});
|