From 218732b6115de310e673d7d0471cf052930133a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Fri, 14 Nov 2025 23:53:29 -0300 Subject: [PATCH] Added more tests. --- .../fontrendering/eepp-textedit-arabic.webp | Bin 0 -> 14110 bytes .../fontrendering/eepp-textedit-hebrew.webp | Bin 0 -> 12008 bytes .../assets/textfiles/test-arabic.uext | 2 +- .../assets/textfiles/test-hebrew.uext | 24 +++++++++++ src/tests/ui_perf_test/ui_perf_test.cpp | 8 ++-- src/tests/unit_tests/fontrendering.cpp | 40 ++++++++++++++++++ 6 files changed, 69 insertions(+), 5 deletions(-) create mode 100644 bin/unit_tests/assets/fontrendering/eepp-textedit-arabic.webp create mode 100644 bin/unit_tests/assets/fontrendering/eepp-textedit-hebrew.webp create mode 100644 bin/unit_tests/assets/textfiles/test-hebrew.uext diff --git a/bin/unit_tests/assets/fontrendering/eepp-textedit-arabic.webp b/bin/unit_tests/assets/fontrendering/eepp-textedit-arabic.webp new file mode 100644 index 0000000000000000000000000000000000000000..667ac730a2161d31d49c8d8ad60ff6fcc082d09b GIT binary patch literal 14110 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 literal 0 HcmV?d00001 diff --git a/bin/unit_tests/assets/fontrendering/eepp-textedit-hebrew.webp b/bin/unit_tests/assets/fontrendering/eepp-textedit-hebrew.webp new file mode 100644 index 0000000000000000000000000000000000000000..9f6ba190541bb3174f9fbf75468379a8e64dba62 GIT binary patch literal 12008 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 RPWsetFontSize( PixelDensity::dpToPx( 12 ) ); FontManager::instance()->addFallbackFont( FontTrueType::New( "arabic", "unit_tests/assets/fonts/NotoNaskhArabic-Regular.ttf" ) ); - FontManager::instance()->addFallbackFont( FontTrueType::New( - "NotoSerifBengali-Regular", "unit_tests/assets/fonts/NotoSansBengali-Regular.ttf" ) ); + // FontManager::instance()->addFallbackFont( FontTrueType::New( + // "NotoSerifBengali-Regular", "unit_tests/assets/fonts/NotoSansBengali-Regular.ttf" ) ); // editor->setLineWrapMode( LineWrapMode::Word ); editor->setFont( FontManager::instance()->getByName( "monospace" ) ); // editor->loadFromFile( "unit_tests/assets/textfiles/test-arabic-simple.uext" ); - // editor->loadFromFile( "unit_tests/assets/textfiles/test-arabic.uext" ); + editor->loadFromFile( "unit_tests/assets/textfiles/test-arabic.uext" ); // editor->loadFromFile( "unit_tests/assets/textfiles/test-bengali.uext" ); // editor->loadFromFile( "unit_tests/assets/textfiles/test-flags.uext" ); // editor->loadFromFile( "unit_tests/assets/textformat/english.utf8.lf.nobom.txt" ); - editor->loadFromFile( "unit_tests/assets/textfiles/test-arabic-mixed.uext" ); + // editor->loadFromFile( "unit_tests/assets/textfiles/test-arabic-mixed.uext" ); // editor->getDocument().textInput( "اسمي..." ); // editor->getDocument().textInput( " হ্যাঁ " ); // editor->getDocument().textInput( "I'm from...: আমি ... থেকে এসেছি।" ); diff --git a/src/tests/unit_tests/fontrendering.cpp b/src/tests/unit_tests/fontrendering.cpp index a0d406735..7691438b7 100644 --- a/src/tests/unit_tests/fontrendering.cpp +++ b/src/tests/unit_tests/fontrendering.cpp @@ -426,6 +426,46 @@ UTEST( FontRendering, textEditBengaliTest ) { compareImages( utest_state, utest_result, app.getWindow(), "eepp-textedit-bengali" ); } +UTEST( FontRendering, textEditArabicTest ) { + BoolScopedOp op( Text::TextShaperEnabled, true ); + UIApplication app( + WindowSettings( 1024, 650, "eepp - TextEdit Arabic", WindowStyle::Default, + WindowBackend::Default, 32, {}, 1, false, true ), + UIApplication::Settings( Sys::getProcessPath() + ".." + FileSystem::getOSSlash(), 1.5f ) ); + FileSystem::changeWorkingDirectory( Sys::getProcessPath() ); + FontTrueType* arabicFont = + FontTrueType::New( "NotoNaskhArabic-Regular", "assets/fonts/NotoNaskhArabic-Regular.ttf" ); + FontManager::instance()->addFallbackFont( arabicFont ); + UTEST_PRINT_STEP( "Text Shaper enabled" ); + auto* editor = UITextEdit::New(); + // editor->setFontSize( PixelDensity::dpToPx( 12 ) ); + editor->setPixelsSize( app.getUI()->getPixelsSize() ); + editor->loadFromFile( "assets/textfiles/test-arabic.uext" ); + SceneManager::instance()->update(); + SceneManager::instance()->draw(); + compareImages( utest_state, utest_result, app.getWindow(), "eepp-textedit-arabic" ); +} + +UTEST( FontRendering, textEditHebrewTest ) { + BoolScopedOp op( Text::TextShaperEnabled, true ); + UIApplication app( + WindowSettings( 1024, 650, "eepp - TextEdit Hebrew", WindowStyle::Default, + WindowBackend::Default, 32, {}, 1, false, true ), + UIApplication::Settings( Sys::getProcessPath() + ".." + FileSystem::getOSSlash(), 1.5f ) ); + FileSystem::changeWorkingDirectory( Sys::getProcessPath() ); + FontTrueType* hebrewFont = + FontTrueType::New( "NotoSansHebrew-Regular", "assets/fonts/NotoSansHebrew-Regular.ttf" ); + FontManager::instance()->addFallbackFont( hebrewFont ); + UTEST_PRINT_STEP( "Text Shaper enabled" ); + auto* editor = UITextEdit::New(); + // editor->setFontSize( PixelDensity::dpToPx( 12 ) ); + editor->setPixelsSize( app.getUI()->getPixelsSize() ); + editor->loadFromFile( "assets/textfiles/test-hebrew.uext" ); + SceneManager::instance()->update(); + SceneManager::instance()->draw(); + compareImages( utest_state, utest_result, app.getWindow(), "eepp-textedit-hebrew" ); +} + UTEST( FontRendering, textSizes ) { auto win = Engine::instance()->createWindow( WindowSettings( 1024, 650, "eepp - Text Sizes", WindowStyle::Default,