From f0eb680d21f22e4b3094fb58493ea2aa6ccf6da9 Mon Sep 17 00:00:00 2001 From: MohitMaliFtechiz Date: Wed, 13 Mar 2024 17:31:58 +0530 Subject: [PATCH] Added Notification permission in our test cases for API level 33. * Improved our `ZimHostFragmentTest` test to boost the test case speed. It was running in 2 minutes, but after this change, it now completes in 27 seconds. --- .../org/kiwix/kiwixmobile/BaseActivityTest.kt | 23 +++++++++++++++---- .../LocalFileTransferTest.kt | 1 + .../PlayStoreRestrictionDialogTest.kt | 1 + .../webserver/ZimHostFragmentTest.kt | 1 + .../kiwixmobile/webserver/ZimHostRobot.kt | 12 +++++++--- 5 files changed, 30 insertions(+), 8 deletions(-) diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/BaseActivityTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/BaseActivityTest.kt index c2f2b67e2..63e306959 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/BaseActivityTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/BaseActivityTest.kt @@ -18,8 +18,9 @@ package org.kiwix.kiwixmobile -import android.Manifest.permission +import android.Manifest import android.content.Context +import android.os.Build import androidx.test.core.app.ActivityScenario import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation @@ -34,10 +35,22 @@ import org.kiwix.kiwixmobile.main.KiwixMainActivity abstract class BaseActivityTest { open lateinit var activityScenario: ActivityScenario - private val permissions = arrayOf( - permission.READ_EXTERNAL_STORAGE, - permission.WRITE_EXTERNAL_STORAGE - ) + private val permissions = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + arrayOf( + Manifest.permission.POST_NOTIFICATIONS, + Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.NEARBY_WIFI_DEVICES, + Manifest.permission.ACCESS_NETWORK_STATE + ) + } else { + arrayOf( + Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_NETWORK_STATE + ) + } @get:Rule var permissionRules: GrantPermissionRule = diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferTest.kt index 4384c30f4..afb52e57a 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferTest.kt @@ -51,6 +51,7 @@ class LocalFileTransferTest { private val permissions = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { arrayOf( + Manifest.permission.POST_NOTIFICATIONS, Manifest.permission.NEARBY_WIFI_DEVICES ) } else { diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/PlayStoreRestrictionDialogTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/PlayStoreRestrictionDialogTest.kt index b728bfdb2..6ca226fee 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/PlayStoreRestrictionDialogTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/PlayStoreRestrictionDialogTest.kt @@ -46,6 +46,7 @@ class PlayStoreRestrictionDialogTest { private val permissions = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { arrayOf( + Manifest.permission.POST_NOTIFICATIONS, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.NEARBY_WIFI_DEVICES diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostFragmentTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostFragmentTest.kt index 2545ec3d6..d2f663a40 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostFragmentTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostFragmentTest.kt @@ -52,6 +52,7 @@ class ZimHostFragmentTest { private val permissions = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { arrayOf( + Manifest.permission.POST_NOTIFICATIONS, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.NEARBY_WIFI_DEVICES, diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostRobot.kt index 45634f30e..c3ec2bcd2 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostRobot.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostRobot.kt @@ -82,12 +82,18 @@ class ZimHostRobot : BaseRobot() { fun stopServerIfAlreadyStarted() { try { - assertServerStarted() - stopServer() + // Check if the "START SERVER" button is visible because, in most scenarios, + // this button will appear when the server is already stopped. + // This will expedite our test case, as verifying the visibility of + // non-visible views takes more time due to the try mechanism needed + // to properly retrieve the view. + assertServerStopped() } catch (exception: Exception) { + // if "START SERVER" button is not visible it means server is started so close it. + stopServer() Log.i( "ZIM_HOST_FRAGMENT", - "Failed to stop the server, Probably because server is not running" + "Stopped the server to perform our test case since it was already running" ) } }