feature #2993 Add tests to avoid regressions (via Drupal) (fabpot)

This PR was merged into the 1.x branch.

Discussion
----------

Add tests to avoid regressions (via Drupal)

Commits
-------

9c313e3c added Drupal in the CI process
This commit is contained in:
Fabien Potencier
2019-05-01 10:41:10 +02:00
2 changed files with 62 additions and 11 deletions
+11 -11
View File
@@ -7,20 +7,10 @@ cache:
- vendor
- $HOME/.composer/cache/files
php:
- 5.4
- 5.5
- 5.6
- 7.0
- 7.1
- 7.2
- 7.3
env:
- TWIG_EXT=no
before_install:
# turn off XDebug
- phpenv config-rm xdebug.ini || return 0
install:
@@ -32,12 +22,22 @@ before_script:
script: ./vendor/bin/simple-phpunit
matrix:
jobs:
fast_finish: true
include:
- php: 5.4
- php: 5.4
env: TWIG_EXT=yes
- php: 5.5
- php: 5.5
env: TWIG_EXT=yes
- php: 5.6
- php: 5.6
env: TWIG_EXT=yes
- php: 7.0
- php: 7.1
- php: 7.2
- php: 7.3
- stage: integration tests
php: 7.3
script: ./drupal_test.sh
Executable
+51
View File
@@ -0,0 +1,51 @@
#!/bin/bash
set -x
set -e
REPO=`pwd`
cd /tmp
rm -rf drupal-twig-test
composer create-project --no-interaction drupal-composer/drupal-project:8.x-dev drupal-twig-test
cd drupal-twig-test
(cd vendor/twig && rm -rf twig && ln -sf $REPO twig)
echo '$config["system.logging"]["error_level"] = "verbose";' >> web/sites/default/settings.php
php ./web/core/scripts/drupal install --no-interaction demo_umami 2>/dev/null > output
perl -p -i -e 's/^([A-Za-z]+)\: (.+)$/export DRUPAL_\1=\2/' output
source output
wget https://get.symfony.com/cli/installer -O - | bash
export PATH="$HOME/.symfony/bin:$PATH"
symfony server:start -d --no-tls
ENDPOINT=`symfony server:status -no-ansi | sed -E 's/^.+ http/http/'`
curl -OLsS https://get.blackfire.io/blackfire-player.phar
chmod +x blackfire-player.phar
cat > drupal-tests.bkf <<EOF
name "Drupal tests"
scenario
name "homepage"
set name "admin"
set pass "pass"
visit url('/')
expect status_code() == 200
click link('Articles')
expect status_code() == 200
click link('Dairy-free and delicious milk chocolate')
expect body() matches "/Dairy\-free milk chocolate is made in largely the same way as regular chocolate/"
expect status_code() == 200
click link('Log in')
expect status_code() == 200
submit button("Log in")
param name name
param pass pass
expect status_code() == 303
follow
expect status_code() == 200
click link('Structure')
expect status_code() == 200
EOF
./blackfire-player.phar run drupal-tests.bkf --endpoint=$ENDPOINT --variable name=$DRUPAL_Username --variable pass=$DRUPAL_Password
symfony server:stop