mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-11 08:27:50 -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,6 +35,7 @@ class HelpFragmentTest : BaseActivityTest() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun verifyHelpActivity() {
|
fun verifyHelpActivity() {
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
runOnUiThread { activityRule.activity.navigate(R.id.helpFragment) }
|
runOnUiThread { activityRule.activity.navigate(R.id.helpFragment) }
|
||||||
help {
|
help {
|
||||||
clickOnWhatDoesKiwixDo()
|
clickOnWhatDoesKiwixDo()
|
||||||
@ -49,3 +51,4 @@ class HelpFragmentTest : BaseActivityTest() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -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,6 +54,7 @@ class InitialDownloadTest : BaseActivityTest() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun initialDownloadTest() {
|
fun initialDownloadTest() {
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.downloadsFragment) }
|
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.downloadsFragment) }
|
||||||
initialDownload {
|
initialDownload {
|
||||||
assertLibraryListDisplayed()
|
assertLibraryListDisplayed()
|
||||||
@ -64,6 +66,7 @@ class InitialDownloadTest : BaseActivityTest() {
|
|||||||
assertDownloadStart()
|
assertDownloadStart()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
fun setPrefStorageOption() {
|
fun setPrefStorageOption() {
|
||||||
|
@ -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,9 +30,11 @@ class IntroFragmentTest : BaseActivityTest() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun viewIsSwipeableAndNavigatesToMain() {
|
fun viewIsSwipeableAndNavigatesToMain() {
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
runOnUiThread { activityRule.activity.navigate(R.id.introFragment) }
|
runOnUiThread { activityRule.activity.navigate(R.id.introFragment) }
|
||||||
intro(IntroRobot::swipeLeft) clickGetStarted {}
|
intro(IntroRobot::swipeLeft) clickGetStarted {}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
override fun waitForIdle() {
|
override fun waitForIdle() {
|
||||||
|
@ -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,6 +68,7 @@ class LanguageFragmentTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testLanguageFragment() {
|
fun testLanguageFragment() {
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
UiThreadStatement.runOnUiThread {
|
UiThreadStatement.runOnUiThread {
|
||||||
activityScenarioRule.scenario.onActivity {
|
activityScenarioRule.scenario.onActivity {
|
||||||
it.navigate(R.id.downloadsFragment)
|
it.navigate(R.id.downloadsFragment)
|
||||||
@ -82,3 +84,4 @@ class LanguageFragmentTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -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,6 +50,7 @@ class TopLevelDestinationTest : BaseActivityTest() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testTopLevelDestination() {
|
fun testTopLevelDestination() {
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
ActivityScenario.launch(KiwixMainActivity::class.java)
|
ActivityScenario.launch(KiwixMainActivity::class.java)
|
||||||
topLevel {
|
topLevel {
|
||||||
clickReaderOnBottomNav {
|
clickReaderOnBottomNav {
|
||||||
@ -77,6 +79,7 @@ class TopLevelDestinationTest : BaseActivityTest() {
|
|||||||
pressBack()
|
pressBack()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
fun setIsTestPreference() {
|
fun setIsTestPreference() {
|
||||||
|
@ -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,6 +36,7 @@ class NoteFragmentTest : BaseActivityTest() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun verifyNoteFragment() {
|
fun verifyNoteFragment() {
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.notesFragment) }
|
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.notesFragment) }
|
||||||
note {
|
note {
|
||||||
assertToolbarExist()
|
assertToolbarExist()
|
||||||
@ -43,3 +45,4 @@ class NoteFragmentTest : BaseActivityTest() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -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,6 +53,7 @@ class SearchFragmentTest : BaseActivityTest() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun searchFragmentSimple() {
|
fun searchFragmentSimple() {
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.libraryFragment) }
|
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.libraryFragment) }
|
||||||
val loadFileStream =
|
val loadFileStream =
|
||||||
SearchFragmentTest::class.java.classLoader.getResourceAsStream("testzim.zim")
|
SearchFragmentTest::class.java.classLoader.getResourceAsStream("testzim.zim")
|
||||||
@ -91,6 +93,7 @@ class SearchFragmentTest : BaseActivityTest() {
|
|||||||
checkZimFileSearchSuccessful(R.id.readerFragment)
|
checkZimFileSearchSuccessful(R.id.readerFragment)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
fun setIsTestPreference() {
|
fun setIsTestPreference() {
|
||||||
|
@ -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,14 +48,17 @@ class KiwixSettingsFragmentTest {
|
|||||||
@Before
|
@Before
|
||||||
fun setup() {
|
fun setup() {
|
||||||
// Go to IntroFragment
|
// Go to IntroFragment
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
UiThreadStatement.runOnUiThread { activityTestRule.activity.navigate(R.id.introFragment) }
|
UiThreadStatement.runOnUiThread { activityTestRule.activity.navigate(R.id.introFragment) }
|
||||||
intro(IntroRobot::swipeLeft) clickGetStarted { }
|
intro(IntroRobot::swipeLeft) clickGetStarted { }
|
||||||
StandardActions.openDrawer()
|
StandardActions.openDrawer()
|
||||||
StandardActions.enterSettings()
|
StandardActions.enterSettings()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testSettingsActivity() {
|
fun testSettingsActivity() {
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
settingsRobo {
|
settingsRobo {
|
||||||
assertZoomTextViewPresent()
|
assertZoomTextViewPresent()
|
||||||
assertVersionTextViewPresent()
|
assertVersionTextViewPresent()
|
||||||
@ -82,3 +86,4 @@ class KiwixSettingsFragmentTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -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,6 +67,7 @@ class KiwixSplashActivityTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testFirstRun() {
|
fun testFirstRun() {
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
shouldShowIntro(true)
|
shouldShowIntro(true)
|
||||||
activityScenario.recreate()
|
activityScenario.recreate()
|
||||||
activityScenario.onActivity {
|
activityScenario.onActivity {
|
||||||
@ -86,9 +88,11 @@ class KiwixSplashActivityTest {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testNormalRun() {
|
fun testNormalRun() {
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||||
shouldShowIntro(false)
|
shouldShowIntro(false)
|
||||||
activityScenario.recreate()
|
activityScenario.recreate()
|
||||||
activityScenario.onActivity {
|
activityScenario.onActivity {
|
||||||
@ -100,6 +104,7 @@ class KiwixSplashActivityTest {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
fun endTest() {
|
fun endTest() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user