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.

val message = KTextView {
containsText("Do you really want to remove the account")
}
val confirmBtr = KButton { withText("YES") }
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

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

These matchers hard-code English UI text ("Do you really want to remove the account", "YES"). The actual dialog uses string resources (including placeholders and translations), so this will break under non-English locales or if copy changes. Prefer matching via string resources (e.g., R.string.common_yes) and/or resource ids rather than raw text.

Suggested change
val confirmBtr = KButton { withText("YES") }
val confirmBtr = KButton { withText(R.string.common_yes) }

Copilot uses AI. Check for mistakes.
@ScharfViktor ScharfViktor force-pushed the kasspresso-integration-tests branch from 5b844f4 to a957903 Compare March 31, 2026 16:59
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.

2 participants