Commit Graph

215 Commits

Author SHA1 Message Date
Roeland Jago Douma c0f9a397d7
Also run mysql test on php7.0
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-08-05 19:59:37 +02:00
Benedikt Geissler 8a3f3e8c4a Drop PHP 7.1 test
Signed-off-by: Benedikt Geissler <benedikt@g5r.eu>
2017-07-31 12:12:55 +02:00
Benedikt Geissler ade7d89e36 Also test PHP 7.0 and 7.1 with PostgreSQL
Signed-off-by: Benedikt Geissler <benedikt@g5r.eu>
2017-07-31 12:12:55 +02:00
Morris Jobke c85b7e6ae3 Move all DB tests to top, because they are long running
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-07-28 09:21:24 +02:00
Morris Jobke 0948365809 Update all drone images to latest version
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-07-28 09:20:28 +02:00
Morris Jobke c191e12da4 Enable postgres on drone again
* use proper password

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-07-25 13:48:28 +02:00
Lukas Reschke 29e715a1b9
Exclude build/.phan/ from PHP 5.6 syntax check
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-07-20 23:04:11 +02:00
Lukas Reschke 3d2600b039
Add Phan plugin to check for SQL injections
This adds a phan plugin which checks for SQL injections on code using our QueryBuilder, while it isn't perfect it should already catch most potential issues.

As always, static analysis will sometimes have false positives and this is also here the case. So in some cases the analyzer just doesn't know if something is potential user input or not, thus I had to add some `@suppress SqlInjectionChecker` in front of those potential injections.

The Phan plugin hasn't the most awesome code but it works and I also added a file with test cases.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-07-20 22:48:13 +02:00
Morris Jobke ac969cfbb6 Merge pull request #5800 from nextcloud/enable-acceptance-tests-again-on-drone-0.7
Enable acceptance tests again on Drone 0.7
2017-07-20 11:31:48 +02:00
Daniel Calviño Sánchez 94144269de Enable acceptance tests again on Drone 0.7
Running the acceptance tests on Drone relied on the pod-style networking
used by services (service containers were available at 127.0.0.1 from
the build containers). However, in Drone 0.7 service and build
containers must be accessed from each other using their domain name
instead. Thus, acceptance tests had to be disabled on Drone.

Now that the acceptance test system supports setting a different domain
for the Selenium server and for the Nextcloud test server the acceptance
tests can be enabled again on Drone.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-07-20 08:08:35 +02:00
Lukas Reschke e215eabbf7
Update PHP 7.1 containers
Previously this container used a very old CentOS version. It has been migrated to Debian Jessie now using the deb.sury.org repositories.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-07-19 17:00:08 +02:00
Lukas Reschke 4d1d82e2d7
Install phan manually
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-07-19 10:28:12 +02:00
Lukas Reschke ac1a54cccf
Use new Drone image
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-07-19 10:28:12 +02:00
Lukas Reschke d8ec399454
Run phan over code base
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-07-19 10:28:11 +02:00
Morris Jobke 75f893b62f Disable postgres temporarily
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-07-18 19:23:56 +02:00
Morris Jobke 649c47b199 Temporarily disable acceptance and object storage tests
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-07-14 21:48:52 +02:00
Morris Jobke 9a34c5051f Fix drone
Fix service container host name
check current folder
fix redis for integration test
Fix more hostnames

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-07-14 15:04:18 +02:00
Morris Jobke 57fb36b6ae
Update integration tests composer cache
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-06-14 09:37:47 +02:00
Morris Jobke 3a70ebfe02 Merge pull request #4767 from nextcloud/app-code-checker
Check language files and database schema with app code checker
2017-05-16 16:20:27 -05:00
Morris Jobke 78e6c2dea4 Merge pull request #4666 from nextcloud/enable-redis-cluster
Add redis cluster tests to our CI jobs
2017-05-16 10:10:25 -05:00
Joas Schilling 3571355eb5
Run the app checker on all apps
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-05-16 16:16:55 +02:00
Morris Jobke edbe15f1c9 Run sign-off check as last check
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-05-15 11:01:06 -05:00
Morris Jobke fe5a4dd499 Make cache tests a bit more clear
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-05-11 17:07:25 -05:00
Morris Jobke f73ca1b77f Add redis cluster tests to our CI jobs
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-05-11 17:07:20 -05:00
Morris Jobke 61379c9165 Merge pull request #4682 from nextcloud/try-to-start-browser-sessions-again-when-they-fail-in-acceptance-tests
Try to start browser sessions again when they fail in acceptance tests
2017-05-04 00:02:18 -03:00
Daniel Calviño Sánchez 1a83c4c5c3 Set timeout multiplier to 10 for acceptance tests run by Drone
Sometimes, acceptance tests run by Drone fail due to a timeout when
starting the web browser sessions. Increasing the timeout should
minimize the possibility of the failure happening, although it can not
guarantee that it will not happen. A timeout multiplier of 10 was set
just because it looks like a reasonable margin of time, although it is
not based on any hard data.

The timeout multiplier affects too the timeout used when finding
elements. Like when starting a session, increasing the find timeout
simply gives the acceptance tests more time to find the objects before
giving up, so it does not change their behaviour when successful and can
also prevent failures due to default timeouts being too low for a
strained system.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-05-03 23:18:40 +02:00
Morris Jobke a94c706f26 Merge pull request #4667 from nextcloud/split-up-more-integration-tests
Split up sharing-v1-part2.feature to avoid timeouts
2017-05-02 17:27:37 -03:00
Morris Jobke c079ca7651 Merge pull request #4669 from nextcloud/checkers
Consolidate all the code checkers into one job
2017-05-02 17:27:00 -03:00
Morris Jobke a1929f4d56
Consolidate all the code checkers into one job
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-05-02 16:04:09 -03:00
Morris Jobke ecb369b5e8
Add redis support to our CI jobs
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-05-02 15:55:42 -03:00
Morris Jobke 865cd487c4
Split up sharing-v1-part2.feature to avoid timeouts
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-05-02 12:55:29 -03:00
Morris Jobke bcf587542c Merge pull request #4485 from nextcloud/translation-checker
Check whether we can json decode the translations
2017-04-25 10:46:51 -03:00
Joas Schilling 7ea492b69a
Loop over the apps directory and add the task
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-04-25 14:35:51 +02:00
Joas Schilling dee2c8d23b
Check whether we can json decode the translations
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-04-25 11:01:34 +02:00
Daniel Calviño Sánchez 316710bcb1 Add acceptance tests for sharing password protected links
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-04-24 11:33:07 +02:00
Daniel Calviño Sánchez 2f80025ec2 Move acceptance tests from build/acceptance to tests/acceptance
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-04-21 14:44:29 +02:00
Daniel Calviño Sánchez cccbd028a6 Add safety parameter
As the script modifies the Git repository a safety parameter was added
to prevent running it by mistake and messing with the local copy of the
repository.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-04-21 14:26:31 +02:00
Daniel Calviño Sánchez bbe479bcd9 Generalize names and descriptions
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-04-21 14:24:37 +02:00
Daniel Calviño Sánchez 72310cdac1 Use PHP built-in web server instead of Apache in Drone
Instead of running an additional Drone service with the Nextcloud server
now the Nextcloud server is run in the same Drone step as the acceptance
tests themselves using the PHP built-in web server.

Thanks to this, the Nextcloud server control is no longer needed, as the
acceptance tests can now directly reset, start and stop the Nextcloud
server. Also, the "nextcloudci/php7.0:php7.0-7" image provides
everything needed to run and manage the Nextcloud server (including the
Git command used to restore the directory to a saved state), so the
custom image is no longer needed either.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-04-21 14:24:37 +02:00
Daniel Calviño Sánchez ed7d63d16a Add acceptance test steps to Drone
Each acceptance test feature is run in its own Drone step. The container
of the step runs the acceptance tests themselves, but they require two
additional Drone services. One service provides the Selenium server that
performs the web browser actions specified by the tests, and the other
service provides the Nextcloud server that the tests will be run
against (due to security concerns the acceptance tests themselves can
not create Docker containers for the Nextcloud server as done when
running them in a local system, as if Drone containers had access to
Docker a malicious pull request could be used to take over the Drone
server).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-04-19 08:26:57 +02:00
Lukas Reschke 3d425ce833
Enable testing app in CI step
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-04-13 12:00:18 +02:00
Lukas Reschke a05471eb43
Fix .drone.yml
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-04-13 12:00:17 +02:00
Lukas Reschke 66835476b5
Add support for ratelimiting via annotations
This allows adding rate limiting via annotations to controllers, as one example:

```
@UserRateThrottle(limit=5, period=100)
@AnonRateThrottle(limit=1, period=100)
```

Would mean that logged-in users can access the page 5 times within 100 seconds, and anonymous users 1 time within 100 seconds. If only an AnonRateThrottle is specified that one will also be applied to logged-in users.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-04-13 12:00:16 +02:00
Morris Jobke 749046a799
Add drone.yml config
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-04-11 14:59:30 -05:00
Lukas Reschke 2f748f625c
Run maintenance mode tests on Drone
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-04-11 01:39:54 +02:00
Morris Jobke 6901b28f07
Split long running features/sharing-v1.feature into two smaller parts
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-03-28 16:46:56 -06:00
Lukas Reschke f94bc6f8bb Merge pull request #4013 from nextcloud/bundle_vendor_js
Bundle vendor js
2017-03-24 10:49:57 +01:00
Roeland Jago Douma 588f47d498
Add CI step to verify merged vendor js
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-03-23 13:40:30 +01:00
Roeland Jago Douma 4518a28924 Revert "Bundle vendor js" 2017-03-22 17:01:54 +01:00
Roeland Jago Douma 12de9ad655
Add CI step to verify merged vendor js
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-03-22 08:49:03 +01:00
Morris Jobke 036f5a6e08
add drone config
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-03-20 13:13:08 -06:00
Morris Jobke 4a9ce18ced Revert "Add integration test for trashbin" 2017-03-17 12:06:16 -06:00
Morris Jobke 5d29e84118
Add drone.yml config
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-03-16 23:54:13 -06:00
Morris Jobke 1df26d438c
Run drone only on master/stable branches
* fixes #3729

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-03-06 20:57:32 -06:00
Arthur Schiwon 08b31fcb7d
enable user_ldap app for tests
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2017-01-20 10:10:37 +01:00
Morris Jobke 31a0821863
fix indentation
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-01-19 13:06:50 -06:00
Arthur Schiwon 22528f492f
also, let ldap integration tests run
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2017-01-19 17:12:00 +01:00
Lukas Reschke 3c34b8577c
Add test execution against legacy DAV backend
Since the tests to quite hugely rely on sync tokens being present I also included those in the legacy backend.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-01-02 15:02:18 +01:00
Robin Appelman ac2542f0f0
add ci support for s3 object store
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-01-02 14:17:19 +01:00
Roeland Jago Douma 3256a1c792
Add files_external webdav apache tests
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-12-29 12:47:48 +01:00
Roeland Jago Douma 7d5cd98c17
Add Memcached CI
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-12-21 20:55:42 +01:00
Morris Jobke 2fc9265b03
update drone images to latest version
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2016-12-20 23:34:14 +01:00
Morris Jobke e3dfe2cba7 Merge pull request #2790 from nextcloud/update-integration-test-image
Update integration test image
2016-12-20 23:24:18 +01:00
Lukas Reschke d32e0d57e0
Run coverage
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-12-20 22:25:49 +01:00
Lukas Reschke 1c80307537
Add SMB tests and execute files_external tests
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-12-20 22:05:33 +01:00
Lukas Reschke d37bc304f1
Update integration test image
Updates the composer dependencies so running the tests should now be faster again…

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-12-20 21:56:16 +01:00
Lukas Reschke 7b5c28ab2a
Adjust to Nextcloud changes
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-12-19 14:10:13 +01:00
Roeland Jago Douma f6d4617b2c
Bump 7.1 CI to final!
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-12-03 19:44:37 +01:00
Morris Jobke 9b21b82d18
Install instance before running integration tests
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2016-12-02 15:48:40 +01:00
Roeland Jago Douma 2de09927a1
Add tests to drone
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-12-02 13:17:58 +01:00
Roeland Jago Douma 06c771e49f
Run syntex test for php7.1
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-11-24 21:44:29 +01:00
Roeland Jago Douma 2ddee155f7
Bump php7.1 container to RC6
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-11-24 20:46:15 +01:00
Morris Jobke 951f7f5eaf
Add integration test for web based installer
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2016-11-21 22:00:16 +01:00
Roeland Jago Douma b6562cb386
Generate js codecov coverage
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-11-09 08:03:29 +01:00
Morris Jobke d94f6f4664
Update containers to latest version
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2016-11-08 12:30:06 +01:00
Morris Jobke 9ebbb3c654 Merge pull request #1991 from nextcloud/code-check-more-shipped-apps
Run code checker on more shipped apps
2016-11-03 09:16:20 +01:00
Lukas Reschke ffba8297df
Run code checker on more shipped apps
Adds:
- sharebymail
- systemtags
- theming
- workflowengine

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-11-03 00:11:28 +01:00
Lukas Reschke a2def38a7a
Use PHP 7.1 RC5 for CI
This image has PHP 7.1 RC5 inside and the currently used one only RC4.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-11-02 23:35:40 +01:00
Lukas Reschke 88199f1cc1
Add .htaccess checker as CI step
Don't want anyone to commit invalid changes in that file again 🙈

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-11-02 20:11:30 +01:00
Roeland Jago Douma 13168ffbba
Bump to php7.1 RC4
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-10-21 11:37:25 +02:00
Morris Jobke b1235a67de
test alternative drone syntax for command options
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2016-10-19 00:15:01 +02:00
Morris Jobke d0a3d17912
add 4 byte mysql test run
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2016-10-19 00:15:01 +02:00
Roeland Jago Douma 7c48c5d8f7
Bump 7.1 CI to RC3
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-10-10 13:17:19 +02:00
Lukas Reschke a1f5364d7f
Generate coverage for quick DB tests
This adds the "QUICKDB" group which excludes some tests that abuse unit tests as integration tests as displayed in https://github.com/nextcloud/server/issues/1626

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-10-05 13:55:44 +02:00
Lukas Reschke b85b6abda8
Add codecov
Allows coverage tracking using codecov

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-09-28 21:08:17 +02:00
Lukas Reschke e501fefa90
Use new integration-php7.0 container
This one caches the dependencies

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-09-22 12:10:26 +02:00
Lukas Reschke cb19066dc3
Move integration tests to single containers
This adds improved performance

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-09-22 11:25:46 +02:00
Lukas Reschke f9a4bb94f6
Add checker for signed off commits
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-09-22 09:08:21 +02:00
Morris Jobke 11cc8903bb
add actual check if mysql is up already 2016-09-13 20:52:55 +02:00
Lukas Reschke c0656fb4ef
Move Travis tests to DroneCI
Should give us some quicker test execution speed as we're not limited by Travis

Explicitly invoke with "bash"

Install instance already

Use newest litmus container
2016-09-13 18:17:15 +02:00
Morris Jobke c70d100643
clone depth of 1 and execute integration tests first
* specify git image
2016-09-13 09:59:08 +02:00
Morris Jobke e42cd6fb61
update drone.yml to 0.5 2016-09-13 00:36:01 +02:00
Lukas Reschke 1b2021a243
Use the PHP 7.1-3 tag
Bumps the PHP version from beta2 to RC1
2016-09-07 22:24:29 +02:00
Lukas Reschke 9915f68a80
Add PHP 7.1 drone tests 2016-09-07 22:09:08 +02:00
Roeland Jago Douma 831179971c
Use PHPUnit 5.5.4 2016-09-06 09:29:27 +02:00
Joas Schilling d3f82356bb Merge pull request #1227 from nextcloud/improve-tests
Improve tests
2016-09-01 14:02:04 +02:00
Morris Jobke 7f8c5ed497
Activate APCu on PHP 7
Fix an issue with APCus inc and dec methods on PHP 7

see https://github.com/krakjoe/apcu/issues/183#issuecomment-244038221 for details
2016-09-01 12:30:05 +02:00
Morris Jobke 56b58b00b7
properly load APCu extension on CLI to execute APCu tests 2016-09-01 11:06:15 +02:00
Lukas Reschke d149f2288d
Execute only tests for modern PHP versions 2016-08-30 18:26:27 +02:00
Roeland Jago Douma aa5158afc3
Split CI into DB and NODB groups 2016-07-13 09:07:45 +02:00
Roeland Jago Douma aab741e4a0
Run mysql and posgres on 5.6 2016-07-09 20:17:01 +02:00
Roeland Jago Douma b4e22398d6
Bump drone to use newer php7 docker 2016-07-08 19:36:17 +02:00
Roeland Jago Douma 80b4efa9e0
Disable coverage for now
Coverage generation takes to long. So disabling for now.
2016-07-08 19:36:17 +02:00
Roeland Jago Douma dbbc250702
Add 5.6 sqlite ci 2016-07-08 19:36:17 +02:00
Roeland Jago Douma 3e9977387a
Move 'main' ci to php7 (speed) 2016-07-08 19:36:17 +02:00
Morris Jobke e328d98b6c Add PHP 5.4 and 5.5 jobs to CI 2016-07-06 15:01:11 +02:00
Morris Jobke cb69571cda Fix docker image naming issue for CI
* wrongly named PHP7 - it is PHP 5.6
* moved integration tests at the very end
2016-07-06 13:25:13 +02:00
Morris Jobke 01829e8d7c mysql only works with 3 byte UTF-8 2016-06-29 15:53:23 +02:00
Morris Jobke 41436fecc2 Add mysql job to CI 2016-06-23 10:48:20 +02:00
Morris Jobke 6583a2fef0
Add postgres to CI 2016-06-21 16:05:48 +02:00
Lukas Reschke 189b131e33 Remove duplicate data folder 2016-06-15 00:23:40 +02:00
Morris Jobke abc11ba365
add temporary cleanup step for CI 2016-06-14 17:06:13 +02:00
Morris Jobke 859ca1f9bb
Add integration tests 2016-06-14 16:03:59 +02:00
Morris Jobke c64c723027
Use proper PhantomJS library and run the tests as separate step
* add dependency for phantomjs
2016-06-13 14:04:25 +02:00
Morris Jobke a508342924
Add drone.io support 2016-06-07 17:54:30 +02:00