diff --git a/.coveralls.yml b/.coveralls.yml deleted file mode 100644 index 701e4dd3..00000000 --- a/.coveralls.yml +++ /dev/null @@ -1,4 +0,0 @@ -# we push after testing in .github/workflows/unit-tests.yml -coverage_clover: Build/clover.xml -json_path: Build/coveralls-upload.json -service_name: Github Action diff --git a/.ddev/config.yaml b/.ddev/config.yaml index f0a8011a..39f8c6bf 100644 --- a/.ddev/config.yaml +++ b/.ddev/config.yaml @@ -1,76 +1,72 @@ name: extension-cookieman-master type: typo3 docroot: .build/public -php_version: "8.1" +php_version: "8.2" webserver_type: nginx-fpm router_http_port: "80" router_https_port: "443" xdebug_enabled: false -additional_hostnames: [ ] -additional_fqdns: [ ] -mariadb_version: "10.4" -mysql_version: "" -provider: default +additional_hostnames: [] +additional_fqdns: [] +database: + type: mariadb + version: "10.11" hooks: - post-start: - - composer: update --with-dependencies --no-progress - - exec: rm composer.lock - - exec: | - if [[ $(mysql -e "SHOW TABLES" | wc -l) -eq 0 ]]; then - composer install-typo3 - mysql <<< 'INSERT INTO pages SET uid=2, pid=1, title="Imprint", slug="/imprint"' - mysql <<< 'INSERT INTO pages SET uid=3, pid=1, title="Privacy Policy", slug="/privacy"' - fi - pre-start: - - exec-host: mkdir -p .build/public/typo3conf/ - - exec-host: .ddev/commands/copy-git-config -project_tld: test + post-start: + - composer: update --with-dependencies --no-progress + - exec: rm -f composer.lock + - exec: | + if [[ $(mysql -e "SHOW TABLES" | wc -l) -eq 0 ]]; then + composer typo3 install:setup -- --admin-user-name=admin --admin-password='aaAA11!!' \ + --site-setup-type=site --no-interaction --force + mysql <<< 'INSERT INTO pages SET uid=2, pid=1, title="Imprint", slug="/imprint"' + mysql <<< 'INSERT INTO pages SET uid=3, pid=1, title="Privacy Policy", slug="/privacy"' + fi + pre-start: + - exec-host: .ddev/commands/copy-git-config use_dns_when_possible: true composer_version: "2" +web_environment: [] - -# This config.yaml was created with ddev version v1.16.0 -# webimage: drud/ddev-webserver:v1.16.0 -# dbimage: drud/ddev-dbserver-mariadb-10.2:v1.16.0 -# dbaimage: 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: +# Key features of DDEV's config.yaml: # name: # Name of the project, automatically provides # http://projectname.ddev.site and https://projectname.ddev.site -# type: # drupal6/7/8, backdrop, typo3, wordpress, php +# type: # backdrop, craftcms, django4, drupal6/7/8/9/10, laravel, magento, magento2, php, python, shopware6, silverstripe, typo3, wordpress +# See https://ddev.readthedocs.io/en/latest/users/quickstart/ for more +# information on the different project types # docroot: # 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" "8.0" +# php_version: "8.1" # PHP version to use, "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2", "8.3" -# 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, +# You can explicitly specify the webimage but this +# is not recommended, as the images are often closely tied to DDEV's' behavior, # so this can break upgrades. # webimage: # nginx/php docker image. -# dbimage: # mariadb docker image. -# dbaimage: -# 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 +# database: +# type: # mysql, mariadb, postgres +# version: # database version, like "10.4" or "8.0" +# MariaDB versions can be 5.5-10.8 and 10.11, MySQL versions can be 5.5-8.0 +# PostgreSQL versions can be 9-16. -# router_http_port: # Port to be used for http (defaults to port 80) -# router_https_port: # Port for https (defaults to 443) +# router_http_port: # Port to be used for http (defaults to global configuration, usually 80) +# router_https_port: # Port for https (defaults to global configuration, usually 443) + +# xdebug_enabled: false # Set to true to enable Xdebug and "ddev start" or "ddev restart" +# Note that for most people the commands +# "ddev xdebug" to enable Xdebug and "ddev xdebug off" to disable it work better, +# as leaving Xdebug enabled all the time is a big performance hit. -# xdebug_enabled: false # Set to true to enable xdebug and "ddev start" or "ddev restart" +# xhprof_enabled: false # Set to true to enable Xhprof and "ddev start" or "ddev restart" # Note that for most people the commands -# "ddev xdebug" to enable xdebug and "ddev xdebug off" to disable it work better, -# as leaving xdebug enabled all the time is a big performance hit. +# "ddev xhprof" to enable Xhprof and "ddev xhprof off" to disable it work better, +# as leaving Xhprof enabled all the time is a big performance hit. -# webserver_type: nginx-fpm # or apache-fpm +# webserver_type: nginx-fpm, apache-fpm, or nginx-gunicorn # timezone: Europe/Berlin # This is the timezone used in the containers and by PHP; @@ -78,12 +74,30 @@ composer_version: "2" # see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones # For example Europe/Dublin or MST7MDT +# composer_root: +# Relative path to the Composer root directory from the project root. This is +# the directory which contains the composer.json and where all Composer related +# commands are executed. + # composer_version: "2" -# if composer_version:"" it will use the current ddev default composer release. -# It can also be set to "1", to get most recent composer v1 -# or "2" for most recent composer v2. -# It can be set to any existing specific composer version. -# After first project 'ddev start' this will not be updated until it changes +# You can set it to "" or "2" (default) for Composer v2 or "1" for Composer v1 +# to use the latest major version available at the time your container is built. +# It is also possible to use each other Composer version channel. This includes: +# - 2.2 (latest Composer LTS version) +# - stable +# - preview +# - snapshot +# Alternatively, an explicit Composer version may be specified, for example "2.2.18". +# To reinstall Composer after the image was built, run "ddev debug refresh". + +# nodejs_version: "18" +# change from the default system Node.js version to any other version. +# Numeric version numbers can be complete (i.e. 18.15.0) or +# incomplete (18, 17.2, 16). 'lts' and 'latest' can be used as well along with +# other named releases. +# see https://www.npmjs.com/package/n#specifying-nodejs-versions +# Note that you can continue using 'ddev nvm' or nvm inside the web container +# to change the project's installed node version if you need to. # additional_hostnames: # - somename @@ -97,8 +111,26 @@ composer_version: "2" # 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. +# upload_dirs: "custom/upload/dir" +# +# upload_dirs: +# - custom/upload/dir +# - ../private +# +# would set the destination paths for ddev import-files to /custom/upload/dir +# When Mutagen is enabled this path is bind-mounted so that all the files +# in the upload_dirs don't have to be synced into Mutagen. + +# disable_upload_dirs_warning: false +# If true, turns off the normal warning that says +# "You have Mutagen enabled and your 'php' project type doesn't have upload_dirs set" + +# ddev_version_constraint: "" +# Example: +# ddev_version_constraint: ">= 1.22.4" +# This will enforce that the running ddev version is within this constraint. +# See https://github.com/Masterminds/semver#checking-version-constraints for +# supported constraint formats # working_dir: # web: /var/www/html @@ -107,15 +139,28 @@ composer_version: "2" # 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] +# omit_containers: [db, 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. +# the "db" container, several standard features of DDEV that access the +# database container will be unusable. In the global configuration it is also +# possible to omit ddev-router, but not here. + +# performance_mode: "global" +# DDEV offers performance optimization strategies to improve the filesystem +# performance depending on your host system. Should be configured globally. +# +# If set, will override the global config. Possible values are: +# - "global": uses the value from the global config. +# - "none": disables performance optimization for this project. +# - "mutagen": enables Mutagen for this project. +# - "nfs": enables NFS for this project. +# +# See https://ddev.readthedocs.io/en/latest/users/install/performance/#nfs +# See https://ddev.readthedocs.io/en/latest/users/install/performance/#mutagen -# 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 +# fail_on_hook_fail: False +# Decide whether 'ddev start' should be interrupted by a failing hook # host_https_port: "59002" # The host port binding for https can be explicitly specified. It is @@ -133,15 +178,15 @@ composer_version: "2" # 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 +# mailpit_http_port: "8025" +# mailpit_https_port: "8026" +# The Mailpit ports can be changed from the default 8025 and 8026 -# mailhog_port: "8025" -# mailhog_https_port: "8026" -# The MailHog ports can be changed from the default 8025 and 8026 +# host_mailpit_port: "8025" +# The mailpit port is not normally bound on the host at all, instead being routed +# through ddev-router, but it can be bound directly to localhost if specified here. -# webimage_extra_packages: [php7.3-tidy, php-bcmath] +# webimage_extra_packages: [php7.4-tidy, php-bcmath] # Extra Debian packages that are needed in the webimage can be added here # dbimage_extra_packages: [telnet,netcat] @@ -159,27 +204,87 @@ composer_version: "2" # If you prefer you can change this to "ddev.local" to preserve # pre-v1.9 behavior. -# ngrok_args: --subdomain mysite --auth username:pass +# ngrok_args: --basic-auth username:pass1234 # Provide extra flags to the "ngrok http" command, see -# https://ngrok.com/docs#http or run "ngrok http -h" +# https://ngrok.com/docs/ngrok-agent/config 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 +# If true, DDEV will not create CMS-specific settings files like +# Drupal's settings.php/settings.ddev.php or TYPO3's AdditionalConfiguration.php # In this case the user must provide all such settings. +# You can inject environment variables into the web container with: +# web_environment: +# - SOMEENV=somevalue +# - SOMEOTHERENV=someothervalue + # no_project_mount: false -# (Experimental) If true, ddev will not mount the project into the web container; +# (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" +# bind_all_interfaces: false +# If true, host ports will be bound on all network interfaces, +# not the localhost interface only. This means that ports +# will be available on the local network if the host firewall +# allows it. + +# default_container_timeout: 120 +# The default time that DDEV waits for all containers to become ready can be increased from +# the default 120. This helps in importing huge databases, for example. + +#web_extra_exposed_ports: +#- name: nodejs +# container_port: 3000 +# http_port: 2999 +# https_port: 3000 +#- name: something +# container_port: 4000 +# https_port: 4000 +# http_port: 3999 +# Allows a set of extra ports to be exposed via ddev-router +# Fill in all three fields even if you don’t intend to use the https_port! +# If you don’t add https_port, then it defaults to 0 and ddev-router will fail to start. # -# Many ddev commands can be extended to run tasks before or after the -# ddev command is executed, for example "post-start", "post-import-db", +# The port behavior on the ddev-webserver must be arranged separately, for example +# using web_extra_daemons. +# For example, with a web app on port 3000 inside the container, this config would +# expose that web app on https://.ddev.site:9999 and http://.ddev.site:9998 +# web_extra_exposed_ports: +# - name: myapp +# container_port: 3000 +# http_port: 9998 +# https_port: 9999 + +#web_extra_daemons: +#- name: "http-1" +# command: "/var/www/html/node_modules/.bin/http-server -p 3000" +# directory: /var/www/html +#- name: "http-2" +# command: "/var/www/html/node_modules/.bin/http-server /var/www/html/sub -p 3000" +# directory: /var/www/html + +# override_config: false +# By default, config.*.yaml files are *merged* into the configuration +# But this means that some things can't be overridden +# For example, if you have 'use_dns_when_possible: true'' you can't override it with a merge +# and you can't erase existing hooks or all environment variables. +# However, with "override_config: true" in a particular config.*.yaml file, +# 'use_dns_when_possible: false' can override the existing values, and +# hooks: +# post-start: [] +# or +# web_environment: [] +# or +# additional_hostnames: [] +# can have their intended affect. 'override_config' affects only behavior of the +# config.*.yaml file it exists in. + +# 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 +# See https://ddev.readthedocs.io/en/stable/users/extend/custom-commands/ for more # information on the commands that can be extended and the tasks you can define # for them. Example: #hooks: diff --git a/.ddev/docker-compose.env.yaml b/.ddev/docker-compose.env.yaml index 550fc4b6..23792bb7 100644 --- a/.ddev/docker-compose.env.yaml +++ b/.ddev/docker-compose.env.yaml @@ -1,8 +1,7 @@ -version: '3.6' services: - web: - environment: - - PHP_IDE_CONFIG=serverName=${DDEV_SITENAME} - - TYPO3_CONTEXT=Development/Local - - BROWSERSTACK_USERNAME=${BROWSERSTACK_USERNAME} - - BROWSERSTACK_ACCESS_KEY=${BROWSERSTACK_ACCESS_KEY} + web: + environment: + - PHP_IDE_CONFIG=serverName=${DDEV_SITENAME} + - TYPO3_CONTEXT=Development/Local + - BROWSERSTACK_USERNAME=${BROWSERSTACK_USERNAME} + - BROWSERSTACK_ACCESS_KEY=${BROWSERSTACK_ACCESS_KEY} diff --git a/.ddev/docker-compose.selenium.yaml b/.ddev/docker-compose.selenium.yaml index b7b1a0bf..ff9eb41c 100644 --- a/.ddev/docker-compose.selenium.yaml +++ b/.ddev/docker-compose.selenium.yaml @@ -1,20 +1,19 @@ -version: '3.6' - services: selenium-chrome: container_name: ddev-${DDEV_SITENAME}-selenium-chrome - image: selenium/node-chrome:3 - networks: [default, ddev_default] + image: selenium/node-chrome:4.9 + networks: [ grid, ddev_default ] external_links: - - "ddev-router:extension-cookieman-master.test" + - "ddev-router:extension-cookieman-master.ddev.site" depends_on: - selenium-hub labels: com.ddev.site-name: ${DDEV_SITENAME} - com.ddev.approot: $DDEV_APPROOT + com.ddev.approot: ${DDEV_APPROOT} environment: - - HUB_HOST=selenium-hub - - HUB_PORT=4444 + - SE_EVENT_BUS_HOST=selenium-hub + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 - CAROOT=/mnt/ddev-global-cache/mkcert volumes: - /dev/shm:/dev/shm @@ -22,18 +21,19 @@ services: selenium-firefox: container_name: ddev-${DDEV_SITENAME}-selenium-firefox - image: selenium/node-firefox:3 - networks: [default, ddev_default] + image: selenium/node-firefox:4.9 + networks: [ grid, ddev_default ] external_links: - - "ddev-router:extension-cookieman-master.test" + - "ddev-router:extension-cookieman-master.ddev.site" depends_on: - selenium-hub labels: com.ddev.site-name: ${DDEV_SITENAME} - com.ddev.approot: $DDEV_APPROOT + com.ddev.approot: ${DDEV_APPROOT} environment: - - HUB_HOST=selenium-hub - - HUB_PORT=4444 + - SE_EVENT_BUS_HOST=selenium-hub + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 - CAROOT=/mnt/ddev-global-cache/mkcert volumes: - /dev/shm:/dev/shm @@ -41,13 +41,15 @@ services: selenium-hub: container_name: ddev-${DDEV_SITENAME}-selenium-hub - image: selenium/hub:3 - networks: [default, ddev_default] + image: selenium/hub:4.9 + networks: [ grid, ddev_default ] external_links: - - "ddev-router:extension-cookieman-master.test" + - "ddev-router:extension-cookieman-master.ddev.site" labels: com.ddev.site-name: ${DDEV_SITENAME} - com.ddev.approot: $DDEV_APPROOT + com.ddev.approot: ${DDEV_APPROOT} + ports: + - 4442-4443:4442-4443 environment: - VIRTUAL_HOST=$DDEV_HOSTNAME - HTTP_EXPOSE=4444 @@ -57,5 +59,6 @@ services: - ddev-global-cache:/mnt/ddev-global-cache networks: + grid: ddev_default: external: true diff --git a/.gitattributes b/.gitattributes index 1979ffbf..be29a989 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3,6 +3,8 @@ /.github export-ignore /Build export-ignore /Tests export-ignore +/config export-ignore +/var export-ignore # Files .editorconfig export-ignore @@ -16,22 +18,5 @@ package.json export-ignore webpack.config.js export-ignore yarn.lock export-ignore -# Enforce checkout with linux lf consistent over all plattforms -*.xml text eol=lf -*.html text eol=lf -*.css text eol=lf -*.tmpl text eol=lf -*.less text eol=lf -*.js text eol=lf -*.json text eol=lf -*.php text eol=lf -*.rst text eol=lf -*.md text eol=lf -*.yml text eol=lf -*.ts text eol=lf -*.xlf text eol=lf -*.sql text eol=lf -*.t3s text eol=lf -*.txt text eol=lf -*.typoscript text eol=lf -*.tsconfig text eol=lf +# lf checkout when text is auto-detected +* text=auto eol=lf diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml index 38fbcf2b..412de7d2 100644 --- a/.github/workflows/acceptance-tests.yml +++ b/.github/workflows/acceptance-tests.yml @@ -20,26 +20,26 @@ jobs: strategy: fail-fast: false matrix: - php-version: ["7.4", "8.1"] - browser: [chrome] - theme: [bootstrap3-banner, bootstrap3-modal, bootstrap4-modal, bootstrap5-modal, customtheme] + php-version: [ "8.1", "8.2", "8.3" ] + browser: [ chrome ] + theme: [ bootstrap3-banner, bootstrap3-modal, bootstrap4-modal, bootstrap5-modal, customtheme ] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 # Set PHP version - - run: | - sed -i -e 's/^php_version:.*/php_version: ${{ matrix.php-version }}/g' .ddev/config.yaml + - run: | + sed -i -e 's/^php_version:.*/php_version: ${{ matrix.php-version }}/g' .ddev/config.yaml # Start ddev - - uses: ddev/github-action-setup-ddev@v1 + - uses: ddev/github-action-setup-ddev@v1 # Setup tests - - run: ddev composer cookieman:${{ matrix.theme }} + - run: ddev composer cookieman:${{ matrix.theme }} # Run tests - - run: ddev composer test:acceptance:${{ matrix.browser }} + - run: ddev composer test:acceptance:${{ matrix.browser }} # Save acceptance reports - - uses: actions/upload-artifact@master - with: - name: ${{ matrix.browser }}-${{ matrix.theme }}-${{ matrix.php-version }}-ar - path: Build/AcceptanceReports - if: always() + - uses: actions/upload-artifact@master + with: + name: ${{ matrix.browser }}-${{ matrix.theme }}-${{ matrix.php-version }}-ar + path: Build/AcceptanceReports + if: always() acceptance-tests-firefox: runs-on: ubuntu-22.04 @@ -50,23 +50,23 @@ jobs: strategy: fail-fast: false matrix: - php-version: ["8.1"] - browser: [firefox] - theme: [bootstrap3-banner, bootstrap3-modal, bootstrap4-modal, bootstrap5-modal, customtheme] + php-version: [ "8.3" ] + browser: [ firefox ] + theme: [ bootstrap3-banner, bootstrap3-modal, bootstrap4-modal, bootstrap5-modal, customtheme ] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 # Set PHP version - - run: | - sed -i -e 's/^php_version:.*/php_version: ${{ matrix.php-version }}/g' .ddev/config.yaml + - run: | + sed -i -e 's/^php_version:.*/php_version: ${{ matrix.php-version }}/g' .ddev/config.yaml # Start ddev - - uses: ddev/github-action-setup-ddev@v1 + - uses: ddev/github-action-setup-ddev@v1 # Setup tests - - run: ddev composer cookieman:${{ matrix.theme }} + - run: ddev composer cookieman:${{ matrix.theme }} # Run tests - - run: ddev composer test:acceptance:${{ matrix.browser }} + - run: ddev composer test:acceptance:${{ matrix.browser }} # Save acceptance reports - - uses: actions/upload-artifact@v3 - with: - name: ${{ matrix.browser }}-${{ matrix.theme }}-${{ matrix.php-version }}-ar - path: Build/AcceptanceReports - if: always() + - uses: actions/upload-artifact@v3 + with: + name: ${{ matrix.browser }}-${{ matrix.theme }}-${{ matrix.php-version }}-ar + path: Build/AcceptanceReports + if: always() diff --git a/.github/workflows/publish-ter.yml b/.github/workflows/publish-ter.yml index ea70fe25..29d4f94f 100644 --- a/.github/workflows/publish-ter.yml +++ b/.github/workflows/publish-ter.yml @@ -13,7 +13,7 @@ jobs: TYPO3_API_TOKEN: ${{ secrets.TYPO3_API_TOKEN }} steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Check tag run: | @@ -32,7 +32,7 @@ jobs: comment="${comment//'%'/'%25'}" comment="${comment//$'\n'/'%0A'}" comment="${comment//$'\r'/'%0D'}" - + if [[ -z "${comment// }" ]]; then echo ::set-output name=comment::Released version ${{ steps.get-version.outputs.version }} of ${{ env.TYPO3_EXTENSION_KEY }} else diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index d73b289f..ead116e1 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -1,60 +1,46 @@ name: CGL & unit tests on: - push: - branches: - - '**' - - '!l10n_*' - pull_request: - branches: - - '**' - - '!l10n_*' + push: + branches: + - '**' + - '!l10n_*' + pull_request: + branches: + - '**' + - '!l10n_*' jobs: - unit-tests: - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - matrix: - php-version: ["7.4", "8.1"] - steps: - - uses: actions/checkout@v3 - - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-version }} - extensions: intl, mbstring, json, zip, curl - tools: composer:v2 - - run: composer update --no-interaction --no-progress - - run: composer show - - run: composer tests-for:ci - - name: Push to coveralls (master only) - run: | - .build/bin/php-coveralls \ - --root_dir=. --env=prod --verbose \ - || true - if: github.ref == 'refs/heads/master' && matrix.php-version == '7.4' - env: - COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} - - name: Upload coveralls result - uses: actions/upload-artifact@v3 - if: github.ref == 'refs/heads/master' && matrix.php-version == '7.4' - with: - name: Coveralls result - path: ./Build/coveralls-upload.json - unit-tests-lowest: - runs-on: ubuntu-22.04 - continue-on-error: true - strategy: - fail-fast: false - matrix: - php-version: ["7.4", "8.1"] - steps: - - uses: actions/checkout@v3 - - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-version }} - extensions: intl, mbstring, json, zip, curl - tools: composer:v2 - - run: composer update --no-interaction --prefer-lowest --no-progress - - run: composer show - - run: composer tests-for:ci + unit-tests: + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + php-version: [ "8.1", "8.2", "8.3" ] + steps: + - uses: actions/checkout@v4 + - uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + extensions: intl, mbstring, json, zip, curl + tools: composer:v2 + - run: composer update --no-interaction --no-progress + - run: composer show + - run: composer tests-for:ci + unit-tests-lowest: + runs-on: ubuntu-22.04 + continue-on-error: true + strategy: + fail-fast: false + matrix: + php-version: [ "8.1", "8.2", "8.3" ] + steps: + - uses: actions/checkout@v4 + - uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + extensions: intl, mbstring, json, zip, curl + tools: composer:v2 + - run: composer update --no-interaction --prefer-lowest --no-progress + - run: composer show + - run: composer tests-for:ci diff --git a/.gitignore b/.gitignore index bbea69b6..dae3aea3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,24 +1,30 @@ +# IDE /.idea # composer /vendor/ /composer.lock -# Build stuff -/.build/ +# build, dev, clutter /Build/yarn-error.log -/Build/.phpunit.result.cache +/Build/.phpunit.* /Build/node_modules/ /Build/mix-manifest.json /Build/testing-docker/.env -/Build/clover.xml -/Build/coveralls-upload.json /Build/AcceptanceReports /Tests/Acceptance/Support/_generated/ /temp-*/ /Documentation-GENERATED-temp/ /Resources/Public/Js/mix-manifest.json +# TYPO3 +/.build/ +/config/* +!/config/system/ +/config/system/* +!/config/system/additional.php +/var + # CGL Fixer /.php_cs.cache @@ -26,5 +32,5 @@ /local.log ./browserstack.err -# private stuff +# private /.ddev/homeadditions/.gitconfig diff --git a/.php_cs.dist.php b/.php_cs.dist.php index dd538d6a..293b703f 100644 --- a/.php_cs.dist.php +++ b/.php_cs.dist.php @@ -1,69 +1,23 @@ setRiskyAllowed(true) - ->setRules([ - '@PSR2' => true, - 'header_comment' => [ - 'header' => $header +$config = \TYPO3\CodingStandards\CsFixerConfig::create(); +$config->setFinder( + PhpCsFixer\Finder::create() + ->ignoreVCS(true) + ->ignoreVCSIgnored(true) + ->notName(['ext_localconf.php', 'ext_tables.php', 'ext_emconf.php', 'additional.php']) + ->exclude(['Tests/Acceptance/Support/_generated/']) + ->in(__DIR__) +); +$config->addRules( + [ + 'yoda_style' => false, // dude, I love yoda style + 'function_declaration' => [ + 'closure_function_spacing' => 'none', + 'closure_fn_spacing' => 'none', ], - 'declare_strict_types' => true, - 'no_leading_import_slash' => true, - 'no_trailing_comma_in_singleline_array' => true, - 'no_singleline_whitespace_before_semicolons' => true, - 'no_unused_imports' => true, - 'concat_space' => ['spacing' => 'one'], - 'no_whitespace_in_blank_line' => true, - 'ordered_imports' => true, - 'single_quote' => true, - 'no_empty_statement' => true, - 'no_extra_blank_lines' => true, - 'phpdoc_no_package' => true, - 'phpdoc_scalar' => true, - 'no_blank_lines_after_phpdoc' => true, - 'array_syntax' => ['syntax' => 'short'], - 'whitespace_after_comma_in_array' => true, - 'function_typehint_space' => true, - 'single_line_comment_style' => true, - 'no_alias_functions' => true, - 'lowercase_cast' => true, - 'no_leading_namespace_whitespace' => true, - 'native_function_casing' => true, - 'self_accessor' => true, - 'no_short_bool_cast' => true, - 'no_unneeded_control_parentheses' => true - ]) - ->setFinder( - PhpCsFixer\Finder::create() - ->ignoreVCS(true) - ->ignoreVCSIgnored(true) - ->notName(['ext_localconf.php', 'ext_tables.php', 'ext_emconf.php']) - ->in(__DIR__) - ); + 'single_line_empty_body' => false, + ] +); + +return $config; diff --git a/Build/UnitTests.phpunit.xml b/Build/UnitTests.phpunit.xml index c961bb75..23022a46 100644 --- a/Build/UnitTests.phpunit.xml +++ b/Build/UnitTests.phpunit.xml @@ -1,31 +1,14 @@ - - - - ../Classes/ - - - - - + ../Tests/Unit + + + ../Classes/ + + diff --git a/Build/browserstack.codeception.yml b/Build/browserstack.codeception.yml index f3eacb9c..352f2f08 100644 --- a/Build/browserstack.codeception.yml +++ b/Build/browserstack.codeception.yml @@ -10,7 +10,7 @@ suites: - Asserts: config: \Dmind\Cookieman\Tests\Acceptance\Driver\BrowserStackLocalWebDriver: - url: http://extension-cookieman-master.test + url: http://extension-cookieman-master.ddev.site host: 'hub-cloud.browserstack.com' port: 80 wait: 5 diff --git a/Build/cookieman_test/Configuration/TypoScript/setup.typoscript b/Build/cookieman_test/Configuration/TypoScript/setup.typoscript index e69de29b..41adc4ee 100644 --- a/Build/cookieman_test/Configuration/TypoScript/setup.typoscript +++ b/Build/cookieman_test/Configuration/TypoScript/setup.typoscript @@ -0,0 +1,2 @@ +page.5 = TEXT +page.5.value = diff --git a/Build/cookieman_test/Resources/Private/Language/locallang_cookieman.xlf b/Build/cookieman_test/Resources/Private/Language/locallang_cookieman.xlf new file mode 100644 index 00000000..aa44a310 --- /dev/null +++ b/Build/cookieman_test/Resources/Private/Language/locallang_cookieman.xlf @@ -0,0 +1,20 @@ + + + +
+ + + Crowdin Widget + + + This is just a test but on the other hand it is useful: It displays the Crowdin Widget which allows you to help translating cookieman ;) + + + Test group (does not respect Do-Not-Track header) + + + JavaScript + + + + diff --git a/Build/cookieman_test/ext_localconf.php b/Build/cookieman_test/ext_localconf.php new file mode 100644 index 00000000..345b48e3 --- /dev/null +++ b/Build/cookieman_test/ext_localconf.php @@ -0,0 +1,11 @@ + - - -
-
-
-
- ) + inject = TEXT + inject { + insertData = 1 + value ( + + + +
+
+
+
+ ) + } show { CrowdinWidget { - duration = - - durationUnit = - + duration = + durationUnit = none type = script provider = Crowdin } @@ -50,14 +56,3 @@ plugin.tx_cookieman.settings { } } } - -plugin.tx_cookieman._LOCAL_LANG { - en { - trackingobject\.CrowdinWidget = Crowdin Widget - trackingobject\.CrowdinWidget\.desc = This is just a test but on the other hand it is useful: It displays the Crowdin Widget which allows you to help translating cookieman ;) - group\.testgroup = Test group (does not respect Do-Not-Track header) - type\.script = JavaScript - } - - default < .en -} diff --git a/Build/cookieman_test_customtheme/Extensions/cookieman/Resources/Private/Themes/customTheme/Templates/Popup.html b/Build/cookieman_test_customtheme/Resources/Private/Themes/customTheme/Templates/Popup.html similarity index 67% rename from Build/cookieman_test_customtheme/Extensions/cookieman/Resources/Private/Themes/customTheme/Templates/Popup.html rename to Build/cookieman_test_customtheme/Resources/Private/Themes/customTheme/Templates/Popup.html index bfe434fa..c94eb3ff 100644 --- a/Build/cookieman_test_customtheme/Extensions/cookieman/Resources/Private/Themes/customTheme/Templates/Popup.html +++ b/Build/cookieman_test_customtheme/Resources/Private/Themes/customTheme/Templates/Popup.html @@ -1,85 +1,81 @@ + xmlns:c="http://typo3.org/ns/Dmind/Cookieman/ViewHelpers" + xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers"> -