tenfourfox/devtools/client/jsonview/test/browser_jsonview_copy_rawdata.js
Cameron Kaiser c9b2922b70 hello FPR
2017-04-19 00:56:45 -07:00

53 lines
1.6 KiB
JavaScript

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