Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions AnkiDroid/src/test/java/com/ichi2/anki/DeckPickerTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import com.ichi2.testutils.BackupManagerTestUtilities
import com.ichi2.testutils.DbUtils
import com.ichi2.testutils.common.Flaky
import com.ichi2.testutils.common.OS
import com.ichi2.testutils.ext.menu
import com.ichi2.testutils.grantWritePermissions
import com.ichi2.testutils.revokeWritePermissions
import com.ichi2.utils.ResourceLoader
Expand Down
2 changes: 1 addition & 1 deletion AnkiDroid/src/test/java/com/ichi2/anki/ReviewerTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import com.ichi2.anki.CollectionManager.TR
import com.ichi2.anki.cardviewer.Gesture
import com.ichi2.anki.cardviewer.ViewerCommand.FLIP_OR_ANSWER_EASE1
import com.ichi2.anki.cardviewer.ViewerCommand.MARK
import com.ichi2.anki.common.time.MockTime
import com.ichi2.anki.common.time.TimeManager
import com.ichi2.anki.common.utils.annotation.KotlinCleanup
import com.ichi2.anki.libanki.Card
Expand All @@ -48,7 +49,6 @@ import com.ichi2.anki.observability.undoableOp
import com.ichi2.anki.preferences.PreferenceTestUtils
import com.ichi2.anki.preferences.sharedPrefs
import com.ichi2.anki.reviewer.ActionButtonStatus
import com.ichi2.testutils.MockTime
import com.ichi2.testutils.common.Flaky
import com.ichi2.testutils.common.OS
import com.ichi2.testutils.ext.addNote
Expand Down
2 changes: 1 addition & 1 deletion AnkiDroid/src/test/java/com/ichi2/anki/RobolectricTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import androidx.work.Configuration
import androidx.work.testing.SynchronousExecutor
import androidx.work.testing.WorkManagerTestInitHelper
import com.ichi2.anki.CollectionManager.CollectionOpenFailure
import com.ichi2.anki.common.time.MockTime
import com.ichi2.anki.common.time.TimeManager
import com.ichi2.anki.dialogs.DialogHandler
import com.ichi2.anki.libanki.Card
Expand All @@ -43,7 +44,6 @@ import com.ichi2.anki.observability.ChangeManager
import com.ichi2.anki.preferences.sharedPrefs
import com.ichi2.compat.customtabs.CustomTabActivityHelper
import com.ichi2.testutils.AndroidTest
import com.ichi2.testutils.MockTime
import com.ichi2.testutils.TaskSchedulerRule
import com.ichi2.testutils.TestClass
import com.ichi2.testutils.common.FailOnUnhandledExceptionRule
Expand Down
1 change: 1 addition & 0 deletions AnkiDroid/src/test/java/com/ichi2/testutils/JvmTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ package com.ichi2.testutils
import android.annotation.SuppressLint
import androidx.annotation.CallSuper
import com.ichi2.anki.CollectionManager
import com.ichi2.anki.common.time.MockTime
import com.ichi2.anki.common.time.TimeManager
import com.ichi2.anki.libanki.Collection
import com.ichi2.anki.libanki.Storage
Expand Down
7 changes: 0 additions & 7 deletions AnkiDroid/src/test/java/com/ichi2/testutils/TestClass.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,9 @@
package com.ichi2.testutils

import android.annotation.SuppressLint
import android.view.Menu
import androidx.appcompat.app.AppCompatDelegate
import androidx.appcompat.widget.Toolbar
import anki.collection.OpChanges
import com.ichi2.anki.AnkiActivity
import com.ichi2.anki.CollectionManager
import com.ichi2.anki.R
import com.ichi2.anki.ioDispatcher
import com.ichi2.anki.isCollectionEmpty
import com.ichi2.anki.libanki.Card
Expand All @@ -49,7 +45,6 @@ import net.ankiweb.rsdroid.exceptions.BackendDeckIsFilteredException
import timber.log.Timber
import kotlin.coroutines.CoroutineContext
import kotlin.coroutines.EmptyCoroutineContext
import kotlin.test.assertNotNull
import kotlin.time.Duration.Companion.milliseconds

/**
Expand Down Expand Up @@ -336,8 +331,6 @@ interface TestClass {
col.updateNote(this)
}

fun AnkiActivity.menu(): Menu = assertNotNull(findViewById<Toolbar>(R.id.toolbar)?.menu)

/** * A wrapper around the standard [kotlinx.coroutines.test.runTest] that
* takes care of updating the dispatcher used by CollectionManager as well.
* * An argument could be made for using [StandardTestDispatcher] and
Expand Down
25 changes: 25 additions & 0 deletions AnkiDroid/src/test/java/com/ichi2/testutils/ext/AnkiActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*
* Copyright (c) 2025 David Allison <davidallisongithub@gmail.com>
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/

package com.ichi2.testutils.ext

import android.view.Menu
import androidx.appcompat.widget.Toolbar
import com.ichi2.anki.AnkiActivity
import com.ichi2.anki.R
import kotlin.test.assertNotNull

fun AnkiActivity.menu(): Menu = assertNotNull(findViewById<Toolbar>(R.id.toolbar)?.menu)
5 changes: 2 additions & 3 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,8 @@ subprojects {
}

afterEvaluate {
if (hasProperty("android")) {
val androidExtension =
extensions.findByName("android") as CommonExtension<*, *, *, *, *, *>
plugins.withType<com.android.build.gradle.BasePlugin> {
val androidExtension = extensions.getByName("android") as CommonExtension<*, *, *, *, *, *>
androidExtension.testOptions.unitTests {
isIncludeAndroidResources = true
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,18 @@
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.ichi2.testutils

package com.ichi2.anki.common.time

import android.annotation.SuppressLint
import com.ichi2.anki.common.time.Time
import androidx.annotation.VisibleForTesting
import java.util.Calendar
import java.util.GregorianCalendar
import java.util.TimeZone

/** @param [step] Number of milliseconds between each call.
* @param [initTime]: Time since epoch in MS. */
@VisibleForTesting(otherwise = VisibleForTesting.NONE)
open class MockTime(
initTime: Long,
private val step: Int = 0,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.ichi2.testutils

package com.ichi2.anki.common.time

import org.junit.Assert.assertEquals
import org.junit.Test
Expand Down