mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-08 23:07:26 -04:00
Introduce android 13 CI in project
This commit is contained in:
parent
21c6a27881
commit
a0449efffa
28
.github/workflows/coverage.yml
vendored
28
.github/workflows/coverage.yml
vendored
@ -15,8 +15,7 @@ jobs:
|
|||||||
coverageReport:
|
coverageReport:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
api-level: [21,30]
|
api-level: [21,30,33]
|
||||||
target: [ google_apis ]
|
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
runs-on: macos-11
|
runs-on: macos-11
|
||||||
steps:
|
steps:
|
||||||
@ -41,20 +40,41 @@ jobs:
|
|||||||
${{ runner.os }}-gradle-
|
${{ runner.os }}-gradle-
|
||||||
|
|
||||||
- name: create instrumentation coverage
|
- name: create instrumentation coverage
|
||||||
uses: ReactiveCircus/android-emulator-runner@v2.23.0
|
uses: ReactiveCircus/android-emulator-runner@v2.25.0
|
||||||
env:
|
env:
|
||||||
GRADLE_OPTS: "-Dorg.gradle.internal.http.connectionTimeout=60000 -Dorg.gradle.internal.http.socketTimeout=60000 -Dorg.gradle.internal.network.retry.max.attempts=6 -Dorg.gradle.internal.network.retry.initial.backOff=2000"
|
GRADLE_OPTS: "-Dorg.gradle.internal.http.connectionTimeout=60000 -Dorg.gradle.internal.http.socketTimeout=60000 -Dorg.gradle.internal.network.retry.max.attempts=6 -Dorg.gradle.internal.network.retry.initial.backOff=2000"
|
||||||
|
if: ${{ matrix.api-level != 33 }}
|
||||||
with:
|
with:
|
||||||
api-level: ${{ matrix.api-level }}
|
api-level: ${{ matrix.api-level }}
|
||||||
|
target: default
|
||||||
arch: x86_64
|
arch: x86_64
|
||||||
profile: pixel_2
|
profile: pixel_2
|
||||||
ndk: 21.4.7075529
|
ndk: 21.4.7075529
|
||||||
|
ram-size: '4096M'
|
||||||
|
disk-size: '14G'
|
||||||
|
sdcard-path-or-size: '1000M'
|
||||||
|
disable-animations: false
|
||||||
|
script: bash contrib/instrumentation.sh
|
||||||
|
|
||||||
|
- name: create instrumentation coverage on google_apis for android 33
|
||||||
|
uses: ReactiveCircus/android-emulator-runner@v2.25.0
|
||||||
|
env:
|
||||||
|
GRADLE_OPTS: "-Dorg.gradle.internal.http.connectionTimeout=60000 -Dorg.gradle.internal.http.socketTimeout=60000 -Dorg.gradle.internal.network.retry.max.attempts=6 -Dorg.gradle.internal.network.retry.initial.backOff=2000"
|
||||||
|
if: ${{ matrix.api-level == 33 }}
|
||||||
|
with:
|
||||||
|
api-level: ${{ matrix.api-level }}
|
||||||
|
target: google_apis
|
||||||
|
arch: x86_64
|
||||||
|
profile: pixel_2
|
||||||
|
ndk: 21.4.7075529
|
||||||
|
ram-size: '4096M'
|
||||||
|
disk-size: '14G'
|
||||||
sdcard-path-or-size: '1000M'
|
sdcard-path-or-size: '1000M'
|
||||||
disable-animations: false
|
disable-animations: false
|
||||||
script: bash contrib/instrumentation.sh
|
script: bash contrib/instrumentation.sh
|
||||||
|
|
||||||
- name: Upload screenshot result
|
- name: Upload screenshot result
|
||||||
uses: actions/upload-artifact@v1
|
uses: actions/upload-artifact@v2
|
||||||
if: failure()
|
if: failure()
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.api-level }}
|
name: ${{ matrix.api-level }}
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.kiwix.kiwixmobile.help
|
package org.kiwix.kiwixmobile.help
|
||||||
|
|
||||||
|
import android.os.Build
|
||||||
import androidx.test.internal.runner.junit4.statement.UiThreadStatement.runOnUiThread
|
import androidx.test.internal.runner.junit4.statement.UiThreadStatement.runOnUiThread
|
||||||
import androidx.test.platform.app.InstrumentationRegistry
|
import androidx.test.platform.app.InstrumentationRegistry
|
||||||
import androidx.test.uiautomator.UiDevice
|
import androidx.test.uiautomator.UiDevice
|
||||||
@ -34,18 +35,20 @@ class HelpFragmentTest : BaseActivityTest() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun verifyHelpActivity() {
|
fun verifyHelpActivity() {
|
||||||
runOnUiThread { activityRule.activity.navigate(R.id.helpFragment) }
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
help {
|
runOnUiThread { activityRule.activity.navigate(R.id.helpFragment) }
|
||||||
clickOnWhatDoesKiwixDo()
|
help {
|
||||||
assertWhatDoesKiwixDoIsExpanded()
|
clickOnWhatDoesKiwixDo()
|
||||||
clickOnWhatDoesKiwixDo()
|
assertWhatDoesKiwixDoIsExpanded()
|
||||||
clickOnWhereIsContent()
|
clickOnWhatDoesKiwixDo()
|
||||||
assertWhereIsContentIsExpanded()
|
clickOnWhereIsContent()
|
||||||
clickOnWhereIsContent()
|
assertWhereIsContentIsExpanded()
|
||||||
clickOnHowToUpdateContent()
|
clickOnWhereIsContent()
|
||||||
assertHowToUpdateContentIsExpanded()
|
clickOnHowToUpdateContent()
|
||||||
clickOnHowToUpdateContent()
|
assertHowToUpdateContentIsExpanded()
|
||||||
clickOnSendFeedback()
|
clickOnHowToUpdateContent()
|
||||||
|
clickOnSendFeedback()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
package org.kiwix.kiwixmobile.initial.download
|
package org.kiwix.kiwixmobile.initial.download
|
||||||
|
|
||||||
|
import android.os.Build
|
||||||
import androidx.core.content.edit
|
import androidx.core.content.edit
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
@ -53,15 +54,17 @@ class InitialDownloadTest : BaseActivityTest() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun initialDownloadTest() {
|
fun initialDownloadTest() {
|
||||||
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.downloadsFragment) }
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
initialDownload {
|
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.downloadsFragment) }
|
||||||
assertLibraryListDisplayed()
|
initialDownload {
|
||||||
refreshList()
|
assertLibraryListDisplayed()
|
||||||
waitForDataToLoad()
|
refreshList()
|
||||||
downloadZimFile()
|
waitForDataToLoad()
|
||||||
assertStorageConfigureDialogDisplayed()
|
downloadZimFile()
|
||||||
clickYesToConfigureStorage()
|
assertStorageConfigureDialogDisplayed()
|
||||||
assertDownloadStart()
|
clickYesToConfigureStorage()
|
||||||
|
assertDownloadStart()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.kiwix.kiwixmobile.intro
|
package org.kiwix.kiwixmobile.intro
|
||||||
|
|
||||||
|
import android.os.Build
|
||||||
import androidx.test.internal.runner.junit4.statement.UiThreadStatement.runOnUiThread
|
import androidx.test.internal.runner.junit4.statement.UiThreadStatement.runOnUiThread
|
||||||
import androidx.test.platform.app.InstrumentationRegistry
|
import androidx.test.platform.app.InstrumentationRegistry
|
||||||
import androidx.test.uiautomator.UiDevice
|
import androidx.test.uiautomator.UiDevice
|
||||||
@ -29,8 +30,10 @@ class IntroFragmentTest : BaseActivityTest() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun viewIsSwipeableAndNavigatesToMain() {
|
fun viewIsSwipeableAndNavigatesToMain() {
|
||||||
runOnUiThread { activityRule.activity.navigate(R.id.introFragment) }
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
intro(IntroRobot::swipeLeft) clickGetStarted {}
|
runOnUiThread { activityRule.activity.navigate(R.id.introFragment) }
|
||||||
|
intro(IntroRobot::swipeLeft) clickGetStarted {}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
|
@ -19,6 +19,7 @@ package org.kiwix.kiwixmobile.language
|
|||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import android.app.Instrumentation
|
import android.app.Instrumentation
|
||||||
|
import android.os.Build
|
||||||
import androidx.core.content.edit
|
import androidx.core.content.edit
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import androidx.test.ext.junit.rules.ActivityScenarioRule
|
import androidx.test.ext.junit.rules.ActivityScenarioRule
|
||||||
@ -67,18 +68,20 @@ class LanguageFragmentTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testLanguageFragment() {
|
fun testLanguageFragment() {
|
||||||
UiThreadStatement.runOnUiThread {
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
activityScenarioRule.scenario.onActivity {
|
UiThreadStatement.runOnUiThread {
|
||||||
it.navigate(R.id.downloadsFragment)
|
activityScenarioRule.scenario.onActivity {
|
||||||
|
it.navigate(R.id.downloadsFragment)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
language {
|
language {
|
||||||
waitForDataToLoad()
|
waitForDataToLoad()
|
||||||
clickOnLanguageIcon()
|
clickOnLanguageIcon()
|
||||||
searchAndSaveLanguage("german", "German")
|
searchAndSaveLanguage("german", "German")
|
||||||
clickOnLanguageIcon()
|
clickOnLanguageIcon()
|
||||||
searchAndSaveLanguage("italiano", "Italian")
|
searchAndSaveLanguage("italiano", "Italian")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.kiwix.kiwixmobile.main
|
package org.kiwix.kiwixmobile.main
|
||||||
|
|
||||||
|
import android.os.Build
|
||||||
import androidx.core.content.edit
|
import androidx.core.content.edit
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import androidx.test.core.app.ActivityScenario
|
import androidx.test.core.app.ActivityScenario
|
||||||
@ -49,32 +50,34 @@ class TopLevelDestinationTest : BaseActivityTest() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testTopLevelDestination() {
|
fun testTopLevelDestination() {
|
||||||
ActivityScenario.launch(KiwixMainActivity::class.java)
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
topLevel {
|
ActivityScenario.launch(KiwixMainActivity::class.java)
|
||||||
clickReaderOnBottomNav {
|
topLevel {
|
||||||
}
|
clickReaderOnBottomNav {
|
||||||
clickLibraryOnBottomNav {
|
|
||||||
assertGetZimNearbyDeviceDisplayed()
|
|
||||||
clickFileTransferIcon {
|
|
||||||
}
|
}
|
||||||
|
clickLibraryOnBottomNav {
|
||||||
|
assertGetZimNearbyDeviceDisplayed()
|
||||||
|
clickFileTransferIcon {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
clickDownloadOnBottomNav(OnlineLibraryRobot::assertLibraryListDisplayed)
|
||||||
|
clickBookmarksOnNavDrawer {
|
||||||
|
assertBookMarksDisplayed()
|
||||||
|
clickOnTrashIcon()
|
||||||
|
assertDeleteBookmarksDialogDisplayed()
|
||||||
|
}
|
||||||
|
clickHistoryOnSideNav {
|
||||||
|
assertHistoryDisplayed()
|
||||||
|
clickOnTrashIcon()
|
||||||
|
assertDeleteHistoryDialogDisplayed()
|
||||||
|
}
|
||||||
|
clickHostBooksOnSideNav(ZimHostRobot::assertMenuWifiHotspotDiplayed)
|
||||||
|
clickSettingsOnSideNav(SettingsRobot::assertMenuSettingsDisplayed)
|
||||||
|
clickHelpOnSideNav(HelpRobot::assertToolbarDisplayed)
|
||||||
|
clickSupportKiwixOnSideNav()
|
||||||
|
assertExternalLinkDialogDisplayed()
|
||||||
|
pressBack()
|
||||||
}
|
}
|
||||||
clickDownloadOnBottomNav(OnlineLibraryRobot::assertLibraryListDisplayed)
|
|
||||||
clickBookmarksOnNavDrawer {
|
|
||||||
assertBookMarksDisplayed()
|
|
||||||
clickOnTrashIcon()
|
|
||||||
assertDeleteBookmarksDialogDisplayed()
|
|
||||||
}
|
|
||||||
clickHistoryOnSideNav {
|
|
||||||
assertHistoryDisplayed()
|
|
||||||
clickOnTrashIcon()
|
|
||||||
assertDeleteHistoryDialogDisplayed()
|
|
||||||
}
|
|
||||||
clickHostBooksOnSideNav(ZimHostRobot::assertMenuWifiHotspotDiplayed)
|
|
||||||
clickSettingsOnSideNav(SettingsRobot::assertMenuSettingsDisplayed)
|
|
||||||
clickHelpOnSideNav(HelpRobot::assertToolbarDisplayed)
|
|
||||||
clickSupportKiwixOnSideNav()
|
|
||||||
assertExternalLinkDialogDisplayed()
|
|
||||||
pressBack()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
package org.kiwix.kiwixmobile.note
|
package org.kiwix.kiwixmobile.note
|
||||||
|
|
||||||
|
import android.os.Build
|
||||||
import androidx.test.internal.runner.junit4.statement.UiThreadStatement
|
import androidx.test.internal.runner.junit4.statement.UiThreadStatement
|
||||||
import androidx.test.platform.app.InstrumentationRegistry
|
import androidx.test.platform.app.InstrumentationRegistry
|
||||||
import androidx.test.uiautomator.UiDevice
|
import androidx.test.uiautomator.UiDevice
|
||||||
@ -35,11 +36,13 @@ class NoteFragmentTest : BaseActivityTest() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun verifyNoteFragment() {
|
fun verifyNoteFragment() {
|
||||||
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.notesFragment) }
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
note {
|
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.notesFragment) }
|
||||||
assertToolbarExist()
|
note {
|
||||||
assertNoteRecyclerViewExist()
|
assertToolbarExist()
|
||||||
assertSwitchWidgetExist()
|
assertNoteRecyclerViewExist()
|
||||||
|
assertSwitchWidgetExist()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.kiwix.kiwixmobile.search
|
package org.kiwix.kiwixmobile.search
|
||||||
|
|
||||||
|
import android.os.Build
|
||||||
import androidx.core.content.edit
|
import androidx.core.content.edit
|
||||||
import androidx.core.net.toUri
|
import androidx.core.net.toUri
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
@ -52,43 +53,45 @@ class SearchFragmentTest : BaseActivityTest() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun searchFragmentSimple() {
|
fun searchFragmentSimple() {
|
||||||
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.libraryFragment) }
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
val loadFileStream =
|
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.libraryFragment) }
|
||||||
SearchFragmentTest::class.java.classLoader.getResourceAsStream("testzim.zim")
|
val loadFileStream =
|
||||||
val zimFile = File(context.cacheDir, "testzim.zim")
|
SearchFragmentTest::class.java.classLoader.getResourceAsStream("testzim.zim")
|
||||||
if (zimFile.exists()) zimFile.delete()
|
val zimFile = File(context.cacheDir, "testzim.zim")
|
||||||
zimFile.createNewFile()
|
if (zimFile.exists()) zimFile.delete()
|
||||||
loadFileStream.use { inputStream ->
|
zimFile.createNewFile()
|
||||||
val outputStream: OutputStream = FileOutputStream(zimFile)
|
loadFileStream.use { inputStream ->
|
||||||
outputStream.use { it ->
|
val outputStream: OutputStream = FileOutputStream(zimFile)
|
||||||
val buffer = ByteArray(inputStream.available())
|
outputStream.use { it ->
|
||||||
var length: Int
|
val buffer = ByteArray(inputStream.available())
|
||||||
while (inputStream.read(buffer).also { length = it } > 0) {
|
var length: Int
|
||||||
it.write(buffer, 0, length)
|
while (inputStream.read(buffer).also { length = it } > 0) {
|
||||||
|
it.write(buffer, 0, length)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
UiThreadStatement.runOnUiThread {
|
||||||
UiThreadStatement.runOnUiThread {
|
activityRule.activity.navigate(
|
||||||
activityRule.activity.navigate(
|
actionNavigationLibraryToNavigationReader()
|
||||||
actionNavigationLibraryToNavigationReader()
|
.apply { zimFileUri = zimFile.toUri().toString() }
|
||||||
.apply { zimFileUri = zimFile.toUri().toString() }
|
|
||||||
)
|
|
||||||
}
|
|
||||||
search { checkZimFileSearchSuccessful(R.id.readerFragment) }
|
|
||||||
UiThreadStatement.runOnUiThread {
|
|
||||||
if (zimFile.canRead()) {
|
|
||||||
activityRule.activity.openSearch(searchString = "Android")
|
|
||||||
} else {
|
|
||||||
throw RuntimeException(
|
|
||||||
"File $zimFile is not readable." +
|
|
||||||
" Original File $zimFile is readable = ${zimFile.canRead()}" +
|
|
||||||
" Size ${zimFile.length()}"
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
search { checkZimFileSearchSuccessful(R.id.readerFragment) }
|
||||||
search {
|
UiThreadStatement.runOnUiThread {
|
||||||
clickOnSearchItemInSearchList()
|
if (zimFile.canRead()) {
|
||||||
checkZimFileSearchSuccessful(R.id.readerFragment)
|
activityRule.activity.openSearch(searchString = "Android")
|
||||||
|
} else {
|
||||||
|
throw RuntimeException(
|
||||||
|
"File $zimFile is not readable." +
|
||||||
|
" Original File $zimFile is readable = ${zimFile.canRead()}" +
|
||||||
|
" Size ${zimFile.length()}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
search {
|
||||||
|
clickOnSearchItemInSearchList()
|
||||||
|
checkZimFileSearchSuccessful(R.id.readerFragment)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
package org.kiwix.kiwixmobile.settings
|
package org.kiwix.kiwixmobile.settings
|
||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
|
import android.os.Build
|
||||||
import androidx.test.internal.runner.junit4.statement.UiThreadStatement
|
import androidx.test.internal.runner.junit4.statement.UiThreadStatement
|
||||||
import androidx.test.rule.ActivityTestRule
|
import androidx.test.rule.ActivityTestRule
|
||||||
import androidx.test.rule.GrantPermissionRule
|
import androidx.test.rule.GrantPermissionRule
|
||||||
@ -47,38 +48,42 @@ class KiwixSettingsFragmentTest {
|
|||||||
@Before
|
@Before
|
||||||
fun setup() {
|
fun setup() {
|
||||||
// Go to IntroFragment
|
// Go to IntroFragment
|
||||||
UiThreadStatement.runOnUiThread { activityTestRule.activity.navigate(R.id.introFragment) }
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
intro(IntroRobot::swipeLeft) clickGetStarted { }
|
UiThreadStatement.runOnUiThread { activityTestRule.activity.navigate(R.id.introFragment) }
|
||||||
StandardActions.openDrawer()
|
intro(IntroRobot::swipeLeft) clickGetStarted { }
|
||||||
StandardActions.enterSettings()
|
StandardActions.openDrawer()
|
||||||
|
StandardActions.enterSettings()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testSettingsActivity() {
|
fun testSettingsActivity() {
|
||||||
settingsRobo {
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
assertZoomTextViewPresent()
|
settingsRobo {
|
||||||
assertVersionTextViewPresent()
|
assertZoomTextViewPresent()
|
||||||
clickLanguagePreference()
|
assertVersionTextViewPresent()
|
||||||
assertLanguagePrefDialogDisplayed()
|
clickLanguagePreference()
|
||||||
dismissDialog()
|
assertLanguagePrefDialogDisplayed()
|
||||||
toggleBackToTopPref()
|
dismissDialog()
|
||||||
toggleOpenNewTabInBackground()
|
toggleBackToTopPref()
|
||||||
toggleExternalLinkWarningPref()
|
toggleOpenNewTabInBackground()
|
||||||
toggleWifiDownloadsOnlyPref()
|
toggleExternalLinkWarningPref()
|
||||||
clickStoragePreference()
|
toggleWifiDownloadsOnlyPref()
|
||||||
// Let's pause here for a moment because calculating storage takes some time
|
clickStoragePreference()
|
||||||
BaristaSleepInteractions.sleep(TEST_PAUSE_MS.toLong())
|
// Let's pause here for a moment because calculating storage takes some time
|
||||||
assertStorageDialogDisplayed()
|
BaristaSleepInteractions.sleep(TEST_PAUSE_MS.toLong())
|
||||||
dismissDialog()
|
assertStorageDialogDisplayed()
|
||||||
clickClearHistoryPreference()
|
dismissDialog()
|
||||||
assertHistoryDialogDisplayed()
|
clickClearHistoryPreference()
|
||||||
dismissDialog()
|
assertHistoryDialogDisplayed()
|
||||||
clickNightModePreference()
|
dismissDialog()
|
||||||
assertNightModeDialogDisplayed()
|
clickNightModePreference()
|
||||||
dismissDialog()
|
assertNightModeDialogDisplayed()
|
||||||
clickCredits()
|
dismissDialog()
|
||||||
assertContributorsDialogDisplayed()
|
clickCredits()
|
||||||
dismissDialog()
|
assertContributorsDialogDisplayed()
|
||||||
|
dismissDialog()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ package org.kiwix.kiwixmobile.splash
|
|||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.os.Build
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import androidx.test.core.app.ActivityScenario
|
import androidx.test.core.app.ActivityScenario
|
||||||
import androidx.test.espresso.Espresso
|
import androidx.test.espresso.Espresso
|
||||||
@ -66,38 +67,42 @@ class KiwixSplashActivityTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testFirstRun() {
|
fun testFirstRun() {
|
||||||
shouldShowIntro(true)
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
activityScenario.recreate()
|
shouldShowIntro(true)
|
||||||
activityScenario.onActivity {
|
activityScenario.recreate()
|
||||||
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS.toLong())
|
activityScenario.onActivity {
|
||||||
Espresso.onView(ViewMatchers.withId(R.id.get_started))
|
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS.toLong())
|
||||||
.check(ViewAssertions.matches(ViewMatchers.isDisplayed()))
|
Espresso.onView(ViewMatchers.withId(R.id.get_started))
|
||||||
|
.check(ViewAssertions.matches(ViewMatchers.isDisplayed()))
|
||||||
|
|
||||||
// Verify that the value of the "intro shown" boolean inside
|
// Verify that the value of the "intro shown" boolean inside
|
||||||
// the SharedPreferences Database is not changed until
|
// the SharedPreferences Database is not changed until
|
||||||
// the "Get started" button is pressed
|
// the "Get started" button is pressed
|
||||||
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
|
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
|
||||||
Assert.assertEquals(
|
Assert.assertEquals(
|
||||||
true,
|
true,
|
||||||
preferences.getBoolean(
|
preferences.getBoolean(
|
||||||
SharedPreferenceUtil.PREF_SHOW_INTRO,
|
SharedPreferenceUtil.PREF_SHOW_INTRO,
|
||||||
true
|
true
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testNormalRun() {
|
fun testNormalRun() {
|
||||||
shouldShowIntro(false)
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
activityScenario.recreate()
|
shouldShowIntro(false)
|
||||||
activityScenario.onActivity {
|
activityScenario.recreate()
|
||||||
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS.toLong())
|
activityScenario.onActivity {
|
||||||
Intents.intended(
|
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS.toLong())
|
||||||
IntentMatchers.hasComponent(
|
Intents.intended(
|
||||||
KiwixMainActivity::class.java.canonicalName
|
IntentMatchers.hasComponent(
|
||||||
|
KiwixMainActivity::class.java.canonicalName
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user