Make WordPress Core

Changeset 51844


Ignore:
Timestamp:
09/21/2021 11:02:13 PM (3 years ago)
Author:
hellofromTonya
Message:

Build/Test Tools: Introduce the PHPUnit Polyfills package for easier cross branch testing.

This backports the PHPUnit Polyfills package and related test infrastructure changes to make it easier for developers to continue testing on multiple versions WordPress while adding tests for newer versions of PHP, which require more modern PHPUnit practices.

One of the changes included is the addition of wrappers for the new snake_case fixture methods in PHPUnit. This allows the native camelCase standard in PHPUnit to be used, but allows for developers to transition to the new naming conventions.

Props hellofromTonya, jrf, SergeyBiryukov, johnbillion, netweb, schlessera, jeherve, lucatume, desrosj.
Merges [51559,51560,51810-51813,51828] to the 5.4 branch.
See #53911.

Location:
branches/5.4
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/5.4

  • branches/5.4/.github/workflows/phpunit-tests.yml

    r50674 r51844  
    2424env:
    2525  PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: ${{ true }}
    26   COMPOSER_INSTALL: ${{ false }}
    2726  # Controls which NPM script to use for running PHPUnit tests. Options ar `php` and `php-composer`.
    2827  PHPUNIT_SCRIPT: php
     
    140139      - name: Get composer cache directory
    141140        id: composer-cache
    142         if: ${{ env.COMPOSER_INSTALL == true }}
    143141        run: echo "::set-output name=dir::$(composer config cache-files-dir)"
    144142
    145143      - name: Cache Composer dependencies
    146         if: ${{ env.COMPOSER_INSTALL == true }}
    147144        uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 # v2.1.4
    148145        env:
     
    153150
    154151      - name: Install Composer dependencies
    155         if: ${{ env.COMPOSER_INSTALL == true }}
    156         run: |
    157           docker-compose run --rm php composer --version
    158           docker-compose run --rm php composer install
     152        run: |
     153          if [ ${{ env.LOCAL_PHP }} == '7.1-fpm' ]; then
     154            docker-compose run --rm php composer update
     155            git checkout -- composer.lock
     156          elif [[ ${{ env.LOCAL_PHP }} == '5.6.20-fpm' || ${{ env.LOCAL_PHP }} == '5.6-fpm' || ${{ env.LOCAL_PHP }} == '7.0-fpm' ]]; then
     157            docker-compose run --rm php composer require --dev phpunit/phpunit:"^5.7" --update-with-dependencies
     158            git checkout -- composer.lock composer.json
     159          else
     160            docker-compose run --rm php composer install
     161          fi
    159162
    160163      - name: Docker debug information
  • branches/5.4/composer.json

    r49318 r51844  
    1616        "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7.0",
    1717        "wp-coding-standards/wpcs": "~2.1.0",
    18         "phpcompatibility/phpcompatibility-wp": "^2.1.0"
     18        "phpcompatibility/phpcompatibility-wp": "^2.1.0",
     19        "phpunit/phpunit": "^5.7.21 || ^6.5 || ^7.5",
     20        "yoast/phpunit-polyfills": "^1.0.1"
    1921    },
    2022    "scripts": {
  • branches/5.4/composer.lock

    r49318 r51844  
    55        "This file is @generated automatically"
    66    ],
    7     "content-hash": "463db2b4afb439fb63d93173c0852e27",
     7    "content-hash": "aca20b03e01d127576d6bcf3eb4517ef",
    88    "packages": [],
    99    "packages-dev": [
     
    7979        },
    8080        {
     81            "name": "doctrine/instantiator",
     82            "version": "1.4.0",
     83            "source": {
     84                "type": "git",
     85                "url": "https://github.com/doctrine/instantiator.git",
     86                "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b"
     87            },
     88            "dist": {
     89                "type": "zip",
     90                "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
     91                "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
     92                "shasum": ""
     93            },
     94            "require": {
     95                "php": "^7.1 || ^8.0"
     96            },
     97            "require-dev": {
     98                "doctrine/coding-standard": "^8.0",
     99                "ext-pdo": "*",
     100                "ext-phar": "*",
     101                "phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
     102                "phpstan/phpstan": "^0.12",
     103                "phpstan/phpstan-phpunit": "^0.12",
     104                "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
     105            },
     106            "type": "library",
     107            "autoload": {
     108                "psr-4": {
     109                    "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
     110                }
     111            },
     112            "notification-url": "https://packagist.org/downloads/",
     113            "license": [
     114                "MIT"
     115            ],
     116            "authors": [
     117                {
     118                    "name": "Marco Pivetta",
     119                    "email": "ocramius@gmail.com",
     120                    "homepage": "https://ocramius.github.io/"
     121                }
     122            ],
     123            "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
     124            "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
     125            "keywords": [
     126                "constructor",
     127                "instantiate"
     128            ],
     129            "support": {
     130                "issues": "https://github.com/doctrine/instantiator/issues",
     131                "source": "https://github.com/doctrine/instantiator/tree/1.4.0"
     132            },
     133            "funding": [
     134                {
     135                    "url": "https://www.doctrine-project.org/sponsorship.html",
     136                    "type": "custom"
     137                },
     138                {
     139                    "url": "https://www.patreon.com/phpdoctrine",
     140                    "type": "patreon"
     141                },
     142                {
     143                    "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
     144                    "type": "tidelift"
     145                }
     146            ],
     147            "time": "2020-11-10T18:47:58+00:00"
     148        },
     149        {
     150            "name": "myclabs/deep-copy",
     151            "version": "1.10.2",
     152            "source": {
     153                "type": "git",
     154                "url": "https://github.com/myclabs/DeepCopy.git",
     155                "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220"
     156            },
     157            "dist": {
     158                "type": "zip",
     159                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220",
     160                "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220",
     161                "shasum": ""
     162            },
     163            "require": {
     164                "php": "^7.1 || ^8.0"
     165            },
     166            "replace": {
     167                "myclabs/deep-copy": "self.version"
     168            },
     169            "require-dev": {
     170                "doctrine/collections": "^1.0",
     171                "doctrine/common": "^2.6",
     172                "phpunit/phpunit": "^7.1"
     173            },
     174            "type": "library",
     175            "autoload": {
     176                "psr-4": {
     177                    "DeepCopy\\": "src/DeepCopy/"
     178                },
     179                "files": [
     180                    "src/DeepCopy/deep_copy.php"
     181                ]
     182            },
     183            "notification-url": "https://packagist.org/downloads/",
     184            "license": [
     185                "MIT"
     186            ],
     187            "description": "Create deep copies (clones) of your objects",
     188            "keywords": [
     189                "clone",
     190                "copy",
     191                "duplicate",
     192                "object",
     193                "object graph"
     194            ],
     195            "support": {
     196                "issues": "https://github.com/myclabs/DeepCopy/issues",
     197                "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2"
     198            },
     199            "funding": [
     200                {
     201                    "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
     202                    "type": "tidelift"
     203                }
     204            ],
     205            "time": "2020-11-13T09:40:50+00:00"
     206        },
     207        {
     208            "name": "phar-io/manifest",
     209            "version": "1.0.3",
     210            "source": {
     211                "type": "git",
     212                "url": "https://github.com/phar-io/manifest.git",
     213                "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4"
     214            },
     215            "dist": {
     216                "type": "zip",
     217                "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
     218                "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
     219                "shasum": ""
     220            },
     221            "require": {
     222                "ext-dom": "*",
     223                "ext-phar": "*",
     224                "phar-io/version": "^2.0",
     225                "php": "^5.6 || ^7.0"
     226            },
     227            "type": "library",
     228            "extra": {
     229                "branch-alias": {
     230                    "dev-master": "1.0.x-dev"
     231                }
     232            },
     233            "autoload": {
     234                "classmap": [
     235                    "src/"
     236                ]
     237            },
     238            "notification-url": "https://packagist.org/downloads/",
     239            "license": [
     240                "BSD-3-Clause"
     241            ],
     242            "authors": [
     243                {
     244                    "name": "Arne Blankerts",
     245                    "email": "arne@blankerts.de",
     246                    "role": "Developer"
     247                },
     248                {
     249                    "name": "Sebastian Heuer",
     250                    "email": "sebastian@phpeople.de",
     251                    "role": "Developer"
     252                },
     253                {
     254                    "name": "Sebastian Bergmann",
     255                    "email": "sebastian@phpunit.de",
     256                    "role": "Developer"
     257                }
     258            ],
     259            "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
     260            "support": {
     261                "issues": "https://github.com/phar-io/manifest/issues",
     262                "source": "https://github.com/phar-io/manifest/tree/master"
     263            },
     264            "time": "2018-07-08T19:23:20+00:00"
     265        },
     266        {
     267            "name": "phar-io/version",
     268            "version": "2.0.1",
     269            "source": {
     270                "type": "git",
     271                "url": "https://github.com/phar-io/version.git",
     272                "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6"
     273            },
     274            "dist": {
     275                "type": "zip",
     276                "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6",
     277                "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6",
     278                "shasum": ""
     279            },
     280            "require": {
     281                "php": "^5.6 || ^7.0"
     282            },
     283            "type": "library",
     284            "autoload": {
     285                "classmap": [
     286                    "src/"
     287                ]
     288            },
     289            "notification-url": "https://packagist.org/downloads/",
     290            "license": [
     291                "BSD-3-Clause"
     292            ],
     293            "authors": [
     294                {
     295                    "name": "Arne Blankerts",
     296                    "email": "arne@blankerts.de",
     297                    "role": "Developer"
     298                },
     299                {
     300                    "name": "Sebastian Heuer",
     301                    "email": "sebastian@phpeople.de",
     302                    "role": "Developer"
     303                },
     304                {
     305                    "name": "Sebastian Bergmann",
     306                    "email": "sebastian@phpunit.de",
     307                    "role": "Developer"
     308                }
     309            ],
     310            "description": "Library for handling version information and constraints",
     311            "support": {
     312                "issues": "https://github.com/phar-io/version/issues",
     313                "source": "https://github.com/phar-io/version/tree/master"
     314            },
     315            "time": "2018-07-08T19:19:57+00:00"
     316        },
     317        {
    81318            "name": "phpcompatibility/php-compatibility",
    82319            "version": "9.3.1",
     
    239476        },
    240477        {
     478            "name": "phpdocumentor/reflection-common",
     479            "version": "2.1.0",
     480            "source": {
     481                "type": "git",
     482                "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
     483                "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b"
     484            },
     485            "dist": {
     486                "type": "zip",
     487                "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/6568f4687e5b41b054365f9ae03fcb1ed5f2069b",
     488                "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b",
     489                "shasum": ""
     490            },
     491            "require": {
     492                "php": ">=7.1"
     493            },
     494            "type": "library",
     495            "extra": {
     496                "branch-alias": {
     497                    "dev-master": "2.x-dev"
     498                }
     499            },
     500            "autoload": {
     501                "psr-4": {
     502                    "phpDocumentor\\Reflection\\": "src/"
     503                }
     504            },
     505            "notification-url": "https://packagist.org/downloads/",
     506            "license": [
     507                "MIT"
     508            ],
     509            "authors": [
     510                {
     511                    "name": "Jaap van Otterdijk",
     512                    "email": "opensource@ijaap.nl"
     513                }
     514            ],
     515            "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
     516            "homepage": "http://www.phpdoc.org",
     517            "keywords": [
     518                "FQSEN",
     519                "phpDocumentor",
     520                "phpdoc",
     521                "reflection",
     522                "static analysis"
     523            ],
     524            "support": {
     525                "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
     526                "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/master"
     527            },
     528            "time": "2020-04-27T09:25:28+00:00"
     529        },
     530        {
     531            "name": "phpdocumentor/reflection-docblock",
     532            "version": "4.3.4",
     533            "source": {
     534                "type": "git",
     535                "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
     536                "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c"
     537            },
     538            "dist": {
     539                "type": "zip",
     540                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/da3fd972d6bafd628114f7e7e036f45944b62e9c",
     541                "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c",
     542                "shasum": ""
     543            },
     544            "require": {
     545                "php": "^7.0",
     546                "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0",
     547                "phpdocumentor/type-resolver": "~0.4 || ^1.0.0",
     548                "webmozart/assert": "^1.0"
     549            },
     550            "require-dev": {
     551                "doctrine/instantiator": "^1.0.5",
     552                "mockery/mockery": "^1.0",
     553                "phpdocumentor/type-resolver": "0.4.*",
     554                "phpunit/phpunit": "^6.4"
     555            },
     556            "type": "library",
     557            "extra": {
     558                "branch-alias": {
     559                    "dev-master": "4.x-dev"
     560                }
     561            },
     562            "autoload": {
     563                "psr-4": {
     564                    "phpDocumentor\\Reflection\\": [
     565                        "src/"
     566                    ]
     567                }
     568            },
     569            "notification-url": "https://packagist.org/downloads/",
     570            "license": [
     571                "MIT"
     572            ],
     573            "authors": [
     574                {
     575                    "name": "Mike van Riel",
     576                    "email": "me@mikevanriel.com"
     577                }
     578            ],
     579            "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
     580            "support": {
     581                "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
     582                "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/release/4.x"
     583            },
     584            "time": "2019-12-28T18:55:12+00:00"
     585        },
     586        {
     587            "name": "phpdocumentor/type-resolver",
     588            "version": "1.0.1",
     589            "source": {
     590                "type": "git",
     591                "url": "https://github.com/phpDocumentor/TypeResolver.git",
     592                "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9"
     593            },
     594            "dist": {
     595                "type": "zip",
     596                "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9",
     597                "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9",
     598                "shasum": ""
     599            },
     600            "require": {
     601                "php": "^7.1",
     602                "phpdocumentor/reflection-common": "^2.0"
     603            },
     604            "require-dev": {
     605                "ext-tokenizer": "^7.1",
     606                "mockery/mockery": "~1",
     607                "phpunit/phpunit": "^7.0"
     608            },
     609            "type": "library",
     610            "extra": {
     611                "branch-alias": {
     612                    "dev-master": "1.x-dev"
     613                }
     614            },
     615            "autoload": {
     616                "psr-4": {
     617                    "phpDocumentor\\Reflection\\": "src"
     618                }
     619            },
     620            "notification-url": "https://packagist.org/downloads/",
     621            "license": [
     622                "MIT"
     623            ],
     624            "authors": [
     625                {
     626                    "name": "Mike van Riel",
     627                    "email": "me@mikevanriel.com"
     628                }
     629            ],
     630            "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
     631            "support": {
     632                "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
     633                "source": "https://github.com/phpDocumentor/TypeResolver/tree/0.7.2"
     634            },
     635            "time": "2019-08-22T18:11:29+00:00"
     636        },
     637        {
     638            "name": "phpspec/prophecy",
     639            "version": "v1.10.3",
     640            "source": {
     641                "type": "git",
     642                "url": "https://github.com/phpspec/prophecy.git",
     643                "reference": "451c3cd1418cf640de218914901e51b064abb093"
     644            },
     645            "dist": {
     646                "type": "zip",
     647                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093",
     648                "reference": "451c3cd1418cf640de218914901e51b064abb093",
     649                "shasum": ""
     650            },
     651            "require": {
     652                "doctrine/instantiator": "^1.0.2",
     653                "php": "^5.3|^7.0",
     654                "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
     655                "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0",
     656                "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0"
     657            },
     658            "require-dev": {
     659                "phpspec/phpspec": "^2.5 || ^3.2",
     660                "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
     661            },
     662            "type": "library",
     663            "extra": {
     664                "branch-alias": {
     665                    "dev-master": "1.10.x-dev"
     666                }
     667            },
     668            "autoload": {
     669                "psr-4": {
     670                    "Prophecy\\": "src/Prophecy"
     671                }
     672            },
     673            "notification-url": "https://packagist.org/downloads/",
     674            "license": [
     675                "MIT"
     676            ],
     677            "authors": [
     678                {
     679                    "name": "Konstantin Kudryashov",
     680                    "email": "ever.zet@gmail.com",
     681                    "homepage": "http://everzet.com"
     682                },
     683                {
     684                    "name": "Marcello Duarte",
     685                    "email": "marcello.duarte@gmail.com"
     686                }
     687            ],
     688            "description": "Highly opinionated mocking framework for PHP 5.3+",
     689            "homepage": "https://github.com/phpspec/prophecy",
     690            "keywords": [
     691                "Double",
     692                "Dummy",
     693                "fake",
     694                "mock",
     695                "spy",
     696                "stub"
     697            ],
     698            "support": {
     699                "issues": "https://github.com/phpspec/prophecy/issues",
     700                "source": "https://github.com/phpspec/prophecy/tree/v1.10.3"
     701            },
     702            "time": "2020-03-05T15:02:03+00:00"
     703        },
     704        {
     705            "name": "phpunit/php-code-coverage",
     706            "version": "6.1.4",
     707            "source": {
     708                "type": "git",
     709                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
     710                "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d"
     711            },
     712            "dist": {
     713                "type": "zip",
     714                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
     715                "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
     716                "shasum": ""
     717            },
     718            "require": {
     719                "ext-dom": "*",
     720                "ext-xmlwriter": "*",
     721                "php": "^7.1",
     722                "phpunit/php-file-iterator": "^2.0",
     723                "phpunit/php-text-template": "^1.2.1",
     724                "phpunit/php-token-stream": "^3.0",
     725                "sebastian/code-unit-reverse-lookup": "^1.0.1",
     726                "sebastian/environment": "^3.1 || ^4.0",
     727                "sebastian/version": "^2.0.1",
     728                "theseer/tokenizer": "^1.1"
     729            },
     730            "require-dev": {
     731                "phpunit/phpunit": "^7.0"
     732            },
     733            "suggest": {
     734                "ext-xdebug": "^2.6.0"
     735            },
     736            "type": "library",
     737            "extra": {
     738                "branch-alias": {
     739                    "dev-master": "6.1-dev"
     740                }
     741            },
     742            "autoload": {
     743                "classmap": [
     744                    "src/"
     745                ]
     746            },
     747            "notification-url": "https://packagist.org/downloads/",
     748            "license": [
     749                "BSD-3-Clause"
     750            ],
     751            "authors": [
     752                {
     753                    "name": "Sebastian Bergmann",
     754                    "email": "sebastian@phpunit.de",
     755                    "role": "lead"
     756                }
     757            ],
     758            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
     759            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
     760            "keywords": [
     761                "coverage",
     762                "testing",
     763                "xunit"
     764            ],
     765            "support": {
     766                "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
     767                "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/master"
     768            },
     769            "time": "2018-10-31T16:06:48+00:00"
     770        },
     771        {
     772            "name": "phpunit/php-file-iterator",
     773            "version": "2.0.4",
     774            "source": {
     775                "type": "git",
     776                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
     777                "reference": "28af674ff175d0768a5a978e6de83f697d4a7f05"
     778            },
     779            "dist": {
     780                "type": "zip",
     781                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/28af674ff175d0768a5a978e6de83f697d4a7f05",
     782                "reference": "28af674ff175d0768a5a978e6de83f697d4a7f05",
     783                "shasum": ""
     784            },
     785            "require": {
     786                "php": ">=7.1"
     787            },
     788            "require-dev": {
     789                "phpunit/phpunit": "^8.5"
     790            },
     791            "type": "library",
     792            "extra": {
     793                "branch-alias": {
     794                    "dev-master": "2.0.x-dev"
     795                }
     796            },
     797            "autoload": {
     798                "classmap": [
     799                    "src/"
     800                ]
     801            },
     802            "notification-url": "https://packagist.org/downloads/",
     803            "license": [
     804                "BSD-3-Clause"
     805            ],
     806            "authors": [
     807                {
     808                    "name": "Sebastian Bergmann",
     809                    "email": "sebastian@phpunit.de",
     810                    "role": "lead"
     811                }
     812            ],
     813            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
     814            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
     815            "keywords": [
     816                "filesystem",
     817                "iterator"
     818            ],
     819            "support": {
     820                "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
     821                "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.4"
     822            },
     823            "funding": [
     824                {
     825                    "url": "https://github.com/sebastianbergmann",
     826                    "type": "github"
     827                }
     828            ],
     829            "time": "2021-07-19T06:46:01+00:00"
     830        },
     831        {
     832            "name": "phpunit/php-text-template",
     833            "version": "1.2.1",
     834            "source": {
     835                "type": "git",
     836                "url": "https://github.com/sebastianbergmann/php-text-template.git",
     837                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
     838            },
     839            "dist": {
     840                "type": "zip",
     841                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
     842                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
     843                "shasum": ""
     844            },
     845            "require": {
     846                "php": ">=5.3.3"
     847            },
     848            "type": "library",
     849            "autoload": {
     850                "classmap": [
     851                    "src/"
     852                ]
     853            },
     854            "notification-url": "https://packagist.org/downloads/",
     855            "license": [
     856                "BSD-3-Clause"
     857            ],
     858            "authors": [
     859                {
     860                    "name": "Sebastian Bergmann",
     861                    "email": "sebastian@phpunit.de",
     862                    "role": "lead"
     863                }
     864            ],
     865            "description": "Simple template engine.",
     866            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
     867            "keywords": [
     868                "template"
     869            ],
     870            "support": {
     871                "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
     872                "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1"
     873            },
     874            "time": "2015-06-21T13:50:34+00:00"
     875        },
     876        {
     877            "name": "phpunit/php-timer",
     878            "version": "2.1.3",
     879            "source": {
     880                "type": "git",
     881                "url": "https://github.com/sebastianbergmann/php-timer.git",
     882                "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662"
     883            },
     884            "dist": {
     885                "type": "zip",
     886                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662",
     887                "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662",
     888                "shasum": ""
     889            },
     890            "require": {
     891                "php": ">=7.1"
     892            },
     893            "require-dev": {
     894                "phpunit/phpunit": "^8.5"
     895            },
     896            "type": "library",
     897            "extra": {
     898                "branch-alias": {
     899                    "dev-master": "2.1-dev"
     900                }
     901            },
     902            "autoload": {
     903                "classmap": [
     904                    "src/"
     905                ]
     906            },
     907            "notification-url": "https://packagist.org/downloads/",
     908            "license": [
     909                "BSD-3-Clause"
     910            ],
     911            "authors": [
     912                {
     913                    "name": "Sebastian Bergmann",
     914                    "email": "sebastian@phpunit.de",
     915                    "role": "lead"
     916                }
     917            ],
     918            "description": "Utility class for timing",
     919            "homepage": "https://github.com/sebastianbergmann/php-timer/",
     920            "keywords": [
     921                "timer"
     922            ],
     923            "support": {
     924                "issues": "https://github.com/sebastianbergmann/php-timer/issues",
     925                "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3"
     926            },
     927            "funding": [
     928                {
     929                    "url": "https://github.com/sebastianbergmann",
     930                    "type": "github"
     931                }
     932            ],
     933            "time": "2020-11-30T08:20:02+00:00"
     934        },
     935        {
     936            "name": "phpunit/php-token-stream",
     937            "version": "3.1.3",
     938            "source": {
     939                "type": "git",
     940                "url": "https://github.com/sebastianbergmann/php-token-stream.git",
     941                "reference": "9c1da83261628cb24b6a6df371b6e312b3954768"
     942            },
     943            "dist": {
     944                "type": "zip",
     945                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9c1da83261628cb24b6a6df371b6e312b3954768",
     946                "reference": "9c1da83261628cb24b6a6df371b6e312b3954768",
     947                "shasum": ""
     948            },
     949            "require": {
     950                "ext-tokenizer": "*",
     951                "php": ">=7.1"
     952            },
     953            "require-dev": {
     954                "phpunit/phpunit": "^7.0"
     955            },
     956            "type": "library",
     957            "extra": {
     958                "branch-alias": {
     959                    "dev-master": "3.1-dev"
     960                }
     961            },
     962            "autoload": {
     963                "classmap": [
     964                    "src/"
     965                ]
     966            },
     967            "notification-url": "https://packagist.org/downloads/",
     968            "license": [
     969                "BSD-3-Clause"
     970            ],
     971            "authors": [
     972                {
     973                    "name": "Sebastian Bergmann",
     974                    "email": "sebastian@phpunit.de"
     975                }
     976            ],
     977            "description": "Wrapper around PHP's tokenizer extension.",
     978            "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
     979            "keywords": [
     980                "tokenizer"
     981            ],
     982            "support": {
     983                "issues": "https://github.com/sebastianbergmann/php-token-stream/issues",
     984                "source": "https://github.com/sebastianbergmann/php-token-stream/tree/3.1.3"
     985            },
     986            "funding": [
     987                {
     988                    "url": "https://github.com/sebastianbergmann",
     989                    "type": "github"
     990                }
     991            ],
     992            "abandoned": true,
     993            "time": "2021-07-26T12:15:06+00:00"
     994        },
     995        {
     996            "name": "phpunit/phpunit",
     997            "version": "7.5.20",
     998            "source": {
     999                "type": "git",
     1000                "url": "https://github.com/sebastianbergmann/phpunit.git",
     1001                "reference": "9467db479d1b0487c99733bb1e7944d32deded2c"
     1002            },
     1003            "dist": {
     1004                "type": "zip",
     1005                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c",
     1006                "reference": "9467db479d1b0487c99733bb1e7944d32deded2c",
     1007                "shasum": ""
     1008            },
     1009            "require": {
     1010                "doctrine/instantiator": "^1.1",
     1011                "ext-dom": "*",
     1012                "ext-json": "*",
     1013                "ext-libxml": "*",
     1014                "ext-mbstring": "*",
     1015                "ext-xml": "*",
     1016                "myclabs/deep-copy": "^1.7",
     1017                "phar-io/manifest": "^1.0.2",
     1018                "phar-io/version": "^2.0",
     1019                "php": "^7.1",
     1020                "phpspec/prophecy": "^1.7",
     1021                "phpunit/php-code-coverage": "^6.0.7",
     1022                "phpunit/php-file-iterator": "^2.0.1",
     1023                "phpunit/php-text-template": "^1.2.1",
     1024                "phpunit/php-timer": "^2.1",
     1025                "sebastian/comparator": "^3.0",
     1026                "sebastian/diff": "^3.0",
     1027                "sebastian/environment": "^4.0",
     1028                "sebastian/exporter": "^3.1",
     1029                "sebastian/global-state": "^2.0",
     1030                "sebastian/object-enumerator": "^3.0.3",
     1031                "sebastian/resource-operations": "^2.0",
     1032                "sebastian/version": "^2.0.1"
     1033            },
     1034            "conflict": {
     1035                "phpunit/phpunit-mock-objects": "*"
     1036            },
     1037            "require-dev": {
     1038                "ext-pdo": "*"
     1039            },
     1040            "suggest": {
     1041                "ext-soap": "*",
     1042                "ext-xdebug": "*",
     1043                "phpunit/php-invoker": "^2.0"
     1044            },
     1045            "bin": [
     1046                "phpunit"
     1047            ],
     1048            "type": "library",
     1049            "extra": {
     1050                "branch-alias": {
     1051                    "dev-master": "7.5-dev"
     1052                }
     1053            },
     1054            "autoload": {
     1055                "classmap": [
     1056                    "src/"
     1057                ]
     1058            },
     1059            "notification-url": "https://packagist.org/downloads/",
     1060            "license": [
     1061                "BSD-3-Clause"
     1062            ],
     1063            "authors": [
     1064                {
     1065                    "name": "Sebastian Bergmann",
     1066                    "email": "sebastian@phpunit.de",
     1067                    "role": "lead"
     1068                }
     1069            ],
     1070            "description": "The PHP Unit Testing framework.",
     1071            "homepage": "https://phpunit.de/",
     1072            "keywords": [
     1073                "phpunit",
     1074                "testing",
     1075                "xunit"
     1076            ],
     1077            "support": {
     1078                "issues": "https://github.com/sebastianbergmann/phpunit/issues",
     1079                "source": "https://github.com/sebastianbergmann/phpunit/tree/7.5.20"
     1080            },
     1081            "time": "2020-01-08T08:45:45+00:00"
     1082        },
     1083        {
     1084            "name": "sebastian/code-unit-reverse-lookup",
     1085            "version": "1.0.2",
     1086            "source": {
     1087                "type": "git",
     1088                "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
     1089                "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619"
     1090            },
     1091            "dist": {
     1092                "type": "zip",
     1093                "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619",
     1094                "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619",
     1095                "shasum": ""
     1096            },
     1097            "require": {
     1098                "php": ">=5.6"
     1099            },
     1100            "require-dev": {
     1101                "phpunit/phpunit": "^8.5"
     1102            },
     1103            "type": "library",
     1104            "extra": {
     1105                "branch-alias": {
     1106                    "dev-master": "1.0.x-dev"
     1107                }
     1108            },
     1109            "autoload": {
     1110                "classmap": [
     1111                    "src/"
     1112                ]
     1113            },
     1114            "notification-url": "https://packagist.org/downloads/",
     1115            "license": [
     1116                "BSD-3-Clause"
     1117            ],
     1118            "authors": [
     1119                {
     1120                    "name": "Sebastian Bergmann",
     1121                    "email": "sebastian@phpunit.de"
     1122                }
     1123            ],
     1124            "description": "Looks up which function or method a line of code belongs to",
     1125            "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
     1126            "support": {
     1127                "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
     1128                "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2"
     1129            },
     1130            "funding": [
     1131                {
     1132                    "url": "https://github.com/sebastianbergmann",
     1133                    "type": "github"
     1134                }
     1135            ],
     1136            "time": "2020-11-30T08:15:22+00:00"
     1137        },
     1138        {
     1139            "name": "sebastian/comparator",
     1140            "version": "3.0.3",
     1141            "source": {
     1142                "type": "git",
     1143                "url": "https://github.com/sebastianbergmann/comparator.git",
     1144                "reference": "1071dfcef776a57013124ff35e1fc41ccd294758"
     1145            },
     1146            "dist": {
     1147                "type": "zip",
     1148                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758",
     1149                "reference": "1071dfcef776a57013124ff35e1fc41ccd294758",
     1150                "shasum": ""
     1151            },
     1152            "require": {
     1153                "php": ">=7.1",
     1154                "sebastian/diff": "^3.0",
     1155                "sebastian/exporter": "^3.1"
     1156            },
     1157            "require-dev": {
     1158                "phpunit/phpunit": "^8.5"
     1159            },
     1160            "type": "library",
     1161            "extra": {
     1162                "branch-alias": {
     1163                    "dev-master": "3.0-dev"
     1164                }
     1165            },
     1166            "autoload": {
     1167                "classmap": [
     1168                    "src/"
     1169                ]
     1170            },
     1171            "notification-url": "https://packagist.org/downloads/",
     1172            "license": [
     1173                "BSD-3-Clause"
     1174            ],
     1175            "authors": [
     1176                {
     1177                    "name": "Sebastian Bergmann",
     1178                    "email": "sebastian@phpunit.de"
     1179                },
     1180                {
     1181                    "name": "Jeff Welch",
     1182                    "email": "whatthejeff@gmail.com"
     1183                },
     1184                {
     1185                    "name": "Volker Dusch",
     1186                    "email": "github@wallbash.com"
     1187                },
     1188                {
     1189                    "name": "Bernhard Schussek",
     1190                    "email": "bschussek@2bepublished.at"
     1191                }
     1192            ],
     1193            "description": "Provides the functionality to compare PHP values for equality",
     1194            "homepage": "https://github.com/sebastianbergmann/comparator",
     1195            "keywords": [
     1196                "comparator",
     1197                "compare",
     1198                "equality"
     1199            ],
     1200            "support": {
     1201                "issues": "https://github.com/sebastianbergmann/comparator/issues",
     1202                "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.3"
     1203            },
     1204            "funding": [
     1205                {
     1206                    "url": "https://github.com/sebastianbergmann",
     1207                    "type": "github"
     1208                }
     1209            ],
     1210            "time": "2020-11-30T08:04:30+00:00"
     1211        },
     1212        {
     1213            "name": "sebastian/diff",
     1214            "version": "3.0.3",
     1215            "source": {
     1216                "type": "git",
     1217                "url": "https://github.com/sebastianbergmann/diff.git",
     1218                "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211"
     1219            },
     1220            "dist": {
     1221                "type": "zip",
     1222                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211",
     1223                "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211",
     1224                "shasum": ""
     1225            },
     1226            "require": {
     1227                "php": ">=7.1"
     1228            },
     1229            "require-dev": {
     1230                "phpunit/phpunit": "^7.5 || ^8.0",
     1231                "symfony/process": "^2 || ^3.3 || ^4"
     1232            },
     1233            "type": "library",
     1234            "extra": {
     1235                "branch-alias": {
     1236                    "dev-master": "3.0-dev"
     1237                }
     1238            },
     1239            "autoload": {
     1240                "classmap": [
     1241                    "src/"
     1242                ]
     1243            },
     1244            "notification-url": "https://packagist.org/downloads/",
     1245            "license": [
     1246                "BSD-3-Clause"
     1247            ],
     1248            "authors": [
     1249                {
     1250                    "name": "Sebastian Bergmann",
     1251                    "email": "sebastian@phpunit.de"
     1252                },
     1253                {
     1254                    "name": "Kore Nordmann",
     1255                    "email": "mail@kore-nordmann.de"
     1256                }
     1257            ],
     1258            "description": "Diff implementation",
     1259            "homepage": "https://github.com/sebastianbergmann/diff",
     1260            "keywords": [
     1261                "diff",
     1262                "udiff",
     1263                "unidiff",
     1264                "unified diff"
     1265            ],
     1266            "support": {
     1267                "issues": "https://github.com/sebastianbergmann/diff/issues",
     1268                "source": "https://github.com/sebastianbergmann/diff/tree/3.0.3"
     1269            },
     1270            "funding": [
     1271                {
     1272                    "url": "https://github.com/sebastianbergmann",
     1273                    "type": "github"
     1274                }
     1275            ],
     1276            "time": "2020-11-30T07:59:04+00:00"
     1277        },
     1278        {
     1279            "name": "sebastian/environment",
     1280            "version": "4.2.4",
     1281            "source": {
     1282                "type": "git",
     1283                "url": "https://github.com/sebastianbergmann/environment.git",
     1284                "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0"
     1285            },
     1286            "dist": {
     1287                "type": "zip",
     1288                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0",
     1289                "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0",
     1290                "shasum": ""
     1291            },
     1292            "require": {
     1293                "php": ">=7.1"
     1294            },
     1295            "require-dev": {
     1296                "phpunit/phpunit": "^7.5"
     1297            },
     1298            "suggest": {
     1299                "ext-posix": "*"
     1300            },
     1301            "type": "library",
     1302            "extra": {
     1303                "branch-alias": {
     1304                    "dev-master": "4.2-dev"
     1305                }
     1306            },
     1307            "autoload": {
     1308                "classmap": [
     1309                    "src/"
     1310                ]
     1311            },
     1312            "notification-url": "https://packagist.org/downloads/",
     1313            "license": [
     1314                "BSD-3-Clause"
     1315            ],
     1316            "authors": [
     1317                {
     1318                    "name": "Sebastian Bergmann",
     1319                    "email": "sebastian@phpunit.de"
     1320                }
     1321            ],
     1322            "description": "Provides functionality to handle HHVM/PHP environments",
     1323            "homepage": "http://www.github.com/sebastianbergmann/environment",
     1324            "keywords": [
     1325                "Xdebug",
     1326                "environment",
     1327                "hhvm"
     1328            ],
     1329            "support": {
     1330                "issues": "https://github.com/sebastianbergmann/environment/issues",
     1331                "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4"
     1332            },
     1333            "funding": [
     1334                {
     1335                    "url": "https://github.com/sebastianbergmann",
     1336                    "type": "github"
     1337                }
     1338            ],
     1339            "time": "2020-11-30T07:53:42+00:00"
     1340        },
     1341        {
     1342            "name": "sebastian/exporter",
     1343            "version": "3.1.3",
     1344            "source": {
     1345                "type": "git",
     1346                "url": "https://github.com/sebastianbergmann/exporter.git",
     1347                "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e"
     1348            },
     1349            "dist": {
     1350                "type": "zip",
     1351                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/6b853149eab67d4da22291d36f5b0631c0fd856e",
     1352                "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e",
     1353                "shasum": ""
     1354            },
     1355            "require": {
     1356                "php": ">=7.0",
     1357                "sebastian/recursion-context": "^3.0"
     1358            },
     1359            "require-dev": {
     1360                "ext-mbstring": "*",
     1361                "phpunit/phpunit": "^6.0"
     1362            },
     1363            "type": "library",
     1364            "extra": {
     1365                "branch-alias": {
     1366                    "dev-master": "3.1.x-dev"
     1367                }
     1368            },
     1369            "autoload": {
     1370                "classmap": [
     1371                    "src/"
     1372                ]
     1373            },
     1374            "notification-url": "https://packagist.org/downloads/",
     1375            "license": [
     1376                "BSD-3-Clause"
     1377            ],
     1378            "authors": [
     1379                {
     1380                    "name": "Sebastian Bergmann",
     1381                    "email": "sebastian@phpunit.de"
     1382                },
     1383                {
     1384                    "name": "Jeff Welch",
     1385                    "email": "whatthejeff@gmail.com"
     1386                },
     1387                {
     1388                    "name": "Volker Dusch",
     1389                    "email": "github@wallbash.com"
     1390                },
     1391                {
     1392                    "name": "Adam Harvey",
     1393                    "email": "aharvey@php.net"
     1394                },
     1395                {
     1396                    "name": "Bernhard Schussek",
     1397                    "email": "bschussek@gmail.com"
     1398                }
     1399            ],
     1400            "description": "Provides the functionality to export PHP variables for visualization",
     1401            "homepage": "http://www.github.com/sebastianbergmann/exporter",
     1402            "keywords": [
     1403                "export",
     1404                "exporter"
     1405            ],
     1406            "support": {
     1407                "issues": "https://github.com/sebastianbergmann/exporter/issues",
     1408                "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.3"
     1409            },
     1410            "funding": [
     1411                {
     1412                    "url": "https://github.com/sebastianbergmann",
     1413                    "type": "github"
     1414                }
     1415            ],
     1416            "time": "2020-11-30T07:47:53+00:00"
     1417        },
     1418        {
     1419            "name": "sebastian/global-state",
     1420            "version": "2.0.0",
     1421            "source": {
     1422                "type": "git",
     1423                "url": "https://github.com/sebastianbergmann/global-state.git",
     1424                "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
     1425            },
     1426            "dist": {
     1427                "type": "zip",
     1428                "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
     1429                "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
     1430                "shasum": ""
     1431            },
     1432            "require": {
     1433                "php": "^7.0"
     1434            },
     1435            "require-dev": {
     1436                "phpunit/phpunit": "^6.0"
     1437            },
     1438            "suggest": {
     1439                "ext-uopz": "*"
     1440            },
     1441            "type": "library",
     1442            "extra": {
     1443                "branch-alias": {
     1444                    "dev-master": "2.0-dev"
     1445                }
     1446            },
     1447            "autoload": {
     1448                "classmap": [
     1449                    "src/"
     1450                ]
     1451            },
     1452            "notification-url": "https://packagist.org/downloads/",
     1453            "license": [
     1454                "BSD-3-Clause"
     1455            ],
     1456            "authors": [
     1457                {
     1458                    "name": "Sebastian Bergmann",
     1459                    "email": "sebastian@phpunit.de"
     1460                }
     1461            ],
     1462            "description": "Snapshotting of global state",
     1463            "homepage": "http://www.github.com/sebastianbergmann/global-state",
     1464            "keywords": [
     1465                "global state"
     1466            ],
     1467            "support": {
     1468                "issues": "https://github.com/sebastianbergmann/global-state/issues",
     1469                "source": "https://github.com/sebastianbergmann/global-state/tree/2.0.0"
     1470            },
     1471            "time": "2017-04-27T15:39:26+00:00"
     1472        },
     1473        {
     1474            "name": "sebastian/object-enumerator",
     1475            "version": "3.0.4",
     1476            "source": {
     1477                "type": "git",
     1478                "url": "https://github.com/sebastianbergmann/object-enumerator.git",
     1479                "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2"
     1480            },
     1481            "dist": {
     1482                "type": "zip",
     1483                "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2",
     1484                "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2",
     1485                "shasum": ""
     1486            },
     1487            "require": {
     1488                "php": ">=7.0",
     1489                "sebastian/object-reflector": "^1.1.1",
     1490                "sebastian/recursion-context": "^3.0"
     1491            },
     1492            "require-dev": {
     1493                "phpunit/phpunit": "^6.0"
     1494            },
     1495            "type": "library",
     1496            "extra": {
     1497                "branch-alias": {
     1498                    "dev-master": "3.0.x-dev"
     1499                }
     1500            },
     1501            "autoload": {
     1502                "classmap": [
     1503                    "src/"
     1504                ]
     1505            },
     1506            "notification-url": "https://packagist.org/downloads/",
     1507            "license": [
     1508                "BSD-3-Clause"
     1509            ],
     1510            "authors": [
     1511                {
     1512                    "name": "Sebastian Bergmann",
     1513                    "email": "sebastian@phpunit.de"
     1514                }
     1515            ],
     1516            "description": "Traverses array structures and object graphs to enumerate all referenced objects",
     1517            "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
     1518            "support": {
     1519                "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
     1520                "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4"
     1521            },
     1522            "funding": [
     1523                {
     1524                    "url": "https://github.com/sebastianbergmann",
     1525                    "type": "github"
     1526                }
     1527            ],
     1528            "time": "2020-11-30T07:40:27+00:00"
     1529        },
     1530        {
     1531            "name": "sebastian/object-reflector",
     1532            "version": "1.1.2",
     1533            "source": {
     1534                "type": "git",
     1535                "url": "https://github.com/sebastianbergmann/object-reflector.git",
     1536                "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d"
     1537            },
     1538            "dist": {
     1539                "type": "zip",
     1540                "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d",
     1541                "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d",
     1542                "shasum": ""
     1543            },
     1544            "require": {
     1545                "php": ">=7.0"
     1546            },
     1547            "require-dev": {
     1548                "phpunit/phpunit": "^6.0"
     1549            },
     1550            "type": "library",
     1551            "extra": {
     1552                "branch-alias": {
     1553                    "dev-master": "1.1-dev"
     1554                }
     1555            },
     1556            "autoload": {
     1557                "classmap": [
     1558                    "src/"
     1559                ]
     1560            },
     1561            "notification-url": "https://packagist.org/downloads/",
     1562            "license": [
     1563                "BSD-3-Clause"
     1564            ],
     1565            "authors": [
     1566                {
     1567                    "name": "Sebastian Bergmann",
     1568                    "email": "sebastian@phpunit.de"
     1569                }
     1570            ],
     1571            "description": "Allows reflection of object attributes, including inherited and non-public ones",
     1572            "homepage": "https://github.com/sebastianbergmann/object-reflector/",
     1573            "support": {
     1574                "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
     1575                "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2"
     1576            },
     1577            "funding": [
     1578                {
     1579                    "url": "https://github.com/sebastianbergmann",
     1580                    "type": "github"
     1581                }
     1582            ],
     1583            "time": "2020-11-30T07:37:18+00:00"
     1584        },
     1585        {
     1586            "name": "sebastian/recursion-context",
     1587            "version": "3.0.1",
     1588            "source": {
     1589                "type": "git",
     1590                "url": "https://github.com/sebastianbergmann/recursion-context.git",
     1591                "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb"
     1592            },
     1593            "dist": {
     1594                "type": "zip",
     1595                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb",
     1596                "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb",
     1597                "shasum": ""
     1598            },
     1599            "require": {
     1600                "php": ">=7.0"
     1601            },
     1602            "require-dev": {
     1603                "phpunit/phpunit": "^6.0"
     1604            },
     1605            "type": "library",
     1606            "extra": {
     1607                "branch-alias": {
     1608                    "dev-master": "3.0.x-dev"
     1609                }
     1610            },
     1611            "autoload": {
     1612                "classmap": [
     1613                    "src/"
     1614                ]
     1615            },
     1616            "notification-url": "https://packagist.org/downloads/",
     1617            "license": [
     1618                "BSD-3-Clause"
     1619            ],
     1620            "authors": [
     1621                {
     1622                    "name": "Sebastian Bergmann",
     1623                    "email": "sebastian@phpunit.de"
     1624                },
     1625                {
     1626                    "name": "Jeff Welch",
     1627                    "email": "whatthejeff@gmail.com"
     1628                },
     1629                {
     1630                    "name": "Adam Harvey",
     1631                    "email": "aharvey@php.net"
     1632                }
     1633            ],
     1634            "description": "Provides functionality to recursively process PHP variables",
     1635            "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
     1636            "support": {
     1637                "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
     1638                "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1"
     1639            },
     1640            "funding": [
     1641                {
     1642                    "url": "https://github.com/sebastianbergmann",
     1643                    "type": "github"
     1644                }
     1645            ],
     1646            "time": "2020-11-30T07:34:24+00:00"
     1647        },
     1648        {
     1649            "name": "sebastian/resource-operations",
     1650            "version": "2.0.2",
     1651            "source": {
     1652                "type": "git",
     1653                "url": "https://github.com/sebastianbergmann/resource-operations.git",
     1654                "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3"
     1655            },
     1656            "dist": {
     1657                "type": "zip",
     1658                "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3",
     1659                "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3",
     1660                "shasum": ""
     1661            },
     1662            "require": {
     1663                "php": ">=7.1"
     1664            },
     1665            "type": "library",
     1666            "extra": {
     1667                "branch-alias": {
     1668                    "dev-master": "2.0-dev"
     1669                }
     1670            },
     1671            "autoload": {
     1672                "classmap": [
     1673                    "src/"
     1674                ]
     1675            },
     1676            "notification-url": "https://packagist.org/downloads/",
     1677            "license": [
     1678                "BSD-3-Clause"
     1679            ],
     1680            "authors": [
     1681                {
     1682                    "name": "Sebastian Bergmann",
     1683                    "email": "sebastian@phpunit.de"
     1684                }
     1685            ],
     1686            "description": "Provides a list of PHP built-in functions that operate on resources",
     1687            "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
     1688            "support": {
     1689                "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
     1690                "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2"
     1691            },
     1692            "funding": [
     1693                {
     1694                    "url": "https://github.com/sebastianbergmann",
     1695                    "type": "github"
     1696                }
     1697            ],
     1698            "time": "2020-11-30T07:30:19+00:00"
     1699        },
     1700        {
     1701            "name": "sebastian/version",
     1702            "version": "2.0.1",
     1703            "source": {
     1704                "type": "git",
     1705                "url": "https://github.com/sebastianbergmann/version.git",
     1706                "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
     1707            },
     1708            "dist": {
     1709                "type": "zip",
     1710                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
     1711                "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
     1712                "shasum": ""
     1713            },
     1714            "require": {
     1715                "php": ">=5.6"
     1716            },
     1717            "type": "library",
     1718            "extra": {
     1719                "branch-alias": {
     1720                    "dev-master": "2.0.x-dev"
     1721                }
     1722            },
     1723            "autoload": {
     1724                "classmap": [
     1725                    "src/"
     1726                ]
     1727            },
     1728            "notification-url": "https://packagist.org/downloads/",
     1729            "license": [
     1730                "BSD-3-Clause"
     1731            ],
     1732            "authors": [
     1733                {
     1734                    "name": "Sebastian Bergmann",
     1735                    "email": "sebastian@phpunit.de",
     1736                    "role": "lead"
     1737                }
     1738            ],
     1739            "description": "Library that helps with managing the version number of Git-hosted PHP projects",
     1740            "homepage": "https://github.com/sebastianbergmann/version",
     1741            "support": {
     1742                "issues": "https://github.com/sebastianbergmann/version/issues",
     1743                "source": "https://github.com/sebastianbergmann/version/tree/master"
     1744            },
     1745            "time": "2016-10-03T07:35:21+00:00"
     1746        },
     1747        {
    2411748            "name": "squizlabs/php_codesniffer",
    2421749            "version": "3.4.0",
     
    2901797        },
    2911798        {
     1799            "name": "symfony/polyfill-ctype",
     1800            "version": "v1.23.0",
     1801            "source": {
     1802                "type": "git",
     1803                "url": "https://github.com/symfony/polyfill-ctype.git",
     1804                "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce"
     1805            },
     1806            "dist": {
     1807                "type": "zip",
     1808                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce",
     1809                "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce",
     1810                "shasum": ""
     1811            },
     1812            "require": {
     1813                "php": ">=7.1"
     1814            },
     1815            "suggest": {
     1816                "ext-ctype": "For best performance"
     1817            },
     1818            "type": "library",
     1819            "extra": {
     1820                "branch-alias": {
     1821                    "dev-main": "1.23-dev"
     1822                },
     1823                "thanks": {
     1824                    "name": "symfony/polyfill",
     1825                    "url": "https://github.com/symfony/polyfill"
     1826                }
     1827            },
     1828            "autoload": {
     1829                "psr-4": {
     1830                    "Symfony\\Polyfill\\Ctype\\": ""
     1831                },
     1832                "files": [
     1833                    "bootstrap.php"
     1834                ]
     1835            },
     1836            "notification-url": "https://packagist.org/downloads/",
     1837            "license": [
     1838                "MIT"
     1839            ],
     1840            "authors": [
     1841                {
     1842                    "name": "Gert de Pagter",
     1843                    "email": "BackEndTea@gmail.com"
     1844                },
     1845                {
     1846                    "name": "Symfony Community",
     1847                    "homepage": "https://symfony.com/contributors"
     1848                }
     1849            ],
     1850            "description": "Symfony polyfill for ctype functions",
     1851            "homepage": "https://symfony.com",
     1852            "keywords": [
     1853                "compatibility",
     1854                "ctype",
     1855                "polyfill",
     1856                "portable"
     1857            ],
     1858            "support": {
     1859                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0"
     1860            },
     1861            "funding": [
     1862                {
     1863                    "url": "https://symfony.com/sponsor",
     1864                    "type": "custom"
     1865                },
     1866                {
     1867                    "url": "https://github.com/fabpot",
     1868                    "type": "github"
     1869                },
     1870                {
     1871                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
     1872                    "type": "tidelift"
     1873                }
     1874            ],
     1875            "time": "2021-02-19T12:13:01+00:00"
     1876        },
     1877        {
     1878            "name": "theseer/tokenizer",
     1879            "version": "1.1.3",
     1880            "source": {
     1881                "type": "git",
     1882                "url": "https://github.com/theseer/tokenizer.git",
     1883                "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9"
     1884            },
     1885            "dist": {
     1886                "type": "zip",
     1887                "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
     1888                "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
     1889                "shasum": ""
     1890            },
     1891            "require": {
     1892                "ext-dom": "*",
     1893                "ext-tokenizer": "*",
     1894                "ext-xmlwriter": "*",
     1895                "php": "^7.0"
     1896            },
     1897            "type": "library",
     1898            "autoload": {
     1899                "classmap": [
     1900                    "src/"
     1901                ]
     1902            },
     1903            "notification-url": "https://packagist.org/downloads/",
     1904            "license": [
     1905                "BSD-3-Clause"
     1906            ],
     1907            "authors": [
     1908                {
     1909                    "name": "Arne Blankerts",
     1910                    "email": "arne@blankerts.de",
     1911                    "role": "Developer"
     1912                }
     1913            ],
     1914            "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
     1915            "support": {
     1916                "issues": "https://github.com/theseer/tokenizer/issues",
     1917                "source": "https://github.com/theseer/tokenizer/tree/master"
     1918            },
     1919            "time": "2019-06-13T22:48:21+00:00"
     1920        },
     1921        {
     1922            "name": "webmozart/assert",
     1923            "version": "1.9.1",
     1924            "source": {
     1925                "type": "git",
     1926                "url": "https://github.com/webmozarts/assert.git",
     1927                "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389"
     1928            },
     1929            "dist": {
     1930                "type": "zip",
     1931                "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389",
     1932                "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389",
     1933                "shasum": ""
     1934            },
     1935            "require": {
     1936                "php": "^5.3.3 || ^7.0 || ^8.0",
     1937                "symfony/polyfill-ctype": "^1.8"
     1938            },
     1939            "conflict": {
     1940                "phpstan/phpstan": "<0.12.20",
     1941                "vimeo/psalm": "<3.9.1"
     1942            },
     1943            "require-dev": {
     1944                "phpunit/phpunit": "^4.8.36 || ^7.5.13"
     1945            },
     1946            "type": "library",
     1947            "autoload": {
     1948                "psr-4": {
     1949                    "Webmozart\\Assert\\": "src/"
     1950                }
     1951            },
     1952            "notification-url": "https://packagist.org/downloads/",
     1953            "license": [
     1954                "MIT"
     1955            ],
     1956            "authors": [
     1957                {
     1958                    "name": "Bernhard Schussek",
     1959                    "email": "bschussek@gmail.com"
     1960                }
     1961            ],
     1962            "description": "Assertions to validate method input/output with nice error messages.",
     1963            "keywords": [
     1964                "assert",
     1965                "check",
     1966                "validate"
     1967            ],
     1968            "support": {
     1969                "issues": "https://github.com/webmozarts/assert/issues",
     1970                "source": "https://github.com/webmozarts/assert/tree/1.9.1"
     1971            },
     1972            "time": "2020-07-08T17:02:28+00:00"
     1973        },
     1974        {
    2921975            "name": "wp-coding-standards/wpcs",
    2931976            "version": "2.1.1",
     
    3332016            ],
    3342017            "time": "2019-05-21T02:50:00+00:00"
     2018        },
     2019        {
     2020            "name": "yoast/phpunit-polyfills",
     2021            "version": "1.0.1",
     2022            "source": {
     2023                "type": "git",
     2024                "url": "https://github.com/Yoast/PHPUnit-Polyfills.git",
     2025                "reference": "f014fb21c2b0038fd329515d59025af42fb98715"
     2026            },
     2027            "dist": {
     2028                "type": "zip",
     2029                "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/f014fb21c2b0038fd329515d59025af42fb98715",
     2030                "reference": "f014fb21c2b0038fd329515d59025af42fb98715",
     2031                "shasum": ""
     2032            },
     2033            "require": {
     2034                "php": ">=5.4",
     2035                "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
     2036            },
     2037            "require-dev": {
     2038                "php-parallel-lint/php-console-highlighter": "^0.5",
     2039                "php-parallel-lint/php-parallel-lint": "^1.3.0",
     2040                "yoast/yoastcs": "^2.1.0"
     2041            },
     2042            "type": "library",
     2043            "extra": {
     2044                "branch-alias": {
     2045                    "dev-main": "1.x-dev",
     2046                    "dev-develop": "1.x-dev"
     2047                }
     2048            },
     2049            "autoload": {
     2050                "files": [
     2051                    "phpunitpolyfills-autoload.php"
     2052                ]
     2053            },
     2054            "notification-url": "https://packagist.org/downloads/",
     2055            "license": [
     2056                "BSD-3-Clause"
     2057            ],
     2058            "authors": [
     2059                {
     2060                    "name": "Team Yoast",
     2061                    "email": "support@yoast.com",
     2062                    "homepage": "https://yoast.com"
     2063                },
     2064                {
     2065                    "name": "Contributors",
     2066                    "homepage": "https://github.com/Yoast/PHPUnit-Polyfills/graphs/contributors"
     2067                }
     2068            ],
     2069            "description": "Set of polyfills for changed PHPUnit functionality to allow for creating PHPUnit cross-version compatible tests",
     2070            "homepage": "https://github.com/Yoast/PHPUnit-Polyfills",
     2071            "keywords": [
     2072                "phpunit",
     2073                "polyfill",
     2074                "testing"
     2075            ],
     2076            "support": {
     2077                "issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues",
     2078                "source": "https://github.com/Yoast/PHPUnit-Polyfills"
     2079            },
     2080            "time": "2021-08-09T16:28:08+00:00"
    3352081        }
    3362082    ],
     
    3432089        "php": ">=5.6"
    3442090    },
    345     "platform-dev": []
     2091    "platform-dev": [],
     2092    "plugin-api-version": "2.1.0"
    3462093}
  • branches/5.4/tests/phpunit/includes/bootstrap.php

    r47328 r51844  
    5151    exit( 1 );
    5252}
     53
     54/*
     55 * Load the PHPUnit Polyfills autoloader.
     56 *
     57 * The PHPUnit Polyfills are a requirement for the WP test suite.
     58 *
     59 * For running the Core tests, the Make WordPress Core handbook contains step-by-step instructions
     60 * on how to get up and running for a variety of supported workflows:
     61 * {@link https://make.wordpress.org/core/handbook/testing/automated-testing/phpunit/#test-running-workflow-options}
     62 *
     63 * Plugin/theme integration tests can handle this in any of the following ways:
     64 * - When using a full WP install: run `composer install` for the WP install prior to running the tests.
     65 * - When using a partial WP test suite install:
     66 *   - Add a `yoast/phpunit-polyfills` (dev) requirement to the plugin/theme's own `composer.json` file.
     67 *   - And then:
     68 *     - Either load the PHPUnit Polyfills autoload file prior to running the WP core bootstrap file.
     69 *     - Or declare a `WP_TESTS_PHPUNIT_POLYFILLS_PATH` constant containing the absolute path to the
     70 *       root directory of the PHPUnit Polyfills installation.
     71 *       If the constant is used, it is strongly recommended to declare this constant in the plugin/theme's
     72 *       own test bootstrap file.
     73 *       The constant MUST be declared prior to calling this file.
     74 */
     75if ( ! class_exists( 'Yoast\PHPUnitPolyfills\Autoload' ) ) {
     76    // Default location of the autoloader for WP core test runs.
     77    $phpunit_polyfills_autoloader = dirname( dirname( dirname( __DIR__ ) ) ) . '/vendor/yoast/phpunit-polyfills/phpunitpolyfills-autoload.php';
     78    $phpunit_polyfills_error      = false;
     79
     80    // Allow for a custom installation location to be provided for plugin/theme integration tests.
     81    if ( defined( 'WP_TESTS_PHPUNIT_POLYFILLS_PATH' ) ) {
     82        $phpunit_polyfills_path = WP_TESTS_PHPUNIT_POLYFILLS_PATH;
     83
     84        if ( is_string( WP_TESTS_PHPUNIT_POLYFILLS_PATH )
     85            && '' !== WP_TESTS_PHPUNIT_POLYFILLS_PATH
     86        ) {
     87            // Be tolerant to the path being provided including the filename.
     88            if ( substr( $phpunit_polyfills_path, -29 ) !== 'phpunitpolyfills-autoload.php' ) {
     89                $phpunit_polyfills_path = rtrim( $phpunit_polyfills_path, '/\\' );
     90                $phpunit_polyfills_path = $phpunit_polyfills_path . '/phpunitpolyfills-autoload.php';
     91            }
     92
     93            $phpunit_polyfills_autoloader = $phpunit_polyfills_path;
     94        } else {
     95            $phpunit_polyfills_error = true;
     96        }
     97    }
     98
     99    if ( $phpunit_polyfills_error || ! file_exists( $phpunit_polyfills_autoloader ) ) {
     100        echo 'Error: The PHPUnit Polyfills library is a requirement for running the WP test suite.' . PHP_EOL;
     101        if ( defined( 'WP_TESTS_PHPUNIT_POLYFILLS_PATH' ) ) {
     102            printf(
     103                'The PHPUnit Polyfills autoload file was not found in "%s"' . PHP_EOL,
     104                WP_TESTS_PHPUNIT_POLYFILLS_PATH
     105            );
     106            echo 'Please verify that the file path provided in the WP_TESTS_PHPUNIT_POLYFILLS_PATH constant is correct.' . PHP_EOL;
     107            echo 'The WP_TESTS_PHPUNIT_POLYFILLS_PATH constant should contain an absolute path to the root directory'
     108                . ' of the PHPUnit Polyfills library.' . PHP_EOL;
     109        } elseif ( defined( 'WP_RUN_CORE_TESTS' ) && WP_RUN_CORE_TESTS ) {
     110            echo 'You need to run `composer install` before running the tests.' . PHP_EOL;
     111            echo 'Once the dependencies are installed, you can run the tests using the Composer-installed version'
     112                . ' of PHPUnit or using a PHPUnit phar file, but the dependencies do need to be installed'
     113                . ' whichever way the tests are run.' . PHP_EOL;
     114        } else {
     115            echo 'If you are trying to run plugin/theme integration tests, make sure the PHPUnit Polyfills library'
     116                . ' (https://github.com/Yoast/PHPUnit-Polyfills) is available and either load the autoload file'
     117                . ' of this library in your own test bootstrap before calling the WP Core test bootstrap file;'
     118                . ' or set the absolute path to the PHPUnit Polyfills library in a "WP_TESTS_PHPUNIT_POLYFILLS_PATH"'
     119                . ' constant to allow the WP Core bootstrap to load the Polyfills.' . PHP_EOL . PHP_EOL;
     120            echo 'If you are trying to run the WP Core tests, make sure to set the "WP_RUN_CORE_TESTS" constant'
     121                . ' to 1 and run `composer install` before running the tests.' . PHP_EOL;
     122            echo 'Once the dependencies are installed, you can run the tests using the Composer-installed'
     123                . ' version of PHPUnit or using a PHPUnit phar file, but the dependencies do need to be'
     124                . ' installed whichever way the tests are run.' . PHP_EOL;
     125        }
     126        exit( 1 );
     127    }
     128
     129    require_once $phpunit_polyfills_autoloader;
     130}
     131unset( $phpunit_polyfills_autoloader, $phpunit_polyfills_error, $phpunit_polyfills_path );
     132
     133/*
     134 * Minimum version of the PHPUnit Polyfills package as declared in `composer.json`.
     135 * Only needs updating when new polyfill features start being used in the test suite.
     136 */
     137$phpunit_polyfills_minimum_version = '1.0.1';
     138if ( class_exists( '\Yoast\PHPUnitPolyfills\Autoload' )
     139    && ( defined( '\Yoast\PHPUnitPolyfills\Autoload::VERSION' ) === false
     140        || version_compare( Yoast\PHPUnitPolyfills\Autoload::VERSION, $phpunit_polyfills_minimum_version, '<' ) )
     141) {
     142    printf(
     143        'Error: Version mismatch detected for the PHPUnit Polyfills.'
     144        . ' Please ensure that PHPUnit Polyfills %s or higher is loaded. Found version: %s' . PHP_EOL,
     145        $phpunit_polyfills_minimum_version,
     146        defined( '\Yoast\PHPUnitPolyfills\Autoload::VERSION' ) ? Yoast\PHPUnitPolyfills\Autoload::VERSION : '1.0.0 or lower'
     147    );
     148    if ( defined( 'WP_TESTS_PHPUNIT_POLYFILLS_PATH' ) ) {
     149        printf(
     150            'Please ensure that the PHPUnit Polyfill installation in "%s" is updated to version %s or higher.' . PHP_EOL,
     151            WP_TESTS_PHPUNIT_POLYFILLS_PATH,
     152            $phpunit_polyfills_minimum_version
     153        );
     154    } elseif ( defined( 'WP_RUN_CORE_TESTS' ) && WP_RUN_CORE_TESTS ) {
     155        echo 'Please run `composer install` to install the latest version.' . PHP_EOL;
     156    }
     157    exit( 1 );
     158}
     159unset( $phpunit_polyfills_minimum_version );
    53160
    54161tests_reset__SERVER();
  • branches/5.4/tests/phpunit/includes/phpunit7/testcase.php

    r47198 r51844  
    11<?php
     2
     3use Yoast\PHPUnitPolyfills\Helpers\AssertAttributeHelper;
     4use Yoast\PHPUnitPolyfills\Polyfills\AssertClosedResource;
     5use Yoast\PHPUnitPolyfills\Polyfills\AssertEqualsSpecializations;
     6use Yoast\PHPUnitPolyfills\Polyfills\AssertFileDirectory;
     7use Yoast\PHPUnitPolyfills\Polyfills\AssertFileEqualsSpecializations;
     8use Yoast\PHPUnitPolyfills\Polyfills\AssertionRenames;
     9use Yoast\PHPUnitPolyfills\Polyfills\AssertIsType;
     10use Yoast\PHPUnitPolyfills\Polyfills\AssertNumericType;
     11use Yoast\PHPUnitPolyfills\Polyfills\AssertObjectEquals;
     12use Yoast\PHPUnitPolyfills\Polyfills\AssertStringContains;
     13use Yoast\PHPUnitPolyfills\Polyfills\EqualToSpecializations;
     14use Yoast\PHPUnitPolyfills\Polyfills\ExpectException;
     15use Yoast\PHPUnitPolyfills\Polyfills\ExpectExceptionMessageMatches;
     16use Yoast\PHPUnitPolyfills\Polyfills\ExpectExceptionObject;
     17use Yoast\PHPUnitPolyfills\Polyfills\ExpectPHPException;
    218
    319require_once dirname( __DIR__ ) . '/abstract-testcase.php';
     
    1430class WP_UnitTestCase extends WP_UnitTestCase_Base {
    1531
     32    use AssertAttributeHelper;
     33    use AssertClosedResource;
     34    use AssertEqualsSpecializations;
     35    use AssertFileDirectory;
     36    use AssertFileEqualsSpecializations;
     37    use AssertionRenames;
     38    use AssertIsType;
     39    use AssertNumericType;
     40    use AssertObjectEquals;
     41    use AssertStringContains;
     42    use EqualToSpecializations;
     43    use ExpectException;
     44    use ExpectExceptionMessageMatches;
     45    use ExpectExceptionObject;
     46    use ExpectPHPException;
     47
    1648    /**
    17      * Asserts that a condition is not false.
    18      *
    19      * This method has been backported from a more recent PHPUnit version, as tests running on PHP 5.2 use
    20      * PHPUnit 3.6.x.
    21      *
    22      * @since 4.7.4
    23      *
    24      * @param bool   $condition Condition to check.
    25      * @param string $message   Optional. Message to display when the assertion fails.
    26      *
    27      * @throws PHPUnit_Framework_AssertionFailedError
     49     * Wrapper method for the `setUpBeforeClass()` method for forward-compatibility with WP 5.9.
    2850     */
    29     public static function assertNotFalse( $condition, string $message = '' ): void {
    30         self::assertThat( $condition, self::logicalNot( self::isFalse() ), $message );
     51    public static function set_up_before_class() {
     52        static::setUpBeforeClass();
     53    }
     54
     55    /**
     56     * Wrapper method for the `tearDownAfterClass()` method for forward-compatibility with WP 5.9.
     57     */
     58    public static function tear_down_after_class() {
     59        static::tearDownAfterClass();
     60    }
     61
     62    /**
     63     * Wrapper method for the `setUp()` method for forward-compatibility with WP 5.9.
     64     */
     65    public function set_up() {
     66        static::setUp();
     67    }
     68
     69    /**
     70     * Wrapper method for the `tearDown()` method for forward-compatibility with WP 5.9.
     71     */
     72    public function tear_down() {
     73        static::tearDown();
    3174    }
    3275}
  • branches/5.4/tests/phpunit/includes/testcase.php

    r47198 r51844  
    11<?php
     2
     3use Yoast\PHPUnitPolyfills\Helpers\AssertAttributeHelper;
     4use Yoast\PHPUnitPolyfills\Polyfills\AssertClosedResource;
     5use Yoast\PHPUnitPolyfills\Polyfills\AssertEqualsSpecializations;
     6use Yoast\PHPUnitPolyfills\Polyfills\AssertFileDirectory;
     7use Yoast\PHPUnitPolyfills\Polyfills\AssertFileEqualsSpecializations;
     8use Yoast\PHPUnitPolyfills\Polyfills\AssertionRenames;
     9use Yoast\PHPUnitPolyfills\Polyfills\AssertIsType;
     10use Yoast\PHPUnitPolyfills\Polyfills\AssertNumericType;
     11use Yoast\PHPUnitPolyfills\Polyfills\AssertObjectEquals;
     12use Yoast\PHPUnitPolyfills\Polyfills\AssertStringContains;
     13use Yoast\PHPUnitPolyfills\Polyfills\EqualToSpecializations;
     14use Yoast\PHPUnitPolyfills\Polyfills\ExpectException;
     15use Yoast\PHPUnitPolyfills\Polyfills\ExpectExceptionMessageMatches;
     16use Yoast\PHPUnitPolyfills\Polyfills\ExpectExceptionObject;
     17use Yoast\PHPUnitPolyfills\Polyfills\ExpectPHPException;
    218
    319require_once __DIR__ . '/abstract-testcase.php';
     
    1430class WP_UnitTestCase extends WP_UnitTestCase_Base {
    1531
     32    use AssertAttributeHelper;
     33    use AssertClosedResource;
     34    use AssertEqualsSpecializations;
     35    use AssertFileDirectory;
     36    use AssertFileEqualsSpecializations;
     37    use AssertionRenames;
     38    use AssertIsType;
     39    use AssertNumericType;
     40    use AssertObjectEquals;
     41    use AssertStringContains;
     42    use EqualToSpecializations;
     43    use ExpectException;
     44    use ExpectExceptionMessageMatches;
     45    use ExpectExceptionObject;
     46    use ExpectPHPException;
     47
    1648    /**
    17      * Asserts that a condition is not false.
    18      *
    19      * This method has been backported from a more recent PHPUnit version, as tests running on PHP 5.2 use
    20      * PHPUnit 3.6.x.
    21      *
    22      * @since 4.7.4
    23      *
    24      * @param bool   $condition Condition to check.
    25      * @param string $message   Optional. Message to display when the assertion fails.
    26      *
    27      * @throws PHPUnit_Framework_AssertionFailedError
     49     * Wrapper method for the `setUpBeforeClass()` method for forward-compatibility with WP 5.9.
    2850     */
    29     public static function assertNotFalse( $condition, $message = '' ) {
    30         self::assertThat( $condition, self::logicalNot( self::isFalse() ), $message );
     51    public static function set_up_before_class() {
     52        static::setUpBeforeClass();
     53    }
     54
     55    /**
     56     * Wrapper method for the `tearDownAfterClass()` method for forward-compatibility with WP 5.9.
     57     */
     58    public static function tear_down_after_class() {
     59        static::tearDownAfterClass();
     60    }
     61
     62    /**
     63     * Wrapper method for the `setUp()` method for forward-compatibility with WP 5.9.
     64     */
     65    public function set_up() {
     66        static::setUp();
     67    }
     68
     69    /**
     70     * Wrapper method for the `tearDown()` method for forward-compatibility with WP 5.9.
     71     */
     72    public function tear_down() {
     73        static::tearDown();
    3174    }
    3275}
Note: See TracChangeset for help on using the changeset viewer.