Merge pull request #17161 from Snuffleupagus/NullL10n-test

Add a unit-test to ensure that `NullL10n` won't diverge from the `L10n`-class
This commit is contained in:
Jonas Jenwald 2023-10-24 20:28:34 +02:00 committed by GitHub
commit f098121644
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 6 deletions

View File

@ -30,6 +30,7 @@ import { AnnotationLayerBuilder } from "../../web/annotation_layer_builder.js";
import { DownloadManager } from "../../web/download_manager.js"; import { DownloadManager } from "../../web/download_manager.js";
import { EventBus } from "../../web/event_utils.js"; import { EventBus } from "../../web/event_utils.js";
import { GenericL10n } from "../../web/genericl10n.js"; import { GenericL10n } from "../../web/genericl10n.js";
import { L10n } from "../../web/l10n.js";
import { NullL10n } from "../../web/l10n_utils.js"; import { NullL10n } from "../../web/l10n_utils.js";
import { PDFHistory } from "../../web/pdf_history.js"; import { PDFHistory } from "../../web/pdf_history.js";
import { PDFPageView } from "../../web/pdf_page_view.js"; import { PDFPageView } from "../../web/pdf_page_view.js";
@ -72,4 +73,14 @@ describe("pdfviewer_api", function () {
XfaLayerBuilder, 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 { class GenericL10n extends L10n {
constructor(lang) { constructor(lang) {
super({ lang }); super({ lang });
this.setL10n( this._setL10n(
new DOMLocalization( new DOMLocalization(
[], [],
GenericL10n.#generateBundles.bind( GenericL10n.#generateBundles.bind(

View File

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

View File

@ -144,16 +144,15 @@ class PDFFindBar {
const { findResultsCount } = this; const { findResultsCount } = this;
if (total > 0) { if (total > 0) {
const limit = MATCHES_COUNT_LIMIT, const limit = MATCHES_COUNT_LIMIT;
isLimited = total > limit;
findResultsCount.setAttribute( findResultsCount.setAttribute(
"data-l10n-id", "data-l10n-id",
`pdfjs-find-match-count${isLimited ? "-limit" : ""}` `pdfjs-find-match-count${total > limit ? "-limit" : ""}`
); );
findResultsCount.setAttribute( findResultsCount.setAttribute(
"data-l10n-args", "data-l10n-args",
JSON.stringify(isLimited ? { limit } : { current, total }) JSON.stringify({ limit, current, total })
); );
} else { } else {
findResultsCount.removeAttribute("data-l10n-id"); findResultsCount.removeAttribute("data-l10n-id");