mirror of
https://github.com/classilla/tenfourfox.git
synced 2025-02-15 18:31:43 +00:00
53 lines
1.6 KiB
JavaScript
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;
|
|
});
|
|
});
|