Initial commit
This commit is contained in:
commit
e859418cbd
179
.ddev/config.yaml
Normal file
179
.ddev/config.yaml
Normal file
|
@ -0,0 +1,179 @@
|
|||
name: workshop-drupal-automated-testing
|
||||
type: drupal8
|
||||
docroot: web
|
||||
php_version: "7.4"
|
||||
webserver_type: nginx-fpm
|
||||
router_http_port: "80"
|
||||
router_https_port: "443"
|
||||
xdebug_enabled: false
|
||||
additional_hostnames: []
|
||||
additional_fqdns: []
|
||||
mariadb_version: "10.3"
|
||||
provider: default
|
||||
use_dns_when_possible: true
|
||||
working_dir:
|
||||
web: /var/www/html
|
||||
|
||||
hooks:
|
||||
post-start:
|
||||
- exec: |
|
||||
if [ ! -f .flag-built ]; then
|
||||
composer install
|
||||
|
||||
vendor/bin/drush site:install -y \
|
||||
--site-name="Drupal Testing Workshop" \
|
||||
--account-pass=admin123
|
||||
|
||||
touch .flag-built
|
||||
fi
|
||||
|
||||
# This config.yaml was created with ddev version v1.15.3
|
||||
# webimage: drud/ddev-webserver:v1.15.3
|
||||
# dbimage: drud/ddev-dbserver-mariadb-10.2:v1.15.1
|
||||
# dbaimage: phpmyadmin/phpmyadmin:5
|
||||
# However we do not recommend explicitly wiring these images into the
|
||||
# config.yaml as they may break future versions of ddev.
|
||||
# You can update this config.yaml using 'ddev config'.
|
||||
|
||||
# Key features of ddev's config.yaml:
|
||||
|
||||
# name: <projectname> # Name of the project, automatically provides
|
||||
# http://projectname.ddev.site and https://projectname.ddev.site
|
||||
|
||||
# type: <projecttype> # drupal6/7/8, backdrop, typo3, wordpress, php
|
||||
|
||||
# docroot: <relative_path> # Relative path to the directory containing index.php.
|
||||
|
||||
# php_version: "7.3" # PHP version to use, "5.6", "7.0", "7.1", "7.2", "7.3", "7.4"
|
||||
|
||||
# You can explicitly specify the webimage, dbimage, dbaimage lines but this
|
||||
# is not recommended, as the images are often closely tied to ddev's' behavior,
|
||||
# so this can break upgrades.
|
||||
|
||||
# webimage: <docker_image> # nginx/php docker image.
|
||||
# dbimage: <docker_image> # mariadb docker image.
|
||||
# dbaimage: <docker_image>
|
||||
|
||||
# mariadb_version and mysql_version
|
||||
# ddev can use many versions of mariadb and mysql
|
||||
# However these directives are mutually exclusive
|
||||
# mariadb_version: 10.2
|
||||
# mysql_version: 8.0
|
||||
|
||||
# router_http_port: <port> # Port to be used for http (defaults to port 80)
|
||||
# router_https_port: <port> # Port for https (defaults to 443)
|
||||
|
||||
# xdebug_enabled: false # Set to true to enable xdebug and "ddev start" or "ddev restart"
|
||||
# Note that for most people the commands
|
||||
# "ddev exec enable_xdebug" and "ddev exec disable_xdebug" work better,
|
||||
# as leaving xdebug enabled all the time is a big performance hit.
|
||||
|
||||
# webserver_type: nginx-fpm # Can be set to apache-fpm or apache-cgi as well
|
||||
|
||||
# timezone: Europe/Berlin
|
||||
# This is the timezone used in the containers and by PHP;
|
||||
# it can be set to any valid timezone,
|
||||
# see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
# For example Europe/Dublin or MST7MDT
|
||||
|
||||
# additional_hostnames:
|
||||
# - somename
|
||||
# - someothername
|
||||
# would provide http and https URLs for "somename.ddev.site"
|
||||
# and "someothername.ddev.site".
|
||||
|
||||
# additional_fqdns:
|
||||
# - example.com
|
||||
# - sub1.example.com
|
||||
# would provide http and https URLs for "example.com" and "sub1.example.com"
|
||||
# Please take care with this because it can cause great confusion.
|
||||
|
||||
# upload_dir: custom/upload/dir
|
||||
# would set the destination path for ddev import-files to custom/upload/dir.
|
||||
|
||||
# working_dir:
|
||||
# web: /var/www/html
|
||||
# db: /home
|
||||
# would set the default working directory for the web and db services.
|
||||
# These values specify the destination directory for ddev ssh and the
|
||||
# directory in which commands passed into ddev exec are run.
|
||||
|
||||
# omit_containers: [db, dba, ddev-ssh-agent]
|
||||
# Currently only these containers are supported. Some containers can also be
|
||||
# omitted globally in the ~/.ddev/global_config.yaml. Note that if you omit
|
||||
# the "db" container, several standard features of ddev that access the
|
||||
# database container will be unusable.
|
||||
|
||||
# nfs_mount_enabled: false
|
||||
# Great performance improvement but requires host configuration first.
|
||||
# See https://ddev.readthedocs.io/en/stable/users/performance/#using-nfs-to-mount-the-project-into-the-container
|
||||
|
||||
# host_https_port: "59002"
|
||||
# The host port binding for https can be explicitly specified. It is
|
||||
# dynamic unless otherwise specified.
|
||||
# This is not used by most people, most people use the *router* instead
|
||||
# of the localhost port.
|
||||
|
||||
# host_webserver_port: "59001"
|
||||
# The host port binding for the ddev-webserver can be explicitly specified. It is
|
||||
# dynamic unless otherwise specified.
|
||||
# This is not used by most people, most people use the *router* instead
|
||||
# of the localhost port.
|
||||
|
||||
# host_db_port: "59002"
|
||||
# The host port binding for the ddev-dbserver can be explicitly specified. It is dynamic
|
||||
# unless explicitly specified.
|
||||
|
||||
# phpmyadmin_port: "8036"
|
||||
# phpmyadmin_https_port: "8037"
|
||||
# The PHPMyAdmin ports can be changed from the default 8036 and 8037
|
||||
|
||||
# mailhog_port: "8025"
|
||||
# mailhog_https_port: "8026"
|
||||
# The MailHog ports can be changed from the default 8025 and 8026
|
||||
|
||||
# webimage_extra_packages: [php7.3-tidy, php-bcmath]
|
||||
# Extra Debian packages that are needed in the webimage can be added here
|
||||
|
||||
# dbimage_extra_packages: [telnet,netcat]
|
||||
# Extra Debian packages that are needed in the dbimage can be added here
|
||||
|
||||
# use_dns_when_possible: true
|
||||
# If the host has internet access and the domain configured can
|
||||
# successfully be looked up, DNS will be used for hostname resolution
|
||||
# instead of editing /etc/hosts
|
||||
# Defaults to true
|
||||
|
||||
# project_tld: ddev.site
|
||||
# The top-level domain used for project URLs
|
||||
# The default "ddev.site" allows DNS lookup via a wildcard
|
||||
# If you prefer you can change this to "ddev.local" to preserve
|
||||
# pre-v1.9 behavior.
|
||||
|
||||
# ngrok_args: --subdomain mysite --auth username:pass
|
||||
# Provide extra flags to the "ngrok http" command, see
|
||||
# https://ngrok.com/docs#http or run "ngrok http -h"
|
||||
|
||||
# disable_settings_management: false
|
||||
# If true, ddev will not create CMS-specific settings files like
|
||||
# Drupal's settings.php/settings.ddev.php or TYPO3's AdditionalSettings.php
|
||||
# In this case the user must provide all such settings.
|
||||
|
||||
# no_project_mount: false
|
||||
# (Experimental) If true, ddev will not mount the project into the web container;
|
||||
# the user is responsible for mounting it manually or via a script.
|
||||
# This is to enable experimentation with alternate file mounting strategies.
|
||||
# For advanced users only!
|
||||
|
||||
# provider: default # Currently either "default" or "pantheon"
|
||||
#
|
||||
# Many ddev commands can be extended to run tasks before or after the
|
||||
# ddev command is executed, for example "post-start", "post-import-db",
|
||||
# "pre-composer", "post-composer"
|
||||
# See https://ddev.readthedocs.io/en/stable/users/extending-commands/ for more
|
||||
# information on the commands that can be extended and the tasks you can define
|
||||
# for them. Example:
|
||||
#hooks:
|
||||
# post-import-db:
|
||||
# - exec: drush cr
|
||||
# - exec: drush updb
|
50
.github/workflows/run-tests.yml
vendored
Normal file
50
.github/workflows/run-tests.yml
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
name: Run tests
|
||||
|
||||
on: push
|
||||
|
||||
jobs:
|
||||
tests:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
name: "Run ${{ matrix.test-types }} tests"
|
||||
|
||||
strategy:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
test-types:
|
||||
- functional
|
||||
- kernel
|
||||
- unit
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@a81bbbf
|
||||
|
||||
- name: Cache dependencies
|
||||
uses: actions/cache@d974700
|
||||
with:
|
||||
path: |
|
||||
~/.composer/cache/files
|
||||
vendor
|
||||
web/core
|
||||
key: dependencies-composer-${{ hashFiles('composer.json') }}
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@5d27b8f
|
||||
with:
|
||||
php-version: 7.4
|
||||
extensions: mbstring
|
||||
coverage: none
|
||||
tools: composer:v1
|
||||
|
||||
- name: Install dependencies
|
||||
run: composer install --prefer-dist --no-interaction --no-suggest
|
||||
|
||||
- name: Start the local web server
|
||||
run: php -S localhost:8000 -t web 2>&1 &
|
||||
if: matrix.test-types == 'functional'
|
||||
|
||||
- name: Execute tests
|
||||
run: composer test -- --colors=always --testsuite=${{ matrix.test-types }}
|
||||
env:
|
||||
SIMPLETEST_BASE_URL: http://localhost:8000
|
17
.gitignore
vendored
Normal file
17
.gitignore
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
*
|
||||
!*/
|
||||
!/.ddev/**
|
||||
!/.github/**
|
||||
!/.gitignore
|
||||
!/**/.gitkeep
|
||||
!/.idea/**
|
||||
!/composer.json
|
||||
!/composer.lock
|
||||
!/docker-compose.yaml
|
||||
!/Makefile
|
||||
!/php.ini
|
||||
!/web/sites/default/settings.php
|
||||
!/web/sites/default/settings.symfony.php
|
||||
!/workspace.yml
|
||||
/.idea/workspace.xml
|
||||
/vendor/
|
6
.idea/inspectionProfiles/Project_Default.xml
Normal file
6
.idea/inspectionProfiles/Project_Default.xml
Normal file
|
@ -0,0 +1,6 @@
|
|||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
</profile>
|
||||
</component>
|
6
.idea/misc.xml
Normal file
6
.idea/misc.xml
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="JavaScriptSettings">
|
||||
<option name="languageLevel" value="ES6" />
|
||||
</component>
|
||||
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/workshop-drupal-automated-testing-code.iml" filepath="$PROJECT_DIR$/.idea/workshop-drupal-automated-testing-code.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
14
.idea/php-test-framework.xml
Normal file
14
.idea/php-test-framework.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="PhpTestFrameworkVersionCache">
|
||||
<tools_cache>
|
||||
<tool tool_name="PHPUnit">
|
||||
<cache>
|
||||
<versions>
|
||||
<info id="Local" version="7.5.20" />
|
||||
</versions>
|
||||
</cache>
|
||||
</tool>
|
||||
</tools_cache>
|
||||
</component>
|
||||
</project>
|
146
.idea/php.xml
Normal file
146
.idea/php.xml
Normal file
|
@ -0,0 +1,146 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="PhpIncludePathManager">
|
||||
<include_path>
|
||||
<path value="$PROJECT_DIR$/vendor/egulias/email-validator" />
|
||||
<path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
|
||||
<path value="$PROJECT_DIR$/vendor/jakub-onderka/php-console-color" />
|
||||
<path value="$PROJECT_DIR$/vendor/jakub-onderka/php-console-highlighter" />
|
||||
<path value="$PROJECT_DIR$/vendor/stack/builder" />
|
||||
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-common" />
|
||||
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-docblock" />
|
||||
<path value="$PROJECT_DIR$/vendor/phpdocumentor/type-resolver" />
|
||||
<path value="$PROJECT_DIR$/vendor/instaclick/php-webdriver" />
|
||||
<path value="$PROJECT_DIR$/vendor/container-interop/container-interop" />
|
||||
<path value="$PROJECT_DIR$/vendor/behat/mink-selenium2-driver" />
|
||||
<path value="$PROJECT_DIR$/vendor/behat/mink-goutte-driver" />
|
||||
<path value="$PROJECT_DIR$/vendor/behat/mink-browserkit-driver" />
|
||||
<path value="$PROJECT_DIR$/vendor/theseer/tokenizer" />
|
||||
<path value="$PROJECT_DIR$/vendor/behat/mink" />
|
||||
<path value="$PROJECT_DIR$/vendor/consolidation/config" />
|
||||
<path value="$PROJECT_DIR$/vendor/consolidation/site-alias" />
|
||||
<path value="$PROJECT_DIR$/vendor/consolidation/log" />
|
||||
<path value="$PROJECT_DIR$/vendor/consolidation/output-formatters" />
|
||||
<path value="$PROJECT_DIR$/vendor/consolidation/filter-via-dot-access-data" />
|
||||
<path value="$PROJECT_DIR$/vendor/consolidation/annotated-command" />
|
||||
<path value="$PROJECT_DIR$/vendor/consolidation/site-process" />
|
||||
<path value="$PROJECT_DIR$/vendor/asm89/stack-cors" />
|
||||
<path value="$PROJECT_DIR$/vendor/easyrdf/easyrdf" />
|
||||
<path value="$PROJECT_DIR$/vendor/twig/twig" />
|
||||
<path value="$PROJECT_DIR$/vendor/dnoegel/php-xdg-base-dir" />
|
||||
<path value="$PROJECT_DIR$/vendor/dflydev/dot-access-data" />
|
||||
<path value="$PROJECT_DIR$/vendor/mikey179/vfsstream" />
|
||||
<path value="$PROJECT_DIR$/vendor/seld/phar-utils" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/process" />
|
||||
<path value="$PROJECT_DIR$/vendor/webflo/drupal-finder" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/dom-crawler" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/dependency-injection" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/debug" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-iconv" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php72" />
|
||||
<path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/psr-http-message-bridge" />
|
||||
<path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/http-kernel" />
|
||||
<path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php70" />
|
||||
<path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
|
||||
<path value="$PROJECT_DIR$/vendor/phpunit/php-token-stream" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/lock" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-util" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/yaml" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/serializer" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/finder" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/browser-kit" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php56" />
|
||||
<path value="$PROJECT_DIR$/vendor/guzzlehttp/guzzle" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
|
||||
<path value="$PROJECT_DIR$/vendor/guzzlehttp/psr7" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
|
||||
<path value="$PROJECT_DIR$/vendor/guzzlehttp/promises" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/css-selector" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/translation" />
|
||||
<path value="$PROJECT_DIR$/vendor/jcalderonzumba/mink-phantomjs-driver" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/routing" />
|
||||
<path value="$PROJECT_DIR$/vendor/jcalderonzumba/gastonjs" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/validator" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/console" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/filesystem" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony-cmf/routing" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/class-loader" />
|
||||
<path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
|
||||
<path value="$PROJECT_DIR$/vendor/phar-io/version" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-feed" />
|
||||
<path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-stdlib" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-escaper" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-diactoros" />
|
||||
<path value="$PROJECT_DIR$/vendor/league/container" />
|
||||
<path value="$PROJECT_DIR$/vendor/webmozart/path-util" />
|
||||
<path value="$PROJECT_DIR$/vendor/webmozart/assert" />
|
||||
<path value="$PROJECT_DIR$/vendor/fabpot/goutte" />
|
||||
<path value="$PROJECT_DIR$/vendor/pear/pear_exception" />
|
||||
<path value="$PROJECT_DIR$/vendor/pear/pear-core-minimal" />
|
||||
<path value="$PROJECT_DIR$/vendor/pear/console_getopt" />
|
||||
<path value="$PROJECT_DIR$/vendor/pear/archive_tar" />
|
||||
<path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
|
||||
<path value="$PROJECT_DIR$/vendor/seld/jsonlint" />
|
||||
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
|
||||
<path value="$PROJECT_DIR$/vendor/consolidation/self-update" />
|
||||
<path value="$PROJECT_DIR$/vendor/composer" />
|
||||
<path value="$PROJECT_DIR$/vendor/masterminds/html5" />
|
||||
<path value="$PROJECT_DIR$/vendor/squizlabs/php_codesniffer" />
|
||||
<path value="$PROJECT_DIR$/vendor/psy/psysh" />
|
||||
<path value="$PROJECT_DIR$/vendor/consolidation/robo" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/phpunit-bridge" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/var-dumper" />
|
||||
<path value="$PROJECT_DIR$/vendor/drush/drush" />
|
||||
<path value="$PROJECT_DIR$/vendor/drupal/coder" />
|
||||
<path value="$PROJECT_DIR$/vendor/drupal/core-composer-scaffold" />
|
||||
<path value="$PROJECT_DIR$/vendor/chi-teck/drupal-code-generator" />
|
||||
<path value="$PROJECT_DIR$/vendor/justinrainbow/json-schema" />
|
||||
<path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
|
||||
<path value="$PROJECT_DIR$/vendor/phpspec/prophecy" />
|
||||
<path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
|
||||
<path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" />
|
||||
<path value="$PROJECT_DIR$/vendor/sebastian/environment" />
|
||||
<path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
|
||||
<path value="$PROJECT_DIR$/vendor/sebastian/diff" />
|
||||
<path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" />
|
||||
<path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
|
||||
<path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
|
||||
<path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" />
|
||||
<path value="$PROJECT_DIR$/vendor/sebastian/version" />
|
||||
<path value="$PROJECT_DIR$/vendor/grasmash/expander" />
|
||||
<path value="$PROJECT_DIR$/vendor/grasmash/yaml-expander" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
|
||||
<path value="$PROJECT_DIR$/vendor/ralouphie/getallheaders" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/annotations" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/collections" />
|
||||
<path value="$PROJECT_DIR$/vendor/psr/log" />
|
||||
<path value="$PROJECT_DIR$/vendor/typo3/phar-stream-wrapper" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/common" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/cache" />
|
||||
<path value="$PROJECT_DIR$/vendor/psr/container" />
|
||||
<path value="$PROJECT_DIR$/vendor/psr/http-message" />
|
||||
<path value="$PROJECT_DIR$/vendor/sirbrillig/phpcs-variable-analysis" />
|
||||
<path value="$PROJECT_DIR$/vendor/laminas/laminas-diactoros" />
|
||||
<path value="$PROJECT_DIR$/vendor/laminas/laminas-escaper" />
|
||||
<path value="$PROJECT_DIR$/vendor/laminas/laminas-feed" />
|
||||
<path value="$PROJECT_DIR$/vendor/laminas/laminas-stdlib" />
|
||||
<path value="$PROJECT_DIR$/vendor/laminas/laminas-zendframework-bridge" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php80" />
|
||||
</include_path>
|
||||
</component>
|
||||
<component name="PhpProjectSharedConfiguration" php_language_level="7.3" />
|
||||
<component name="PhpUnit">
|
||||
<phpunit_settings>
|
||||
<PhpUnitSettings load_method="CUSTOM_LOADER" configuration_file_path="$PROJECT_DIR$/phpunit.xml.dist" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" phpunit_phar_path="" use_configuration_file="true" />
|
||||
</phpunit_settings>
|
||||
</component>
|
||||
</project>
|
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
137
.idea/workshop-drupal-automated-testing-code.iml
Normal file
137
.idea/workshop-drupal-automated-testing-code.iml
Normal file
|
@ -0,0 +1,137 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/web/modules/custom/my_module/tests/src" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/web/modules/custom/my_module/src" isTestSource="false" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/asm89/stack-cors" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/behat/mink" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/behat/mink-browserkit-driver" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/behat/mink-goutte-driver" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/behat/mink-selenium2-driver" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/chi-teck/drupal-code-generator" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/consolidation/annotated-command" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/consolidation/config" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/consolidation/filter-via-dot-access-data" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/consolidation/log" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/consolidation/output-formatters" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/consolidation/robo" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/consolidation/self-update" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/consolidation/site-alias" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/consolidation/site-process" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/container-interop/container-interop" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/dflydev/dot-access-data" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/dnoegel/php-xdg-base-dir" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/annotations" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/cache" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/collections" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/common" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/drupal/coder" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/drupal/core-composer-scaffold" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/drush/drush" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/easyrdf/easyrdf" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/egulias/email-validator" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/fabpot/goutte" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/grasmash/expander" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/grasmash/yaml-expander" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/guzzle" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/promises" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/psr7" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/instaclick/php-webdriver" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/jakub-onderka/php-console-color" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/jakub-onderka/php-console-highlighter" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/jcalderonzumba/gastonjs" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/jcalderonzumba/mink-phantomjs-driver" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/justinrainbow/json-schema" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/league/container" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/masterminds/html5" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/mikey179/vfsstream" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/nikic/php-parser" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/paragonie/random_compat" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/pear/archive_tar" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/pear/console_getopt" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/pear/pear-core-minimal" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/pear/pear_exception" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/manifest" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/version" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpspec/prophecy" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-message" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/log" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psy/psysh" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/ralouphie/getallheaders" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/diff" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/environment" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-reflector" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/resource-operations" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/version" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/seld/jsonlint" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/seld/phar-utils" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/squizlabs/php_codesniffer" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/stack/builder" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony-cmf/routing" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/browser-kit" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/class-loader" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/console" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/css-selector" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/debug" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/dependency-injection" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/dom-crawler" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/filesystem" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/finder" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-foundation" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-kernel" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/lock" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/phpunit-bridge" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-ctype" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-iconv" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php56" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php70" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php72" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-util" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/process" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/psr-http-message-bridge" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/routing" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/serializer" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/translation" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/validator" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/var-dumper" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/yaml" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/theseer/tokenizer" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/twig/twig" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/typo3/phar-stream-wrapper" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/webflo/drupal-finder" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/webmozart/assert" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/webmozart/path-util" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/zendframework/zend-diactoros" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/zendframework/zend-escaper" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/zendframework/zend-feed" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/zendframework/zend-stdlib" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
13
README.md
Normal file
13
README.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Drupal Automated Testing Workshop: Example Code
|
||||
|
||||
## Updates
|
||||
|
||||
If we need to update any of the commits, the changes should be rebased into the existing commits so that they continue to be in a linear order as per the workshop document.
|
||||
|
||||
As we want GitHub Actions to run for each commit, we can’t just push the latest commit as that would only trigger a build on the final commit. To do this, we can loop over each of the commit SHAs and push each one separately:
|
||||
|
||||
```bash
|
||||
for sha1 in $(git rev-list HEAD --reverse); do
|
||||
git push origin $sha1:main --force
|
||||
done
|
||||
```
|
57
composer.json
Normal file
57
composer.json
Normal file
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"name": "opdavies/workshop-drupal-automated-testing-code",
|
||||
"description": "Project template for Drupal 8 projects with a relocated document root",
|
||||
"type": "project",
|
||||
"license": "GPL-2.0-or-later",
|
||||
"homepage": "https://www.drupal.org/project/drupal",
|
||||
"support": {
|
||||
"docs": "https://www.drupal.org/docs/user_guide/en/index.html",
|
||||
"chat": "https://www.drupal.org/node/314178"
|
||||
},
|
||||
"repositories": [
|
||||
{
|
||||
"type": "composer",
|
||||
"url": "https://packages.drupal.org/8"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"composer/installers": "^1.2",
|
||||
"drupal/core-composer-scaffold": "^8.9",
|
||||
"drupal/core-recommended": "^8.9",
|
||||
"drush/drush": "^10"
|
||||
},
|
||||
"require-dev": {
|
||||
"drupal/core-dev": "^8.9"
|
||||
},
|
||||
"conflict": {
|
||||
"drupal/drupal": "*"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true,
|
||||
"scripts": {
|
||||
"phpunit": "phpunit --verbose --testdox --colors=always",
|
||||
"test": [
|
||||
"@phpunit"
|
||||
]
|
||||
},
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
},
|
||||
"extra": {
|
||||
"drupal-scaffold": {
|
||||
"locations": {
|
||||
"web-root": "web/"
|
||||
}
|
||||
},
|
||||
"installer-paths": {
|
||||
"web/core": ["type:drupal-core"],
|
||||
"web/libraries/{$name}": ["type:drupal-library"],
|
||||
"web/modules/contrib/{$name}": ["type:drupal-module"],
|
||||
"web/profiles/contrib/{$name}": ["type:drupal-profile"],
|
||||
"web/themes/contrib/{$name}": ["type:drupal-theme"],
|
||||
"drush/Commands/contrib/{$name}": ["type:drupal-drush"],
|
||||
"web/modules/custom/{$name}": ["type:drupal-custom-module"],
|
||||
"web/themes/custom/{$name}": ["type:drupal-custom-theme"]
|
||||
}
|
||||
}
|
||||
}
|
8719
composer.lock
generated
Normal file
8719
composer.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
0
config/.gitkeep
Normal file
0
config/.gitkeep
Normal file
32
phpunit.xml.dist
Normal file
32
phpunit.xml.dist
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<phpunit bootstrap="./web/core/tests/bootstrap.php"
|
||||
colors="true"
|
||||
beStrictAboutTestsThatDoNotTestAnything="true"
|
||||
beStrictAboutOutputDuringTests="true"
|
||||
beStrictAboutChangesToGlobalState="true"
|
||||
printerClass="\Drupal\Tests\Listeners\HtmlOutputPrinter">
|
||||
<php>
|
||||
<ini name="error_reporting" value="32767"/>
|
||||
<ini name="memory_limit" value="-1"/>
|
||||
<env name="SIMPLETEST_BASE_URL" value="http://localhost"/>
|
||||
<env name="SIMPLETEST_DB" value="sqlite://localhost//dev/shm/testing.db"/>
|
||||
<env name="BROWSERTEST_OUTPUT_DIRECTORY" value=""/>
|
||||
<env name="BROWSERTEST_OUTPUT_BASE_URL" value="http://localhost"/>
|
||||
<env name="MINK_DRIVER_CLASS" value=''/>
|
||||
<env name="MINK_DRIVER_ARGS" value=''/>
|
||||
<env name="MINK_DRIVER_ARGS_PHANTOMJS" value=''/>
|
||||
<env name="MINK_DRIVER_ARGS_WEBDRIVER" value=''/>
|
||||
</php>
|
||||
<testsuites>
|
||||
<testsuite name="functional">
|
||||
<directory suffix="Test.php">./web/modules/custom/**/tests/**/Functional</directory>
|
||||
</testsuite>
|
||||
<testsuite name="kernel">
|
||||
<directory suffix="Test.php">./web/modules/custom/**/tests/**/Kernel</directory>
|
||||
</testsuite>
|
||||
<testsuite name="unit">
|
||||
<directory suffix="Test.php">./web/modules/custom/**/tests/**/Unit</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
</phpunit>
|
16
web/sites/default/settings.php
Normal file
16
web/sites/default/settings.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
// @codingStandardsIgnoreFile
|
||||
|
||||
$settings['hash_salt'] = '53cr3t!';
|
||||
|
||||
$settings["config_sync_directory"] = '../config';
|
||||
|
||||
if (file_exists(__DIR__ . '/settings.local.php')) {
|
||||
require_once __DIR__ . '/settings.local.php';
|
||||
}
|
||||
|
||||
// Automatically generated include for settings managed by ddev.
|
||||
if (file_exists($app_root . '/' . $site_path . '/settings.ddev.php') && getenv('IS_DDEV_PROJECT') == 'true') {
|
||||
include $app_root . '/' . $site_path . '/settings.ddev.php';
|
||||
}
|
11
workspace.yml
Normal file
11
workspace.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
command('enable'): |
|
||||
#!bash
|
||||
php -S localhost:8000 -t web
|
||||
|
||||
command('drush %'): |
|
||||
#!bash|=
|
||||
vendor/bin/drush --root web ={ input.argument('%') }
|
||||
|
||||
command('phpunit %'): |
|
||||
#!bash|=
|
||||
vendor/bin/phpunit --verbose --testdox --colors=always ={ input.argument('%') }
|
Loading…
Reference in a new issue