diff --git a/Tests/LibGfx/CMakeLists.txt b/Tests/LibGfx/CMakeLists.txt index cf18c0e162..e60333f25f 100644 --- a/Tests/LibGfx/CMakeLists.txt +++ b/Tests/LibGfx/CMakeLists.txt @@ -7,3 +7,5 @@ set(TEST_SOURCES foreach(source IN LISTS TEST_SOURCES) serenity_test("${source}" LibGfx LIBS LibGUI) endforeach() + +install(FILES TestFont.font DESTINATION usr/Tests/LibGfx) diff --git a/Tests/LibGfx/TestFont.font b/Tests/LibGfx/TestFont.font new file mode 100644 index 0000000000..a6423c8919 Binary files /dev/null and b/Tests/LibGfx/TestFont.font differ diff --git a/Tests/LibGfx/TestFontHandling.cpp b/Tests/LibGfx/TestFontHandling.cpp index 72ed49460f..e2917f038c 100644 --- a/Tests/LibGfx/TestFontHandling.cpp +++ b/Tests/LibGfx/TestFontHandling.cpp @@ -131,6 +131,24 @@ TEST_CASE(test_write_to_file) char path[] = "/tmp/new.font.XXXXXX"; EXPECT(mkstemp(path) != -1); - EXPECT(font->write_to_file(path)); + EXPECT(!font->write_to_file(path).is_error()); unlink(path); } + +TEST_CASE(test_character_set_masking) +{ + auto font = Gfx::BitmapFont::try_load_from_file("/usr/Tests/LibGfx/TestFont.font"); + EXPECT(!font.is_error()); + + auto unmasked_font = font.value()->unmasked_character_set(); + EXPECT(!unmasked_font.is_error()); + EXPECT(unmasked_font.value()->glyph_index(0x0041).value() == 0x0041); + EXPECT(unmasked_font.value()->glyph_index(0x0100).value() == 0x0100); + EXPECT(unmasked_font.value()->glyph_index(0xFFFD).value() == 0xFFFD); + + auto masked_font = unmasked_font.value()->masked_character_set(); + EXPECT(!masked_font.is_error()); + EXPECT(masked_font.value()->glyph_index(0x0041).value() == 0x0041); + EXPECT(!masked_font.value()->glyph_index(0x0100).has_value()); + EXPECT(masked_font.value()->glyph_index(0xFFFD).value() == 0x1FD); +}