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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
// Test the creation of the geometry highlighter elements.
const TEST_URL = "data:text/html;charset=utf-8," +
"<div style='position:absolute;left: 0; top: 0; " +
"width: 40000px; height: 8000px'></div>";
const ID = "rulers-highlighter-";
// Maximum size, in pixel, for the horizontal ruler and vertical ruler
// used by RulersHighlighter
const RULERS_MAX_X_AXIS = 10000;
const RULERS_MAX_Y_AXIS = 15000;
// Number of steps after we add a text in RulersHighliter;
// currently the unit is in pixel.
const RULERS_TEXT_STEP = 100;
add_task(function* () {
let { inspector, testActor } = yield openInspectorForURL(TEST_URL);
let front = inspector.inspector;
let highlighter = yield front.getHighlighterByType("RulersHighlighter");
yield isHiddenByDefault(highlighter, inspector, testActor);
yield hasRightLabelsContent(highlighter, inspector, testActor);
yield highlighter.finalize();
});
function* isHiddenByDefault(highlighterFront, inspector, testActor) {
info("Checking the highlighter is hidden by default");
let hidden = yield testActor.getHighlighterNodeAttribute(
ID + "elements", "hidden", highlighterFront);
is(hidden, "true", "highlighter is hidden by default");
info("Checking the highlighter is displayed when asked");
// the rulers doesn't need any node, but as highligher it seems mandatory
// ones, so the body is given
let body = yield getNodeFront("body", inspector);
yield highlighterFront.show(body);
hidden = yield testActor.getHighlighterNodeAttribute(
ID + "elements", "hidden", highlighterFront);
isnot(hidden, "true", "highlighter is visible after show");
}
function* hasRightLabelsContent(highlighterFront, inspector, testActor) {
info("Checking the rulers have the proper text, based on rulers' size");
let contentX = yield testActor.getHighlighterNodeTextContent(
`${ID}x-axis-text`, highlighterFront);
let contentY = yield testActor.getHighlighterNodeTextContent(
`${ID}y-axis-text`, highlighterFront);
let expectedX = "";
for (let i = RULERS_TEXT_STEP; i < RULERS_MAX_X_AXIS; i += RULERS_TEXT_STEP) {
expectedX += i;
}
is(contentX, expectedX, "x axis text content is correct");
let expectedY = "";
for (let i = RULERS_TEXT_STEP; i < RULERS_MAX_Y_AXIS; i += RULERS_TEXT_STEP) {
expectedY += i;
}
is(contentY, expectedY, "y axis text content is correct");
}
|