Skip to content

Commit 8b1cc60

Browse files
committed
test: fix launchFragmentInContainer memory leaks
Issue 21168 Assisted-by: Claude Opus 4.8 - all
1 parent 4ef241b commit 8b1cc60

2 files changed

Lines changed: 70 additions & 67 deletions

File tree

AnkiDroid/src/test/java/com/ichi2/anki/MyAccountTest.kt

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -39,43 +39,43 @@ class MyAccountTest : RobolectricTest() {
3939

4040
@Test
4141
fun testLoginEmailPasswordProvided() {
42-
val scenario = launchFragmentInContainer<LoginFragment>()
42+
launchFragmentInContainer<LoginFragment>().use { scenario ->
43+
scenario.onFragment { fragment ->
44+
val testPassword = "randomStrongPassword"
45+
val testEmail = "random.email@example.com"
4346

44-
scenario.onFragment { fragment ->
45-
val testPassword = "randomStrongPassword"
46-
val testEmail = "random.email@example.com"
47+
fragment.view?.findViewById<TextInputEditText>(R.id.username)?.setText(testEmail)
48+
fragment.view?.findViewById<TextInputEditText>(R.id.password)?.setText(testPassword)
4749

48-
fragment.view?.findViewById<TextInputEditText>(R.id.username)?.setText(testEmail)
49-
fragment.view?.findViewById<TextInputEditText>(R.id.password)?.setText(testPassword)
50-
51-
val loginButton = fragment.view?.findViewById<Button>(R.id.login_button)
52-
assertEquals(loginButton?.isEnabled, true)
50+
val loginButton = fragment.view?.findViewById<Button>(R.id.login_button)
51+
assertEquals(loginButton?.isEnabled, true)
52+
}
5353
}
5454
}
5555

5656
@Test
5757
fun testLoginFailsNoEmailProvided() {
58-
val scenario = launchFragmentInContainer<LoginFragment>()
59-
60-
scenario.onFragment { fragment ->
61-
val testPassword = "randomStrongPassword"
58+
launchFragmentInContainer<LoginFragment>().use { scenario ->
59+
scenario.onFragment { fragment ->
60+
val testPassword = "randomStrongPassword"
6261

63-
fragment.view?.findViewById<TextInputEditText>(R.id.password)?.setText(testPassword)
64-
val loginButton = fragment.view?.findViewById<Button>(R.id.login_button)
65-
assertFalse(loginButton?.isEnabled == true)
62+
fragment.view?.findViewById<TextInputEditText>(R.id.password)?.setText(testPassword)
63+
val loginButton = fragment.view?.findViewById<Button>(R.id.login_button)
64+
assertFalse(loginButton?.isEnabled == true)
65+
}
6666
}
6767
}
6868

6969
@Test
7070
fun testLoginFailsNoPasswordProvided() {
71-
val scenario = launchFragmentInContainer<LoginFragment>()
72-
73-
scenario.onFragment { fragment ->
74-
val testEmail = "random.email@example.com"
71+
launchFragmentInContainer<LoginFragment>().use { scenario ->
72+
scenario.onFragment { fragment ->
73+
val testEmail = "random.email@example.com"
7574

76-
fragment.view?.findViewById<TextInputEditText>(R.id.username)?.setText(testEmail)
77-
val loginButton = fragment.view?.findViewById<Button>(R.id.login_button)
78-
assertFalse(loginButton?.isEnabled == true)
75+
fragment.view?.findViewById<TextInputEditText>(R.id.username)?.setText(testEmail)
76+
val loginButton = fragment.view?.findViewById<Button>(R.id.login_button)
77+
assertFalse(loginButton?.isEnabled == true)
78+
}
7979
}
8080
}
8181
}

AnkiDroid/src/test/java/com/ichi2/anki/ui/internationalization/SentenceCaseTest.kt

Lines changed: 47 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -41,52 +41,55 @@ class SentenceCaseTest : RobolectricTest() {
4141
fun `English is converted to sentence case`() {
4242
ensureCollectionLoadIsSynchronous()
4343

44-
launchFragmentInContainer<Fragment>().onFragment { fragment ->
45-
with(fragment) {
46-
assertThat(TR.sentenceCase.toggleSuspend, equalTo("Toggle suspend"))
47-
assertThat(TR.sentenceCase.toggleBury, equalTo("Toggle bury"))
48-
assertThat(TR.sentenceCase.customStudy, equalTo("Custom study"))
49-
assertThat(TR.sentenceCase.emptyCards, equalTo("Empty cards"))
50-
assertThat(TR.sentenceCase.emptyTrash, equalTo("Empty trash"))
51-
assertThat(TR.sentenceCase.restoreDeleted, equalTo("Restore deleted"))
52-
assertThat(TR.sentenceCase.changeNoteType, equalTo("Change note type"))
53-
assertThat(TR.sentenceCase.gradeNow, equalTo("Grade now"))
54-
}
55-
}
44+
launchFragmentInContainer<Fragment>()
45+
.onFragment { fragment ->
46+
with(fragment) {
47+
assertThat(TR.sentenceCase.toggleSuspend, equalTo("Toggle suspend"))
48+
assertThat(TR.sentenceCase.toggleBury, equalTo("Toggle bury"))
49+
assertThat(TR.sentenceCase.customStudy, equalTo("Custom study"))
50+
assertThat(TR.sentenceCase.emptyCards, equalTo("Empty cards"))
51+
assertThat(TR.sentenceCase.emptyTrash, equalTo("Empty trash"))
52+
assertThat(TR.sentenceCase.restoreDeleted, equalTo("Restore deleted"))
53+
assertThat(TR.sentenceCase.changeNoteType, equalTo("Change note type"))
54+
assertThat(TR.sentenceCase.gradeNow, equalTo("Grade now"))
55+
}
56+
}.close()
5657

57-
ActivityScenario.launch(EmptyAnkiActivity::class.java).onActivity { activity ->
58-
with(activity) {
59-
assertThat(TR.sentenceCase.setDueDate, equalTo("Set due date"))
60-
assertThat(TR.sentenceCase.addNoteType, equalTo("Add note type"))
61-
assertThat(TR.sentenceCase.restoreToDefault, equalTo("Restore to default"))
62-
assertThat(TR.sentenceCase.checkDatabase, equalTo("Check database"))
63-
assertThat(TR.sentenceCase.checkMediaTitle, equalTo("Check media"))
64-
assertThat(TR.sentenceCase.checkMediaAction, equalTo("Check media"))
65-
assertThat(TR.sentenceCase.frontTemplate, equalTo("Front template"))
66-
assertThat(TR.sentenceCase.backTemplate, equalTo("Back template"))
67-
assertThat(TR.sentenceCase.renameDeck, equalTo("Rename deck"))
68-
assertThat(TR.sentenceCase.customStudy, equalTo("Custom study"))
69-
assertThat(TR.sentenceCase.deckOptions, equalTo("Deck options"))
70-
assertThat(TR.sentenceCase.deleteDeck, equalTo("Delete deck"))
71-
assertThat(TR.sentenceCase.logIn, equalTo("Log in"))
72-
assertThat(TR.sentenceCase.logOut, equalTo("Log out"))
73-
assertThat(TR.sentenceCase.cardInfo, equalTo("Card info"))
74-
assertThat(TR.sentenceCase.buryNote, equalTo("Bury note"))
75-
assertThat(TR.sentenceCase.buryCard, equalTo("Bury card"))
76-
assertThat(TR.sentenceCase.suspendNote, equalTo("Suspend note"))
77-
assertThat(TR.sentenceCase.suspendCard, equalTo("Suspend card"))
78-
assertThat(TR.sentenceCase.markNote, equalTo("Mark note"))
79-
assertThat(TR.sentenceCase.deleteNote, equalTo("Delete note"))
80-
assertThat(TR.sentenceCase.previousCardInfo, equalTo("Previous card info"))
81-
assertThat(TR.sentenceCase.ankiWebAccount, equalTo("AnkiWeb account"))
82-
assertThat(TR.sentenceCase.browserAppearance, equalTo("Browser appearance"))
58+
ActivityScenario
59+
.launch(EmptyAnkiActivity::class.java)
60+
.onActivity { activity ->
61+
with(activity) {
62+
assertThat(TR.sentenceCase.setDueDate, equalTo("Set due date"))
63+
assertThat(TR.sentenceCase.addNoteType, equalTo("Add note type"))
64+
assertThat(TR.sentenceCase.restoreToDefault, equalTo("Restore to default"))
65+
assertThat(TR.sentenceCase.checkDatabase, equalTo("Check database"))
66+
assertThat(TR.sentenceCase.checkMediaTitle, equalTo("Check media"))
67+
assertThat(TR.sentenceCase.checkMediaAction, equalTo("Check media"))
68+
assertThat(TR.sentenceCase.frontTemplate, equalTo("Front template"))
69+
assertThat(TR.sentenceCase.backTemplate, equalTo("Back template"))
70+
assertThat(TR.sentenceCase.renameDeck, equalTo("Rename deck"))
71+
assertThat(TR.sentenceCase.customStudy, equalTo("Custom study"))
72+
assertThat(TR.sentenceCase.deckOptions, equalTo("Deck options"))
73+
assertThat(TR.sentenceCase.deleteDeck, equalTo("Delete deck"))
74+
assertThat(TR.sentenceCase.logIn, equalTo("Log in"))
75+
assertThat(TR.sentenceCase.logOut, equalTo("Log out"))
76+
assertThat(TR.sentenceCase.cardInfo, equalTo("Card info"))
77+
assertThat(TR.sentenceCase.buryNote, equalTo("Bury note"))
78+
assertThat(TR.sentenceCase.buryCard, equalTo("Bury card"))
79+
assertThat(TR.sentenceCase.suspendNote, equalTo("Suspend note"))
80+
assertThat(TR.sentenceCase.suspendCard, equalTo("Suspend card"))
81+
assertThat(TR.sentenceCase.markNote, equalTo("Mark note"))
82+
assertThat(TR.sentenceCase.deleteNote, equalTo("Delete note"))
83+
assertThat(TR.sentenceCase.previousCardInfo, equalTo("Previous card info"))
84+
assertThat(TR.sentenceCase.ankiWebAccount, equalTo("AnkiWeb account"))
85+
assertThat(TR.sentenceCase.browserAppearance, equalTo("Browser appearance"))
8386

84-
assertThat("syncMediaLogTitle", TR.syncMediaLogTitle(), equalTo("Media Sync Log"))
85-
assertThat(TR.sentenceCase.mediaSyncLog, equalTo("Media sync log"))
87+
assertThat("syncMediaLogTitle", TR.syncMediaLogTitle(), equalTo("Media Sync Log"))
88+
assertThat(TR.sentenceCase.mediaSyncLog, equalTo("Media sync log"))
8689

87-
assertThat("Toggle Suspend".toSentenceCase(this, R.string.sentence_toggle_suspend), equalTo("Toggle suspend"))
88-
assertThat("Ook? Ook?".toSentenceCase(this, R.string.sentence_toggle_suspend), equalTo("Ook? Ook?"))
89-
}
90-
}
90+
assertThat("Toggle Suspend".toSentenceCase(this, R.string.sentence_toggle_suspend), equalTo("Toggle suspend"))
91+
assertThat("Ook? Ook?".toSentenceCase(this, R.string.sentence_toggle_suspend), equalTo("Ook? Ook?"))
92+
}
93+
}.close()
9194
}
9295
}

0 commit comments

Comments
 (0)