-
Notifications
You must be signed in to change notification settings - Fork 0
Description
OpenCloud Compose Test Plan
Overview
This document outlines a comprehensive test plan for the OpenCloud Compose project. The plan covers different service combinations, configurations, and deployment scenarios based on the modular architecture of the repository.
Test Environment Requirements
Prerequisites
- Docker Engine v20.10+ with Docker Compose v2
- Sufficient disk space (minimum 10GB recommended)
- Available ports: 80, 443, 9200, 9300, 9980 (depending on configuration)
- Test domains configured in
/etc/hostsor DNS mkcertfor local SSL certificate generation (development only)
Test Domains
For local testing, add the following entries to /etc/hosts:
127.0.0.1 cloud.opencloud.test
127.0.0.1 traefik.opencloud.test
127.0.0.1 collabora.opencloud.test
127.0.0.1 wopiserver.opencloud.test
127.0.0.1 keycloak.opencloud.test
127.0.0.1 mail.opencloud.test
Test Scenarios
1. Basic Deployment Tests
Test 1.1: Minimal OpenCloud with Traefik
Configuration:
COMPOSE_FILE=docker-compose.yml:traefik/opencloud.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.opencloud.testINSECURE=true
Test Steps:
- Copy
.env.exampleto.env - Set required environment variables
- Run
docker compose up -d - Wait for all containers to be healthy (timeout: 5 minutes)
- Verify OpenCloud container is running
- Verify Traefik container is running
- Access
https://cloud.opencloud.test - Login with username
adminand configured password
Expected Results:
-
All containers start successfully
-
OpenCloud web interface is accessible
-
Login succeeds with admin credentials
-
Dashboard loads without errors
-
Check passed or Create issue
Cleanup:
docker compose down -vTest 1.2: OpenCloud with Built-in LDAP Only
Configuration:
docker compose -f docker-compose.yml up -dEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.opencloud.testINSECURE=true
Test Steps:
- Start OpenCloud without Traefik
- Verify container starts successfully
- Check logs for successful LDAP initialization
- Verify admin user creation in logs
Expected Results:
-
OpenCloud container starts without errors
-
Built-in LDAP initializes successfully
-
Admin user created with configured password
-
Check passed or Create issue
2. Web Office Integration Tests
Test 2.1: OpenCloud with Collabora Online
Configuration:
COMPOSE_FILE=docker-compose.yml:weboffice/collabora.yml:traefik/opencloud.yml:traefik/collabora.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.opencloud.testCOLLABORA_DOMAIN=collabora.opencloud.testWOPISERVER_DOMAIN=wopiserver.opencloud.testCOLLABORA_ADMIN_USER=adminCOLLABORA_ADMIN_PASSWORD=collaboraAdmin123COLLABORA_SSL_ENABLE=falseCOLLABORA_SSL_VERIFICATION=falseINSECURE=true
Test Steps:
- Deploy full stack with Collabora
- Verify all containers start (opencloud, collabora, wopiserver, traefik)
- Login to OpenCloud as admin
- Create a new text document
- Verify Collabora editor opens
- Type text and save document
- Close editor and reopen document
- Access Collabora admin panel at
https://collabora.opencloud.test/browser/dist/admin/admin.html - Verify WOPI server connectivity
Expected Results:
-
Collabora container starts successfully
-
WOPI server starts successfully
-
Document creation triggers Collabora editor
-
Editor displays without errors
-
Text editing and saving works
-
Document reopens with saved content
-
Collabora admin panel is accessible
-
Check passed or Create issue
3. Identity Management Tests
Test 3.1: OpenCloud with Keycloak and LDAP (Shared User Directory)
Configuration:
COMPOSE_FILE=docker-compose.yml:idm/ldap-keycloak.yml:traefik/opencloud.yml:traefik/ldap-keycloak.ymlEnvironment Variables:
OC_DOMAIN=cloud.opencloud.testKEYCLOAK_DOMAIN=keycloak.opencloud.testKEYCLOAK_ADMIN=kcadminKEYCLOAK_ADMIN_PASSWORD=keycloakAdmin123LDAP_BIND_PASSWORD=ldapAdmin123KC_DB_USERNAME=keycloakKC_DB_PASSWORD=kcDbPassword123INSECURE=true
Test Steps:
- Deploy OpenCloud with Keycloak and LDAP
- Verify all containers start (opencloud, ldap-server, postgres, keycloak, traefik)
- Wait for Keycloak realm import to complete
- Access Keycloak admin console at
https://keycloak.opencloud.test - Login to Keycloak with admin credentials
- Verify OpenCloud realm exists
- Check LDAP user federation is configured
- Create a test user in Keycloak
- Login to OpenCloud with the test user
- Verify user appears in OpenCloud user management
Expected Results:
-
All containers start successfully
-
Keycloak initializes with OpenCloud realm
-
LDAP federation is configured
-
Users created in Keycloak can login to OpenCloud
-
User directory is shared between Keycloak and OpenCloud
-
Check passed or Create issue
Test 3.2: OpenCloud with External IDP (Auto-provisioning)
Configuration:
COMPOSE_FILE=docker-compose.yml:idm/external-idp.yml:traefik/opencloud.ymlEnvironment Variables:
OC_DOMAIN=cloud.opencloud.testIDP_DOMAIN=keycloak.opencloud.testIDP_ISSUER_URL=https://keycloak.opencloud.test/realms/openCloudIDP_ACCOUNT_URL=https://keycloak.opencloud.test/realms/openCloud/accountLDAP_BIND_PASSWORD=ldapAdmin123INSECURE=true
Test Steps:
- Setup external Keycloak (using testing/external-keycloak.yml)
- Deploy OpenCloud with external IDP configuration
- Verify LDAP server starts with write enabled
- Access OpenCloud login page
- Redirect to external IDP for authentication
- Login with external IDP user
- Verify user is auto-provisioned in OpenCloud LDAP
- Check user can access OpenCloud dashboard
- Verify account edit link redirects to external IDP
Expected Results:
-
OpenCloud redirects to external IDP for authentication
-
Authentication succeeds with external IDP credentials
-
User account is auto-provisioned in OpenCloud
-
User data syncs from IDP to OpenCloud
-
Account management redirects to external IDP
-
Check passed or Create issue
4. Storage Backend Tests
Test 4.1: OpenCloud with S3 Storage (MinIO)
Configuration:
COMPOSE_FILE=docker-compose.yml:storage/decomposeds3.yml:traefik/opencloud.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.opencloud.testDECOMPOSEDS3_ENDPOINT=http://minio:9000DECOMPOSEDS3_REGION=defaultDECOMPOSEDS3_ACCESS_KEY=opencloudDECOMPOSEDS3_SECRET_KEY=opencloud-secret-keyDECOMPOSEDS3_BUCKET=opencloudINSECURE=true
Test Steps:
- Deploy OpenCloud with S3 storage backend
- Verify MinIO container starts
- Verify OpenCloud connects to MinIO
- Login to OpenCloud
- Upload a test file
- Verify file is stored in S3 bucket
- Download the file
- Delete the file
- Verify file is removed from S3
Expected Results:
-
MinIO container starts successfully
-
OpenCloud connects to S3 backend
-
File operations work correctly with S3 storage
-
Files are stored in configured S3 bucket
-
Check passed or Create issue
5. Search Integration Tests
Test 5.1: OpenCloud with Apache Tika Full-Text Search
Configuration:
COMPOSE_FILE=docker-compose.yml:search/tika.yml:traefik/opencloud.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.opencloud.testTIKA_IMAGE=apache/tika:latest-fullINSECURE=true
Test Steps:
- Deploy OpenCloud with Tika search
- Verify Tika container starts
- Login to OpenCloud
- Upload various document types (PDF, DOCX, TXT)
- Wait for indexing to complete
- Perform search queries for document content
- Verify search returns correct results
- Test metadata extraction from uploaded files
Expected Results:
-
Tika container starts successfully
-
Documents are indexed for search
-
Full-text search returns accurate results
-
Metadata is extracted from various file formats
-
Check passed or Create issue
6. Monitoring Tests
Test 6.1: OpenCloud with Monitoring Enabled
Configuration:
COMPOSE_FILE=docker-compose.yml:monitoring/monitoring.yml:traefik/opencloud.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.opencloud.testINSECURE=true
Test Steps:
- Create external network:
docker network create opencloud-net - Deploy OpenCloud with monitoring
- Access metrics endpoint:
http://localhost:9205/metrics - Verify Prometheus-compatible metrics are returned
- Perform operations in OpenCloud (login, file upload, etc.)
- Check metrics reflect the operations
- Verify collaboration metrics at
http://localhost:9304/metrics
Expected Results:
-
Metrics endpoints are accessible
-
Metrics follow Prometheus format
-
Metrics update based on OpenCloud activity
-
Both proxy and collaboration metrics are available
-
Check passed or Create issue
Cleanup:
docker network rm opencloud-net7. Calendar/Contacts Integration Tests
Test 7.1: OpenCloud with Radicale
Configuration:
COMPOSE_FILE=docker-compose.yml:radicale/radicale.yml:traefik/opencloud.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.opencloud.testRADICALE_DOCKER_IMAGE=opencloudeu/radicaleRADICALE_DOCKER_TAG=latestINSECURE=true
Test Steps:
- Deploy OpenCloud with Radicale
- Verify Radicale container starts
- Login to OpenCloud
- Access calendar interface
- Create a calendar event
- Access contacts interface
- Create a contact entry
- Test CalDAV endpoint with calendar client
- Test CardDAV endpoint with contacts client
Expected Results:
-
Radicale container starts successfully
-
Calendar and contacts interfaces are accessible
-
Events and contacts can be created
-
CalDAV/CardDAV endpoints are functional
-
External clients can sync with Radicale
-
Check passed or Create issue
8. External Proxy Tests
Test 8.1: OpenCloud with External Proxy (Port Exposure)
Configuration:
COMPOSE_FILE=docker-compose.yml:external-proxy/opencloud.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.opencloud.test
Test Steps:
- Deploy OpenCloud with external proxy configuration
- Verify port 9200 is exposed
- Access OpenCloud via
http://localhost:9200 - Configure external reverse proxy (Nginx/Caddy) to forward to port 9200
- Access OpenCloud through external proxy
- Test all basic functionality through proxy
Expected Results:
-
Port 9200 is exposed and accessible
-
OpenCloud works behind external reverse proxy
-
All features function correctly through proxy
-
Check passed or Create issue
Test 8.2: Collabora with External Proxy
Configuration:
COMPOSE_FILE=docker-compose.yml:weboffice/collabora.yml:external-proxy/opencloud.yml:external-proxy/collabora.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.opencloud.testCOLLABORA_DOMAIN=collabora.opencloud.testWOPISERVER_DOMAIN=wopiserver.opencloud.test
Test Steps:
- Deploy with external proxy configuration
- Verify ports are exposed: 9200 (OpenCloud), 9980 (Collabora), 9300 (WOPI)
- Configure external reverse proxy for all services
- Access OpenCloud through external proxy
- Create and edit documents with Collabora through proxy
- Verify WOPI communication works through proxy
Expected Results:
-
All required ports are exposed
-
Services work correctly behind external proxy
-
Collabora editor functions through proxy
-
WOPI server communication is successful
-
Check passed or Create issue
9. SSL/TLS Configuration Tests
Test 9.1: Let's Encrypt Certificate Configuration
Configuration:
COMPOSE_FILE=docker-compose.yml:traefik/opencloud.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.example.com(real domain)TRAEFIK_ACME_MAIL=admin@example.comTRAEFIK_SERVICES_TLS_CONFIG=tls.certresolver=letsencryptINSECURE=false
Prerequisites:
- Valid public domain with DNS configured
- Ports 80 and 443 accessible from internet
Test Steps:
- Configure environment with production domain
- Deploy OpenCloud stack
- Monitor Traefik logs for ACME challenge
- Verify Let's Encrypt certificate issuance
- Access OpenCloud via HTTPS
- Verify valid SSL certificate in browser
- Check certificate details (issuer, expiry)
Expected Results:
-
ACME challenge completes successfully
-
Valid Let's Encrypt certificate is issued
-
HTTPS connection is secure
-
No certificate warnings in browser
-
Check passed or Create issue
Test 9.2: Custom Certificate Configuration (Development)
Configuration:
COMPOSE_FILE=docker-compose.yml:traefik/opencloud.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.opencloud.testTRAEFIK_SERVICES_TLS_CONFIG=tls=trueTRAEFIK_CERTS_DIR=./certsINSECURE=true
Test Steps:
- Generate certificates with mkcert:
mkcert -install mkcert -cert-file certs/opencloud.test.crt -key-file certs/opencloud.test.key "*.opencloud.test" opencloud.test - Create Traefik dynamic config in
config/traefik/dynamic/certs.yml - Deploy OpenCloud stack
- Access OpenCloud via HTTPS
- Verify custom certificate is used
- Check certificate details in browser
Expected Results:
-
Custom certificates are loaded by Traefik
-
HTTPS connection uses custom certificates
-
No certificate warnings (mkcert CA is trusted)
-
Check passed or Create issue
10. Additional Services Tests
Test 10.1: Email Notifications with SMTP
Configuration:
COMPOSE_FILE=docker-compose.yml:traefik/opencloud.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.opencloud.testSTART_ADDITIONAL_SERVICES=notificationsSMTP_HOST=smtp.example.comSMTP_PORT=587SMTP_SENDER=OpenCloud <noreply@example.com>SMTP_USERNAME=smtp_userSMTP_PASSWORD=smtp_passSMTP_AUTHENTICATION=plainSMTP_TRANSPORT_ENCRYPTION=starttlsINSECURE=true
Test Steps:
- Configure SMTP settings
- Enable notifications service
- Deploy OpenCloud
- Login and enable email notifications in settings
- Trigger a notification event (share file)
- Verify email is sent
- Check email content and formatting
Expected Results:
-
Notifications service starts successfully
-
SMTP connection is established
-
Notification emails are sent correctly
-
Email formatting is appropriate
-
Check passed or Create issue
Test 10.2: Antivirus Scanning with ClamAV
Configuration:
COMPOSE_FILE=docker-compose.yml:traefik/opencloud.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.opencloud.testSTART_ADDITIONAL_SERVICES=antivirusANTIVIRUS_MAX_SCAN_SIZE=100MBANTIVIRUS_MAX_SCAN_SIZE_MODE=partialCLAMAV_DOCKER_TAG=latestINSECURE=true
Test Steps:
- Enable antivirus service
- Deploy OpenCloud
- Wait for ClamAV to initialize and update definitions
- Upload a clean test file
- Verify file upload succeeds
- Upload EICAR test file (safe virus test file)
- Verify file is detected and blocked
- Check logs for virus detection
Expected Results:
-
ClamAV container starts and updates
-
Clean files upload successfully
-
Virus test files are detected and blocked
-
Appropriate user notification on virus detection
-
Check passed or Create issue
Test 10.3: Demo Users Creation
Configuration:
COMPOSE_FILE=docker-compose.yml:traefik/opencloud.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.opencloud.testDEMO_USERS=trueINSECURE=true
Test Steps:
- Enable demo users
- Deploy OpenCloud
- Check logs for demo user creation
- Login with each demo user:
- Username:
alan, Password:demo - Username:
mary, Password:demo - Username:
margaret, Password:demo - Username:
dennis, Password:demo - Username:
lynn, Password:demo
- Username:
- Verify each user has access to dashboard
Expected Results:
-
All demo users are created successfully
-
Each demo user can login
-
Demo users have appropriate default permissions
-
Check passed or Create issue
11. Complex Integration Tests
Test 11.1: Full Production Stack
Configuration:
COMPOSE_FILE=docker-compose.yml:weboffice/collabora.yml:idm/ldap-keycloak.yml:search/tika.yml:monitoring/monitoring.yml:radicale/radicale.yml:traefik/opencloud.yml:traefik/collabora.yml:traefik/ldap-keycloak.ymlEnvironment Variables:
OC_DOMAIN=cloud.opencloud.testCOLLABORA_DOMAIN=collabora.opencloud.testWOPISERVER_DOMAIN=wopiserver.opencloud.testKEYCLOAK_DOMAIN=keycloak.opencloud.testKEYCLOAK_ADMIN=kcadminKEYCLOAK_ADMIN_PASSWORD=keycloakAdmin123LDAP_BIND_PASSWORD=ldapAdmin123KC_DB_USERNAME=keycloakKC_DB_PASSWORD=kcDbPassword123COLLABORA_ADMIN_USER=adminCOLLABORA_ADMIN_PASSWORD=collaboraAdmin123COLLABORA_SSL_ENABLE=falseCOLLABORA_SSL_VERIFICATION=falseTIKA_IMAGE=apache/tika:latest-fullRADICALE_DOCKER_IMAGE=opencloudeu/radicaleINSECURE=true
Test Steps:
- Create external network:
docker network create opencloud-net - Deploy full production stack
- Verify all containers start (12+ containers)
- Login to Keycloak admin console
- Create test users in Keycloak
- Login to OpenCloud with Keycloak user
- Upload and edit documents with Collabora
- Perform full-text search
- Create calendar events and contacts
- Access metrics endpoints
- Verify all integrations work together
- Test user management across all services
Expected Results:
-
All containers start without conflicts
-
Services integrate seamlessly
-
User authentication flows through Keycloak
-
Document editing works with Collabora
-
Search indexes and returns results
-
Calendar and contacts are functional
-
Metrics are available for all services
-
No port conflicts or networking issues
-
Check passed or Create issue
Test 11.2: High Availability Test (Collaboration Service Scaling)
Configuration:
COMPOSE_FILE=docker-compose.yml:weboffice/collabora.yml:traefik/opencloud.yml:traefik/collabora.ymlTest Steps:
- Deploy OpenCloud with Collabora
- Scale collaboration service:
docker compose up -d --scale collaboration=3 - Verify all collaboration instances are running
- Open multiple documents simultaneously from different browsers
- Verify load is distributed across instances
- Stop one collaboration instance
- Verify remaining instances continue serving requests
- Create new documents during instance failure
- Restart stopped instance
- Verify it rejoins the pool
Expected Results:
-
Multiple collaboration instances start successfully
-
Load balancing distributes requests
-
Service continues during instance failures
-
No data loss or corruption
-
Automatic recovery when instances restart
-
Check passed or Create issue
12. Persistence and Data Integrity Tests
Test 12.1: Data Persistence with Docker Volumes
Configuration:
COMPOSE_FILE=docker-compose.yml:traefik/opencloud.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.opencloud.test- Uses default Docker volumes
Test Steps:
- Deploy OpenCloud
- Login and create test data (files, folders)
- Stop containers:
docker compose down - Verify volumes still exist:
docker volume ls | grep opencloud - Start containers again:
docker compose up -d - Login and verify all data persists
- Test with volume removal:
docker compose down -v - Restart and verify fresh installation
Expected Results:
-
Data persists across container restarts
-
Volumes maintain data integrity
-
Fresh installation when volumes are removed
-
Check passed or Create issue
Test 12.2: Data Persistence with Host Paths
Configuration:
COMPOSE_FILE=docker-compose.yml:traefik/opencloud.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_DOMAIN=cloud.opencloud.testOC_CONFIG_DIR=/tmp/opencloud-test/configOC_DATA_DIR=/tmp/opencloud-test/dataOC_APPS_DIR=/tmp/opencloud-test/apps
Test Steps:
- Create host directories with correct permissions:
mkdir -p /tmp/opencloud-test/{config,data,apps} chown -R 1000:1000 /tmp/opencloud-test - Deploy OpenCloud
- Create test data
- Verify data appears in host directories
- Stop containers
- Inspect host directories directly
- Start containers again
- Verify data persists
Expected Results:
-
Data is stored in host directories
-
Permissions are maintained correctly
-
Data persists across restarts
-
Direct host access to data is possible
-
Check passed or Create issue
13. Logging and Debugging Tests
Test 13.1: Log Driver Configuration
Configuration:
COMPOSE_FILE=docker-compose.yml:traefik/opencloud.ymlEnvironment Variables:
LOG_DRIVER=json-fileLOG_LEVEL=debugLOG_PRETTY=true
Test Steps:
- Configure logging settings
- Deploy OpenCloud
- Generate various log events (login, file operations, errors)
- View logs:
docker compose logs -f opencloud - Verify log format matches configuration
- Test different log levels (info, debug, error)
- Check Traefik access logs if enabled
Expected Results:
-
Logs are formatted according to configuration
-
Log levels filter appropriately
-
Human-readable logs when LOG_PRETTY=true
-
All log events are captured
-
Check passed or Create issue
Test 13.2: Traefik Dashboard and Access Logs
Configuration:
COMPOSE_FILE=docker-compose.yml:traefik/opencloud.ymlEnvironment Variables:
TRAEFIK_DASHBOARD=trueTRAEFIK_DOMAIN=traefik.opencloud.testTRAEFIK_BASIC_AUTH_USERS=admin:$$2y$$05$$KDHu3xq92SPaO3G8Ybkc7edd51pPLJcG1nWk3lmlrIdANQ/B6r5pqTRAEFIK_ACCESS_LOG=trueTRAEFIK_LOG_LEVEL=DEBUG
Test Steps:
- Enable Traefik dashboard and access logs
- Deploy stack
- Access Traefik dashboard at
https://traefik.opencloud.test - Login with configured credentials
- Verify dashboard displays services and routers
- Generate traffic to OpenCloud
- Monitor access logs in Traefik dashboard
- Check container logs for Traefik access entries
Expected Results:
-
Traefik dashboard is accessible
-
Authentication works correctly
-
Services and routers are visible
-
Access logs capture all requests
-
Log level provides appropriate detail
-
Check passed or Create issue
14. Security Tests
Test 14.1: INSECURE Flag Impact
Configuration:
COMPOSE_FILE=docker-compose.yml:weboffice/collabora.yml:traefik/opencloud.yml:traefik/collabora.ymlTest Cases:
- Case A:
INSECURE=true - Case B:
INSECURE=false
Test Steps for Case A (Development):
- Deploy with INSECURE=true
- Use self-signed certificates
- Verify services work without SSL verification errors
- Test Collabora integration with self-signed certs
Test Steps for Case B (Production):
- Deploy with INSECURE=false
- Use valid certificates (Let's Encrypt or proper CA)
- Verify SSL verification is enforced
- Test that invalid certificates are rejected
Expected Results:
-
INSECURE=true allows self-signed certificates
-
INSECURE=false enforces proper SSL validation
-
Production environments should use INSECURE=false
-
Check passed or Create issue
Test 14.2: Password Policy Enforcement
Configuration:
COMPOSE_FILE=docker-compose.yml:traefik/opencloud.ymlEnvironment Variables:
INITIAL_ADMIN_PASSWORD=test123!AdminOC_PASSWORD_POLICY_DISABLED=falseOC_PASSWORD_POLICY_MIN_CHARACTERS=8OC_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS=1OC_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS=1OC_PASSWORD_POLICY_MIN_DIGITS=1OC_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS=1
Test Steps:
- Deploy with password policy enabled
- Create test users with various passwords:
- Weak password:
test123 - No uppercase:
test123! - No special char:
Test1234 - Valid password:
Test123!
- Weak password:
- Verify weak passwords are rejected
- Verify strong passwords are accepted
- Test banned passwords list functionality
Expected Results:
-
Password policy is enforced correctly
-
Weak passwords are rejected with clear error messages
-
Valid passwords meeting all criteria are accepted
-
Banned passwords are blocked
-
Check passed or Create issue
Test 14.3: Public Share Password Requirements
Configuration:
COMPOSE_FILE=docker-compose.yml:traefik/opencloud.ymlEnvironment Variables:
OC_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD=trueOC_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD=true
Test Steps:
- Deploy with public share password requirements
- Login and create a public share without password
- Verify password is required
- Create public share with password
- Verify share creation succeeds
- Test read-only vs writable share password requirements
- Access public share externally
- Verify password prompt appears
Expected Results:
-
Public shares require passwords when configured
-
Password enforcement works for both read and write shares
-
Public share access requires password entry
-
Password protection is effective
-
Check passed or Create issue
15. Upgrade and Migration Tests
Test 15.1: Version Upgrade Test
Configuration:
COMPOSE_FILE=docker-compose.yml:traefik/opencloud.ymlTest Steps:
- Deploy with specific version tag:
OC_DOCKER_TAG=1.0.0 - Create test data
- Stop containers
- Update to newer version:
OC_DOCKER_TAG=1.1.0 - Start containers:
docker compose up -d - Monitor logs for migration processes
- Verify data integrity
- Test all functionality post-upgrade
Expected Results:
-
Upgrade completes without errors
-
Data migrations run successfully
-
All existing data remains accessible
-
New version features are available
-
Check passed or Create issue
Test 15.2: Rolling vs Production Image Switch
Test Steps:
- Deploy with
OC_DOCKER_IMAGE=opencloudeu/opencloud-rolling - Create test data
- Switch to
OC_DOCKER_IMAGE=opencloudeu/opencloud - Redeploy
- Verify compatibility and data access
Expected Results:
-
Image switching works correctly
-
Data compatibility is maintained
-
No data loss during transition
-
Check passed or Create issue
16. Network and Connectivity Tests
Test 16.1: Multi-Network Configuration
Test Steps:
- Create custom network:
docker network create custom-net - Add services to multiple networks
- Verify inter-service communication
- Test isolation between networks
- Verify external access through Traefik
Expected Results:
-
Services communicate within opencloud-net
-
Network isolation works correctly
-
Traefik properly routes between networks
-
Check passed or Create issue
Test 16.2: DNS Resolution Between Services
Test Steps:
- Deploy full stack
- Exec into OpenCloud container
- Test DNS resolution:
ping collabora,ping keycloak - Verify service discovery works
- Check connection to LDAP, Postgres, etc.
Expected Results:
-
All service names resolve correctly
-
Inter-service communication works
-
No DNS resolution failures
-
Check passed or Create issue
Test Execution Guidelines
Test Phases
-
Smoke Tests (Priority: Critical)
- Tests 1.1, 1.2
- Quick validation that basic deployment works
-
Integration Tests (Priority: High)
- Tests 2.1, 3.1, 3.2, 4.1, 5.1
- Validate service integrations
-
Complex Scenario Tests (Priority: Medium)
- Tests 11.1, 11.2
- Full stack deployments
-
Edge Case Tests (Priority: Low)
- Security, upgrade, network tests
- Less common scenarios
Test Environment Matrix
| Test ID | Dev | Staging | Production |
|---|---|---|---|
| 1.1 | ✓ | ✓ | ✓ |
| 1.2 | ✓ | ✓ | - |
| 2.1 | ✓ | ✓ | ✓ |
| 3.1 | ✓ | ✓ | ✓ |
| 3.2 | ✓ | ✓ | ✓ |
| 4.1 | ✓ | ✓ | ✓ |
| 5.1 | ✓ | ✓ | Optional |
| 9.1 | - | ✓ | ✓ |
| 9.2 | ✓ | ✓ | - |
| 11.1 | - | ✓ | ✓ |
Success Criteria
A test is considered PASSED when:
- All containers start successfully
- No error messages in logs (except expected warnings)
- All features work as documented
- Data persists correctly
- Performance is acceptable (subjective for now)
A test is considered FAILED when:
- Containers fail to start
- Critical errors in logs
- Features don't work as expected
- Data loss occurs
- Services are unreachable
Reporting
Test results should be documented with:
- Test ID and name
- Date and tester name
- Pass/Fail status
- Logs or screenshots of failures
- Steps to reproduce issues
- Version information (Docker, Compose, OpenCloud)
Known Issues and Limitations
- Monitoring Tests (6.1) require manual network creation
- Let's Encrypt Tests (9.1) require production environment
- Load Balancing Tests (11.2) may require additional resources
- Demo Users should never be enabled in production
Automation Recommendations
Consider automating the following tests:
- Test 1.1: Basic deployment smoke test
- Test 1.2: Built-in LDAP validation
- Test 12.1: Data persistence validation
- Test 16.2: DNS resolution checks
Tools for automation:
- Docker Compose for orchestration
- Shell scripts for test steps
curlfor HTTP endpoint testingdocker compose psfor health checksdocker compose logsfor log validation
Appendix: Test Data
Sample Files for Upload
- Text files:
test.txt(small),large.txt(>100MB for size tests) - Documents:
sample.pdf,document.docx,presentation.pptx - Images:
photo.jpg,image.png - EICAR test file: For antivirus testing (safe virus test file)
Sample Users
- Admin:
admin/ configured password - Demo Users:
alan,mary,margaret,dennis,lynn/demo - Test Users: Create in Keycloak as needed
Sample Test Queries for Search
- "OpenCloud"
- File content from uploaded documents
- Metadata fields (author, title, etc.)