blob: d2346ea422564ac74d3f20e91ed859198bb63907 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
/* -*- 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");
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;
});
});
|