From 650c4f949786a991247b2c6744d446a25cbab573 Mon Sep 17 00:00:00 2001 From: scks1 <126534658+scks1@users.noreply.github.com> Date: Sun, 1 Nov 2026 08:58:13 -0500 Subject: [PATCH] #1597: make validation independent of installed fonts and dictionaries --- crates/pdf/src/tests.rs | 5 ++++- crates/ui-egui/src/tests.rs | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/crates/pdf/src/tests.rs b/crates/pdf/src/tests.rs index 8bdbbce9..ba5cd7d7 100644 --- a/crates/pdf/src/tests.rs +++ b/crates/pdf/src/tests.rs @@ -202,7 +202,10 @@ fn unsafe_url_links_are_not_exported() { /// memory. Its naming/shaping tables still parse, but its missing head table prevents PDF /// embedding. No font bytes or vendor assets are stored as test fixtures. fn font_without_head() -> Vec { - let mut bytes = FontDb::global().face("Ubuntu", "Regular").data().to_vec(); + // An installed variable Ubuntu can expose many faces; use the bundled static + // Light face so the damaged fixture always adds exactly one face. + let bundled = FontDb::with_font_dirs(Vec::new()); + let mut bytes = bundled.face("Ubuntu", "Light").data().to_vec(); for (old, new) in [(b"Ubuntu".as_slice(), b"BadPDF".as_slice()), (b"\0U\0b\0u\0n\0t\0u".as_slice(), b"\0B\0a\0d\0P\0D\0F".as_slice())] { let mut offset = 0; while offset + old.len() <= bytes.len() { diff --git a/crates/ui-egui/src/tests.rs b/crates/ui-egui/src/tests.rs index 98f3b85c..29fa755f 100644 --- a/crates/ui-egui/src/tests.rs +++ b/crates/ui-egui/src/tests.rs @@ -999,7 +999,8 @@ fn the_language_dialog_marks_the_selected_text() { harness.state_mut().run("app.dialog", json!({"id": "language"})).unwrap(); // The anchored window settles over its first frames; click once it stays put. harness.run_steps(4); - harness.get_by_label("Français (France)").click(); + // Installed dictionaries append a marker to the language's accessible label. + harness.get_by_label_contains("Français (France)").click(); harness.run_steps(2); harness.get_by_label("OK").click(); harness.run_steps(2);