From 8be9d0740a67555087b90237ce57427d8bf3014b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 16 Nov 2025 06:46:52 +0000 Subject: [PATCH 1/5] Initial plan From d9132b69856073a4ade433719fa0a756d8cdad40 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 16 Nov 2025 06:55:00 +0000 Subject: [PATCH 2/5] Add wait delays to fix timing issues in instrumentation tests Co-authored-by: RitikaPahwa4444 <83745993+RitikaPahwa4444@users.noreply.github.com> --- .../java/fr/free/nrw/commons/UploadCancelledTest.kt | 9 +++++++++ .../java/fr/free/nrw/commons/WelcomeActivityTest.kt | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/app/src/androidTest/java/fr/free/nrw/commons/UploadCancelledTest.kt b/app/src/androidTest/java/fr/free/nrw/commons/UploadCancelledTest.kt index ed57709fc2..a76660a45d 100644 --- a/app/src/androidTest/java/fr/free/nrw/commons/UploadCancelledTest.kt +++ b/app/src/androidTest/java/fr/free/nrw/commons/UploadCancelledTest.kt @@ -104,6 +104,9 @@ class UploadCancelledTest { ) actionMenuItemView.perform(click()) + // Wait for the nearby list to load + UITestHelper.sleep(2000) + val recyclerView = onView( allOf( @@ -117,6 +120,9 @@ class UploadCancelledTest { ), ) + // Wait for the button layout to expand + UITestHelper.sleep(1000) + val linearLayout3 = onView( allOf( @@ -132,6 +138,9 @@ class UploadCancelledTest { ) linearLayout3.perform(click()) + // Wait for the upload screen to load + UITestHelper.sleep(3000) + val pasteSensitiveTextInputEditText = onView( allOf( diff --git a/app/src/androidTest/java/fr/free/nrw/commons/WelcomeActivityTest.kt b/app/src/androidTest/java/fr/free/nrw/commons/WelcomeActivityTest.kt index 5956b3c02a..6a4de7da38 100644 --- a/app/src/androidTest/java/fr/free/nrw/commons/WelcomeActivityTest.kt +++ b/app/src/androidTest/java/fr/free/nrw/commons/WelcomeActivityTest.kt @@ -39,6 +39,8 @@ class WelcomeActivityTest { if (ConfigUtils.isBetaFlavour) { onView(withId(R.id.button_ok)) .perform(ViewActions.click()) + // Wait for the tutorial pager to load + UITestHelper.sleep(1000) onView(withId(R.id.finishTutorialButton)) .check(matches(isDisplayed())) } @@ -49,6 +51,8 @@ class WelcomeActivityTest { if (!ConfigUtils.isBetaFlavour) { onView(withId(R.id.button_ok)) .perform(ViewActions.click()) + // Wait for the tutorial pager to load + UITestHelper.sleep(1000) onView(withId(R.id.finishTutorialButton)) .check(matches(not(isDisplayed()))) } @@ -59,6 +63,8 @@ class WelcomeActivityTest { if (ConfigUtils.isBetaFlavour) { onView(withId(R.id.button_ok)) .perform(ViewActions.click()) + // Wait for the tutorial pager to load + UITestHelper.sleep(1000) onView(withId(R.id.finishTutorialButton)) .perform(ViewActions.click()) assertThat(activityRule.activity.isDestroyed, equalTo(true)) @@ -119,6 +125,8 @@ class WelcomeActivityTest { if (viewPager.currentItem == 3) { onView(withId(R.id.button_ok)) .perform(ViewActions.click()) + // Wait for the tutorial pager to load + UITestHelper.sleep(1000) onView(withId(R.id.finishTutorialButton)) .perform(ViewActions.click()) assertThat(activityRule.activity.isDestroyed, equalTo(true)) From 482340a31d577a84540465741c75fe3b654ec2f7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 16 Nov 2025 06:56:33 +0000 Subject: [PATCH 3/5] Add initial wait to all MainActivityTest tests for stability Co-authored-by: RitikaPahwa4444 <83745993+RitikaPahwa4444@users.noreply.github.com> --- .../java/fr/free/nrw/commons/MainActivityTest.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/src/androidTest/java/fr/free/nrw/commons/MainActivityTest.kt b/app/src/androidTest/java/fr/free/nrw/commons/MainActivityTest.kt index 3d2fc9e481..1243e3332a 100644 --- a/app/src/androidTest/java/fr/free/nrw/commons/MainActivityTest.kt +++ b/app/src/androidTest/java/fr/free/nrw/commons/MainActivityTest.kt @@ -66,6 +66,8 @@ class MainActivityTest { @Test fun testNearby() { + // Wait for the main activity to fully initialize + UITestHelper.sleep(1000) Espresso .onView( Matchers.allOf( @@ -104,6 +106,8 @@ class MainActivityTest { @Test fun testExplore() { + // Wait for the main activity to fully initialize + UITestHelper.sleep(1000) Espresso .onView( Matchers.allOf( @@ -125,6 +129,8 @@ class MainActivityTest { @Test fun testContributions() { + // Wait for the main activity to fully initialize + UITestHelper.sleep(1000) Espresso .onView( Matchers.allOf( @@ -175,6 +181,8 @@ class MainActivityTest { @Test fun testBookmarks() { + // Wait for the main activity to fully initialize + UITestHelper.sleep(1000) Espresso .onView( Matchers.allOf( @@ -193,6 +201,8 @@ class MainActivityTest { @Test fun testNotifications() { + // Wait for the main activity to fully initialize + UITestHelper.sleep(1000) Espresso .onView( Matchers.allOf( From 30f71953f7e6321479f1cfb44535b6064daa7f80 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 16 Nov 2025 07:33:23 +0000 Subject: [PATCH 4/5] Add location permission and dialog handling for UploadCancelledTest Co-authored-by: RitikaPahwa4444 <83745993+RitikaPahwa4444@users.noreply.github.com> --- .../free/nrw/commons/UploadCancelledTest.kt | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/app/src/androidTest/java/fr/free/nrw/commons/UploadCancelledTest.kt b/app/src/androidTest/java/fr/free/nrw/commons/UploadCancelledTest.kt index a76660a45d..1ad7638d83 100644 --- a/app/src/androidTest/java/fr/free/nrw/commons/UploadCancelledTest.kt +++ b/app/src/androidTest/java/fr/free/nrw/commons/UploadCancelledTest.kt @@ -40,6 +40,7 @@ class UploadCancelledTest { var mGrantPermissionRule: GrantPermissionRule = GrantPermissionRule.grant( "android.permission.WRITE_EXTERNAL_STORAGE", + "android.permission.ACCESS_FINE_LOCATION", ) private val device: UiDevice = @@ -138,8 +139,23 @@ class UploadCancelledTest { ) linearLayout3.perform(click()) - // Wait for the upload screen to load - UITestHelper.sleep(3000) + // Wait for the upload screen to load and handle any permission dialogs + UITestHelper.sleep(2000) + + // Try to handle permission dialog if it appears (for location or camera) + try { + val allowButton = device.findObject( + androidx.test.uiautomator.UiSelector() + .textMatches("(?i)(allow|permit|ok)") + .className("android.widget.Button") + ) + if (allowButton.exists()) { + allowButton.click() + UITestHelper.sleep(1000) + } + } catch (e: Exception) { + // No permission dialog, continue + } val pasteSensitiveTextInputEditText = onView( From d4baaaf67014df6226d1cca5ede4bb1a0dcccf76 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 16 Nov 2025 08:43:37 +0000 Subject: [PATCH 5/5] Move Robolectric tests from androidTest to test directory to fix kapt build error Co-authored-by: RitikaPahwa4444 <83745993+RitikaPahwa4444@users.noreply.github.com> --- .../commons/contributions/ContributionsListFragmentUnitTests.kt | 0 .../commons/navtab/MoreBottomSheetLoggedOutFragmentUnitTests.kt | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename app/src/{androidTest/java => test/kotlin}/fr/free/nrw/commons/contributions/ContributionsListFragmentUnitTests.kt (100%) rename app/src/{androidTest/java => test/kotlin}/fr/free/nrw/commons/navtab/MoreBottomSheetLoggedOutFragmentUnitTests.kt (100%) diff --git a/app/src/androidTest/java/fr/free/nrw/commons/contributions/ContributionsListFragmentUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionsListFragmentUnitTests.kt similarity index 100% rename from app/src/androidTest/java/fr/free/nrw/commons/contributions/ContributionsListFragmentUnitTests.kt rename to app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionsListFragmentUnitTests.kt diff --git a/app/src/androidTest/java/fr/free/nrw/commons/navtab/MoreBottomSheetLoggedOutFragmentUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/navtab/MoreBottomSheetLoggedOutFragmentUnitTests.kt similarity index 100% rename from app/src/androidTest/java/fr/free/nrw/commons/navtab/MoreBottomSheetLoggedOutFragmentUnitTests.kt rename to app/src/test/kotlin/fr/free/nrw/commons/navtab/MoreBottomSheetLoggedOutFragmentUnitTests.kt