Skip to content

kaspresso integration tests#119

Open
ScharfViktor wants to merge 1 commit intomainfrom
kasspresso-integration-tests
Open

kaspresso integration tests#119
ScharfViktor wants to merge 1 commit intomainfrom
kasspresso-integration-tests

Conversation

@ScharfViktor
Copy link
Copy Markdown

@ScharfViktor ScharfViktor commented Mar 31, 2026

Changes:

  • Added the first integration test using https://github.com/KasperskyLab/Kaspresso, based on Espresso (for existing tests) and UI Automator (for interacting with elements outside the app)
  • run all existing Espresso tests and skip all failed tests. I'll fix it later after setup CI

How to run test:

./gradlew :opencloudApp:connectedOriginalDebugAndroidTest \ -Pandroid.testInstrumentationRunnerArguments.class=eu.opencloud.android.LoginScreenTest#loginApp

or run in the Android studio:

Screen.Recording.2026-03-31.at.15.29.51.mp4

Copilot AI review requested due to automatic review settings March 31, 2026 13:37
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces an initial Kaspresso-based instrumentation “integration test” flow (mixing Espresso/Kakao screens with UI Automator for the external browser), updates AndroidX test dependency versions, and temporarily disables a set of currently failing/flaky existing androidTest tests.

Changes:

  • Add Kaspresso dependency and include src/integrationTest/java in the androidTest source set.
  • Add the first Kaspresso test (LoginScreenTest) plus screen objects for key app/browser UI.
  • Update AndroidX test/espresso versions and mark multiple existing instrumentation tests as @Ignore to unblock local runs.

Reviewed changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 16 comments.

Show a summary per file
File Description
opencloudComLibrary/src/main/java/eu/opencloud/android/lib/resources/shares/GetRemoteShareesOperation.kt Adjusts KDoc for constructor params (currently introduces a param-name inconsistency).
opencloudComLibrary/build.gradle Switches AndroidX test core dependency to version-catalog alias.
opencloudApp/src/integrationTest/java/screens/StartScreen.kt Adds Kakao/Kaspresso screen for initial account setup UI.
opencloudApp/src/integrationTest/java/screens/MainScreen.kt Adds Kakao/Kaspresso screen for main activity UI.
opencloudApp/src/integrationTest/java/screens/ManageAccountsDialog.kt Adds screen model for account removal flow (currently uses hardcoded text + naming typo).
opencloudApp/src/integrationTest/java/screens/LoginScreen.kt Adds UI Automator screen for external browser login (currently Chrome-package pinned).
opencloudApp/src/integrationTest/java/eu/opencloud/android/LoginScreenTest.kt Adds first Kaspresso integration test flow for login/remove-account.
opencloudApp/src/androidTest/java/eu/opencloud/android/ui/activity/ReleaseNotesActivityTest.kt Ignores two tests.
opencloudApp/src/androidTest/java/eu/opencloud/android/sharing/shares/ui/ShareFileFragmentTest.kt Ignores entire test class.
opencloudApp/src/androidTest/java/eu/opencloud/android/settings/security/SettingsSecurityFragmentTest.kt Ignores multiple tests.
opencloudApp/src/androidTest/java/eu/opencloud/android/settings/security/PassCodeActivityTest.kt Ignores multiple tests.
opencloudApp/src/androidTest/java/eu/opencloud/android/settings/more/SettingsMoreFragmentTest.kt Ignores one test.
opencloudApp/src/androidTest/java/eu/opencloud/android/settings/logs/SettingsLogsFragmentTest.kt Ignores one test.
opencloudApp/src/androidTest/java/eu/opencloud/android/settings/advanced/SettingsAdvancedFragmentTest.kt Ignores one test.
opencloudApp/src/androidTest/java/eu/opencloud/android/files/details/FileDetailsFragmentTest.kt Ignores entire test class.
opencloudApp/src/androidTest/java/eu/opencloud/android/authentication/LoginActivityTest.kt Adds AccountManager static mocking and ignores multiple tests.
opencloudApp/build.gradle Adds Kaspresso dependency, integration test source dir, and globally forces AndroidX test/espresso versions.
gradle/libs.versions.toml Bumps AndroidX test/espresso versions and adds Kaspresso version/catalog entry.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@ScharfViktor ScharfViktor force-pushed the kasspresso-integration-tests branch from 5b844f4 to a957903 Compare March 31, 2026 16:59
// can't find it using withId("com.android.chrome", "username") so using withResourceName()
val username = UiEditText { withResourceName("username") }
val password = UiEditText { withResourceName("password") }
val loginButton = UiButton { withResourceName("kc-login") }
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

trying to run the test it could not find that element

04-08 16:35:52.615  7129  7150 E TestRunner: failed: loginApp(eu.opencloud.android.LoginScreenTest)
04-08 16:35:52.616  7129  7150 E TestRunner: ----- begin exception -----
04-08 16:35:52.616  7129  7150 E TestRunner: com.kaspersky.components.kautomator.intercept.exception.UnfoundedUiObjectException: The UiObject2 was not found on the screen. The selector=BySelector [RES='\Qkc-login\E'], index=0
04-08 16:35:52.616  7129  7150 E TestRunner: 	at com.kaspersky.components.kautomator.intercept.interaction.UiObjectInteraction.check(UiObjectInteraction.kt:31)
04-08 16:35:52.616  7129  7150 E TestRunner: 	at com.kaspersky.kaspresso.interceptors.tolibrary.kautomator.KautomatorObjectInterceptor$interceptCheck$1.invoke(KautomatorObjectInterceptor.kt:29)
04-08 16:35:52.616  7129  7150 E TestRunner: 	at com.kaspersky.kaspresso.interceptors.tolibrary.kautomator.KautomatorObjectInterceptor$interceptCheck$1.invoke(KautomatorObjectInterceptor.kt:24)
04-08 16:35:52.616  7129  7150 E TestRunner: 	at com.kaspersky.kaspresso.autoscroll.ObjectAutoScrollProviderImpl.withAutoScroll(ObjectAutoScrollProviderImpl.kt:30)

@ScharfViktor ScharfViktor force-pushed the kasspresso-integration-tests branch from a957903 to f4294cb Compare April 11, 2026 06:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants