mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-07 16:28:38 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
180
devtools/server/tests/unit/test_breakpoint-actor-map.js
Normal file
180
devtools/server/tests/unit/test_breakpoint-actor-map.js
Normal file
|
|
@ -0,0 +1,180 @@
|
|||
/* -*- js-indent-level: 2; indent-tabs-mode: nil -*- */
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
"use strict";
|
||||
|
||||
// Test the functionality of the BreakpointActorMap object.
|
||||
|
||||
const { BreakpointActorMap } = require("devtools/server/actors/script");
|
||||
|
||||
function run_test() {
|
||||
test_get_actor();
|
||||
test_set_actor();
|
||||
test_delete_actor();
|
||||
test_find_actors();
|
||||
test_duplicate_actors();
|
||||
}
|
||||
|
||||
function test_get_actor() {
|
||||
let bpStore = new BreakpointActorMap();
|
||||
let location = {
|
||||
originalSourceActor: { actor: "actor1" },
|
||||
originalLine: 3
|
||||
};
|
||||
let columnLocation = {
|
||||
originalSourceActor: { actor: "actor2" },
|
||||
originalLine: 5,
|
||||
originalColumn: 15
|
||||
};
|
||||
|
||||
// Shouldn't have breakpoint
|
||||
do_check_eq(null, bpStore.getActor(location),
|
||||
"Breakpoint not added and shouldn't exist.");
|
||||
|
||||
bpStore.setActor(location, {});
|
||||
do_check_true(!!bpStore.getActor(location),
|
||||
"Breakpoint added but not found in Breakpoint Store.");
|
||||
|
||||
bpStore.deleteActor(location);
|
||||
do_check_eq(null, bpStore.getActor(location),
|
||||
"Breakpoint removed but still exists.");
|
||||
|
||||
// Same checks for breakpoint with a column
|
||||
do_check_eq(null, bpStore.getActor(columnLocation),
|
||||
"Breakpoint with column not added and shouldn't exist.");
|
||||
|
||||
bpStore.setActor(columnLocation, {});
|
||||
do_check_true(!!bpStore.getActor(columnLocation),
|
||||
"Breakpoint with column added but not found in Breakpoint Store.");
|
||||
|
||||
bpStore.deleteActor(columnLocation);
|
||||
do_check_eq(null, bpStore.getActor(columnLocation),
|
||||
"Breakpoint with column removed but still exists in Breakpoint Store.");
|
||||
}
|
||||
|
||||
function test_set_actor() {
|
||||
// Breakpoint with column
|
||||
let bpStore = new BreakpointActorMap();
|
||||
let location = {
|
||||
originalSourceActor: { actor: "actor1" },
|
||||
originalLine: 10,
|
||||
originalColumn: 9
|
||||
};
|
||||
bpStore.setActor(location, {});
|
||||
do_check_true(!!bpStore.getActor(location),
|
||||
"We should have the column breakpoint we just added");
|
||||
|
||||
// Breakpoint without column (whole line breakpoint)
|
||||
location = {
|
||||
originalSourceActor: { actor: "actor2" },
|
||||
originalLine: 103
|
||||
};
|
||||
bpStore.setActor(location, {});
|
||||
do_check_true(!!bpStore.getActor(location),
|
||||
"We should have the whole line breakpoint we just added");
|
||||
}
|
||||
|
||||
function test_delete_actor() {
|
||||
// Breakpoint with column
|
||||
let bpStore = new BreakpointActorMap();
|
||||
let location = {
|
||||
originalSourceActor: { actor: "actor1" },
|
||||
originalLine: 10,
|
||||
originalColumn: 9
|
||||
};
|
||||
bpStore.setActor(location, {});
|
||||
bpStore.deleteActor(location);
|
||||
do_check_eq(bpStore.getActor(location), null,
|
||||
"We should not have the column breakpoint anymore");
|
||||
|
||||
// Breakpoint without column (whole line breakpoint)
|
||||
location = {
|
||||
originalSourceActor: { actor: "actor2" },
|
||||
originalLine: 103
|
||||
};
|
||||
bpStore.setActor(location, {});
|
||||
bpStore.deleteActor(location);
|
||||
do_check_eq(bpStore.getActor(location), null,
|
||||
"We should not have the whole line breakpoint anymore");
|
||||
}
|
||||
|
||||
function test_find_actors() {
|
||||
let bps = [
|
||||
{ originalSourceActor: { actor: "actor1" }, originalLine: 10 },
|
||||
{ originalSourceActor: { actor: "actor1" }, originalLine: 10, originalColumn: 3 },
|
||||
{ originalSourceActor: { actor: "actor1" }, originalLine: 10, originalColumn: 10 },
|
||||
{ originalSourceActor: { actor: "actor1" }, originalLine: 23, originalColumn: 89 },
|
||||
{ originalSourceActor: { actor: "actor2" }, originalLine: 10, originalColumn: 1 },
|
||||
{ originalSourceActor: { actor: "actor2" }, originalLine: 20, originalColumn: 5 },
|
||||
{ originalSourceActor: { actor: "actor2" }, originalLine: 30, originalColumn: 34 },
|
||||
{ originalSourceActor: { actor: "actor2" }, originalLine: 40, originalColumn: 56 }
|
||||
];
|
||||
|
||||
let bpStore = new BreakpointActorMap();
|
||||
|
||||
for (let bp of bps) {
|
||||
bpStore.setActor(bp, bp);
|
||||
}
|
||||
|
||||
// All breakpoints
|
||||
|
||||
let bpSet = new Set(bps);
|
||||
for (let bp of bpStore.findActors()) {
|
||||
bpSet.delete(bp);
|
||||
}
|
||||
do_check_eq(bpSet.size, 0,
|
||||
"Should be able to iterate over all breakpoints");
|
||||
|
||||
// Breakpoints by URL
|
||||
|
||||
bpSet = new Set(bps.filter(bp => { return bp.originalSourceActor.actorID === "actor1"; }));
|
||||
for (let bp of bpStore.findActors({ originalSourceActor: { actorID: "actor1" } })) {
|
||||
bpSet.delete(bp);
|
||||
}
|
||||
do_check_eq(bpSet.size, 0,
|
||||
"Should be able to filter the iteration by url");
|
||||
|
||||
// Breakpoints by URL and line
|
||||
|
||||
bpSet = new Set(bps.filter(bp => { return bp.originalSourceActor.actorID === "actor1" && bp.originalLine === 10; }));
|
||||
let first = true;
|
||||
for (let bp of bpStore.findActors({ originalSourceActor: { actorID: "actor1" }, originalLine: 10 })) {
|
||||
if (first) {
|
||||
do_check_eq(bp.originalColumn, undefined,
|
||||
"Should always get the whole line breakpoint first");
|
||||
first = false;
|
||||
} else {
|
||||
do_check_neq(bp.originalColumn, undefined,
|
||||
"Should not get the whole line breakpoint any time other than first.");
|
||||
}
|
||||
bpSet.delete(bp);
|
||||
}
|
||||
do_check_eq(bpSet.size, 0,
|
||||
"Should be able to filter the iteration by url and line");
|
||||
}
|
||||
|
||||
function test_duplicate_actors() {
|
||||
let bpStore = new BreakpointActorMap();
|
||||
|
||||
// Breakpoint with column
|
||||
let location = {
|
||||
originalSourceActor: { actorID: "foo-actor" },
|
||||
originalLine: 10,
|
||||
originalColumn: 9
|
||||
};
|
||||
bpStore.setActor(location, {});
|
||||
bpStore.setActor(location, {});
|
||||
do_check_eq(bpStore.size, 1, "We should have only 1 column breakpoint");
|
||||
bpStore.deleteActor(location);
|
||||
|
||||
// Breakpoint without column (whole line breakpoint)
|
||||
location = {
|
||||
originalSourceActor: { actorID: "foo-actor" },
|
||||
originalLine: 15
|
||||
};
|
||||
bpStore.setActor(location, {});
|
||||
bpStore.setActor(location, {});
|
||||
do_check_eq(bpStore.size, 1, "We should have only 1 whole line breakpoint");
|
||||
bpStore.deleteActor(location);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue