Skip to content

Commit 81db4f7

Browse files
committed
PasscodeManagerIT: use actual actitivy for test
Can't mock PowerManager on Android < 9 Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
1 parent df0089e commit 81db4f7

File tree

1 file changed

+15
-23
lines changed

1 file changed

+15
-23
lines changed

app/src/androidTest/java/com/owncloud/android/authentication/PassCodeManagerIT.kt

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,14 @@
2222

2323
package com.owncloud.android.authentication
2424

25-
import android.app.Activity
26-
import android.os.PowerManager
25+
import androidx.test.core.app.launchActivity
26+
import com.nextcloud.client.TestActivity
2727
import com.nextcloud.client.core.Clock
2828
import com.nextcloud.client.preferences.AppPreferences
2929
import com.owncloud.android.ui.activity.SettingsActivity
3030
import io.mockk.MockKAnnotations
3131
import io.mockk.every
3232
import io.mockk.impl.annotations.MockK
33-
import io.mockk.just
34-
import io.mockk.mockk
35-
import io.mockk.runs
3633
import org.junit.Assert.assertTrue
3734
import org.junit.Before
3835
import org.junit.Test
@@ -58,30 +55,25 @@ class PassCodeManagerIT {
5855

5956
@Test
6057
fun testResumeDuplicateActivity() {
61-
// mock activity instead of using real one to avoid dealing with activity transitions
62-
val activity: Activity = mockk()
63-
val powerManager: PowerManager = mockk()
64-
every { powerManager.isScreenOn } returns true
65-
every { activity.getSystemService(Activity.POWER_SERVICE) } returns powerManager
66-
every { activity.window } returns null
67-
every { activity.startActivityForResult(any(), any()) } just runs
68-
every { activity.moveTaskToBack(any()) } returns true
69-
7058
// set locked state
7159
every { appPreferences.lockPreference } returns SettingsActivity.LOCK_PASSCODE
7260
every { appPreferences.lockTimestamp } returns 200
7361
every { clockImpl.millisSinceBoot } returns 10000
7462

75-
// resume activity twice
76-
var askedForPin = sut.onActivityResumed(activity)
77-
assertTrue("Passcode not requested on first launch", askedForPin)
78-
sut.onActivityResumed(activity)
63+
launchActivity<TestActivity>().use { scenario ->
64+
scenario.onActivity { activity ->
65+
// resume activity twice
66+
var askedForPin = sut.onActivityResumed(activity)
67+
assertTrue("Passcode not requested on first launch", askedForPin)
68+
sut.onActivityResumed(activity)
7969

80-
// stop it once
81-
sut.onActivityStopped(activity)
70+
// stop it once
71+
sut.onActivityStopped(activity)
8272

83-
// resume again. should ask for passcode
84-
askedForPin = sut.onActivityResumed(activity)
85-
assertTrue("Passcode not requested on subsequent launch after stop", askedForPin)
73+
// resume again. should ask for passcode
74+
askedForPin = sut.onActivityResumed(activity)
75+
assertTrue("Passcode not requested on subsequent launch after stop", askedForPin)
76+
}
77+
}
8678
}
8779
}

0 commit comments

Comments
 (0)