From b299531e405e45834adbd97a41a8c5bc9743bf3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Wed, 23 Jan 2019 10:31:27 +0100 Subject: [PATCH] Travis bump MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- .gitignore | 2 +- .travis.yml | 121 +++++++++++++++++-- Makefile | 10 +- phpunit.integration.xml | 29 +++-- phpunit.xml | 29 +++-- tests/unit/Controller/PageControllerTest.php | 14 +-- 6 files changed, 170 insertions(+), 35 deletions(-) diff --git a/.gitignore b/.gitignore index c0319cef..f9659efc 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,4 @@ yarn-error.log* js/ build/ -coverage/ +coverage* diff --git a/.travis.yml b/.travis.yml index 25b6e682..53d147d3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,116 @@ -language: node_js +sudo: required +dist: trusty +language: php +php: + - 7.1 + - 7.2 + +addons: + apt: + packages: + - mysql-server-5.6 + - mysql-client-core-5.6 + - mysql-client-5.6 + - php5-pgsql + - libxml2-utils + +services: + - postgresql + +env: + global: + - CORE_BRANCH=master + - TEST_JS=FALSE + - PHP_COVERAGE=FALSE + matrix: + - DB=sqlite + +branches: + only: + - master + - /^stable\d+(\.\d+)?$/ + - /^v\d++(\.\d+)?+(\.\d+)?+(\.\d+)?$/ + +matrix: + include: + - php: 7.1 + env: "DB=mysql CORE_BRANCH=master" + - php: 7.2 + env: "DB=mysql CORE_BRANCH=master TEST_JS=TRUE PHP_COVERAGE=TRUE" + - php: 7.1 + env: "DB=pgsql CORE_BRANCH=master" + - php: 7.2 + env: "DB=pgsql CORE_BRANCH=master" + fast_finish: true + cache: directories: - - node_modules -node_js: -- node + - "$HOME/.composer/cache/files" + - "$HOME/.npm" + +before_install: + - php --info + + # Set up DB + - if [[ "$DB" == 'pgsql' ]]; then createuser -U travis -s oc_autotest; fi + - if [[ "$DB" == 'mysql' ]]; then mysql -u root -e 'create database oc_autotest;'; fi + - if [[ "$DB" == 'mysql' ]]; then mysql -u root -e "CREATE USER 'oc_autotest'@'localhost' IDENTIFIED BY '';"; fi + - if [[ "$DB" == 'mysql' ]]; then mysql -u root -e "GRANT ALL ON oc_autotest.* TO 'oc_autotest'@'localhost';"; fi + - cd .. + - git clone https://github.com/nextcloud/server.git --recursive --depth 1 -b $CORE_BRANCH core + - mv contacts core/apps/ + +before_script: + # Set up core + - php -f core/occ maintenance:install --database-name oc_autotest --database-user oc_autotest --admin-user admin --admin-pass admin --database $DB --database-pass='' + + # Set up app + - php -f core/occ app:enable contacts + + # Enable app twice to check occ errors of registered commands + - php -f core/occ app:enable contacts + - cd core/apps/contacts + + # Run JS tests + - npm install -g npm@latest + - make dev-setup + + # XDebug is only needed if we report coverage -> speeds up other builds + - if [[ "$PHP_COVERAGE" = "FALSE" ]]; + then phpenv config-rm xdebug.ini; + fi + script: -- npm run build -- npm run lint -- npm run stylelint -- npm run test + # Check info.xml schema validity + - wget https://apps.nextcloud.com/schema/apps/info.xsd + - xmllint appinfo/info.xml --schema info.xsd --noout + - rm info.xsd + + # Check PHP syntax errors + - find . -name \*.php -not -path './vendor/*' -exec php -l "{}" \; + + # Run server's app code checker + - php ../../occ app:check-code contacts + + # Run JS tests + - if [[ "$TEST_JS" = "TRUE" ]]; + then make test; + fi + + # Test JS compilation + - make build-js-production + + # Test php + - make test-php + - if [[ "$PHP_COVERAGE" = "TRUE" ]]; + then make test-php-coverage; + else make test-php; + fi + +after_success: + - if [[ "$PHP_COVERAGE" = "TRUE" ]]; + then bash <(curl -s https://codecov.io/bash); + fi + +after_failure: + - cat ../../data/nextcloud.log diff --git a/Makefile b/Makefile index c638f30e..f8f5e714 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ source_package_name=$(source_build_directory)/$(app_name) appstore_build_directory=$(CURDIR)/build/artifacts/appstore appstore_package_name=$(appstore_build_directory)/$(app_name) -all: dev-setup lint build-js-production test +all: dev-setup lint build-js-production test test-php # Dev env management dev-setup: clean clean-dev npm-init @@ -40,6 +40,14 @@ test-watch: test-coverage: npm run test:coverage +test-php: + phpunit -c phpunit.xml + phpunit -c phpunit.integration.xml + +test-php-coverage: + phpunit -c phpunit.xml --coverage-clover=coverage-unit.xml + phpunit -c phpunit.integration.xml --coverage-clover=coverage-integration.xml + # Linting lint: npm run lint diff --git a/phpunit.integration.xml b/phpunit.integration.xml index 839e1a02..5e89f0e9 100644 --- a/phpunit.integration.xml +++ b/phpunit.integration.xml @@ -1,7 +1,22 @@ - - - - ./tests/integration - - - + + + + ./tests/integration + + + + + ./ + + ./l10n + ./templates + ./tests + + + + \ No newline at end of file diff --git a/phpunit.xml b/phpunit.xml index 5c67f0a6..9c1553a4 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,7 +1,22 @@ - - - - ./tests/unit - - - + + + + ./tests/unit + + + + + ./ + + ./l10n + ./templates + ./tests + + + + \ No newline at end of file diff --git a/tests/unit/Controller/PageControllerTest.php b/tests/unit/Controller/PageControllerTest.php index 548081da..99d74bf1 100644 --- a/tests/unit/Controller/PageControllerTest.php +++ b/tests/unit/Controller/PageControllerTest.php @@ -11,12 +11,11 @@ namespace OCA\Contacts\Controller; -use PHPUnit_Framework_TestCase; - use OCP\AppFramework\Http\TemplateResponse; +use PHPUnit\Framework\TestCase as Base; -class PageControllerTest extends PHPUnit_Framework_TestCase { +class PageControllerTest extends Base { private $controller; private $userId = 'john'; @@ -35,14 +34,7 @@ class PageControllerTest extends PHPUnit_Framework_TestCase { $this->assertEquals(['user' => 'john'], $result->getParams()); $this->assertEquals('main', $result->getTemplateName()); + $this->assertEquals('user', $result->getRenderAs()); $this->assertTrue($result instanceof TemplateResponse); } - - - public function testEcho() { - $result = $this->controller->doEcho('hi'); - $this->assertEquals(['echo' => 'hi'], $result->getData()); - } - - }