Add a unit-test to ensure that NullL10n won't diverge from the L10n-class

To prevent the *standalone* viewer-components from breaking, we need to ensure that the `NullL10n`-interface won't accidentally diverge from the actual `L10n`-implementations.
This commit is contained in:
Jonas Jenwald 2023-10-24 13:13:14 +02:00
parent 377af6892b
commit e2af77fd6c
3 changed files with 13 additions and 2 deletions

View File

@ -30,6 +30,7 @@ import { AnnotationLayerBuilder } from "../../web/annotation_layer_builder.js";
import { DownloadManager } from "../../web/download_manager.js";
import { EventBus } from "../../web/event_utils.js";
import { GenericL10n } from "../../web/genericl10n.js";
import { L10n } from "../../web/l10n.js";
import { NullL10n } from "../../web/l10n_utils.js";
import { PDFHistory } from "../../web/pdf_history.js";
import { PDFPageView } from "../../web/pdf_page_view.js";
@ -72,4 +73,14 @@ describe("pdfviewer_api", function () {
XfaLayerBuilder,
});
});
it("checks that `NullL10n` implements all methods", function () {
const methods = Object.getOwnPropertyNames(NullL10n).sort();
const baseMethods = Object.getOwnPropertyNames(L10n.prototype)
.filter(m => m !== "constructor" && !m.startsWith("_"))
.sort();
expect(methods).toEqual(baseMethods);
});
});

View File

@ -25,7 +25,7 @@ import { L10n } from "./l10n.js";
class GenericL10n extends L10n {
constructor(lang) {
super({ lang });
this.setL10n(
this._setL10n(
new DOMLocalization(
[],
GenericL10n.#generateBundles.bind(

View File

@ -31,7 +31,7 @@ class L10n {
this.#dir = isRTL ?? L10n.#isRTL(this.#lang) ? "rtl" : "ltr";
}
setL10n(l10n) {
_setL10n(l10n) {
this.#l10n = l10n;
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("TESTING")) {
document.l10n = l10n;