This repository contains end-to-end scenario tests for the ownCloud Android app. Tests are written as Gherkin feature files using Cucumber for step interpretation and Appium for device interaction. The test suite covers core functionality including file operations, sharing, and Spaces, and runs against both oCIS and ownCloud 10 backends.
This repository provides the automated end-to-end test suite for the ownCloud Android app. It is used in CI pipelines to validate app behavior against real server backends.
Follow the steps below to set up and run the end-to-end test suite.
Tests use Gherkin Syntax scenarios interpreted by Cucumber, with step implementations in Java and device interaction via Appium.
- An Appium instance running and reachable
- At least one Android device or emulator attached (verify with
adb devices) $ANDROID_HOMEenvironment variable set to the Android SDK folder
First, build the app from the expected branch/commit to get the test object.
The buildAPK script will build the app by using the qa variant available in the app. Such variant:
- will disable welcome wizard
- will disable the release notes
- will set basic auth as forced authentication method, required to execute the test suites
Besides of that, the script also:
- builds a release-signed apk with the given keystore path and pass (check script variables)
- moves the final artifact to the correct place (
/src/test/resourcesfolder in the current structure)
As commented, check the script's variables for the proper setup in your own environment or CI system.
In the current repository there will be always an owncloud.apk file located in /src/test/resources, as example or fallback.
The script executeTests will launch the tests. The following environment variables must be set in advance
| Variable | Required | Default | Description |
|---|---|---|---|
$OC_SERVER_URL |
Yes | -- | ownCloud server URL to test against |
$APPIUM_URL |
No | localhost:4723 |
Appium server URL |
$UDID_DEVICE |
No | -- | Device/emulator ID (from adb devices) |
$BACKEND |
No | oCIS |
Backend type: oCIS or oC10 |
The script needs some parameters. Check help executeTests -h
To execute all tests but the ignored ones (or any other tagged ones):
export UDID_DEVICE=emulator-5554
export OC_SERVER_URL=https://my.owncloud.server
export APPIUM_URL=localhost:4723
export BACKEND=oCIS
./executeTests -t "not @ignore"
Example: ./executeTests -t "not @ignore and not @noocis" runs tests suitable for oCIS.
Since not all tests are suitable for both backends, tests are tagged:
@nooc10-- tests for oCIS only, not suitable for oC10@noocis-- tests for oC10 only, not suitable for oCIS
The execution will display step by step how the scenario is being executed.
More info in Cucumber reference
- Feature files are in
src/test/resources/io/cucumber/ - Appium documentation
- Cucumber documentation
| Component | Version |
|---|---|
| Cucumber | 7.31.0 |
| Appium | 3.1.0 |
| Appium UIAutomator2 Driver | 4.2.3 |
| Java Client | 9.4.0 |
Star this repo and Watch for release notifications!
We welcome contributions! Please read the Contributing Guidelines and our Code of Conduct before getting started.
- Rebase Early, Rebase Often! We use a rebase workflow. Always rebase on the target branch before submitting a PR.
- Dependabot: Automated dependency updates are managed via Dependabot. Review and merge dependency PRs promptly.
- Signed Commits: All commits must be PGP/GPG signed. See GitHub's signing guide.
- DCO Sign-off: Every commit must carry a
Signed-off-byline:git commit -s -S -m "your commit message" - GitHub Actions Policy: Workflows may only use actions that are (a) owned by
owncloud, (b) created by GitHub (actions/*), or (c) verified in the GitHub Marketplace.
Do not open a public GitHub issue for security vulnerabilities.
Report vulnerabilities at https://security.owncloud.com -- see SECURITY.md.
Bug bounty: YesWeHack ownCloud Program
This project is licensed under the MIT.
The Kiteworks Open Source Program Office, operating under the ownCloud brand, launched on May 5, 2026, to steward the open source ecosystem around ownCloud's products. The OSPO ensures transparent governance, license compliance, community health, and sustainable collaboration between the open source community and Kiteworks, which acquired ownCloud in 2023.
- OSPO Home: https://kiteworks.com/opensource
- GitHub: https://github.com/owncloud
- ownCloud: https://owncloud.com
For questions about the OSPO or licensing, contact ospo@kiteworks.com.
The OSPO is driving a strategic relicensing of ownCloud repositories toward the Apache License 2.0, following the Apache Software Foundation's third-party license policy.
Individual repositories will migrate as their audit is completed. The LICENSE file in each repo reflects its current license status (not the target).
Current license: MIT (Category A per Apache policy -- permissive, compatible with Apache-2.0).
Migration prerequisites for this repository:
- CLA/DCO coverage: All past contributors must have signed agreements permitting relicensing
- Header updates: All source file headers must be updated from MIT to Apache-2.0 notice
- Dependency audit: Verify no incompatible transitive dependencies
