Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
const RELATIVE_DIR = "toolkit/components/pdfjs/test/";
const TESTROOT = "https://example.com/browser/" + RELATIVE_DIR;
/**
* Test that the pdf has the correct color thanks to the SVG filters.
*/
add_task(async function test() {
let mimeService = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService);
let handlerInfo = mimeService.getFromTypeAndExtension(
"application/pdf",
"pdf"
);
// Make sure pdf.js is the default handler.
is(
handlerInfo.alwaysAskBeforeHandling,
false,
"pdf handler defaults to always-ask is false"
);
is(
handlerInfo.preferredAction,
Ci.nsIHandlerInfo.handleInternally,
"pdf handler defaults to internal"
);
info("Pref action: " + handlerInfo.preferredAction);
await BrowserTestUtils.withNewTab(
{ gBrowser, url: "about:blank" },
async function (browser) {
// check that PDF is opened with internal viewer
await waitForPdfJSCanvas(browser, `${TESTROOT}file_pdfjs_test.pdf`);
await clickOn(browser, "#secondaryToolbarToggleButton");
await clickOn(browser, "#documentProperties");
await waitForSelector(browser, "#documentPropertiesDialog");
const selectorExpected = new Map([
["#fileNameField", "file_pdfjs_test.pdf"],
["#fileSizeField", "147 KB (150,611 bytes)"],
["#titleField", "Untitled"],
["#authorField", "-"],
["#subjectField", "-"],
["#keywordsField", "-"],
["#creationDateField", s => s.startsWith("1/17/13, ")],
["#modificationDateField", s => s.startsWith("1/17/13, ")],
["#creatorField", "PDF24 Creator"],
["#producerField", "GPL Ghostscript 9.06"],
["#versionField", "1.6"],
["#pageCountField", "5"],
["#pageSizeField", "8.5 × 11 in (Letter, portrait)"],
["#linearizedField", "No"],
]);
for (const [selector, expected] of selectorExpected) {
await waitForSelector(browser, selector);
const text = await SpecialPowers.spawn(
browser,
[selector],
async sel => content.document.querySelector(sel).textContent
);
if (typeof expected === "function") {
ok(expected(text), `${selector} must be correct`);
continue;
}
is(text, expected, `${selector} must be correct`);
}
await clickOn(browser, "#documentPropertiesClose");
await waitForPdfJSClose(browser);
}
);
});