Setup Javascript and PHP tests and badges
Signed-off-by: Raimund Schlüßler <raimund.schluessler@mailbox.org>
This commit is contained in:
parent
e5c1312955
commit
eb179b0087
124
.travis.yml
124
.travis.yml
|
@ -1,18 +1,128 @@
|
||||||
dist: trusty
|
dist: trusty
|
||||||
language: php
|
|
||||||
php:
|
addons:
|
||||||
- 7.0
|
apt:
|
||||||
- 7.1
|
packages:
|
||||||
- 7.2
|
- mysql-server-5.6
|
||||||
|
- mysql-client-core-5.6
|
||||||
|
- mysql-client-5.6
|
||||||
|
- libxml2-utils
|
||||||
|
|
||||||
branches:
|
branches:
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
- /^stable\d+(\.\d+)?$/
|
- /^stable\d+(\.\d+)?$/
|
||||||
|
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- "$HOME/.composer/cache/files"
|
||||||
|
- "$HOME/.npm"
|
||||||
|
|
||||||
|
|
||||||
|
env:
|
||||||
|
global:
|
||||||
|
- CORE_BRANCH=master
|
||||||
|
- PHP_COVERAGE=FALSE
|
||||||
|
- DB=mysql
|
||||||
|
|
||||||
|
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 tasks 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 tasks
|
||||||
|
|
||||||
|
# Enable app twice to check occ errors of registered commands
|
||||||
|
- php -f core/occ app:enable tasks
|
||||||
|
- cd core/apps/tasks
|
||||||
|
|
||||||
|
# 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:
|
script:
|
||||||
- make
|
# Check info.xml schema validity
|
||||||
- make test
|
- 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 tasks
|
||||||
|
|
||||||
|
# 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) -cF php;
|
||||||
|
fi
|
||||||
|
|
||||||
|
after_failure:
|
||||||
|
- cat ../../data/nextcloud.log
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
|
include:
|
||||||
|
- stage: build
|
||||||
|
language: node_js
|
||||||
|
node_js:
|
||||||
|
- "10"
|
||||||
|
before_install:
|
||||||
|
before_script:
|
||||||
|
script:
|
||||||
|
- make
|
||||||
|
after_failure:
|
||||||
|
after_success:
|
||||||
|
|
||||||
|
- stage: test
|
||||||
|
language: node_js
|
||||||
|
node_js:
|
||||||
|
- "10"
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
before_script:
|
||||||
|
|
||||||
|
install:
|
||||||
|
- npm install -g codecov
|
||||||
|
|
||||||
|
script:
|
||||||
|
- make dev-setup
|
||||||
|
- make test
|
||||||
|
- bash <(curl -s https://codecov.io/bash) -cF javascript;
|
||||||
|
|
||||||
|
after_failure:
|
||||||
|
after_success:
|
||||||
|
|
||||||
|
- language: php
|
||||||
|
php: 7.1
|
||||||
|
|
||||||
|
- language: php
|
||||||
|
php: 7.2
|
||||||
|
|
||||||
|
- language: php
|
||||||
|
php: 7.3
|
||||||
|
env: "DB=mysql CORE_BRANCH=master PHP_COVERAGE=TRUE"
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
|
|
8
Makefile
8
Makefile
|
@ -168,3 +168,11 @@ endif
|
||||||
.PHONY: test
|
.PHONY: test
|
||||||
test:
|
test:
|
||||||
$(npm) run test
|
$(npm) run test
|
||||||
|
|
||||||
|
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
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# Tasks
|
# Tasks
|
||||||
|
![Downloads](https://img.shields.io/github/downloads/nextcloud/tasks/total.svg) [![Build Status](https://scrutinizer-ci.com/g/nextcloud/tasks/badges/build.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/tasks/build-status/master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/tasks/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/tasks/?branch=master) [![Code coverage](https://img.shields.io/codecov/c/github/nextcloud/tasks.svg)](https://codecov.io/gh/nextcloud/tasks/) [![Dependabot status](https://img.shields.io/badge/Dependabot-enabled-brightgreen.svg?longCache=true&logo=dependabot)](https://dependabot.com)
|
||||||
[![Build Status](https://scrutinizer-ci.com/g/nextcloud/tasks/badges/build.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/tasks/build-status/master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/tasks/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/tasks/?branch=master) [![Code Coverage](https://scrutinizer-ci.com/g/nextcloud/tasks/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/tasks/?branch=master)
|
|
||||||
|
|
||||||
**A tasks app for [Nextcloud](http://nextcloud.com). Easily sync tasks from various devices with your Nextcloud and edit them online.**
|
**A tasks app for [Nextcloud](http://nextcloud.com). Easily sync tasks from various devices with your Nextcloud and edit them online.**
|
||||||
|
|
||||||
|
|
|
@ -109,6 +109,7 @@
|
||||||
"snapshotSerializers": [
|
"snapshotSerializers": [
|
||||||
"<rootDir>/node_modules/jest-serializer-vue"
|
"<rootDir>/node_modules/jest-serializer-vue"
|
||||||
],
|
],
|
||||||
|
"coverageDirectory": "./coverage/",
|
||||||
"collectCoverage": true,
|
"collectCoverage": true,
|
||||||
"collectCoverageFrom": [
|
"collectCoverageFrom": [
|
||||||
"<rootDir>/src/**/*.{js,vue}",
|
"<rootDir>/src/**/*.{js,vue}",
|
||||||
|
@ -117,7 +118,9 @@
|
||||||
"coverageReporters": [
|
"coverageReporters": [
|
||||||
"json",
|
"json",
|
||||||
"text",
|
"text",
|
||||||
"html"
|
"html",
|
||||||
|
"lcov",
|
||||||
|
"clover"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<phpunit bootstrap="tests/bootstrap.php"
|
||||||
|
verbose="true"
|
||||||
|
colors="true"
|
||||||
|
timeoutForSmallTests="900"
|
||||||
|
timeoutForMediumTests="900"
|
||||||
|
timeoutForLargeTests="900">
|
||||||
|
<testsuite name='Contacts app integration tests'>
|
||||||
|
<directory>./tests/integration</directory>
|
||||||
|
</testsuite>
|
||||||
|
<!-- filters for code coverage -->
|
||||||
|
<filter>
|
||||||
|
<whitelist>
|
||||||
|
<directory suffix=".php">./</directory>
|
||||||
|
<exclude>
|
||||||
|
<directory suffix=".php">./l10n</directory>
|
||||||
|
<directory suffix=".php">./templates</directory>
|
||||||
|
<directory suffix=".php">./tests</directory>
|
||||||
|
</exclude>
|
||||||
|
</whitelist>
|
||||||
|
</filter>
|
||||||
|
</phpunit>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<phpunit bootstrap="tests/bootstrap.php"
|
||||||
|
verbose="true"
|
||||||
|
colors="true"
|
||||||
|
timeoutForSmallTests="900"
|
||||||
|
timeoutForMediumTests="900"
|
||||||
|
timeoutForLargeTests="900">
|
||||||
|
<testsuite name='Contacts app tests'>
|
||||||
|
<directory>./tests/unit</directory>
|
||||||
|
</testsuite>
|
||||||
|
<!-- filters for code coverage -->
|
||||||
|
<filter>
|
||||||
|
<whitelist>
|
||||||
|
<directory suffix=".php">./</directory>
|
||||||
|
<exclude>
|
||||||
|
<directory suffix=".php">./l10n</directory>
|
||||||
|
<directory suffix=".php">./templates</directory>
|
||||||
|
<directory suffix=".php">./tests</directory>
|
||||||
|
</exclude>
|
||||||
|
</whitelist>
|
||||||
|
</filter>
|
||||||
|
</phpunit>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Nextcloud - Tasks
|
||||||
|
*
|
||||||
|
* This file is licensed under the Affero General Public License version 3 or
|
||||||
|
* later. See the COPYING file.
|
||||||
|
*
|
||||||
|
* @author Bernhard Posselt <dev@bernhard-posselt.com>
|
||||||
|
* @copyright Bernhard Posselt 2016
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once __DIR__ . '/../../../tests/bootstrap.php';
|
|
@ -0,0 +1,39 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Nextcloud - Tasks
|
||||||
|
*
|
||||||
|
* This file is licensed under the Affero General Public License version 3 or
|
||||||
|
* later. See the COPYING file.
|
||||||
|
*
|
||||||
|
* @author Hendrik Leppelsack <hendrik@leppelsack.de>
|
||||||
|
* @copyright Hendrik Leppelsack 2015
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace OCA\Tasks\Controller;
|
||||||
|
|
||||||
|
use OCP\AppFramework\Http\TemplateResponse;
|
||||||
|
use PHPUnit\Framework\TestCase as Base;
|
||||||
|
|
||||||
|
|
||||||
|
class PageControllerTest extends Base {
|
||||||
|
|
||||||
|
private $controller;
|
||||||
|
|
||||||
|
public function setUp(): void {
|
||||||
|
$request = $this->getMockBuilder('OCP\IRequest')->getMock();
|
||||||
|
|
||||||
|
$this->controller = new PageController(
|
||||||
|
'tasks',
|
||||||
|
$request
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function testIndex() {
|
||||||
|
$result = $this->controller->index();
|
||||||
|
|
||||||
|
$this->assertEquals('main', $result->getTemplateName());
|
||||||
|
$this->assertEquals('user', $result->getRenderAs());
|
||||||
|
$this->assertTrue($result instanceof TemplateResponse);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue