Skip to content

Tag search fails if "Ignore accents in search (slower)" is enabled #20409

@david-allison

Description

@david-allison

tag:être becomes tag:etre

Subject: [PATCH] 
---
Index: AnkiDroid/src/test/java/com/ichi2/anki/browser/CardBrowserViewModelTest.kt
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/browser/CardBrowserViewModelTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/browser/CardBrowserViewModelTest.kt
--- a/AnkiDroid/src/test/java/com/ichi2/anki/browser/CardBrowserViewModelTest.kt	(revision b1ca7f4d23f0fc5e835a2765eb6826fc9a558df9)
+++ b/AnkiDroid/src/test/java/com/ichi2/anki/browser/CardBrowserViewModelTest.kt	(date 1772712972929)
@@ -19,11 +19,13 @@
 import androidx.core.content.edit
 import androidx.lifecycle.SavedStateHandle
 import androidx.test.ext.junit.runners.AndroidJUnit4
+import anki.config.ConfigKey
 import app.cash.turbine.TurbineTestContext
 import app.cash.turbine.test
 import com.ichi2.anki.AnkiDroidApp
 import com.ichi2.anki.CardBrowser
 import com.ichi2.anki.CollectionManager
+import com.ichi2.anki.CollectionManager.withCol
 import com.ichi2.anki.Flag
 import com.ichi2.anki.NoteEditorActivity
 import com.ichi2.anki.NoteEditorFragment
@@ -70,6 +72,7 @@
 import com.ichi2.anki.libanki.QueueType.ManuallyBuried
 import com.ichi2.anki.libanki.QueueType.New
 import com.ichi2.anki.libanki.testutils.AnkiTest
+import com.ichi2.anki.model.CardStateFilter
 import com.ichi2.anki.model.CardsOrNotes
 import com.ichi2.anki.model.SelectableDeck
 import com.ichi2.anki.model.SortType
@@ -1360,6 +1363,21 @@
             }
         }
 
+    @Test
+    fun `accented tags are searchable if ignoring accents`() {
+        addBasicNote().update {
+            tags = mutableListOf("être")
+        }
+
+        col.config.setBool(ConfigKey.Bool.IGNORE_ACCENTS_IN_SEARCH, true)
+
+        runViewModelTest {
+            this.filterByTags(listOf("être"), CardStateFilter.ALL_CARDS)
+
+            assertThat(this.rowCount, equalTo(1))
+        }
+    }
+
     private fun assertDate(str: String?) {
         // 2025-01-09 @ 18:06
         assertNotNull(str)

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions