diff --git a/arabickit/build.gradle.kts b/arabickit/build.gradle.kts index d15ad02..d9fb526 100644 --- a/arabickit/build.gradle.kts +++ b/arabickit/build.gradle.kts @@ -11,6 +11,7 @@ android { defaultConfig { minSdk = 24 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles("consumer-rules.pro") } @@ -37,4 +38,7 @@ android { dependencies { testImplementation("junit:junit:4.13.2") + + androidTestImplementation("androidx.test:runner:1.7.0") + androidTestImplementation("androidx.test.ext:junit:1.3.0") } diff --git a/arabickit/src/androidTest/kotlin/io/github/khalid567cpu/arabickit/ArabicHighlighterInstrumentedTest.kt b/arabickit/src/androidTest/kotlin/io/github/khalid567cpu/arabickit/ArabicHighlighterInstrumentedTest.kt new file mode 100644 index 0000000..1983ff4 --- /dev/null +++ b/arabickit/src/androidTest/kotlin/io/github/khalid567cpu/arabickit/ArabicHighlighterInstrumentedTest.kt @@ -0,0 +1,45 @@ +package io.github.khalid567cpu.arabickit + +import android.graphics.Color +import android.text.style.BackgroundColorSpan +import androidx.test.ext.junit.runners.AndroidJUnit4 +import org.junit.Assert.assertEquals +import org.junit.Assert.assertTrue +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +public class ArabicHighlighterInstrumentedTest { + @Test + public fun highlightBackground_mapsNormalizedMatchesToOriginalArabicText() { + val source = "إِنَّ الــلَّهَ غَفُورٌ، إن الله رحيم ٢٠٢٦" + + val highlighted = ArabicHighlighter.highlightBackground( + text = source, + query = "ان الله", + color = Color.YELLOW, + ) + + val spans = highlighted + .getSpans(0, highlighted.length, BackgroundColorSpan::class.java) + .sortedBy(highlighted::getSpanStart) + + assertEquals(2, spans.size) + assertTrue(spans.all { it.backgroundColor == Color.YELLOW }) + + val highlightedSubstrings = spans.map { span -> + source.substring( + highlighted.getSpanStart(span), + highlighted.getSpanEnd(span), + ) + } + + assertEquals( + listOf( + "إِنَّ الــلَّهَ", + "إن الله", + ), + highlightedSubstrings, + ) + } +}