Skip to content

owncloud/android-scenario-testing

 
 

Android Scenario Testing

License ownCloud OSPO

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 login, file operations, sharing, and Spaces, and runs against both oCIS and ownCloud 10 backends.

Part of Mobile (Android)

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.

Getting Started

Follow the steps below to set up and run the end-to-end test suite.

Prerequisites

  • An Appium instance running and reachable
  • At least one Android device or emulator attached (verify with adb devices)
  • $ANDROID_HOME environment variable set to the Android SDK folder

Running Tests

  1. Build the ownCloud Android app from the target branch using the buildAPK script in buildapk/
  2. Set environment variables:
    • $OC_SERVER_URL (mandatory) - ownCloud server URL
    • $APPIUM_URL (optional, defaults to localhost:4723)
    • $UDID_DEVICE (optional) - device/emulator ID
    • $BACKEND (optional, defaults to oCIS) - oCIS or oC10
  3. Run the executeTests script

Documentation

Reference

Key details from the project's test architecture and configuration:

Architecture

Tests use Gherkin Syntax scenarios interpreted by Cucumber, with step implementations in Java and device interaction via Appium.

Environment Variables

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

Backend-Specific Tags

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

Example: ./executeTests -t "not @ignore and not @noocis" runs tests suitable for oCIS.

Test Results

Reports in HTML and JSON formats are generated in the target/ directory.

Version Matrix

Component Version
Cucumber 7.31.0
Appium 3.1.0
Appium UIAutomator2 Driver 4.2.3
Java Client 9.4.0

Community & Support

Star this repo and Watch for release notifications!

Contributing

We welcome contributions! Please read the Contributing Guidelines and our Code of Conduct before getting started.

Workflow

  • 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-by line:
    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.

Security

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

License

This project is licensed under the MIT.

About the ownCloud OSPO

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.

For questions about the OSPO or licensing, contact ospo@kiteworks.com.

License Migration to Apache 2.0

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

About

📱 ⚙️ Android scenario testing using feature files. Gherkin language, Cucumber as tool and Appium interaction with devices/emulators

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Java 76.7%
  • Gherkin 20.6%
  • Shell 2.7%