Skip to content

Commit 9a23788

Browse files
committed
test: deck picker screenshot test
1 parent 316c28c commit 9a23788

4 files changed

Lines changed: 39 additions & 12 deletions

File tree

AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,8 @@ open class DeckPicker :
268268
private lateinit var deckListAdapter: DeckAdapter
269269
private lateinit var pullToSyncWrapper: SwipeRefreshLayout
270270

271-
private lateinit var floatingActionMenu: DeckPickerFloatingActionMenu
271+
@VisibleForTesting
272+
lateinit var floatingActionMenu: DeckPickerFloatingActionMenu
272273

273274
var activeSnackBar: Snackbar? = null
274275
private val activeSnackbarCallback =

AnkiDroid/src/main/java/com/ichi2/anki/DeckPickerFloatingActionMenu.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import android.view.KeyEvent
2222
import android.view.MotionEvent
2323
import android.view.View
2424
import android.widget.LinearLayout
25+
import androidx.annotation.VisibleForTesting
2526
import com.google.android.material.color.MaterialColors
2627
import com.ichi2.anki.databinding.ActivityHomescreenBinding
2728
import com.ichi2.anki.databinding.IncludeFloatingAddButtonBinding
@@ -59,7 +60,8 @@ class DeckPickerFloatingActionMenu(
5960
val isFragmented: Boolean
6061
get() = studyOptionsFrame != null
6162

62-
private fun showFloatingActionMenu() {
63+
@VisibleForTesting
64+
fun showFloatingActionMenu() {
6365
toggleListener?.onBeginToggle(isOpening = true)
6466
deckPicker.activeSnackBar?.dismiss()
6567
linearLayout.alpha = 0.5f

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

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import android.view.Gravity
77
import android.view.View
88
import android.view.ViewGroup
99
import android.widget.FrameLayout
10-
import androidx.core.content.edit
1110
import androidx.core.graphics.Insets
1211
import androidx.core.view.ViewCompat
1312
import androidx.core.view.WindowInsetsCompat
@@ -17,7 +16,6 @@ import com.ichi2.anki.account.AccountActivity
1716
import com.ichi2.anki.instantnoteeditor.InstantNoteEditorActivity
1817
import com.ichi2.anki.multimedia.MultimediaActivity
1918
import com.ichi2.anki.preferences.PreferencesActivity
20-
import com.ichi2.anki.preferences.sharedPrefs
2119
import com.ichi2.anki.previewer.CardViewerActivity
2220
import com.ichi2.anki.utils.ConfigAwareSingleFragmentActivity
2321
import com.ichi2.testutils.ActivityList
@@ -66,13 +64,6 @@ class AllActivitiesScreenshotTest : ScreenshotTest() {
6664
notYetHandled(CardTemplateEditor::class.java.simpleName, "Needs a real note type in the collection")
6765

6866
super.setUp()
69-
70-
// Setup for DeckPicker
71-
ensureCollectionLoadIsSynchronous()
72-
setIntroductionSlidesShown(true)
73-
BackupManagerTestUtilities.setupSpaceForBackup(targetContext)
74-
// suppress the periodic 'backup your collection' prompt so the screenshot is just the activity
75-
targetContext.sharedPrefs().edit { putBoolean("backupPromptDisabled", true) }
7667
}
7768

7869
@After
@@ -116,7 +107,9 @@ class AllActivitiesScreenshotTest : ScreenshotTest() {
116107
class ActivityLauncherProvider : TestParameterValuesProvider() {
117108
override fun provideValues(context: Context?): List<ActivityConfig> {
118109
val handled =
119-
listOf(
110+
setOf(
111+
// DeckPickerScreenshotTest
112+
DeckPicker::class.java,
120113
// StudyScreenScreenshotTest, PreviewerScreenshotTest and TemplatePreviewerScreenshotTest
121114
CardViewerActivity::class.java,
122115
// PreferencesScreenshotTest
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// SPDX-FileCopyrightText: 2026 Brayan Oliveira <brayandso.dev@gmail.com>
2+
// SPDX-License-Identifier: GPL-3.0-or-later
3+
package com.ichi2.anki
4+
5+
import androidx.core.content.edit
6+
import com.ichi2.anki.preferences.sharedPrefs
7+
import com.ichi2.testutils.BackupManagerTestUtilities
8+
import org.junit.Before
9+
import org.junit.Test
10+
11+
class DeckPickerScreenshotTest : ScreenshotTest() {
12+
@Before
13+
override fun setUp() {
14+
super.setUp()
15+
ensureCollectionLoadIsSynchronous()
16+
setIntroductionSlidesShown(true)
17+
BackupManagerTestUtilities.setupSpaceForBackup(targetContext)
18+
// suppress the periodic 'backup your collection' prompt so the screenshot is just the activity
19+
targetContext.sharedPrefs().edit { putBoolean("backupPromptDisabled", true) }
20+
}
21+
22+
@Test
23+
fun baseState_and_fabExpanded() {
24+
val intent = DeckPicker.getIntent(targetContext)
25+
val activity = startActivityNormallyOpenCollectionWithIntent(DeckPicker::class.java, intent)
26+
captureScreen("baseState")
27+
28+
activity.floatingActionMenu.showFloatingActionMenu()
29+
captureScreen("fabExpanded")
30+
}
31+
}

0 commit comments

Comments
 (0)