Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* 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 that the about:debugging document and the profiler dialog document
// use the expected document direction.
add_task(async function test_direction_is_ltr_by_default() {
await testAboutDebuggingDocsDirection("ltr");
});
add_task(async function test_direction_is_rtl_for_bidi_pseudolocale() {
await pushPref("intl.l10n.pseudo", "bidi");
await testAboutDebuggingDocsDirection("rtl");
});
async function testAboutDebuggingDocsDirection(expectedDir) {
const mocks = new Mocks();
const { document, usbClient } = await setupTestForMockUSBRuntime(mocks);
is(document.dir, expectedDir, "document dir is " + expectedDir);
info("Open the profiler dialog");
await openProfilerDialog(usbClient, document);
const profilerDialogFrame = document.querySelector(
".qa-profiler-dialog iframe"
);
ok(profilerDialogFrame, "Found Profiler dialog iframe");
const profilerDoc = profilerDialogFrame.contentWindow.document;
is(profilerDoc.dir, expectedDir, "Profiler document dir is " + expectedDir);
await teardownTestForMockUSBRuntime(mocks, document);
}
async function setupTestForMockUSBRuntime(mocks) {
info("Setup mock USB runtime");
const usbClient = mocks.createUSBRuntime("runtimeId", {
deviceName: "deviceName",
name: "runtimeName",
});
info("Open about:debugging and select runtime page for mock USB runtime");
const { document } = await openAboutDebugging();
mocks.emitUSBUpdate();
await connectToRuntime("deviceName", document);
await selectRuntime("deviceName", "runtimeName", document);
return { document, usbClient };
}
async function teardownTestForMockUSBRuntime(mocks, doc) {
info("Remove mock USB runtime");
mocks.removeUSBRuntime("runtimeId");
mocks.emitUSBUpdate();
await waitUntilUsbDeviceIsUnplugged("deviceName", doc);
}