From 9a6218d9cb87871f750b6e8bb5bb43ab9b33ee09 Mon Sep 17 00:00:00 2001 From: Ji Lu Date: Tue, 2 Feb 2021 13:55:12 -0600 Subject: [PATCH 01/10] MQE-2487: PHPUnit 9 upgrade in MFTF 2.x --- .github/workflows/main.yml | 12 +- composer.json | 29 +- composer.lock | 2066 +++++++++-------- dev/tests/phpunit.xml | 2 +- .../Allure/AllureHelperTest.php | 2 +- .../Composer/ComposerInstallTest.php | 2 +- .../Composer/ComposerPackageTest.php | 2 +- .../Config/Reader/FilesystemTest.php | 4 +- .../Console/BaseGenerateCommandTest.php | 2 +- .../Handlers/PersistedObjectHandlerTest.php | 6 +- .../Objects/EntityDataObjectTest.php | 4 +- .../OperationDataArrayResolverTest.php | 4 +- .../Util/DataExtensionUtilTest.php | 2 +- .../Page/Objects/ElementObjectTest.php | 4 +- .../Suite/Handlers/SuiteObjectHandlerTest.php | 2 +- .../Suite/SuiteGeneratorTest.php | 10 +- .../Test/Config/ActionGroupDomTest.php | 2 +- .../Test/Config/DomTest.php | 4 +- .../Test/Handlers/TestObjectHandlerTest.php | 2 +- .../Test/Objects/ActionGroupObjectTest.php | 8 +- .../Test/Objects/ActionObjectTest.php | 4 +- .../ActionGroupAnnotationExtractorTest.php | 4 +- .../Util/ActionGroupObjectExtractorTest.php | 4 +- .../Test/Util/ActionMergeUtilTest.php | 4 +- .../Test/Util/ActionObjectExtractorTest.php | 4 +- .../Test/Util/AnnotationExtractorTest.php | 4 +- .../Test/Util/ObjectExtensionUtilTest.php | 4 +- .../Util/ModuleResolverTest.php | 7 +- .../Util/TestGeneratorTest.php | 12 +- dev/tests/unit/Util/MagentoTestCase.php | 4 +- .../Tests/SchemaValidationTest.php | 2 +- .../Tests/SuiteGenerationTest.php | 8 +- .../Module/MagentoWebDriver.php | 29 +- 33 files changed, 1258 insertions(+), 1001 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index eaa72e8c5..ab768ddc5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - php-versions: ['7.1', '7.2', '7.3'] + php-versions: ['7.3'] steps: - uses: actions/checkout@v2 @@ -53,7 +53,7 @@ jobs: strategy: fail-fast: false matrix: - php-versions: ['7.1', '7.2', '7.3'] + php-versions: ['7.3'] steps: - uses: actions/checkout@v2 @@ -85,7 +85,7 @@ jobs: strategy: fail-fast: false matrix: - php-versions: ['7.1', '7.2', '7.3'] + php-versions: ['7.3'] steps: - uses: actions/checkout@v2 @@ -94,8 +94,6 @@ jobs: with: php-version: ${{ matrix.php-versions }} extensions: curl, dom, intl, json, openssl - coverage: none - if: ${{ matrix.php-versions >= 7.2 }} - name: Cache Composer packages id: composer-cache @@ -119,7 +117,7 @@ jobs: strategy: fail-fast: false matrix: - php-versions: ['7.1', '7.2', '7.3'] + php-versions: ['7.3'] services: chrome: @@ -150,3 +148,5 @@ jobs: - name: Run tests run: bin/functional + + diff --git a/composer.json b/composer.json index 71f9e56b2..3d72bcb42 100755 --- a/composer.json +++ b/composer.json @@ -9,14 +9,17 @@ "sort-packages": true }, "require": { - "php": "~7.1.0||~7.2.0||~7.3.0", + "php": "~7.3.0", "ext-curl": "*", "ext-dom": "*", "ext-json": "*", "ext-openssl": "*", - "allure-framework/allure-codeception": "~1.3.0", + "allure-framework/allure-codeception": "~1.4.0", "aws/aws-sdk-php": "^3.132", - "codeception/codeception": "~2.4.5", + "codeception/codeception": "~4.1.4", + "codeception/module-asserts": "^1.1", + "codeception/module-sequence": "^1.0", + "codeception/module-webdriver": "^1.0", "composer/composer": "^1.6", "csharpru/vault-php": "~3.5.3", "csharpru/vault-php-guzzle6-transport": "^2.0", @@ -26,24 +29,24 @@ "mustache/mustache": "~2.5", "php-webdriver/webdriver": "^1.8.0", "symfony/console": "^4.4", - "symfony/finder": "^4.4", - "symfony/http-foundation": "^4.4", - "symfony/mime": "^4.4", + "symfony/finder": "^4.4||^5.0", + "symfony/http-foundation": "^4.4||^5.0", + "symfony/mime": "^4.4||^5.0", "symfony/process": "^4.4", "vlucas/phpdotenv": "^2.4" }, "require-dev": { - "squizlabs/php_codesniffer": "~3.2", - "sebastian/phpcpd": "~3.0 || ~4.0", "brainmaestro/composer-git-hooks": "^2.3.1", - "doctrine/cache": "<1.7.0", - "codeception/aspect-mock": "^3.0", - "goaop/framework": "2.2.0", "codacy/coverage": "^1.4", + "codeception/aspect-mock": "^3.0", + "doctrine/cache": "<1.7.0", + "goaop/framework": "~2.3.4", + "php-coveralls/php-coveralls": "^1.0", "phpmd/phpmd": "^2.6.0", - "phpunit/phpunit": "~6.5.0 || ~7.0.0", + "phpunit/phpunit": "^9.0", "rregeer/phpunit-coverage-check": "^0.1.4", - "php-coveralls/php-coveralls": "^1.0", + "sebastian/phpcpd": "~6.0.0", + "squizlabs/php_codesniffer": "~3.5.4", "symfony/stopwatch": "~3.4.6" }, "suggest": { diff --git a/composer.lock b/composer.lock index e6b4ce940..f68427e19 100644 --- a/composer.lock +++ b/composer.lock @@ -4,26 +4,26 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "0b45f63b7323275eebe229b595638d6a", + "content-hash": "16231ee8eb05c3ec6b54ac51fe72ecec", "packages": [ { "name": "allure-framework/allure-codeception", - "version": "1.3.0", + "version": "1.4.5", "source": { "type": "git", "url": "https://github.com/allure-framework/allure-codeception.git", - "reference": "9d31d781b3622b028f1f6210bc76ba88438bd518" + "reference": "ac3d471902d2903856bbd0a95e7546788319ed22" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/allure-framework/allure-codeception/zipball/9d31d781b3622b028f1f6210bc76ba88438bd518", - "reference": "9d31d781b3622b028f1f6210bc76ba88438bd518", + "url": "https://api.github.com/repos/allure-framework/allure-codeception/zipball/ac3d471902d2903856bbd0a95e7546788319ed22", + "reference": "ac3d471902d2903856bbd0a95e7546788319ed22", "shasum": "" }, "require": { - "allure-framework/allure-php-api": "~1.1.0", - "codeception/codeception": "~2.1", - "php": ">=5.4.0", + "allure-framework/allure-php-api": "~1.2.1", + "codeception/codeception": "^2.3|^3.0|^4.0", + "php": ">=5.6", "symfony/filesystem": ">=2.6", "symfony/finder": ">=2.6" }, @@ -55,26 +55,26 @@ "steps", "testing" ], - "time": "2018-12-18T19:47:23+00:00" + "time": "2020-11-26T11:41:53+00:00" }, { "name": "allure-framework/allure-php-api", - "version": "1.1.8", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/allure-framework/allure-php-commons.git", - "reference": "5ae2deac1c7e1b992cfa572167370de45bdd346d" + "reference": "13ef45d83ce4f5ef70499ff87ed0c3d1c192ab80" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/allure-framework/allure-php-commons/zipball/5ae2deac1c7e1b992cfa572167370de45bdd346d", - "reference": "5ae2deac1c7e1b992cfa572167370de45bdd346d", + "url": "https://api.github.com/repos/allure-framework/allure-php-commons/zipball/13ef45d83ce4f5ef70499ff87ed0c3d1c192ab80", + "reference": "13ef45d83ce4f5ef70499ff87ed0c3d1c192ab80", "shasum": "" }, "require": { "jms/serializer": "^0.16 || ^1.0", "php": ">=5.4.0", - "ramsey/uuid": "^3.0", + "ramsey/uuid": "^3.0 || ^4.0", "symfony/http-foundation": "^2.0 || ^3.0 || ^4.0 || ^5.0" }, "require-dev": { @@ -108,7 +108,7 @@ "php", "report" ], - "time": "2020-03-13T10:47:35+00:00" + "time": "2020-11-26T09:20:44+00:00" }, { "name": "aws/aws-sdk-php", @@ -196,23 +196,23 @@ }, { "name": "behat/gherkin", - "version": "v4.6.2", + "version": "v4.7.1", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", - "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31" + "reference": "987bcdc3d29ba433e6bd4b1db4ae59737ba3dacd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/51ac4500c4dc30cbaaabcd2f25694299df666a31", - "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/987bcdc3d29ba433e6bd4b1db4ae59737ba3dacd", + "reference": "987bcdc3d29ba433e6bd4b1db4ae59737ba3dacd", "shasum": "" }, "require": { - "php": ">=5.3.1" + "php": ">=5.6" }, "require-dev": { - "phpunit/phpunit": "~4.5|~5", + "phpunit/phpunit": "~5.7|~6|~7", "symfony/phpunit-bridge": "~2.7|~3|~4", "symfony/yaml": "~2.3|~3|~4" }, @@ -241,7 +241,7 @@ "homepage": "http://everzet.com" } ], - "description": "Gherkin DSL parser for PHP 5.3", + "description": "Gherkin DSL parser for PHP", "homepage": "http://behat.org/", "keywords": [ "BDD", @@ -251,7 +251,53 @@ "gherkin", "parser" ], - "time": "2020-03-17T14:03:26+00:00" + "time": "2021-01-26T16:24:32+00:00" + }, + { + "name": "brick/math", + "version": "0.9.2", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", + "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0", + "vimeo/psalm": "4.3.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "brick", + "math" + ], + "time": "2021-01-20T22:51:39+00:00" }, { "name": "cache/cache", @@ -348,57 +394,51 @@ }, { "name": "codeception/codeception", - "version": "2.4.5", + "version": "4.1.17", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "5fee32d5c82791548931cbc34806b4de6aa1abfc" + "reference": "c153b1ab289b3e3109e685379aa8847c54ac2b68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/5fee32d5c82791548931cbc34806b4de6aa1abfc", - "reference": "5fee32d5c82791548931cbc34806b4de6aa1abfc", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/c153b1ab289b3e3109e685379aa8847c54ac2b68", + "reference": "c153b1ab289b3e3109e685379aa8847c54ac2b68", "shasum": "" }, "require": { "behat/gherkin": "^4.4.0", - "codeception/phpunit-wrapper": "^6.0.9|^7.0.6", - "codeception/stub": "^2.0", + "codeception/lib-asserts": "^1.0", + "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.1.1 | ^9.0", + "codeception/stub": "^2.0 | ^3.0", + "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", - "facebook/webdriver": ">=1.1.3 <2.0", - "guzzlehttp/guzzle": ">=4.1.4 <7.0", - "guzzlehttp/psr7": "~1.0", - "php": ">=5.6.0 <8.0", - "symfony/browser-kit": ">=2.7 <5.0", - "symfony/console": ">=2.7 <5.0", - "symfony/css-selector": ">=2.7 <5.0", - "symfony/dom-crawler": ">=2.7 <5.0", - "symfony/event-dispatcher": ">=2.7 <5.0", - "symfony/finder": ">=2.7 <5.0", - "symfony/yaml": ">=2.7 <5.0" + "guzzlehttp/psr7": "~1.4", + "php": ">=5.6.0 <9.0", + "symfony/console": ">=2.7 <6.0", + "symfony/css-selector": ">=2.7 <6.0", + "symfony/event-dispatcher": ">=2.7 <6.0", + "symfony/finder": ">=2.7 <6.0", + "symfony/yaml": ">=2.7 <6.0" }, "require-dev": { + "codeception/module-asserts": "*@dev", + "codeception/module-cli": "*@dev", + "codeception/module-db": "*@dev", + "codeception/module-filesystem": "*@dev", + "codeception/module-phpbrowser": "*@dev", "codeception/specify": "~0.3", - "facebook/graph-sdk": "~5.3", - "flow/jsonpath": "~0.2", + "codeception/util-universalframework": "*@dev", "monolog/monolog": "~1.8", - "pda/pheanstalk": "~3.0", - "php-amqplib/php-amqplib": "~2.4", - "predis/predis": "^1.0", "squizlabs/php_codesniffer": "~2.0", - "symfony/process": ">=2.7 <5.0", - "vlucas/phpdotenv": "^2.4.0" + "symfony/process": ">=2.7 <6.0", + "vlucas/phpdotenv": "^2.0 | ^3.0 | ^4.0 | ^5.0" }, "suggest": { - "aws/aws-sdk-php": "For using AWS Auth in REST module and Queue module", - "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests", "codeception/specify": "BDD-style code blocks", "codeception/verify": "BDD-style assertions", - "flow/jsonpath": "For using JSONPath in REST module", - "league/factory-muffin": "For DataFactory module", - "league/factory-muffin-faker": "For Faker support in DataFactory module", - "phpseclib/phpseclib": "for SFTP option in FTP Module", + "hoa/console": "For interactive console functionality", "stecman/symfony-console-completion": "For BASH autocompletion", "symfony/phpunit-bridge": "For phpunit-bridge support" }, @@ -411,7 +451,7 @@ }, "autoload": { "psr-4": { - "Codeception\\": "src\\Codeception", + "Codeception\\": "src/Codeception", "Codeception\\Extension\\": "ext" } }, @@ -435,36 +475,230 @@ "functional testing", "unit testing" ], - "time": "2018-08-01T07:21:49+00:00" + "time": "2021-02-01T07:30:47+00:00" + }, + { + "name": "codeception/lib-asserts", + "version": "1.13.2", + "source": { + "type": "git", + "url": "https://github.com/Codeception/lib-asserts.git", + "reference": "184231d5eab66bc69afd6b9429344d80c67a33b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/184231d5eab66bc69afd6b9429344d80c67a33b6", + "reference": "184231d5eab66bc69afd6b9429344d80c67a33b6", + "shasum": "" + }, + "require": { + "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.0.3 | ^9.0", + "ext-dom": "*", + "php": ">=5.6.0 <9.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Bodnarchuk", + "email": "davert@mail.ua", + "homepage": "http://codegyre.com" + }, + { + "name": "Gintautas Miselis" + }, + { + "name": "Gustavo Nieves", + "homepage": "https://medium.com/@ganieves" + } + ], + "description": "Assertion methods used by Codeception core and Asserts module", + "homepage": "https://codeception.com/", + "keywords": [ + "codeception" + ], + "time": "2020-10-21T16:26:20+00:00" + }, + { + "name": "codeception/module-asserts", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/Codeception/module-asserts.git", + "reference": "59374f2fef0cabb9e8ddb53277e85cdca74328de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Codeception/module-asserts/zipball/59374f2fef0cabb9e8ddb53277e85cdca74328de", + "reference": "59374f2fef0cabb9e8ddb53277e85cdca74328de", + "shasum": "" + }, + "require": { + "codeception/codeception": "*@dev", + "codeception/lib-asserts": "^1.13.1", + "php": ">=5.6.0 <9.0" + }, + "conflict": { + "codeception/codeception": "<4.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Bodnarchuk" + }, + { + "name": "Gintautas Miselis" + }, + { + "name": "Gustavo Nieves", + "homepage": "https://medium.com/@ganieves" + } + ], + "description": "Codeception module containing various assertions", + "homepage": "https://codeception.com/", + "keywords": [ + "assertions", + "asserts", + "codeception" + ], + "time": "2020-10-21T16:48:15+00:00" + }, + { + "name": "codeception/module-sequence", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/Codeception/module-sequence.git", + "reference": "b75be26681ae90824cde8f8df785981f293667e1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Codeception/module-sequence/zipball/b75be26681ae90824cde8f8df785981f293667e1", + "reference": "b75be26681ae90824cde8f8df785981f293667e1", + "shasum": "" + }, + "require": { + "codeception/codeception": "^4.0", + "php": ">=5.6.0 <9.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Bodnarchuk" + } + ], + "description": "Sequence module for Codeception", + "homepage": "http://codeception.com/", + "keywords": [ + "codeception" + ], + "time": "2020-10-31T18:36:26+00:00" + }, + { + "name": "codeception/module-webdriver", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/Codeception/module-webdriver.git", + "reference": "63ea08880a44df809bdfbca08597e1b68cee9f87" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Codeception/module-webdriver/zipball/63ea08880a44df809bdfbca08597e1b68cee9f87", + "reference": "63ea08880a44df809bdfbca08597e1b68cee9f87", + "shasum": "" + }, + "require": { + "codeception/codeception": "^4.0", + "php": ">=5.6.0 <9.0", + "php-webdriver/webdriver": "^1.8.0" + }, + "suggest": { + "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Bodnarchuk" + }, + { + "name": "Gintautas Miselis" + }, + { + "name": "Zaahid Bateson" + } + ], + "description": "WebDriver module for Codeception", + "homepage": "http://codeception.com/", + "keywords": [ + "acceptance-testing", + "browser-testing", + "codeception" + ], + "time": "2021-01-17T19:23:20+00:00" }, { "name": "codeception/phpunit-wrapper", - "version": "7.0.6", + "version": "9.0.6", "source": { "type": "git", "url": "https://github.com/Codeception/phpunit-wrapper.git", - "reference": "e8528cb777cf5a5ccea1cf57a3522b142625d1b5" + "reference": "b0c06abb3181eedca690170f7ed0fd26a70bfacc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/e8528cb777cf5a5ccea1cf57a3522b142625d1b5", - "reference": "e8528cb777cf5a5ccea1cf57a3522b142625d1b5", + "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/b0c06abb3181eedca690170f7ed0fd26a70bfacc", + "reference": "b0c06abb3181eedca690170f7ed0fd26a70bfacc", "shasum": "" }, "require": { - "phpunit/php-code-coverage": "^6.0", - "phpunit/phpunit": "^7.0", - "sebastian/comparator": "^2.0", - "sebastian/diff": "^3.0" + "php": ">=7.2", + "phpunit/phpunit": "^9.0" }, "require-dev": { "codeception/specify": "*", - "vlucas/phpdotenv": "^2.4" + "consolidation/robo": "^3.0.0-alpha3", + "vlucas/phpdotenv": "^3.0" }, "type": "library", "autoload": { "psr-4": { - "Codeception\\PHPUnit\\": "src\\" + "Codeception\\PHPUnit\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -475,27 +709,30 @@ { "name": "Davert", "email": "davert.php@resend.cc" + }, + { + "name": "Naktibalda" } ], "description": "PHPUnit classes used by Codeception", - "time": "2018-03-31T18:49:51+00:00" + "time": "2020-12-28T13:59:47+00:00" }, { "name": "codeception/stub", - "version": "2.0.4", + "version": "3.7.0", "source": { "type": "git", "url": "https://github.com/Codeception/Stub.git", - "reference": "f50bc271f392a2836ff80690ce0c058efe1ae03e" + "reference": "468dd5fe659f131fc997f5196aad87512f9b1304" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Stub/zipball/f50bc271f392a2836ff80690ce0c058efe1ae03e", - "reference": "f50bc271f392a2836ff80690ce0c058efe1ae03e", + "url": "https://api.github.com/repos/Codeception/Stub/zipball/468dd5fe659f131fc997f5196aad87512f9b1304", + "reference": "468dd5fe659f131fc997f5196aad87512f9b1304", "shasum": "" }, "require": { - "phpunit/phpunit": ">=4.8 <8.0" + "phpunit/phpunit": "^8.4 | ^9.0" }, "type": "library", "autoload": { @@ -508,7 +745,7 @@ "MIT" ], "description": "Flexible Stub wrapper for PHPUnit's Mock Builder", - "time": "2018-07-26T11:55:37+00:00" + "time": "2020-07-03T15:54:43+00:00" }, { "name": "composer/ca-bundle", @@ -809,12 +1046,6 @@ "Xdebug", "performance" ], - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - } - ], "time": "2020-03-01T12:26:26+00:00" }, { @@ -905,30 +1136,33 @@ }, { "name": "doctrine/annotations", - "version": "v1.8.0", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc" + "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/904dca4eb10715b92569fbcd79e201d5c349b6bc", - "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/ce77a7ba1770462cd705a91a151b6c3746f9c6ad", + "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad", "shasum": "" }, "require": { "doctrine/lexer": "1.*", - "php": "^7.1" + "ext-tokenizer": "*", + "php": "^7.1 || ^8.0" }, "require-dev": { "doctrine/cache": "1.*", - "phpunit/phpunit": "^7.5" + "doctrine/coding-standard": "^6.0 || ^8.1", + "phpstan/phpstan": "^0.12.20", + "phpunit/phpunit": "^7.5 || ^9.1.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7.x-dev" + "dev-master": "1.11.x-dev" } }, "autoload": { @@ -963,13 +1197,13 @@ } ], "description": "Docblock Annotations Parser", - "homepage": "http://www.doctrine-project.org", + "homepage": "https://www.doctrine-project.org/projects/annotations.html", "keywords": [ "annotations", "docblock", "parser" ], - "time": "2019-10-01T18:55:10+00:00" + "time": "2020-10-26T10:28:16+00:00" }, { "name": "doctrine/cache", @@ -1110,36 +1344,31 @@ }, { "name": "doctrine/instantiator", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", + "doctrine/coding-standard": "^8.0", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" + "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" @@ -1153,7 +1382,7 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "homepage": "https://ocramius.github.io/" } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", @@ -1162,32 +1391,34 @@ "constructor", "instantiate" ], - "time": "2019-10-21T16:45:58+00:00" + "time": "2020-11-10T18:47:58+00:00" }, { "name": "doctrine/lexer", - "version": "1.0.2", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8" + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8", - "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.2 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.5" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -1200,14 +1431,14 @@ "MIT" ], "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" @@ -1222,7 +1453,7 @@ "parser", "php" ], - "time": "2019-06-08T11:03:04+00:00" + "time": "2020-05-25T17:44:05+00:00" }, { "name": "flow/jsonpath", @@ -1319,23 +1550,24 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.5.2", + "version": "6.5.3", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "43ece0e75098b7ecd8d13918293029e555a50f82" + "reference": "aab4ebd862aa7d04f01a4b51849d657db56d882e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/43ece0e75098b7ecd8d13918293029e555a50f82", - "reference": "43ece0e75098b7ecd8d13918293029e555a50f82", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/aab4ebd862aa7d04f01a4b51849d657db56d882e", + "reference": "aab4ebd862aa7d04f01a4b51849d657db56d882e", "shasum": "" }, "require": { "ext-json": "*", "guzzlehttp/promises": "^1.0", "guzzlehttp/psr7": "^1.6.1", - "php": ">=5.5" + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.11" }, "require-dev": { "ext-curl": "*", @@ -1343,7 +1575,6 @@ "psr/log": "^1.1" }, "suggest": { - "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, "type": "library", @@ -1382,27 +1613,27 @@ "rest", "web service" ], - "time": "2019-12-23T11:57:10+00:00" + "time": "2020-04-18T10:38:46+00:00" }, { "name": "guzzlehttp/promises", - "version": "v1.3.1", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + "reference": "60d379c243457e073cff02bc323a2a86cb355631" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631", + "reference": "60d379c243457e073cff02bc323a2a86cb355631", "shasum": "" }, "require": { - "php": ">=5.5.0" + "php": ">=5.5" }, "require-dev": { - "phpunit/phpunit": "^4.0" + "symfony/phpunit-bridge": "^4.4 || ^5.1" }, "type": "library", "extra": { @@ -1433,20 +1664,20 @@ "keywords": [ "promise" ], - "time": "2016-12-20T10:07:11+00:00" + "time": "2020-09-30T07:37:28+00:00" }, { "name": "guzzlehttp/psr7", - "version": "1.6.1", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a" + "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", + "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", "shasum": "" }, "require": { @@ -1459,15 +1690,15 @@ }, "require-dev": { "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" }, "suggest": { - "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6-dev" + "dev-master": "1.7-dev" } }, "autoload": { @@ -1504,7 +1735,7 @@ "uri", "url" ], - "time": "2019-07-01T23:21:34+00:00" + "time": "2020-09-30T07:37:11+00:00" }, { "name": "jms/metadata", @@ -2013,20 +2244,20 @@ }, { "name": "myclabs/deep-copy", - "version": "1.9.5", + "version": "1.10.2", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", - "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "replace": { "myclabs/deep-copy": "self.version" @@ -2057,71 +2288,26 @@ "object", "object graph" ], - "time": "2020-01-17T21:11:47+00:00" - }, - { - "name": "paragonie/random_compat", - "version": "v9.99.99", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "shasum": "" - }, - "require": { - "php": "^7" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*", - "vimeo/psalm": "^1" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ], - "time": "2018-07-02T15:55:56+00:00" + "time": "2020-11-13T09:40:50+00:00" }, { "name": "phar-io/manifest", - "version": "1.0.1", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", "shasum": "" }, "require": { "ext-dom": "*", "ext-phar": "*", - "phar-io/version": "^1.0.1", + "phar-io/version": "^2.0", "php": "^5.6 || ^7.0" }, "type": "library", @@ -2157,20 +2343,20 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2017-03-05T18:14:27+00:00" + "time": "2018-07-08T19:23:20+00:00" }, { "name": "phar-io/version", - "version": "1.0.1", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", + "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", "shasum": "" }, "require": { @@ -2204,7 +2390,7 @@ } ], "description": "Library for handling version information and constraints", - "time": "2017-03-05T17:38:23+00:00" + "time": "2018-07-08T19:19:57+00:00" }, { "name": "php-webdriver/webdriver", @@ -2321,28 +2507,25 @@ }, { "name": "phpdocumentor/reflection-common", - "version": "2.0.0", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", "shasum": "" }, "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "~6" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-2.x": "2.x-dev" } }, "autoload": { @@ -2369,45 +2552,41 @@ "reflection", "static analysis" ], - "time": "2018-08-07T13:53:10+00:00" + "time": "2020-06-27T09:03:43+00:00" }, { "name": "phpdocumentor/reflection-docblock", - "version": "4.3.4", + "version": "5.2.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c" + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/da3fd972d6bafd628114f7e7e036f45944b62e9c", - "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", "shasum": "" }, "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", - "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", - "webmozart/assert": "^1.0" + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" }, "require-dev": { - "doctrine/instantiator": "^1.0.5", - "mockery/mockery": "^1.0", - "phpdocumentor/type-resolver": "0.4.*", - "phpunit/phpunit": "^6.4" + "mockery/mockery": "~1.3.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev" + "dev-master": "5.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2418,38 +2597,40 @@ { "name": "Mike van Riel", "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2019-12-28T18:55:12+00:00" + "time": "2020-09-03T19:13:55+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.0.1", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", "shasum": "" }, "require": { - "php": "^7.1", + "php": "^7.2 || ^8.0", "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "ext-tokenizer": "^7.1", - "mockery/mockery": "~1", - "phpunit/phpunit": "^7.0" + "ext-tokenizer": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-1.x": "1.x-dev" } }, "autoload": { @@ -2468,28 +2649,28 @@ } ], "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2019-08-22T18:11:29+00:00" + "time": "2020-09-17T18:55:26+00:00" }, { "name": "phpoption/phpoption", - "version": "1.7.3", + "version": "1.7.5", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "4acfd6a4b33a509d8c88f50e5222f734b6aeebae" + "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/4acfd6a4b33a509d8c88f50e5222f734b6aeebae", - "reference": "4acfd6a4b33a509d8c88f50e5222f734b6aeebae", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/994ecccd8f3283ecf5ac33254543eb0ac946d525", + "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525", "shasum": "" }, "require": { "php": "^5.5.9 || ^7.0 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.3", - "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" + "bamarni/composer-bin-plugin": "^1.4.1", + "phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0 || ^8.0 || ^9.0" }, "type": "library", "extra": { @@ -2523,37 +2704,37 @@ "php", "type" ], - "time": "2020-03-21T18:07:53+00:00" + "time": "2020-07-20T17:29:33+00:00" }, { "name": "phpspec/prophecy", - "version": "v1.10.3", + "version": "1.12.2", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "451c3cd1418cf640de218914901e51b064abb093" + "reference": "245710e971a030f42e08f4912863805570f23d39" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", - "reference": "451c3cd1418cf640de218914901e51b064abb093", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39", + "reference": "245710e971a030f42e08f4912863805570f23d39", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" + "doctrine/instantiator": "^1.2", + "php": "^7.2 || ~8.0, <8.1", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" }, "require-dev": { - "phpspec/phpspec": "^2.5 || ^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + "phpspec/phpspec": "^6.0", + "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.10.x-dev" + "dev-master": "1.11.x-dev" } }, "autoload": { @@ -2586,44 +2767,45 @@ "spy", "stub" ], - "time": "2020-03-05T15:02:03+00:00" + "time": "2020-12-19T10:15:11+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "6.0.5", + "version": "8.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "4cab20a326d14de7575a8e235c70d879b569a57a" + "reference": "ca6647ffddd2add025ab3f21644a441d7c146cdc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/4cab20a326d14de7575a8e235c70d879b569a57a", - "reference": "4cab20a326d14de7575a8e235c70d879b569a57a", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ca6647ffddd2add025ab3f21644a441d7c146cdc", + "reference": "ca6647ffddd2add025ab3f21644a441d7c146cdc", "shasum": "" }, "require": { "ext-dom": "*", "ext-xmlwriter": "*", - "php": "^7.1", - "phpunit/php-file-iterator": "^1.4.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.1", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" + "php": "^7.3", + "phpunit/php-file-iterator": "^3.0", + "phpunit/php-text-template": "^2.0", + "phpunit/php-token-stream": "^4.0", + "sebastian/code-unit-reverse-lookup": "^2.0", + "sebastian/environment": "^5.0", + "sebastian/version": "^3.0", + "theseer/tokenizer": "^1.1.3" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.0" }, "suggest": { - "ext-xdebug": "^2.6.0" + "ext-pcov": "*", + "ext-xdebug": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.0-dev" + "dev-master": "8.0-dev" } }, "autoload": { @@ -2649,29 +2831,32 @@ "testing", "xunit" ], - "time": "2018-05-28T11:49:20+00:00" + "time": "2020-05-23T08:02:54+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "1.4.5", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", + "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -2686,7 +2871,7 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], @@ -2696,26 +2881,38 @@ "filesystem", "iterator" ], - "time": "2017-11-27T13:52:08+00:00" + "time": "2020-09-28T05:57:25+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "phpunit/php-invoker", + "version": "3.1.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -2732,37 +2929,37 @@ "role": "lead" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", "keywords": [ - "template" + "process" ], - "time": "2015-06-21T13:50:34+00:00" + "time": "2020-09-28T05:58:55+00:00" }, { - "name": "phpunit/php-timer", - "version": "2.1.2", + "name": "phpunit/php-text-template", + "version": "2.0.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -2781,38 +2978,37 @@ "role": "lead" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", "keywords": [ - "timer" + "template" ], - "time": "2019-06-07T04:22:29+00:00" + "time": "2020-10-26T05:33:50+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "3.1.1", + "name": "phpunit/php-timer", + "version": "5.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": "^7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -2827,70 +3023,42 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "tokenizer" + "timer" ], - "abandoned": true, - "time": "2019-09-17T06:23:10+00:00" + "time": "2020-10-26T13:16:10+00:00" }, { - "name": "phpunit/phpunit", - "version": "7.0.3", + "name": "phpunit/php-token-stream", + "version": "4.0.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "536f4d853c12d8189963435088e8ff7c0daeab2e" + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/536f4d853c12d8189963435088e8ff7c0daeab2e", - "reference": "536f4d853c12d8189963435088e8ff7c0daeab2e", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/a853a0e183b9db7eed023d7933a858fa1c8d25a3", + "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "myclabs/deep-copy": "^1.6.1", - "phar-io/manifest": "^1.0.1", - "phar-io/version": "^1.0", - "php": "^7.1", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^6.0.1", - "phpunit/php-file-iterator": "^1.4.3", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.0", - "phpunit/phpunit-mock-objects": "^6.0", - "sebastian/comparator": "^2.1", - "sebastian/diff": "^3.0", - "sebastian/environment": "^3.1", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^1.0", - "sebastian/version": "^2.0.1" + "ext-tokenizer": "*", + "php": "^7.3 || ^8.0" }, "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0" + "phpunit/phpunit": "^9.0" }, - "bin": [ - "phpunit" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "7.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -2905,54 +3073,83 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", "keywords": [ - "phpunit", - "testing", - "xunit" + "tokenizer" ], - "time": "2018-03-26T07:36:48+00:00" + "abandoned": true, + "time": "2020-08-04T08:28:15+00:00" }, { - "name": "phpunit/phpunit-mock-objects", - "version": "6.1.2", + "name": "phpunit/phpunit", + "version": "9.2.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "f9756fd4f43f014cb2dca98deeaaa8ce5500a36e" + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "1c6a9e4312e209e659f1fce3ce88dd197c2448f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/f9756fd4f43f014cb2dca98deeaaa8ce5500a36e", - "reference": "f9756fd4f43f014cb2dca98deeaaa8ce5500a36e", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1c6a9e4312e209e659f1fce3ce88dd197c2448f6", + "reference": "1c6a9e4312e209e659f1fce3ce88dd197c2448f6", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.5", - "php": "^7.1", - "phpunit/php-text-template": "^1.2.1", - "sebastian/exporter": "^3.1" + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.9.5", + "phar-io/manifest": "^1.0.3", + "phar-io/version": "^2.0.1", + "php": "^7.3", + "phpspec/prophecy": "^1.10.3", + "phpunit/php-code-coverage": "^8.0.2", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-invoker": "^3.0.2", + "phpunit/php-text-template": "^2.0.2", + "phpunit/php-timer": "^5.0.1", + "sebastian/code-unit": "^1.0.5", + "sebastian/comparator": "^4.0.3", + "sebastian/diff": "^4.0.1", + "sebastian/environment": "^5.1.2", + "sebastian/exporter": "^4.0.2", + "sebastian/global-state": "^4.0", + "sebastian/object-enumerator": "^4.0.2", + "sebastian/resource-operations": "^3.0.2", + "sebastian/type": "^2.1.1", + "sebastian/version": "^3.0.1" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "ext-pdo": "*", + "phpspec/prophecy-phpunit": "^2.0" }, "suggest": { - "ext-soap": "*" + "ext-soap": "*", + "ext-xdebug": "*" }, + "bin": [ + "phpunit" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "6.1-dev" + "dev-master": "9.2-dev" } }, "autoload": { "classmap": [ "src/" + ], + "files": [ + "src/Framework/Assert/Functions.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2966,14 +3163,14 @@ "role": "lead" } ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", "keywords": [ - "mock", + "phpunit", + "testing", "xunit" ], - "abandoned": true, - "time": "2018-05-29T13:54:20+00:00" + "time": "2020-07-13T17:55:55+00:00" }, { "name": "psr/cache", @@ -3255,55 +3452,127 @@ "description": "A polyfill for getallheaders.", "time": "2019-03-08T08:55:37+00:00" }, + { + "name": "ramsey/collection", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", + "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8" + }, + "require-dev": { + "captainhook/captainhook": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "ergebnis/composer-normalize": "^2.6", + "fakerphp/faker": "^1.5", + "hamcrest/hamcrest-php": "^2", + "jangregor/phpstan-prophecy": "^0.8", + "mockery/mockery": "^1.3", + "phpstan/extension-installer": "^1", + "phpstan/phpstan": "^0.12.32", + "phpstan/phpstan-mockery": "^0.12.5", + "phpstan/phpstan-phpunit": "^0.12.11", + "phpunit/phpunit": "^8.5 || ^9", + "psy/psysh": "^0.10.4", + "slevomat/coding-standard": "^6.3", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP 7.2+ library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "time": "2021-01-21T17:40:04+00:00" + }, { "name": "ramsey/uuid", - "version": "3.9.3", + "version": "4.1.1", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92" + "reference": "cd4032040a750077205918c86049aa0f43d22947" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/7e1633a6964b48589b142d60542f9ed31bd37a92", - "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/cd4032040a750077205918c86049aa0f43d22947", + "reference": "cd4032040a750077205918c86049aa0f43d22947", "shasum": "" }, "require": { + "brick/math": "^0.8 || ^0.9", "ext-json": "*", - "paragonie/random_compat": "^1 | ^2 | 9.99.99", - "php": "^5.4 | ^7 | ^8", + "php": "^7.2 || ^8", + "ramsey/collection": "^1.0", "symfony/polyfill-ctype": "^1.8" }, "replace": { "rhumsaa/uuid": "self.version" }, "require-dev": { - "codeception/aspect-mock": "^1 | ^2", - "doctrine/annotations": "^1.2", - "goaop/framework": "1.0.0-alpha.2 | ^1 | ^2.1", - "jakub-onderka/php-parallel-lint": "^1", - "mockery/mockery": "^0.9.11 | ^1", + "codeception/aspect-mock": "^3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7.0", + "doctrine/annotations": "^1.8", + "goaop/framework": "^2", + "mockery/mockery": "^1.3", "moontoast/math": "^1.1", "paragonie/random-lib": "^2", - "php-mock/php-mock-phpunit": "^0.3 | ^1.1", - "phpunit/phpunit": "^4.8 | ^5.4 | ^6.5", - "squizlabs/php_codesniffer": "^3.5" + "php-mock/php-mock-mockery": "^1.3", + "php-mock/php-mock-phpunit": "^2.5", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^0.17.1", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-mockery": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^8.5", + "psy/psysh": "^0.10.0", + "slevomat/coding-standard": "^6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "3.9.4" }, "suggest": { - "ext-ctype": "Provides support for PHP Ctype functions", - "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator", - "ext-openssl": "Provides the OpenSSL extension for use with the OpenSslGenerator", - "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator", - "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).", + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-ctype": "Enables faster processing of character classification using ctype functions.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", - "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid", "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.x-dev" + "dev-master": "4.x-dev" } }, "autoload": { @@ -3318,54 +3587,85 @@ "license": [ "MIT" ], - "authors": [ - { - "name": "Ben Ramsey", - "email": "ben@benramsey.com", - "homepage": "https://benramsey.com" - }, - { - "name": "Marijn Huizendveld", - "email": "marijn.huizendveld@gmail.com" - }, - { - "name": "Thibaud Fabre", - "email": "thibaud@aztech.io" - } - ], - "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).", + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", "homepage": "https://github.com/ramsey/uuid", "keywords": [ "guid", "identifier", "uuid" ], - "time": "2020-02-21T04:36:14+00:00" + "time": "2020-08-18T17:17:46+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "time": "2020-10-26T13:08:54+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -3385,34 +3685,34 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" + "time": "2020-09-28T05:30:19+00:00" }, { "name": "sebastian/comparator", - "version": "2.1.3", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9" + "reference": "55f4261989e546dc112258c7a75935a81a7ce382" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", + "reference": "55f4261989e546dc112258c7a75935a81a7ce382", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/diff": "^2.0 || ^3.0", - "sebastian/exporter": "^3.1" + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.4" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -3425,6 +3725,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -3436,10 +3740,6 @@ { "name": "Bernhard Schussek", "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" } ], "description": "Provides the functionality to compare PHP values for equality", @@ -3449,33 +3749,33 @@ "compare", "equality" ], - "time": "2018-02-01T13:46:46+00:00" + "time": "2020-10-26T15:49:45+00:00" }, { "name": "sebastian/diff", - "version": "3.0.2", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -3488,13 +3788,13 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], "description": "Diff implementation", @@ -3505,32 +3805,35 @@ "unidiff", "unified diff" ], - "time": "2019-02-04T06:01:07+00:00" + "time": "2020-10-26T13:10:38+00:00" }, { "name": "sebastian/environment", - "version": "3.1.0", + "version": "5.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" + "reference": "388b6ced16caa751030f6a69e588299fa09200ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", + "reference": "388b6ced16caa751030f6a69e588299fa09200ac", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.1" + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "5.1-dev" } }, "autoload": { @@ -3555,34 +3858,34 @@ "environment", "hhvm" ], - "time": "2017-07-01T08:51:00+00:00" + "time": "2020-09-28T05:52:38+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.2", + "version": "4.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" + "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", + "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -3622,27 +3925,30 @@ "export", "exporter" ], - "time": "2019-09-14T09:02:43+00:00" + "time": "2020-09-28T05:24:23+00:00" }, { "name": "sebastian/global-state", - "version": "2.0.0", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + "reference": "bdb1e7c79e592b8c82cb1699be3c8743119b8a72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bdb1e7c79e592b8c82cb1699be3c8743119b8a72", + "reference": "bdb1e7c79e592b8c82cb1699be3c8743119b8a72", "shasum": "" }, "require": { - "php": "^7.0" + "php": "^7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "ext-dom": "*", + "phpunit/phpunit": "^9.0" }, "suggest": { "ext-uopz": "*" @@ -3650,7 +3956,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -3673,34 +3979,34 @@ "keywords": [ "global state" ], - "time": "2017-04-27T15:39:26+00:00" + "time": "2020-02-07T06:11:37+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -3720,32 +4026,32 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" + "time": "2020-10-26T13:12:34+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.1", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -3765,32 +4071,32 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" + "time": "2020-10-26T13:14:26+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.0", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -3803,14 +4109,14 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, { "name": "Adam Harvey", "email": "aharvey@php.net" @@ -3818,29 +4124,32 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" + "time": "2020-10-26T13:17:30+00:00" }, { "name": "sebastian/resource-operations", - "version": "1.0.0", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", "shasum": "" }, "require": { - "php": ">=5.6.0" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -3860,29 +4169,75 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2015-07-28T20:34:47+00:00" + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "2.3.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "time": "2020-10-26T13:18:59+00:00" }, { "name": "sebastian/version", - "version": "2.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "reference": "c6c1022351a901512170118436c764e473f6de8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -3903,7 +4258,7 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" + "time": "2020-09-28T06:39:44+00:00" }, { "name": "seld/jsonlint", @@ -3955,89 +4310,32 @@ "time": "2019-10-24T14:27:39+00:00" }, { - "name": "seld/phar-utils", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/phar-utils.git", - "reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8800503d56b9867d43d9c303b9cbcc26016e82f0", - "reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0", - "shasum": "" - }, - "require": { - "php": ">=5.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Seld\\PharUtils\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" - } - ], - "description": "PHAR file format utilities, for when PHP phars you up", - "keywords": [ - "phar" - ], - "time": "2020-02-14T15:25:33+00:00" - }, - { - "name": "symfony/browser-kit", - "version": "v4.4.6", + "name": "seld/phar-utils", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/symfony/browser-kit.git", - "reference": "4e9a171559f5a9018c90ba9e85b4084d4e045186" + "url": "https://github.com/Seldaek/phar-utils.git", + "reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/4e9a171559f5a9018c90ba9e85b4084d4e045186", - "reference": "4e9a171559f5a9018c90ba9e85b4084d4e045186", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8800503d56b9867d43d9c303b9cbcc26016e82f0", + "reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/dom-crawler": "^3.4|^4.0|^5.0" - }, - "require-dev": { - "symfony/css-selector": "^3.4|^4.0|^5.0", - "symfony/http-client": "^4.3|^5.0", - "symfony/mime": "^4.3|^5.0", - "symfony/process": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/process": "" + "php": ">=5.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\BrowserKit\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Seld\\PharUtils\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4045,17 +4343,15 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" } ], - "description": "Symfony BrowserKit Component", - "homepage": "https://symfony.com", - "time": "2020-03-15T10:05:03+00:00" + "description": "PHAR file format utilities, for when PHP phars you up", + "keywords": [ + "phar" + ], + "time": "2020-02-14T15:25:33+00:00" }, { "name": "symfony/console", @@ -4135,27 +4431,22 @@ }, { "name": "symfony/css-selector", - "version": "v4.4.6", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "402251c6fd69806a70a2b0e1426d16f8487f0f9a" + "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/402251c6fd69806a70a2b0e1426d16f8487f0f9a", - "reference": "402251c6fd69806a70a2b0e1426d16f8487f0f9a", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/f65f217b3314504a1ec99c2d6ef69016bb13490f", + "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=7.2.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\CssSelector\\": "" @@ -4182,51 +4473,40 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony CssSelector Component", + "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", - "time": "2020-03-16T08:56:54+00:00" + "time": "2021-01-27T10:01:46+00:00" }, { - "name": "symfony/dom-crawler", - "version": "v4.4.6", + "name": "symfony/deprecation-contracts", + "version": "v2.2.0", "source": { "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "7e7c7957f6d53757d36b61a1f7408ef0b6683040" + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/7e7c7957f6d53757d36b61a1f7408ef0b6683040", - "reference": "7e7c7957f6d53757d36b61a1f7408ef0b6683040", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "masterminds/html5": "<2.6" - }, - "require-dev": { - "masterminds/html5": "^2.6", - "symfony/css-selector": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/css-selector": "" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "files": [ + "function.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4235,34 +4515,34 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony DomCrawler Component", + "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", - "time": "2020-03-16T11:24:17+00:00" + "time": "2020-09-07T11:33:47+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.6", + "version": "v4.4.19", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "cf57788d1ca64ee7e689698dc0295d25c9fe3780" + "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/cf57788d1ca64ee7e689698dc0295d25c9fe3780", - "reference": "cf57788d1ca64ee7e689698dc0295d25c9fe3780", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c352647244bd376bf7d31efbd5401f13f50dad0c", + "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=7.1.3", "symfony/event-dispatcher-contracts": "^1.1" }, "conflict": { @@ -4276,6 +4556,7 @@ "psr/log": "~1.0", "symfony/config": "^3.4|^4.0|^5.0", "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/error-handler": "~3.4|~4.4", "symfony/expression-language": "^3.4|^4.0|^5.0", "symfony/http-foundation": "^3.4|^4.0|^5.0", "symfony/service-contracts": "^1.1|^2", @@ -4286,11 +4567,6 @@ "symfony/http-kernel": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" @@ -4313,26 +4589,26 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony EventDispatcher Component", + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", - "time": "2020-03-16T11:24:17+00:00" + "time": "2021-01-27T09:09:26+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v1.1.7", + "version": "v1.1.9", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18" + "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c43ab685673fb6c8d84220c77897b1d6cdbe1d18", - "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/84e23fdcd2517bf37aecbd16967e83f0caee25a7", + "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=7.1.3" }, "suggest": { "psr/event-dispatcher": "", @@ -4342,6 +4618,10 @@ "extra": { "branch-alias": { "dev-master": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -4373,32 +4653,27 @@ "interoperability", "standards" ], - "time": "2019-09-17T09:54:03+00:00" + "time": "2020-07-06T13:19:58+00:00" }, { "name": "symfony/filesystem", - "version": "v4.4.6", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "6d4fdf28187250f671c1edc9cf921ebfb7fe3809" + "reference": "262d033b57c73e8b59cd6e68a45c528318b15038" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/6d4fdf28187250f671c1edc9cf921ebfb7fe3809", - "reference": "6d4fdf28187250f671c1edc9cf921ebfb7fe3809", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/262d033b57c73e8b59cd6e68a45c528318b15038", + "reference": "262d033b57c73e8b59cd6e68a45c528318b15038", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Filesystem\\": "" @@ -4421,33 +4696,28 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Filesystem Component", + "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", - "time": "2020-03-16T08:56:54+00:00" + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/finder", - "version": "v4.4.6", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "ea69c129aed9fdeca781d4b77eb20b62cf5d5357" + "reference": "196f45723b5e618bf0e23b97e96d11652696ea9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/ea69c129aed9fdeca781d4b77eb20b62cf5d5357", - "reference": "ea69c129aed9fdeca781d4b77eb20b62cf5d5357", + "url": "https://api.github.com/repos/symfony/finder/zipball/196f45723b5e618bf0e23b97e96d11652696ea9e", + "reference": "196f45723b5e618bf0e23b97e96d11652696ea9e", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=7.2.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Finder\\": "" @@ -4470,39 +4740,40 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Finder Component", + "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", - "time": "2020-02-14T07:42:58+00:00" + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/http-foundation", - "version": "v4.4.6", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "0a3b7711229f816a06fac805f4ed4a8f4641c719" + "reference": "16dfa5acf8103f0394d447f8eea3ea49f9e50855" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/0a3b7711229f816a06fac805f4ed4a8f4641c719", - "reference": "0a3b7711229f816a06fac805f4ed4a8f4641c719", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/16dfa5acf8103f0394d447f8eea3ea49f9e50855", + "reference": "16dfa5acf8103f0394d447f8eea3ea49f9e50855", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/mime": "^4.3|^5.0", - "symfony/polyfill-mbstring": "~1.1" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.15" }, "require-dev": { "predis/predis": "~1.0", - "symfony/expression-language": "^3.4|^4.0|^5.0" + "symfony/cache": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } + "suggest": { + "symfony/mime": "To use the file extension guesser" }, + "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\HttpFoundation\\": "" @@ -4525,42 +4796,45 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony HttpFoundation Component", + "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", - "time": "2020-03-23T12:37:11+00:00" + "time": "2021-01-27T11:19:04+00:00" }, { "name": "symfony/mime", - "version": "v4.4.6", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "f6be9d809d805ab5bdb12f2d5843ba2c78533c7e" + "reference": "37bade585ea100d235c031b258eff93b5b6bb9a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/f6be9d809d805ab5bdb12f2d5843ba2c78533c7e", - "reference": "f6be9d809d805ab5bdb12f2d5843ba2c78533c7e", + "url": "https://api.github.com/repos/symfony/mime/zipball/37bade585ea100d235c031b258eff93b5b6bb9a9", + "reference": "37bade585ea100d235c031b258eff93b5b6bb9a9", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0" + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.15" }, "conflict": { + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", "symfony/mailer": "<4.4" }, "require-dev": { "egulias/email-validator": "^2.1.10", - "symfony/dependency-injection": "^3.4|^4.1|^5.0" + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/property-access": "^4.4|^5.1", + "symfony/property-info": "^4.4|^5.1", + "symfony/serializer": "^5.2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Mime\\": "" @@ -4583,30 +4857,30 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "A library to manipulate MIME messages", + "description": "Allows manipulating MIME messages", "homepage": "https://symfony.com", "keywords": [ "mime", "mime-type" ], - "time": "2020-03-16T11:24:17+00:00" + "time": "2021-01-25T14:08:25+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.15.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14" + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/4719fa9c18b0464d399f1a63bf624b42b6fa8d14", - "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-ctype": "For best performance" @@ -4614,7 +4888,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -4647,21 +4925,7 @@ "polyfill", "portable" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-02-27T09:26:54+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-intl-idn", @@ -4723,38 +4987,24 @@ "portable", "shim" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2020-03-09T19:04:49+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.15.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac" + "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/81ffd3a9c6d707be22e3012b827de1c9775fc5ac", - "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", + "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-mbstring": "For best performance" @@ -4762,7 +5012,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -4796,21 +5050,7 @@ "portable", "shim" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-03-09T19:04:49+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php72", @@ -4865,20 +5105,6 @@ "portable", "shim" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2020-02-27T09:26:54+00:00" }, { @@ -4937,21 +5163,73 @@ "portable", "shim" ], - "funding": [ + "time": "2020-02-27T09:26:54+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.22.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" }, { - "url": "https://github.com/fabpot", - "type": "github" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "time": "2020-02-27T09:26:54+00:00" + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/process", @@ -5062,20 +5340,20 @@ }, { "name": "symfony/yaml", - "version": "v4.4.6", + "version": "v4.4.19", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "43d7a46b1f80b4fd2ecfac4a9a4cc1f22d029fbb" + "reference": "17ed9f14c1aa05b1a5cf2e2c5ef2d0be28058ef9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/43d7a46b1f80b4fd2ecfac4a9a4cc1f22d029fbb", - "reference": "43d7a46b1f80b4fd2ecfac4a9a4cc1f22d029fbb", + "url": "https://api.github.com/repos/symfony/yaml/zipball/17ed9f14c1aa05b1a5cf2e2c5ef2d0be28058ef9", + "reference": "17ed9f14c1aa05b1a5cf2e2c5ef2d0be28058ef9", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=7.1.3", "symfony/polyfill-ctype": "~1.8" }, "conflict": { @@ -5088,11 +5366,6 @@ "symfony/console": "For validating YAML files using the lint command" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Yaml\\": "" @@ -5115,29 +5388,29 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Yaml Component", + "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", - "time": "2020-03-16T08:56:54+00:00" + "time": "2021-01-27T09:09:26+00:00" }, { "name": "theseer/tokenizer", - "version": "1.1.3", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" + "reference": "75a63c33a8577608444246075ea0af0d052e452a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", + "reference": "75a63c33a8577608444246075ea0af0d052e452a", "shasum": "" }, "require": { "ext-dom": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": "^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -5157,7 +5430,7 @@ } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2019-06-13T22:48:21+00:00" + "time": "2020-07-12T23:59:07+00:00" }, { "name": "vlucas/phpdotenv", @@ -5212,24 +5485,25 @@ }, { "name": "webmozart/assert", - "version": "1.7.0", + "version": "1.9.1", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "aed98a490f9a8f78468232db345ab9cf606cf598" + "url": "https://github.com/webmozarts/assert.git", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/aed98a490f9a8f78468232db345ab9cf606cf598", - "reference": "aed98a490f9a8f78468232db345ab9cf606cf598", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0", + "php": "^5.3.3 || ^7.0 || ^8.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "vimeo/psalm": "<3.6.0" + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<3.9.1" }, "require-dev": { "phpunit/phpunit": "^4.8.36 || ^7.5.13" @@ -5256,7 +5530,7 @@ "check", "validate" ], - "time": "2020-02-14T12:15:55+00:00" + "time": "2020-07-08T17:02:28+00:00" }, { "name": "weew/helpers-array", @@ -5519,34 +5793,29 @@ } ], "description": "Library for accessing git", - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/gitonomy/gitlib", - "type": "tidelift" - } - ], "time": "2020-03-23T12:43:44+00:00" }, { "name": "goaop/framework", - "version": "2.2.0", + "version": "2.3.4", "source": { "type": "git", "url": "https://github.com/goaop/framework.git", - "reference": "152abbffffcba72d2d159b892deb40b0829d0f28" + "reference": "f980f249c55637acba0d5fdcfd2b5182c419f3d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/goaop/framework/zipball/152abbffffcba72d2d159b892deb40b0829d0f28", - "reference": "152abbffffcba72d2d159b892deb40b0829d0f28", + "url": "https://api.github.com/repos/goaop/framework/zipball/f980f249c55637acba0d5fdcfd2b5182c419f3d1", + "reference": "f980f249c55637acba0d5fdcfd2b5182c419f3d1", "shasum": "" }, "require": { "doctrine/annotations": "^1.2.3", "doctrine/cache": "^1.5", - "goaop/parser-reflection": "~1.4", + "goaop/parser-reflection": "~2.0", "jakubledl/dissect": "~1.0", - "php": ">=5.6.0" + "php": "~7.0", + "symfony/finder": "^3.4|^4.2|^5.0" }, "require-dev": { "adlawson/vfs": "^0.12", @@ -5554,7 +5823,8 @@ "phpunit/phpunit": "^5.7", "symfony/console": "^2.7|^3.0", "symfony/filesystem": "^3.3", - "symfony/process": "^3.3" + "symfony/process": "^3.3", + "webmozart/glob": "^4.1" }, "suggest": { "symfony/console": "Enables the usage of the command-line tool." @@ -5591,25 +5861,25 @@ "library", "php" ], - "time": "2018-01-05T23:07:51+00:00" + "time": "2020-04-06T09:46:21+00:00" }, { "name": "goaop/parser-reflection", - "version": "1.4.1", + "version": "2.1.3", "source": { "type": "git", "url": "https://github.com/goaop/parser-reflection.git", - "reference": "d9c1dcc7ce4a5284fe3530e011faf9c9c10e1166" + "reference": "2e837e150e15d38f7004b0dbcd0af4abe034c9e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/goaop/parser-reflection/zipball/d9c1dcc7ce4a5284fe3530e011faf9c9c10e1166", - "reference": "d9c1dcc7ce4a5284fe3530e011faf9c9c10e1166", + "url": "https://api.github.com/repos/goaop/parser-reflection/zipball/2e837e150e15d38f7004b0dbcd0af4abe034c9e2", + "reference": "2e837e150e15d38f7004b0dbcd0af4abe034c9e2", "shasum": "" }, "require": { - "nikic/php-parser": "^1.2|^2.0|^3.0", - "php": ">=5.6.0" + "nikic/php-parser": "^4.0 <4.7.0", + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "~4.0" @@ -5617,7 +5887,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "3.x-dev" } }, "autoload": { @@ -5642,7 +5912,7 @@ } ], "description": "Provides reflection information, based on raw source", - "time": "2018-03-19T15:57:41+00:00" + "time": "2020-08-13T21:02:42+00:00" }, { "name": "guzzle/guzzle", @@ -5794,24 +6064,25 @@ }, { "name": "nikic/php-parser", - "version": "v3.1.5", + "version": "v4.6.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce" + "reference": "c346bbfafe2ff60680258b631afb730d186ed864" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", - "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c346bbfafe2ff60680258b631afb730d186ed864", + "reference": "c346bbfafe2ff60680258b631afb730d186ed864", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=5.5" + "php": ">=7.0" }, "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" + "ircmaxell/php-yacc": "0.0.5", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" }, "bin": [ "bin/php-parse" @@ -5819,7 +6090,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -5841,7 +6112,7 @@ "parser", "php" ], - "time": "2018-02-28T20:30:58+00:00" + "time": "2020-07-02T17:12:47+00:00" }, { "name": "pdepend/pdepend", @@ -6064,27 +6335,30 @@ "time": "2018-07-29T13:27:58+00:00" }, { - "name": "sebastian/finder-facade", - "version": "1.2.3", + "name": "sebastian/cli-parser", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/finder-facade.git", - "reference": "167c45d131f7fc3d159f56f191a0a22228765e16" + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/finder-facade/zipball/167c45d131f7fc3d159f56f191a0a22228765e16", - "reference": "167c45d131f7fc3d159f56f191a0a22228765e16", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", "shasum": "" }, "require": { - "php": "^7.1", - "symfony/finder": "^2.3|^3.0|^4.0|^5.0", - "theseer/fdomdocument": "^1.6" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { - "branch-alias": [] + "branch-alias": { + "dev-master": "1.0-dev" + } }, "autoload": { "classmap": [ @@ -6102,32 +6376,31 @@ "role": "lead" } ], - "description": "FinderFacade is a convenience wrapper for Symfony's Finder component.", - "homepage": "https://github.com/sebastianbergmann/finder-facade", - "abandoned": true, - "time": "2020-01-16T08:08:45+00:00" + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "time": "2020-09-28T06:08:49+00:00" }, { "name": "sebastian/phpcpd", - "version": "4.1.0", + "version": "6.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpcpd.git", - "reference": "0d9afa762f2400de077b2192f4a9d127de0bb78e" + "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/0d9afa762f2400de077b2192f4a9d127de0bb78e", - "reference": "0d9afa762f2400de077b2192f4a9d127de0bb78e", + "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/f3683aa0db2e8e09287c2bb33a595b2873ea9176", + "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176", "shasum": "" }, "require": { "ext-dom": "*", - "php": "^7.1", - "phpunit/php-timer": "^2.0", - "sebastian/finder-facade": "^1.1", - "sebastian/version": "^1.0|^2.0", - "symfony/console": "^2.7|^3.0|^4.0" + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0", + "phpunit/php-timer": "^5.0", + "sebastian/cli-parser": "^1.0", + "sebastian/version": "^3.0" }, "bin": [ "phpcpd" @@ -6135,7 +6408,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "6.0-dev" } }, "autoload": { @@ -6156,7 +6429,7 @@ ], "description": "Copy/Paste Detector (CPD) for PHP code.", "homepage": "https://github.com/sebastianbergmann/phpcpd", - "time": "2018-09-17T17:17:27+00:00" + "time": "2020-12-07T05:39:23+00:00" }, { "name": "squizlabs/php_codesniffer", @@ -6394,46 +6667,6 @@ "description": "Symfony Stopwatch Component", "homepage": "https://symfony.com", "time": "2020-01-01T11:03:25+00:00" - }, - { - "name": "theseer/fdomdocument", - "version": "1.6.6", - "source": { - "type": "git", - "url": "https://github.com/theseer/fDOMDocument.git", - "reference": "6e8203e40a32a9c770bcb62fe37e68b948da6dca" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/fDOMDocument/zipball/6e8203e40a32a9c770bcb62fe37e68b948da6dca", - "reference": "6e8203e40a32a9c770bcb62fe37e68b948da6dca", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "lib-libxml": "*", - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "lead" - } - ], - "description": "The classes contained within this repository extend the standard DOM to use exceptions at all occasions of errors instead of PHP warnings or notices. They also add various custom methods and shortcuts for convenience and to simplify the usage of DOM.", - "homepage": "https://github.com/theseer/fDOMDocument", - "time": "2017-06-30T11:53:12+00:00" } ], "aliases": [], @@ -6442,12 +6675,11 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "~7.1.0||~7.2.0||~7.3.0", + "php": "~7.3.0", "ext-curl": "*", "ext-dom": "*", "ext-json": "*", "ext-openssl": "*" }, - "platform-dev": [], - "plugin-api-version": "1.1.0" + "platform-dev": [] } diff --git a/dev/tests/phpunit.xml b/dev/tests/phpunit.xml index 9648ab3fd..1014ec7c3 100644 --- a/dev/tests/phpunit.xml +++ b/dev/tests/phpunit.xml @@ -7,7 +7,7 @@ diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Allure/AllureHelperTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Allure/AllureHelperTest.php index b7eafaead..f0041e074 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Allure/AllureHelperTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Allure/AllureHelperTest.php @@ -22,7 +22,7 @@ class AllureHelperTest extends TestCase /** * Clear Allure Lifecycle */ - public function tearDown() + public function tearDown(): void { Allure::setDefaultLifecycle(); AspectMock::clean(); diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Composer/ComposerInstallTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Composer/ComposerInstallTest.php index e4977184f..445e615a9 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Composer/ComposerInstallTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Composer/ComposerInstallTest.php @@ -18,7 +18,7 @@ class ComposerInstallTest extends MagentoTestCase */ private $composer; - public function setUp() + public function setUp(): void { $composerJson = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'Composer' . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'dir1' . DIRECTORY_SEPARATOR . 'dir2' . DIRECTORY_SEPARATOR . 'composer.json'; diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Composer/ComposerPackageTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Composer/ComposerPackageTest.php index 4802f0c33..dfe691651 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Composer/ComposerPackageTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Composer/ComposerPackageTest.php @@ -19,7 +19,7 @@ class ComposerPackageTest extends MagentoTestCase */ private $composer; - public function setUp() + public function setUp(): void { $composerJson = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'Composer' . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'dir1' . DIRECTORY_SEPARATOR . 'dir2' . DIRECTORY_SEPARATOR . 'composer.json'; diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Config/Reader/FilesystemTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Config/Reader/FilesystemTest.php index b59858e7f..e12ccbe5c 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Config/Reader/FilesystemTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Config/Reader/FilesystemTest.php @@ -19,7 +19,7 @@ class FilesystemTest extends TestCase * Before test functionality * @return void */ - public function setUp() + public function setUp(): void { TestLoggingUtil::getInstance()->setMockLoggingUtil(); } @@ -100,7 +100,7 @@ public function createPseudoFileSystem($fileList) * After class functionality * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { TestLoggingUtil::getInstance()->clearMockLoggingUtil(); parent::tearDownAfterClass(); diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Console/BaseGenerateCommandTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Console/BaseGenerateCommandTest.php index 234f677e8..c57dfe471 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Console/BaseGenerateCommandTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Console/BaseGenerateCommandTest.php @@ -15,7 +15,7 @@ class BaseGenerateCommandTest extends TestCase { - public function tearDown() + public function tearDown(): void { AspectMock::clean(); } diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Handlers/PersistedObjectHandlerTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Handlers/PersistedObjectHandlerTest.php index 592b87f4e..0e3367a70 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Handlers/PersistedObjectHandlerTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Handlers/PersistedObjectHandlerTest.php @@ -27,7 +27,7 @@ class PersistedObjectHandlerTest extends MagentoTestCase * Before test functionality * @return void */ - public function setUp() + public function setUp(): void { TestLoggingUtil::getInstance()->setMockLoggingUtil(); } @@ -510,7 +510,7 @@ public function mockCurlHandler($response) ]); } - public function tearDown() + public function tearDown(): void { // Clear out Singleton between tests $property = new \ReflectionProperty(PersistedObjectHandler::class, "INSTANCE"); @@ -524,7 +524,7 @@ public function tearDown() * After class functionality * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { TestLoggingUtil::getInstance()->clearMockLoggingUtil(); parent::tearDownAfterClass(); diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Objects/EntityDataObjectTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Objects/EntityDataObjectTest.php index 802a6c108..ef7dfac9b 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Objects/EntityDataObjectTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Objects/EntityDataObjectTest.php @@ -40,7 +40,7 @@ class EntityDataObjectTest extends MagentoTestCase * Before test functionality * @return void */ - public function setUp() + public function setUp(): void { TestLoggingUtil::getInstance()->setMockLoggingUtil(); } @@ -141,7 +141,7 @@ public function testGetCamelCaseKeys() * After class functionality * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { TestLoggingUtil::getInstance()->clearMockLoggingUtil(); } diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Persist/OperationDataArrayResolverTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Persist/OperationDataArrayResolverTest.php index fb6dcd865..1e77c8158 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Persist/OperationDataArrayResolverTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Persist/OperationDataArrayResolverTest.php @@ -41,7 +41,7 @@ class OperationDataArrayResolverTest extends MagentoTestCase * Before test functionality * @return void */ - public function setUp() + public function setUp(): void { TestLoggingUtil::getInstance()->setMockLoggingUtil(); } @@ -481,7 +481,7 @@ public function testNestedMetadataArrayOfDiverseObjects() * After class functionality * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { TestLoggingUtil::getInstance()->clearMockLoggingUtil(); } diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Util/DataExtensionUtilTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Util/DataExtensionUtilTest.php index e72c15b31..b921229e0 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Util/DataExtensionUtilTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Util/DataExtensionUtilTest.php @@ -22,7 +22,7 @@ class EntityDataExtensionTest extends MagentoTestCase * Before method functionality * @return void */ - protected function setUp() + protected function setUp(): void { AspectMock::clean(); } diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Page/Objects/ElementObjectTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Page/Objects/ElementObjectTest.php index d585f4085..02fb0f465 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Page/Objects/ElementObjectTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Page/Objects/ElementObjectTest.php @@ -32,7 +32,7 @@ public function testTimeoutNotNull() $element = new ElementObject('name', 'type', 'selector', null, '15', false); $timeout = $element->getTimeout(); $this->assertEquals(15, $timeout); - $this->assertInternalType('int', $timeout); + $this->assertIsInt($timeout); } /** @@ -43,7 +43,7 @@ public function testTimeoutCastFromString() $element = new ElementObject('name', 'type', 'selector', null, 'helloString', true); $timeout = $element->getTimeout(); $this->assertEquals(0, $timeout); - $this->assertInternalType('int', $timeout); + $this->assertIsInt($timeout); } /** diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Suite/Handlers/SuiteObjectHandlerTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Suite/Handlers/SuiteObjectHandlerTest.php index e45127f4c..c065b1fbf 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Suite/Handlers/SuiteObjectHandlerTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Suite/Handlers/SuiteObjectHandlerTest.php @@ -19,7 +19,7 @@ class SuiteObjectHandlerTest extends MagentoTestCase { - public function setUp() + public function setUp(): void { $resolverMock = new MockModuleResolverBuilder(); $resolverMock->setup(); diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Suite/SuiteGeneratorTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Suite/SuiteGeneratorTest.php index 842be4f88..d3bf71f5f 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Suite/SuiteGeneratorTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Suite/SuiteGeneratorTest.php @@ -29,7 +29,7 @@ class SuiteGeneratorTest extends MagentoTestCase /** * Setup entry append and clear for Suite Generator */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { AspectMock::double(SuiteGenerator::class, [ 'clearPreviousSessionConfigEntries' => null, @@ -41,7 +41,7 @@ public static function setUpBeforeClass() * Before test functionality * @return void */ - public function setUp() + public function setUp(): void { TestLoggingUtil::getInstance()->setMockLoggingUtil(); $resolverMock = new MockModuleResolverBuilder(); @@ -181,7 +181,7 @@ public function testInvalidSuiteTestPair() // Set up Expected Exception $this->expectException(TestReferenceException::class); - $this->expectExceptionMessageRegExp('(Suite: "Suite2" Tests: "Test1")'); + $this->expectExceptionMessageMatches('(Suite: "Suite2" Tests: "Test1")'); // parse and generate suite object with mocked data and manifest $mockSuiteGenerator = SuiteGenerator::getInstance(); @@ -205,7 +205,7 @@ public function testNonExistentSuiteTestPair() // Set up Expected Exception $this->expectException(TestReferenceException::class); - $this->expectExceptionMessageRegExp('#Suite3 is not defined#'); + $this->expectExceptionMessageMatches('#Suite3 is not defined#'); // parse and generate suite object with mocked data and manifest $mockSuiteGenerator = SuiteGenerator::getInstance(); @@ -274,7 +274,7 @@ private function setMockTestAndSuiteParserOutput($testData, $suiteData) /** * clean up function runs after all tests */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { TestLoggingUtil::getInstance()->clearMockLoggingUtil(); parent::tearDownAfterClass(); diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Config/ActionGroupDomTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Config/ActionGroupDomTest.php index 6a0c926be..767d06628 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Config/ActionGroupDomTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Config/ActionGroupDomTest.php @@ -65,7 +65,7 @@ public function testActionGroupDomDuplicateActionGroupsValidation() $exceptionCollector = new ExceptionCollector(); new ActionGroupDom($sampleXml, 'dupeNameActionGroup.xml', $exceptionCollector); $this->expectException(\Exception::class); - $this->expectExceptionMessageRegExp("/name: actionGroupName is used more than once./"); + $this->expectExceptionMessageMatches("/name: actionGroupName is used more than once./"); $exceptionCollector->throwException(); } } diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Config/DomTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Config/DomTest.php index e00926978..719c629d4 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Config/DomTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Config/DomTest.php @@ -28,7 +28,7 @@ public function testTestStepKeyDuplicateValidation() new ActionGroupDom($sampleXml, 'dupeStepKeyTest.xml', $exceptionCollector); $this->expectException(\Exception::class); - $this->expectExceptionMessageRegExp("/stepKey: key1 is used more than once. \(Parent: testName\)/"); + $this->expectExceptionMessageMatches("/stepKey: key1 is used more than once. \(Parent: testName\)/"); $exceptionCollector->throwException(); } @@ -49,7 +49,7 @@ public function testTestNameDuplicateValidation() $exceptionCollector = new ExceptionCollector(); new ActionGroupDom($sampleXml, 'dupeTestsTest.xml', $exceptionCollector); $this->expectException(\Exception::class); - $this->expectExceptionMessageRegExp("/name: testName is used more than once./"); + $this->expectExceptionMessageMatches("/name: testName is used more than once./"); $exceptionCollector->throwException(); } } diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php index a4504ab07..7dededc1a 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php @@ -283,7 +283,7 @@ private function setMockParserOutput($data) * * @return void */ - public function tearDown() + public function tearDown(): void { AspectMock::clean(); } diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Objects/ActionGroupObjectTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Objects/ActionGroupObjectTest.php index 796e8a28b..db32de3b7 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Objects/ActionGroupObjectTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Objects/ActionGroupObjectTest.php @@ -28,7 +28,7 @@ class ActionGroupObjectTest extends MagentoTestCase * Before test functionality * @return void */ - public function setUp() + public function setUp(): void { TestLoggingUtil::getInstance()->setMockLoggingUtil(); } @@ -243,7 +243,7 @@ public function testExceptionOnMissingActions() ->build(); $this->expectException(TestReferenceException::class); - $this->expectExceptionMessageRegExp('/Arguments missed .* for actionGroup/'); + $this->expectExceptionMessageMatches('/Arguments missed .* for actionGroup/'); $actionGroupUnderTest->getSteps(['arg2' => 'data1'], self::ACTION_GROUP_MERGE_KEY); } @@ -257,7 +257,7 @@ public function testExceptionOnMissingArguments() ->build(); $this->expectException(TestReferenceException::class); - $this->expectExceptionMessageRegExp('/Arguments missed .* for actionGroup/'); + $this->expectExceptionMessageMatches('/Arguments missed .* for actionGroup/'); $actionGroupUnderTest->getSteps(null, self::ACTION_GROUP_MERGE_KEY); } @@ -355,7 +355,7 @@ private function assertOnMergeKeyAndActionValue($actions, $expectedValue, $expec * After class functionality * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { TestLoggingUtil::getInstance()->clearMockLoggingUtil(); } diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Objects/ActionObjectTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Objects/ActionObjectTest.php index 511c9748f..db0c60bb1 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Objects/ActionObjectTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Objects/ActionObjectTest.php @@ -28,7 +28,7 @@ class ActionObjectTest extends MagentoTestCase * Before test functionality * @return void */ - public function setUp() + public function setUp(): void { TestLoggingUtil::getInstance()->setMockLoggingUtil(); } @@ -404,7 +404,7 @@ private function mockDataHandlerWithData($dataObject) * After class functionality * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { TestLoggingUtil::getInstance()->clearMockLoggingUtil(); } diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionGroupAnnotationExtractorTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionGroupAnnotationExtractorTest.php index af39298b1..4c1aefbd8 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionGroupAnnotationExtractorTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionGroupAnnotationExtractorTest.php @@ -16,7 +16,7 @@ class ActionGroupAnnotationExtractorTest extends TestCase * Before test functionality * @return void */ - public function setUp() + public function setUp(): void { TestLoggingUtil::getInstance()->setMockLoggingUtil(); } @@ -91,7 +91,7 @@ public function testActionGroupMissingAnnotationsNoWarning() * After class functionality * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { TestLoggingUtil::getInstance()->clearMockLoggingUtil(); } diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionGroupObjectExtractorTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionGroupObjectExtractorTest.php index 47b797c1c..2d399cfb1 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionGroupObjectExtractorTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionGroupObjectExtractorTest.php @@ -17,7 +17,7 @@ class ActionGroupObjectExtractorTest extends MagentoTestCase /** * Setup method */ - public function setUp() + public function setUp(): void { $this->testActionGroupObjectExtractor = new ActionGroupObjectExtractor(); TestLoggingUtil::getInstance()->setMockLoggingUtil(); @@ -63,7 +63,7 @@ private function createBasicActionObjectArray( /** * clean up function runs after all tests */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { TestLoggingUtil::getInstance()->clearMockLoggingUtil(); } diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionMergeUtilTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionMergeUtilTest.php index 7917d663b..7996837ff 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionMergeUtilTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionMergeUtilTest.php @@ -23,7 +23,7 @@ class ActionMergeUtilTest extends MagentoTestCase * Before test functionality * @return void */ - public function setUp() + public function setUp(): void { TestLoggingUtil::getInstance()->setMockLoggingUtil(); } @@ -292,7 +292,7 @@ public function testInvalidSecretFunctions() * After class functionality * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { TestLoggingUtil::getInstance()->clearMockLoggingUtil(); } diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionObjectExtractorTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionObjectExtractorTest.php index f584adea9..5f30f8422 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionObjectExtractorTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ActionObjectExtractorTest.php @@ -18,7 +18,7 @@ class ActionObjectExtractorTest extends MagentoTestCase /** * Setup method */ - public function setUp() + public function setUp(): void { $this->testActionObjectExtractor = new ActionObjectExtractor(); TestLoggingUtil::getInstance()->setMockLoggingUtil(); @@ -130,7 +130,7 @@ private function createBasicActionObjectArray($stepKey = 'testAction1', $before /** * clean up function runs after all tests */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { TestLoggingUtil::getInstance()->clearMockLoggingUtil(); } diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/AnnotationExtractorTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/AnnotationExtractorTest.php index fb93cbb88..bfb108ce8 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/AnnotationExtractorTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/AnnotationExtractorTest.php @@ -19,7 +19,7 @@ class AnnotationExtractorTest extends TestCase * Before test functionality * @return void */ - public function setUp() + public function setUp(): void { TestLoggingUtil::getInstance()->setMockLoggingUtil(); } @@ -209,7 +209,7 @@ public function testTestCaseIdUniqueness() * After class functionality * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { TestLoggingUtil::getInstance()->clearMockLoggingUtil(); } diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ObjectExtensionUtilTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ObjectExtensionUtilTest.php index 9982b8040..4b9830a59 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ObjectExtensionUtilTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Util/ObjectExtensionUtilTest.php @@ -28,7 +28,7 @@ class ObjectExtensionUtilTest extends TestCase * Before test functionality * @return void */ - public function setUp() + public function setUp(): void { TestLoggingUtil::getInstance()->setMockLoggingUtil(); $resolverMock = new MockModuleResolverBuilder(); @@ -39,7 +39,7 @@ public function setUp() * After class functionality * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { TestLoggingUtil::getInstance()->clearMockLoggingUtil(); } diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Util/ModuleResolverTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Util/ModuleResolverTest.php index 07e1ee7fa..2bb1f3b74 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Util/ModuleResolverTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Util/ModuleResolverTest.php @@ -25,7 +25,7 @@ class ModuleResolverTest extends MagentoTestCase * Before test functionality * @return void */ - public function setUp() + public function setUp(): void { TestLoggingUtil::getInstance()->setMockLoggingUtil(); } @@ -34,7 +34,7 @@ public function setUp() * After class functionality * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { TestLoggingUtil::getInstance()->clearMockLoggingUtil(); } @@ -57,7 +57,6 @@ public function testGetModulePathsAlreadySet() */ public function testGetModulePathsAggregate() { - $this->mockForceGenerate(false); $this->setMockResolverClass( false, @@ -874,7 +873,7 @@ private function mockForceGenerate($forceGenerate) * After method functionality * @return void */ - protected function tearDown() + protected function tearDown(): void { // re set env if (!isset($_ENV['MAGENTO_ADMIN_USERNAME'])) { diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Util/TestGeneratorTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Util/TestGeneratorTest.php index e11b0f9b2..9eefbd94a 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Util/TestGeneratorTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Util/TestGeneratorTest.php @@ -23,7 +23,7 @@ class TestGeneratorTest extends MagentoTestCase * * @return void */ - public function tearDown() + public function tearDown(): void { AspectMock::clean(); } @@ -70,8 +70,8 @@ public function testSkippedNoGeneration() $testGeneratorObject = TestGenerator::getInstance("", ["sampleTest" => $testObject]); $output = $testGeneratorObject->assembleTestPhp($testObject); - $this->assertContains('This test is skipped', $output); - $this->assertNotContains($actionInput, $output); + $this->assertStringContainsString('This test is skipped', $output); + $this->assertStringNotContainsString($actionInput, $output); } /** @@ -106,9 +106,9 @@ public function testAllowSkipped() $testGeneratorObject = TestGenerator::getInstance("", ["sampleTest" => $testObject]); $output = $testGeneratorObject->assembleTestPhp($testObject); - $this->assertNotContains('This test is skipped', $output); - $this->assertContains($actionInput, $output); - $this->assertContains($beforeActionInput, $output); + $this->assertStringNotContainsString('This test is skipped', $output); + $this->assertStringContainsString($actionInput, $output); + $this->assertStringContainsString($beforeActionInput, $output); } /** diff --git a/dev/tests/unit/Util/MagentoTestCase.php b/dev/tests/unit/Util/MagentoTestCase.php index 6a4e5d35b..9d3a0a6f4 100644 --- a/dev/tests/unit/Util/MagentoTestCase.php +++ b/dev/tests/unit/Util/MagentoTestCase.php @@ -14,7 +14,7 @@ */ class MagentoTestCase extends TestCase { - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { if (!self::fileExists(DOCS_OUTPUT_DIR)) { mkdir(DOCS_OUTPUT_DIR, 0755, true); @@ -26,7 +26,7 @@ public static function setUpBeforeClass() * Teardown for removing AspectMock Double References * @return void */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { AspectMock::clean(); array_map('unlink', glob(DOCS_OUTPUT_DIR . DIRECTORY_SEPARATOR . "*")); diff --git a/dev/tests/verification/Tests/SchemaValidationTest.php b/dev/tests/verification/Tests/SchemaValidationTest.php index 92442bd37..c6187974c 100644 --- a/dev/tests/verification/Tests/SchemaValidationTest.php +++ b/dev/tests/verification/Tests/SchemaValidationTest.php @@ -35,7 +35,7 @@ public function testInvalidTestSchema() * After method functionality * @return void */ - protected function tearDown() + protected function tearDown(): void { AspectMock::clean(); } diff --git a/dev/tests/verification/Tests/SuiteGenerationTest.php b/dev/tests/verification/Tests/SuiteGenerationTest.php index 485ef6411..926287aad 100644 --- a/dev/tests/verification/Tests/SuiteGenerationTest.php +++ b/dev/tests/verification/Tests/SuiteGenerationTest.php @@ -39,7 +39,7 @@ class SuiteGenerationTest extends MftfTestCase /** * Set up config.yml for testing */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { // destroy _generated if it exists if (file_exists(self::GENERATE_RESULT_DIR)) { @@ -47,7 +47,7 @@ public static function setUpBeforeClass() } } - public function setUp() + public function setUp(): void { // copy config yml file to test dir $fileSystem = new \Symfony\Component\Filesystem\Filesystem(); @@ -392,7 +392,7 @@ public function testSuiteCommentsGeneration() * revert any changes made to config.yml * remove _generated directory */ - public function tearDown() + public function tearDown(): void { DirSetupUtil::rmdirRecursive(self::GENERATE_RESULT_DIR); @@ -406,7 +406,7 @@ public function tearDown() /** * Remove yml if created during tests and did not exist before */ - public static function tearDownAfterClass() + public static function tearDownAfterClass(): void { TestLoggingUtil::getInstance()->clearMockLoggingUtil(); } diff --git a/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php b/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php index 6f45ae253..76fa6913f 100644 --- a/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php +++ b/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php @@ -6,6 +6,7 @@ namespace Magento\FunctionalTestingFramework\Module; +use Codeception\Lib\Actor\Shared\Pause; use Codeception\Module\WebDriver; use Codeception\Test\Descriptor; use Codeception\TestInterface; @@ -52,6 +53,7 @@ class MagentoWebDriver extends WebDriver { use AttachmentSupport; + use Pause; const MAGENTO_CRON_INTERVAL = 60; const MAGENTO_CRON_COMMAND = 'cron:run'; @@ -256,7 +258,7 @@ public function dontSeeInCurrentUrl($needle) $actualUrl = $this->webDriver->getCurrentURL(); $comparison = "Expected: $needle\nActual: $actualUrl"; AllureHelper::addAttachmentToCurrentStep($comparison, 'Comparison'); - $this->assertNotContains($needle, $actualUrl); + $this->assertStringNotContainsString($needle, $actualUrl); } /** @@ -325,7 +327,7 @@ public function seeInCurrentUrl($needle) $actualUrl = $this->webDriver->getCurrentURL(); $comparison = "Expected: $needle\nActual: $actualUrl"; AllureHelper::addAttachmentToCurrentStep($comparison, 'Comparison'); - $this->assertContains($needle, $actualUrl); + $this->assertStringContainsString($needle, $actualUrl); } /** @@ -708,7 +710,7 @@ public function assertElementContainsAttribute($selector, $attribute, $value) // When an "attribute" is blank or null it returns "true" so we assert that "true" is present. $this->assertEquals($attributes, 'true'); } else { - $this->assertContains($value, $attributes); + $this->assertStringContainsString($value, $attributes); } } @@ -1093,4 +1095,25 @@ private function executeCronjobs($cronGroups, $timeout, $arguments): string return sprintf('%s (wait: %ss, execution: %ss)', $cronResult, $waitFor, round($timeEnd - $timeStart, 2)); } + + /** + * Switch to another frame on the page by name, ID, CSS or XPath. + * + * @param string|null $locator + * @return void + * @throws \Exception + */ + public function switchToIFrame($locator = null) + { + try { + parent::switchToIFrame($locator); + } catch (\Exception $e) { + $els = $this->_findElements("#$locator"); + if (!count($els)) { + $this->debug('Failed to find locator by ID: ' . $e->getMessage()); + throw new \Exception("IFrame with $locator was not found."); + } + $this->webDriver->switchTo()->frame($els[0]); + } + } } From 21c6bf95097396992c1acacd825de739b55c2e2e Mon Sep 17 00:00:00 2001 From: Alex Kolesnyk Date: Thu, 4 Feb 2021 09:48:22 -0600 Subject: [PATCH 02/10] Add PHP 7.4 --- .github/workflows/main.yml | 8 +- composer.json | 2 +- composer.lock | 1277 +++++++++++++---- .../Console/BuildProjectCommand.php | 2 +- .../Console/RunManifestCommand.php | 2 +- .../Console/RunTestCommand.php | 2 +- .../Console/RunTestGroupCommand.php | 2 +- .../Helper/MagentoFakerData.php | 2 + .../Module/MagentoWebDriver.php | 2 + 9 files changed, 1033 insertions(+), 266 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ab768ddc5..b0db760f8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - php-versions: ['7.3'] + php-versions: ['7.3', '7.4'] steps: - uses: actions/checkout@v2 @@ -53,7 +53,7 @@ jobs: strategy: fail-fast: false matrix: - php-versions: ['7.3'] + php-versions: ['7.3', '7.4'] steps: - uses: actions/checkout@v2 @@ -85,7 +85,7 @@ jobs: strategy: fail-fast: false matrix: - php-versions: ['7.3'] + php-versions: ['7.3', '7.4'] steps: - uses: actions/checkout@v2 @@ -117,7 +117,7 @@ jobs: strategy: fail-fast: false matrix: - php-versions: ['7.3'] + php-versions: ['7.3', '7.4'] services: chrome: diff --git a/composer.json b/composer.json index 3d72bcb42..fcf7350bb 100755 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ "sort-packages": true }, "require": { - "php": "~7.3.0", + "php": "^7.3", "ext-curl": "*", "ext-dom": "*", "ext-json": "*", diff --git a/composer.lock b/composer.lock index f68427e19..130b4fb23 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "16231ee8eb05c3ec6b54ac51fe72ecec", + "content-hash": "64777caafb3e49509f5b3ea84bcde5f0", "packages": [ { "name": "allure-framework/allure-codeception", @@ -112,16 +112,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.133.46", + "version": "3.173.2", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "98d359e61b365f3040ca61c66ae8883334cf5d74" + "reference": "1ab4f565744aea8e9560ee8aaffb19b87238c7d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/98d359e61b365f3040ca61c66ae8883334cf5d74", - "reference": "98d359e61b365f3040ca61c66ae8883334cf5d74", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/1ab4f565744aea8e9560ee8aaffb19b87238c7d5", + "reference": "1ab4f565744aea8e9560ee8aaffb19b87238c7d5", "shasum": "" }, "require": { @@ -144,6 +144,7 @@ "ext-pcntl": "*", "ext-sockets": "*", "nette/neon": "^2.3", + "paragonie/random_compat": ">= 2", "phpunit/phpunit": "^4.8.35|^5.4.3", "psr/cache": "^1.0", "psr/simple-cache": "^1.0", @@ -192,29 +193,30 @@ "s3", "sdk" ], - "time": "2020-03-27T18:15:32+00:00" + "time": "2021-02-03T21:12:51+00:00" }, { "name": "behat/gherkin", - "version": "v4.7.1", + "version": "v4.8.0", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", - "reference": "987bcdc3d29ba433e6bd4b1db4ae59737ba3dacd" + "reference": "2391482cd003dfdc36b679b27e9f5326bd656acd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/987bcdc3d29ba433e6bd4b1db4ae59737ba3dacd", - "reference": "987bcdc3d29ba433e6bd4b1db4ae59737ba3dacd", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/2391482cd003dfdc36b679b27e9f5326bd656acd", + "reference": "2391482cd003dfdc36b679b27e9f5326bd656acd", "shasum": "" }, "require": { - "php": ">=5.6" + "php": "~7.2|~8.0" }, "require-dev": { - "phpunit/phpunit": "~5.7|~6|~7", - "symfony/phpunit-bridge": "~2.7|~3|~4", - "symfony/yaml": "~2.3|~3|~4" + "cucumber/cucumber": "dev-gherkin-16.0.0", + "phpunit/phpunit": "~8|~9", + "symfony/phpunit-bridge": "~3|~4|~5", + "symfony/yaml": "~3|~4|~5" }, "suggest": { "symfony/yaml": "If you want to parse features, represented in YAML files" @@ -251,7 +253,7 @@ "gherkin", "parser" ], - "time": "2021-01-26T16:24:32+00:00" + "time": "2021-02-04T12:44:21+00:00" }, { "name": "brick/math", @@ -297,6 +299,12 @@ "brick", "math" ], + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/brick/math", + "type": "tidelift" + } + ], "time": "2021-01-20T22:51:39+00:00" }, { @@ -475,6 +483,12 @@ "functional testing", "unit testing" ], + "funding": [ + { + "url": "https://opencollective.com/codeception", + "type": "open_collective" + } + ], "time": "2021-02-01T07:30:47+00:00" }, { @@ -749,16 +763,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.2.6", + "version": "1.2.9", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "47fe531de31fca4a1b997f87308e7d7804348f7e" + "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/47fe531de31fca4a1b997f87308e7d7804348f7e", - "reference": "47fe531de31fca4a1b997f87308e7d7804348f7e", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/78a0e288fdcebf92aa2318a8d3656168da6ac1a5", + "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5", "shasum": "" }, "require": { @@ -767,14 +781,15 @@ "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", + "phpstan/phpstan": "^0.12.55", "psr/log": "^1.0", + "symfony/phpunit-bridge": "^4.2 || ^5", "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "1.x-dev" } }, "autoload": { @@ -801,20 +816,34 @@ "ssl", "tls" ], - "time": "2020-01-13T10:02:55+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2021-01-12T12:10:35+00:00" }, { "name": "composer/composer", - "version": "1.10.1", + "version": "1.10.20", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "b912a45da3e2b22f5cb5a23e441b697a295ba011" + "reference": "e55d297525f0ecc805c813a0f63a40114fd670f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/b912a45da3e2b22f5cb5a23e441b697a295ba011", - "reference": "b912a45da3e2b22f5cb5a23e441b697a295ba011", + "url": "https://api.github.com/repos/composer/composer/zipball/e55d297525f0ecc805c813a0f63a40114fd670f6", + "reference": "e55d297525f0ecc805c813a0f63a40114fd670f6", "shasum": "" }, "require": { @@ -822,8 +851,8 @@ "composer/semver": "^1.0", "composer/spdx-licenses": "^1.2", "composer/xdebug-handler": "^1.1", - "justinrainbow/json-schema": "^3.0 || ^4.0 || ^5.0", - "php": "^5.3.2 || ^7.0", + "justinrainbow/json-schema": "^5.2.10", + "php": "^5.3.2 || ^7.0 || ^8.0", "psr/log": "^1.0", "seld/jsonlint": "^1.4", "seld/phar-utils": "^1.0", @@ -837,7 +866,7 @@ }, "require-dev": { "phpspec/prophecy": "^1.10", - "symfony/phpunit-bridge": "^3.4" + "symfony/phpunit-bridge": "^4.2" }, "suggest": { "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", @@ -881,24 +910,38 @@ "dependency", "package" ], - "time": "2020-03-13T19:34:27+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2021-01-27T14:41:06+00:00" }, { "name": "composer/semver", - "version": "1.5.1", + "version": "1.7.2", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de" + "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/c6bea70230ef4dd483e6bbcab6005f682ed3a8de", - "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de", + "url": "https://api.github.com/repos/composer/semver/zipball/647490bbcaf7fc4891c58f47b825eb99d19c377a", + "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0" + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { "phpunit/phpunit": "^4.5 || ^5.0.5" @@ -942,20 +985,34 @@ "validation", "versioning" ], - "time": "2020-01-13T12:06:48+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-12-03T15:47:16+00:00" }, { "name": "composer/spdx-licenses", - "version": "1.5.3", + "version": "1.5.5", "source": { "type": "git", "url": "https://github.com/composer/spdx-licenses.git", - "reference": "0c3e51e1880ca149682332770e25977c70cf9dae" + "reference": "de30328a7af8680efdc03e396aad24befd513200" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/0c3e51e1880ca149682332770e25977c70cf9dae", - "reference": "0c3e51e1880ca149682332770e25977c70cf9dae", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/de30328a7af8680efdc03e396aad24befd513200", + "reference": "de30328a7af8680efdc03e396aad24befd513200", "shasum": "" }, "require": { @@ -967,7 +1024,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "1.x-dev" } }, "autoload": { @@ -1002,20 +1059,34 @@ "spdx", "validator" ], - "time": "2020-02-14T07:44:31+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-12-03T16:04:16+00:00" }, { "name": "composer/xdebug-handler", - "version": "1.4.1", + "version": "1.4.5", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7" + "reference": "f28d44c286812c714741478d968104c5e604a1d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/1ab9842d69e64fb3a01be6b656501032d1b78cb7", - "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4", + "reference": "f28d44c286812c714741478d968104c5e604a1d4", "shasum": "" }, "require": { @@ -1046,7 +1117,21 @@ "Xdebug", "performance" ], - "time": "2020-03-01T12:26:26+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-13T08:04:11+00:00" }, { "name": "csharpru/vault-php", @@ -1391,6 +1476,20 @@ "constructor", "instantiate" ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], "time": "2020-11-10T18:47:58+00:00" }, { @@ -1453,6 +1552,20 @@ "parser", "php" ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], "time": "2020-05-25T17:44:05+00:00" }, { @@ -1499,16 +1612,16 @@ }, { "name": "fzaninotto/faker", - "version": "v1.9.1", + "version": "v1.9.2", "source": { "type": "git", "url": "https://github.com/fzaninotto/Faker.git", - "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f" + "reference": "848d8125239d7dbf8ab25cb7f054f1a630e68c2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f", - "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/848d8125239d7dbf8ab25cb7f054f1a630e68c2e", + "reference": "848d8125239d7dbf8ab25cb7f054f1a630e68c2e", "shasum": "" }, "require": { @@ -1546,20 +1659,20 @@ "fixtures" ], "abandoned": true, - "time": "2019-12-12T13:22:17+00:00" + "time": "2020-12-11T09:56:16+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "6.5.3", + "version": "6.5.5", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "aab4ebd862aa7d04f01a4b51849d657db56d882e" + "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/aab4ebd862aa7d04f01a4b51849d657db56d882e", - "reference": "aab4ebd862aa7d04f01a4b51849d657db56d882e", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", + "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", "shasum": "" }, "require": { @@ -1567,7 +1680,7 @@ "guzzlehttp/promises": "^1.0", "guzzlehttp/psr7": "^1.6.1", "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.11" + "symfony/polyfill-intl-idn": "^1.17.0" }, "require-dev": { "ext-curl": "*", @@ -1613,7 +1726,7 @@ "rest", "web service" ], - "time": "2020-04-18T10:38:46+00:00" + "time": "2020-06-16T21:01:06+00:00" }, { "name": "guzzlehttp/promises", @@ -1913,16 +2026,16 @@ }, { "name": "justinrainbow/json-schema", - "version": "5.2.9", + "version": "5.2.10", "source": { "type": "git", "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "44c6787311242a979fa15c704327c20e7221a0e4" + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/44c6787311242a979fa15c704327c20e7221a0e4", - "reference": "44c6787311242a979fa15c704327c20e7221a0e4", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", "shasum": "" }, "require": { @@ -1975,32 +2088,33 @@ "json", "schema" ], - "time": "2019-09-25T14:49:45+00:00" + "time": "2020-05-27T16:41:55+00:00" }, { "name": "league/flysystem", - "version": "1.0.66", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "021569195e15f8209b1c4bebb78bd66aa4f08c21" + "reference": "9be3b16c877d477357c015cec057548cf9b2a14a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/021569195e15f8209b1c4bebb78bd66aa4f08c21", - "reference": "021569195e15f8209b1c4bebb78bd66aa4f08c21", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/9be3b16c877d477357c015cec057548cf9b2a14a", + "reference": "9be3b16c877d477357c015cec057548cf9b2a14a", "shasum": "" }, "require": { "ext-fileinfo": "*", - "php": ">=5.5.9" + "league/mime-type-detection": "^1.3", + "php": "^7.2.5 || ^8.0" }, "conflict": { "league/flysystem-sftp": "<1.0.6" }, "require-dev": { - "phpspec/phpspec": "^3.4", - "phpunit/phpunit": "^5.7.26" + "phpspec/prophecy": "^1.11.1", + "phpunit/phpunit": "^8.5.8" }, "suggest": { "ext-fileinfo": "Required for MimeType", @@ -2059,20 +2173,78 @@ "sftp", "storage" ], - "time": "2020-03-17T18:58:12+00:00" + "funding": [ + { + "url": "https://offset.earth/frankdejonge", + "type": "other" + } + ], + "time": "2020-08-23T07:39:11+00:00" + }, + { + "name": "league/mime-type-detection", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", + "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.18", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\MimeTypeDetection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Mime-type detection for Flysystem", + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2021-01-18T20:58:21+00:00" }, { "name": "monolog/monolog", - "version": "1.25.3", + "version": "1.26.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1" + "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fa82921994db851a8becaf3787a9e73c5976b6f1", - "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/2209ddd84e7ef1256b7af205d0717fb62cfc9c33", + "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33", "shasum": "" }, "require": { @@ -2086,11 +2258,10 @@ "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", "graylog2/gelf-php": "~1.0", - "jakub-onderka/php-parallel-lint": "0.9", "php-amqplib/php-amqplib": "~2.4", "php-console/php-console": "^3.1.3", + "phpstan/phpstan": "^0.12.59", "phpunit/phpunit": "~4.5", - "phpunit/phpunit-mock-objects": "2.3.0", "ruflin/elastica": ">=0.90 <3.0", "sentry/sentry": "^0.13", "swiftmailer/swiftmailer": "^5.3|^6.0" @@ -2109,11 +2280,6 @@ "sentry/sentry": "Allow sending log messages to a Sentry server" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, "autoload": { "psr-4": { "Monolog\\": "src/Monolog" @@ -2137,29 +2303,39 @@ "logging", "psr-3" ], - "time": "2019-12-20T14:15:16+00:00" + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2020-12-14T12:56:38+00:00" }, { "name": "mtdowling/jmespath.php", - "version": "2.5.0", + "version": "2.6.0", "source": { "type": "git", "url": "https://github.com/jmespath/jmespath.php.git", - "reference": "52168cb9472de06979613d365c7f1ab8798be895" + "reference": "42dae2cbd13154083ca6d70099692fef8ca84bfb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/52168cb9472de06979613d365c7f1ab8798be895", - "reference": "52168cb9472de06979613d365c7f1ab8798be895", + "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/42dae2cbd13154083ca6d70099692fef8ca84bfb", + "reference": "42dae2cbd13154083ca6d70099692fef8ca84bfb", "shasum": "" }, "require": { - "php": ">=5.4.0", - "symfony/polyfill-mbstring": "^1.4" + "php": "^5.4 || ^7.0 || ^8.0", + "symfony/polyfill-mbstring": "^1.17" }, "require-dev": { - "composer/xdebug-handler": "^1.2", - "phpunit/phpunit": "^4.8.36|^7.5.15" + "composer/xdebug-handler": "^1.4", + "phpunit/phpunit": "^4.8.36 || ^7.5.15" }, "bin": [ "bin/jp.php" @@ -2167,7 +2343,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5-dev" + "dev-master": "2.6-dev" } }, "autoload": { @@ -2194,7 +2370,7 @@ "json", "jsonpath" ], - "time": "2019-12-30T18:03:34+00:00" + "time": "2020-07-31T21:01:56+00:00" }, { "name": "mustache/mustache", @@ -2288,6 +2464,12 @@ "object", "object graph" ], + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], "time": "2020-11-13T09:40:50+00:00" }, { @@ -2704,6 +2886,16 @@ "php", "type" ], + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } + ], "time": "2020-07-20T17:29:33+00:00" }, { @@ -2831,6 +3023,12 @@ "testing", "xunit" ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-05-23T08:02:54+00:00" }, { @@ -2881,6 +3079,12 @@ "filesystem", "iterator" ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-09-28T05:57:25+00:00" }, { @@ -2934,6 +3138,12 @@ "keywords": [ "process" ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-09-28T05:58:55+00:00" }, { @@ -2983,6 +3193,12 @@ "keywords": [ "template" ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-10-26T05:33:50+00:00" }, { @@ -3032,6 +3248,12 @@ "keywords": [ "timer" ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-10-26T13:16:10+00:00" }, { @@ -3081,6 +3303,12 @@ "keywords": [ "tokenizer" ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "abandoned": true, "time": "2020-08-04T08:28:15+00:00" }, @@ -3170,6 +3398,16 @@ "testing", "xunit" ], + "funding": [ + { + "url": "https://phpunit.de/donate.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-07-13T17:55:55+00:00" }, { @@ -3513,6 +3751,16 @@ "queue", "set" ], + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" + } + ], "time": "2021-01-21T17:40:04+00:00" }, { @@ -3594,6 +3842,12 @@ "identifier", "uuid" ], + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + } + ], "time": "2020-08-18T17:17:46+00:00" }, { @@ -3640,6 +3894,12 @@ ], "description": "Collection of value objects that represent the PHP code units", "homepage": "https://github.com/sebastianbergmann/code-unit", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-10-26T13:08:54+00:00" }, { @@ -3685,6 +3945,12 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-09-28T05:30:19+00:00" }, { @@ -3749,6 +4015,12 @@ "compare", "equality" ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-10-26T15:49:45+00:00" }, { @@ -3805,6 +4077,12 @@ "unidiff", "unified diff" ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-10-26T13:10:38+00:00" }, { @@ -3858,6 +4136,12 @@ "environment", "hhvm" ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-09-28T05:52:38+00:00" }, { @@ -3925,6 +4209,12 @@ "export", "exporter" ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-09-28T05:24:23+00:00" }, { @@ -4026,6 +4316,12 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-10-26T13:12:34+00:00" }, { @@ -4071,6 +4367,12 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-10-26T13:14:26+00:00" }, { @@ -4124,6 +4426,12 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-10-26T13:17:30+00:00" }, { @@ -4169,6 +4477,12 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-09-28T06:45:17+00:00" }, { @@ -4215,6 +4529,12 @@ ], "description": "Collection of value objects that represent the types of the PHP type system", "homepage": "https://github.com/sebastianbergmann/type", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-10-26T13:18:59+00:00" }, { @@ -4258,24 +4578,30 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-09-28T06:39:44+00:00" }, { "name": "seld/jsonlint", - "version": "1.7.2", + "version": "1.8.3", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "e2e5d290e4d2a4f0eb449f510071392e00e10d19" + "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/e2e5d290e4d2a4f0eb449f510071392e00e10d19", - "reference": "e2e5d290e4d2a4f0eb449f510071392e00e10d19", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9ad6ce79c342fbd44df10ea95511a1b24dee5b57", + "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57", "shasum": "" }, "require": { - "php": "^5.3 || ^7.0" + "php": "^5.3 || ^7.0 || ^8.0" }, "require-dev": { "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" @@ -4307,20 +4633,30 @@ "parser", "validator" ], - "time": "2019-10-24T14:27:39+00:00" + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", + "type": "tidelift" + } + ], + "time": "2020-11-11T09:19:24+00:00" }, { "name": "seld/phar-utils", - "version": "1.1.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/Seldaek/phar-utils.git", - "reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0" + "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8800503d56b9867d43d9c303b9cbcc26016e82f0", - "reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8674b1d84ffb47cc59a101f5d5a3b61e87d23796", + "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796", "shasum": "" }, "require": { @@ -4351,26 +4687,27 @@ "keywords": [ "phar" ], - "time": "2020-02-14T15:25:33+00:00" + "time": "2020-07-07T18:42:57+00:00" }, { "name": "symfony/console", - "version": "v4.4.6", + "version": "v4.4.19", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "20bc0c1068565103075359f5ce9e0639b36f92d1" + "reference": "24026c44fc37099fa145707fecd43672831b837a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/20bc0c1068565103075359f5ce9e0639b36f92d1", - "reference": "20bc0c1068565103075359f5ce9e0639b36f92d1", + "url": "https://api.github.com/repos/symfony/console/zipball/24026c44fc37099fa145707fecd43672831b837a", + "reference": "24026c44fc37099fa145707fecd43672831b837a", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=7.1.3", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1|^2" }, "conflict": { @@ -4398,11 +4735,6 @@ "symfony/process": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Console\\": "" @@ -4425,13 +4757,27 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Console Component", + "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", - "time": "2020-03-16T08:56:54+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T09:09:26+00:00" }, { "name": "symfony/css-selector", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", @@ -4475,6 +4821,20 @@ ], "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2021-01-27T10:01:46+00:00" }, { @@ -4525,6 +4885,20 @@ ], "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2020-09-07T11:33:47+00:00" }, { @@ -4591,6 +4965,20 @@ ], "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2021-01-27T09:09:26+00:00" }, { @@ -4653,11 +5041,25 @@ "interoperability", "standards" ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2020-07-06T13:19:58+00:00" }, { "name": "symfony/filesystem", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", @@ -4698,20 +5100,34 @@ ], "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/finder", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "196f45723b5e618bf0e23b97e96d11652696ea9e" + "reference": "4adc8d172d602008c204c2e16956f99257248e03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/196f45723b5e618bf0e23b97e96d11652696ea9e", - "reference": "196f45723b5e618bf0e23b97e96d11652696ea9e", + "url": "https://api.github.com/repos/symfony/finder/zipball/4adc8d172d602008c204c2e16956f99257248e03", + "reference": "4adc8d172d602008c204c2e16956f99257248e03", "shasum": "" }, "require": { @@ -4742,20 +5158,34 @@ ], "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", - "time": "2021-01-27T10:01:46+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-28T22:06:19+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "16dfa5acf8103f0394d447f8eea3ea49f9e50855" + "reference": "20c554c0f03f7cde5ce230ed248470cccbc34c36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/16dfa5acf8103f0394d447f8eea3ea49f9e50855", - "reference": "16dfa5acf8103f0394d447f8eea3ea49f9e50855", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/20c554c0f03f7cde5ce230ed248470cccbc34c36", + "reference": "20c554c0f03f7cde5ce230ed248470cccbc34c36", "shasum": "" }, "require": { @@ -4798,20 +5228,34 @@ ], "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", - "time": "2021-01-27T11:19:04+00:00" - }, - { - "name": "symfony/mime", - "version": "v5.2.2", - "source": { - "type": "git", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-03T04:42:09+00:00" + }, + { + "name": "symfony/mime", + "version": "v5.2.3", + "source": { + "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "37bade585ea100d235c031b258eff93b5b6bb9a9" + "reference": "7dee6a43493f39b51ff6c5bb2bd576fe40a76c86" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/37bade585ea100d235c031b258eff93b5b6bb9a9", - "reference": "37bade585ea100d235c031b258eff93b5b6bb9a9", + "url": "https://api.github.com/repos/symfony/mime/zipball/7dee6a43493f39b51ff6c5bb2bd576fe40a76c86", + "reference": "7dee6a43493f39b51ff6c5bb2bd576fe40a76c86", "shasum": "" }, "require": { @@ -4863,7 +5307,21 @@ "mime", "mime-type" ], - "time": "2021-01-25T14:08:25+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-02T06:10:15+00:00" }, { "name": "symfony/polyfill-ctype", @@ -4925,25 +5383,39 @@ "polyfill", "portable" ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.15.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf" + "reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf", - "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44", + "reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/polyfill-mbstring": "^1.3", + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", "symfony/polyfill-php72": "^1.10" }, "suggest": { @@ -4952,7 +5424,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -4972,6 +5448,10 @@ "name": "Laurent Bassin", "email": "laurent@bassin.info" }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" @@ -4987,7 +5467,102 @@ "portable", "shim" ], - "time": "2020-03-09T19:04:49+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T16:49:33+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.22.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "6e971c891537eb617a00bb07a43d182a6915faba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/6e971c891537eb617a00bb07a43d182a6915faba", + "reference": "6e971c891537eb617a00bb07a43d182a6915faba", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T17:09:11+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -5050,29 +5625,47 @@ "portable", "shim" ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.15.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "37b0976c78b94856543260ce09b460a7bc852747" + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/37b0976c78b94856543260ce09b460a7bc852747", - "reference": "37b0976c78b94856543260ce09b460a7bc852747", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -5105,29 +5698,47 @@ "portable", "shim" ], - "time": "2020-02-27T09:26:54+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.15.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7" + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", - "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -5163,7 +5774,21 @@ "portable", "shim" ], - "time": "2020-02-27T09:26:54+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php80", @@ -5229,31 +5854,40 @@ "portable", "shim" ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/process", - "version": "v4.4.6", + "version": "v4.4.19", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "b9863d0f7b684d7c4c13e665325b5ff047de0aee" + "reference": "7e950b6366d4da90292c2e7fa820b3c1842b965a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/b9863d0f7b684d7c4c13e665325b5ff047de0aee", - "reference": "b9863d0f7b684d7c4c13e665325b5ff047de0aee", + "url": "https://api.github.com/repos/symfony/process/zipball/7e950b6366d4da90292c2e7fa820b3c1842b965a", + "reference": "7e950b6366d4da90292c2e7fa820b3c1842b965a", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=7.1.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Process\\": "" @@ -5276,26 +5910,40 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Process Component", + "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", - "time": "2020-03-23T12:37:11+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T09:09:26+00:00" }, { "name": "symfony/service-contracts", - "version": "v1.1.8", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf" + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/ffc7f5692092df31515df2a5ecf3b7302b3ddacf", - "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=7.2.5", "psr/container": "^1.0" }, "suggest": { @@ -5304,7 +5952,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -5336,7 +5988,21 @@ "interoperability", "standards" ], - "time": "2019-10-14T12:27:06+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-09-07T11:33:47+00:00" }, { "name": "symfony/yaml", @@ -5390,6 +6056,20 @@ ], "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2021-01-27T09:09:26+00:00" }, { @@ -5430,28 +6110,40 @@ } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], "time": "2020-07-12T23:59:07+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v2.6.1", + "version": "v2.6.7", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "2a7dcf7e3e02dc5e701004e51a6f304b713107d5" + "reference": "b786088918a884258c9e3e27405c6a4cf2ee246e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2a7dcf7e3e02dc5e701004e51a6f304b713107d5", - "reference": "2a7dcf7e3e02dc5e701004e51a6f304b713107d5", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/b786088918a884258c9e3e27405c6a4cf2ee246e", + "reference": "b786088918a884258c9e3e27405c6a4cf2ee246e", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/polyfill-ctype": "^1.9" + "php": "^5.3.9 || ^7.0 || ^8.0", + "symfony/polyfill-ctype": "^1.17" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.0" + "ext-filter": "*", + "ext-pcre": "*", + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20" + }, + "suggest": { + "ext-filter": "Required to use the boolean validator.", + "ext-pcre": "Required to use most of the library." }, "type": "library", "extra": { @@ -5469,10 +6161,15 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "homepage": "https://gjcampbell.co.uk/" + }, { "name": "Vance Lucas", "email": "vance@vancelucas.com", - "homepage": "http://www.vancelucas.com" + "homepage": "https://vancelucas.com/" } ], "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", @@ -5481,7 +6178,17 @@ "env", "environment" ], - "time": "2019-01-29T11:11:52+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "type": "tidelift" + } + ], + "time": "2021-01-20T14:39:13+00:00" }, { "name": "webmozart/assert", @@ -5573,16 +6280,16 @@ "packages-dev": [ { "name": "brainmaestro/composer-git-hooks", - "version": "v2.8.3", + "version": "v2.8.4", "source": { "type": "git", "url": "https://github.com/BrainMaestro/composer-git-hooks.git", - "reference": "97888dd34e900931117747cd34a42fdfcf271142" + "reference": "06f8cc6eb5771791c5b50356c033523e7fa69587" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/BrainMaestro/composer-git-hooks/zipball/97888dd34e900931117747cd34a42fdfcf271142", - "reference": "97888dd34e900931117747cd34a42fdfcf271142", + "url": "https://api.github.com/repos/BrainMaestro/composer-git-hooks/zipball/06f8cc6eb5771791c5b50356c033523e7fa69587", + "reference": "06f8cc6eb5771791c5b50356c033523e7fa69587", "shasum": "" }, "require": { @@ -5638,7 +6345,7 @@ "composer", "git" ], - "time": "2019-12-09T09:49:20+00:00" + "time": "2021-01-26T14:47:34+00:00" }, { "name": "codacy/coverage", @@ -5733,26 +6440,27 @@ }, { "name": "gitonomy/gitlib", - "version": "v1.2.1", + "version": "v1.2.3", "source": { "type": "git", "url": "https://github.com/gitonomy/gitlib.git", - "reference": "718ca021c67f3ea8f6a5fa5d231ec49675068868" + "reference": "d22f212b97fdb631ac73dfae65c194dc4cb0d227" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/gitonomy/gitlib/zipball/718ca021c67f3ea8f6a5fa5d231ec49675068868", - "reference": "718ca021c67f3ea8f6a5fa5d231ec49675068868", + "url": "https://api.github.com/repos/gitonomy/gitlib/zipball/d22f212b97fdb631ac73dfae65c194dc4cb0d227", + "reference": "d22f212b97fdb631ac73dfae65c194dc4cb0d227", "shasum": "" }, "require": { "ext-pcre": "*", - "php": "^5.6 || ^7.0", + "php": "^5.6 || ^7.0 || ^8.0", "symfony/polyfill-mbstring": "^1.7", - "symfony/process": "^3.4|^4.0|^5.0" + "symfony/process": "^3.4 || ^4.0 || ^5.0" }, "require-dev": { - "phpunit/phpunit": "^5.7|^6.5|^7.0", + "ext-fileinfo": "*", + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.0 || ^8.0 || ^9.0", "psr/log": "^1.0" }, "suggest": { @@ -5760,11 +6468,6 @@ "psr/log": "Required to use loggers for reporting of execution" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-dev" - } - }, "autoload": { "psr-4": { "Gitonomy\\Git\\": "src/Gitonomy/Git/" @@ -5793,7 +6496,13 @@ } ], "description": "Library for accessing git", - "time": "2020-03-23T12:43:44+00:00" + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/gitonomy/gitlib", + "type": "tidelift" + } + ], + "time": "2020-12-29T16:48:45+00:00" }, { "name": "goaop/framework", @@ -6116,16 +6825,16 @@ }, { "name": "pdepend/pdepend", - "version": "2.7.1", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/pdepend/pdepend.git", - "reference": "daba1cf0a6edaf172fa02a17807ae29f4c1c7471" + "reference": "c64472f8e76ca858c79ad9a4cf1e2734b3f8cc38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/daba1cf0a6edaf172fa02a17807ae29f4c1c7471", - "reference": "daba1cf0a6edaf172fa02a17807ae29f4c1c7471", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/c64472f8e76ca858c79ad9a4cf1e2734b3f8cc38", + "reference": "c64472f8e76ca858c79ad9a4cf1e2734b3f8cc38", "shasum": "" }, "require": { @@ -6159,7 +6868,13 @@ "BSD-3-Clause" ], "description": "Official version of pdepend to be handled with Composer", - "time": "2020-02-08T12:06:13+00:00" + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend", + "type": "tidelift" + } + ], + "time": "2020-06-20T10:53:13+00:00" }, { "name": "php-coveralls/php-coveralls", @@ -6224,16 +6939,16 @@ }, { "name": "phpmd/phpmd", - "version": "2.8.2", + "version": "2.9.1", "source": { "type": "git", "url": "https://github.com/phpmd/phpmd.git", - "reference": "714629ed782537f638fe23c4346637659b779a77" + "reference": "ce10831d4ddc2686c1348a98069771dd314534a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmd/phpmd/zipball/714629ed782537f638fe23c4346637659b779a77", - "reference": "714629ed782537f638fe23c4346637659b779a77", + "url": "https://api.github.com/repos/phpmd/phpmd/zipball/ce10831d4ddc2686c1348a98069771dd314534a8", + "reference": "ce10831d4ddc2686c1348a98069771dd314534a8", "shasum": "" }, "require": { @@ -6244,6 +6959,8 @@ }, "require-dev": { "easy-doc/easy-doc": "0.0.0 || ^1.3.2", + "ext-json": "*", + "ext-simplexml": "*", "gregwar/rst": "^1.0", "mikey179/vfsstream": "^1.6.4", "phpunit/phpunit": "^4.8.36 || ^5.7.27", @@ -6290,7 +7007,13 @@ "phpmd", "pmd" ], - "time": "2020-02-16T20:15:50+00:00" + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/phpmd/phpmd", + "type": "tidelift" + } + ], + "time": "2020-09-23T22:06:32+00:00" }, { "name": "rregeer/phpunit-coverage-check", @@ -6378,6 +7101,12 @@ ], "description": "Library for parsing CLI options", "homepage": "https://github.com/sebastianbergmann/cli-parser", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-09-28T06:08:49+00:00" }, { @@ -6429,20 +7158,26 @@ ], "description": "Copy/Paste Detector (CPD) for PHP code.", "homepage": "https://github.com/sebastianbergmann/phpcpd", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], "time": "2020-12-07T05:39:23+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.5.4", + "version": "3.5.8", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "dceec07328401de6211037abbb18bda423677e26" + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dceec07328401de6211037abbb18bda423677e26", - "reference": "dceec07328401de6211037abbb18bda423677e26", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9d583721a7157ee997f235f327de038e7ea6dac4", + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4", "shasum": "" }, "require": { @@ -6480,24 +7215,24 @@ "phpcs", "standards" ], - "time": "2020-01-30T22:20:29+00:00" + "time": "2020-10-23T02:01:07+00:00" }, { "name": "symfony/config", - "version": "v4.4.6", + "version": "v4.4.19", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "235e5afffd3a1a1b0dd0221973cbf670bc3be1d4" + "reference": "2c4c7827a7e143f5cf375666641b0f448eab8802" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/235e5afffd3a1a1b0dd0221973cbf670bc3be1d4", - "reference": "235e5afffd3a1a1b0dd0221973cbf670bc3be1d4", + "url": "https://api.github.com/repos/symfony/config/zipball/2c4c7827a7e143f5cf375666641b0f448eab8802", + "reference": "2c4c7827a7e143f5cf375666641b0f448eab8802", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=7.1.3", "symfony/filesystem": "^3.4|^4.0|^5.0", "symfony/polyfill-ctype": "~1.8" }, @@ -6515,11 +7250,6 @@ "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Config\\": "" @@ -6542,26 +7272,40 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Config Component", + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", - "time": "2020-03-16T11:24:17+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T09:09:26+00:00" }, { "name": "symfony/dependency-injection", - "version": "v4.4.6", + "version": "v4.4.19", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "b4242fc7f18c8bf5427f84d5afe2131c9b323a04" + "reference": "2468b95d869c872c6fb1b93b395a7fcd5331f2b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/b4242fc7f18c8bf5427f84d5afe2131c9b323a04", - "reference": "b4242fc7f18c8bf5427f84d5afe2131c9b323a04", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/2468b95d869c872c6fb1b93b395a7fcd5331f2b9", + "reference": "2468b95d869c872c6fb1b93b395a7fcd5331f2b9", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=7.1.3", "psr/container": "^1.0", "symfony/service-contracts": "^1.1.6|^2" }, @@ -6588,11 +7332,6 @@ "symfony/yaml": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\DependencyInjection\\": "" @@ -6615,33 +7354,42 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony DependencyInjection Component", + "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", - "time": "2020-03-18T07:51:32+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T09:09:26+00:00" }, { "name": "symfony/stopwatch", - "version": "v3.4.38", + "version": "v3.4.47", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "e2d954156d4817c9a5c79f519a71516693a4a9c8" + "reference": "298b81faad4ce60e94466226b2abbb8c9bca7462" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/e2d954156d4817c9a5c79f519a71516693a4a9c8", - "reference": "e2d954156d4817c9a5c79f519a71516693a4a9c8", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/298b81faad4ce60e94466226b2abbb8c9bca7462", + "reference": "298b81faad4ce60e94466226b2abbb8c9bca7462", "shasum": "" }, "require": { "php": "^5.5.9|>=7.0.8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Stopwatch\\": "" @@ -6666,7 +7414,21 @@ ], "description": "Symfony Stopwatch Component", "homepage": "https://symfony.com", - "time": "2020-01-01T11:03:25+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-24T10:57:07+00:00" } ], "aliases": [], @@ -6675,11 +7437,12 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "~7.3.0", + "php": "^7.3", "ext-curl": "*", "ext-dom": "*", "ext-json": "*", "ext-openssl": "*" }, - "platform-dev": [] + "platform-dev": [], + "plugin-api-version": "1.1.0" } diff --git a/src/Magento/FunctionalTestingFramework/Console/BuildProjectCommand.php b/src/Magento/FunctionalTestingFramework/Console/BuildProjectCommand.php index 02dfcda82..4d2964ff1 100644 --- a/src/Magento/FunctionalTestingFramework/Console/BuildProjectCommand.php +++ b/src/Magento/FunctionalTestingFramework/Console/BuildProjectCommand.php @@ -67,7 +67,7 @@ protected function configure() * @param OutputInterface $output * @return void * @throws \Exception - * @SuppressWarnings(PHPMD.UnusedLocalVariable) + * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ protected function execute(InputInterface $input, OutputInterface $output) { diff --git a/src/Magento/FunctionalTestingFramework/Console/RunManifestCommand.php b/src/Magento/FunctionalTestingFramework/Console/RunManifestCommand.php index 37a90bb77..415b7bcdd 100644 --- a/src/Magento/FunctionalTestingFramework/Console/RunManifestCommand.php +++ b/src/Magento/FunctionalTestingFramework/Console/RunManifestCommand.php @@ -104,7 +104,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int * @param OutputInterface $output * @return void * - * @SuppressWarnings(PHPMD.UnusedLocalVariable) Need this because of the unused $type variable in the closure + * @SuppressWarnings(PHPMD.UnusedFormalParameter) Need this because of the unused $type variable in the closure */ private function runManifestLine(string $manifestLine, OutputInterface $output) { diff --git a/src/Magento/FunctionalTestingFramework/Console/RunTestCommand.php b/src/Magento/FunctionalTestingFramework/Console/RunTestCommand.php index 08b84d6a1..7b0550de3 100644 --- a/src/Magento/FunctionalTestingFramework/Console/RunTestCommand.php +++ b/src/Magento/FunctionalTestingFramework/Console/RunTestCommand.php @@ -168,7 +168,7 @@ private function runTestsInSuite(array $suitesConfig, OutputInterface $output) * @param OutputInterface $output * @return integer * - * @SuppressWarnings(PHPMD.UnusedLocalVariable) + * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ private function executeTestCommand(string $command, OutputInterface $output) { diff --git a/src/Magento/FunctionalTestingFramework/Console/RunTestGroupCommand.php b/src/Magento/FunctionalTestingFramework/Console/RunTestGroupCommand.php index be6236c73..ef3b3cc1a 100644 --- a/src/Magento/FunctionalTestingFramework/Console/RunTestGroupCommand.php +++ b/src/Magento/FunctionalTestingFramework/Console/RunTestGroupCommand.php @@ -51,7 +51,7 @@ protected function configure() * @return integer * @throws \Exception * - * @SuppressWarnings(PHPMD.UnusedLocalVariable) + * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ protected function execute(InputInterface $input, OutputInterface $output): int { diff --git a/src/Magento/FunctionalTestingFramework/Helper/MagentoFakerData.php b/src/Magento/FunctionalTestingFramework/Helper/MagentoFakerData.php index 9c28a3531..1d099214c 100644 --- a/src/Magento/FunctionalTestingFramework/Helper/MagentoFakerData.php +++ b/src/Magento/FunctionalTestingFramework/Helper/MagentoFakerData.php @@ -98,6 +98,8 @@ public function getProductData() * Get Content Page Data. * * @return array + * + * @SuppressWarnings(PHPMD.UnusedLocalVariable) */ public function getContentPage() { diff --git a/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php b/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php index 76fa6913f..fd1d1eebb 100644 --- a/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php +++ b/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php @@ -459,7 +459,9 @@ public function waitForLoadingMaskToDisappear($timeout = null) public function formatMoney(float $money, $locale = 'en_US.UTF-8') { $this->mSetLocale(LC_MONETARY, $locale); + // @codingStandardsIgnoreStart $money = money_format('%.2n', $money); + // @codingStandardsIgnoreEnd $this->mResetLocale(); $prefix = substr($money, 0, 1); $number = substr($money, 1); From 4640c03111b7e68617dbccf1050f5780a2532ec5 Mon Sep 17 00:00:00 2001 From: Ji Lu Date: Thu, 4 Feb 2021 17:40:31 -0600 Subject: [PATCH 03/10] MQE-2493: Update assert implementation in mftf 2.x to work with phpunit 9 --- .../verification/Resources/AssertTest.txt | 26 ++-- .../TestModule/Test/AssertTest.xml | 11 +- .../Util/TestGenerator.php | 147 ++++++++++++++++-- 3 files changed, 156 insertions(+), 28 deletions(-) diff --git a/dev/tests/verification/Resources/AssertTest.txt b/dev/tests/verification/Resources/AssertTest.txt index c0cf932ae..aa5619ede 100644 --- a/dev/tests/verification/Resources/AssertTest.txt +++ b/dev/tests/verification/Resources/AssertTest.txt @@ -45,6 +45,7 @@ class AssertTestCest $I->assertArrayNotHasKey("kiwi", ['orange' => 2, 'apple' => 1], "pass"); // stepKey: assertArrayNotHasKey $I->assertArraySubset([1, 2], [1, 2, 3, 5], "pass"); // stepKey: assertArraySubset $I->assertContains("ab", ['item1' => 'a', 'item2' => 'ab'], "pass"); // stepKey: assertContains + $I->assertStringContainsString("ab", "abcde", "pass"); // stepKey: assertStringContainsString $I->assertCount(2, ['a', 'b'], "pass"); // stepKey: assertCount $I->assertEmpty([], "pass"); // stepKey: assertEmpty $I->assertEquals($text, "Copyright © 2013-2017 Magento, Inc. All rights reserved.", "pass"); // stepKey: assertEquals1 @@ -56,17 +57,17 @@ class AssertTestCest $I->assertGreaterOrEquals(2, 5, "pass"); // stepKey: assertGreaterOrEquals $I->assertGreaterThan(2, 5, "pass"); // stepKey: assertGreaterthan $I->assertGreaterThanOrEqual(2, 5, "pass"); // stepKey: assertGreaterThanOrEqual - $I->assertInternalType("string", "xyz", "pass"); // stepKey: assertInternalType1 - $I->assertInternalType("int", 21, "pass"); // stepKey: assertInternalType2 - $I->assertInternalType("string", $text, "pass"); // stepKey: assertInternalType3 + $I->assertIsString("xyz", "pass"); // stepKey: assertInternalType1 + $I->assertIsInt(21, "pass"); // stepKey: assertInternalType2 + $I->assertIsString($text, "pass"); // stepKey: assertInternalType3 $I->assertLessOrEquals(5, 2, "pass"); // stepKey: assertLessOrEquals $I->assertLessThan(5, 2, "pass"); // stepKey: assertLessThan $I->assertLessThanOrEqual(5, 2, "pass"); // stepKey: assertLessThanOrEquals - $I->assertNotContains("bc", ['item1' => 'a', 'item2' => 'ab'], "pass"); // stepKey: assertNotContains1 - $I->assertNotContains("bc", $text, "pass"); // stepKey: assertNotContains2 + $I->assertNotContains("bc", ['item1' => 'a', 'item2' => 'ab'], "pass"); // stepKey: assertNotContains + $I->assertStringNotContainsString("bc", $text, "pass"); // stepKey: assertStringNotContainsString $I->assertNotEmpty([1, 2], "pass"); // stepKey: assertNotEmpty1 $I->assertNotEmpty($text, "pass"); // stepKey: assertNotEmpty2 - $I->assertNotEquals(2, 5, "pass", 0); // stepKey: assertNotEquals + $I->assertNotEqualsWithDelta(2, 5, 0, "pass"); // stepKey: assertNotEquals $I->assertNotNull("abc", "pass"); // stepKey: assertNotNull1 $I->assertNotNull($text, "pass"); // stepKey: assertNotNull2 $I->assertNotRegExp("/foo/", "bar", "pass"); // stepKey: assertNotRegExp @@ -81,7 +82,8 @@ class AssertTestCest $I->assertArrayHasKey("apple", ['orange' => 2, 'apple' => 1], "pass"); // stepKey: assertArrayHasKeyBackwardCompatible $I->assertArrayNotHasKey("kiwi", ['orange' => 2, 'apple' => 1], "pass"); // stepKey: assertArrayNotHasKeyBackwardCompatible $I->assertArraySubset([1, 2], [1, 2, 3, 5], "pass"); // stepKey: assertArraySubsetBackwardCompatible - $I->assertContains("ab", ['item1' => 'a', 'item2' => 'ab'], "pass"); // stepKey: assertContainsBackwardCompatible + $I->assertContains("ab", ['item1' => 'a', 'item2' => 'ab'], "pass"); // stepKey: assertContains1BackwardCompatible + $I->assertStringContainsString("ab", "abcde", "pass"); // stepKey: assertContains2BackwardCompatible $I->assertCount(2, ['a', 'b'], "pass"); // stepKey: assertCountBackwardCompatible $I->assertEmpty([], "pass"); // stepKey: assertEmptyBackwardCompatible $I->assertEquals($text, "Copyright © 2013-2017 Magento, Inc. All rights reserved.", "pass"); // stepKey: assertEquals1BackwardCompatible @@ -92,17 +94,17 @@ class AssertTestCest $I->assertGreaterOrEquals(2, 5, "pass"); // stepKey: assertGreaterOrEqualsBackwardCompatible $I->assertGreaterThan(2, 5, "pass"); // stepKey: assertGreaterThanBackwardCompatible $I->assertGreaterThanOrEqual(2, 5, "pass"); // stepKey: assertGreaterThanOrEqualBackwardCompatible - $I->assertInternalType("string", "xyz", "pass"); // stepKey: assertInternalType1BackwardCompatible - $I->assertInternalType("int", 21, "pass"); // stepKey: assertInternalType2BackwardCompatible - $I->assertInternalType("string", $text, "pass"); // stepKey: assertInternalType3BackwardCompatible + $I->assertIsString("xyz", "pass"); // stepKey: assertInternalType1BackwardCompatible + $I->assertIsInt(21, "pass"); // stepKey: assertInternalType2BackwardCompatible + $I->assertIsString($text, "pass"); // stepKey: assertInternalType3BackwardCompatible $I->assertLessOrEquals(5, 2, "pass"); // stepKey: assertLessOrEqualBackwardCompatibles $I->assertLessThan(5, 2, "pass"); // stepKey: assertLessThanBackwardCompatible $I->assertLessThanOrEqual(5, 2, "pass"); // stepKey: assertLessThanOrEqualBackwardCompatible $I->assertNotContains("bc", ['item1' => 'a', 'item2' => 'ab'], "pass"); // stepKey: assertNotContains1BackwardCompatible - $I->assertNotContains("bc", $text, "pass"); // stepKey: assertNotContains2BackwardCompatible + $I->assertStringNotContainsString("bc", $text, "pass"); // stepKey: assertNotContains2BackwardCompatible $I->assertNotEmpty([1, 2], "pass"); // stepKey: assertNotEmpty1BackwardCompatible $I->assertNotEmpty($text, "pass"); // stepKey: assertNotEmpty2BackwardCompatible - $I->assertNotEquals(2, 5, "pass", 0); // stepKey: assertNotEqualsBackwardCompatible + $I->assertNotEqualsWithDelta(2, 5, 0, "pass"); // stepKey: assertNotEqualsBackwardCompatible $I->assertNotNull("abc", "pass"); // stepKey: assertNotNull1BackwardCompatible $I->assertNotNull($text, "pass"); // stepKey: assertNotNull2BackwardCompatible $I->assertNotRegExp("/foo/", "bar", "pass"); // stepKey: assertNotRegExpBackwardCompatible diff --git a/dev/tests/verification/TestModule/Test/AssertTest.xml b/dev/tests/verification/TestModule/Test/AssertTest.xml index 8cdc724cc..e0ba88c5d 100644 --- a/dev/tests/verification/TestModule/Test/AssertTest.xml +++ b/dev/tests/verification/TestModule/Test/AssertTest.xml @@ -39,6 +39,10 @@ ab ['item1' => 'a', 'item2' => 'ab'] + + ab + abcde + 2 ['a', 'b'] @@ -103,11 +107,11 @@ 5 2 - + bc ['item1' => 'a', 'item2' => 'ab'] - + bc text @@ -160,7 +164,8 @@ - + + diff --git a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php index dafbdaf7e..3d0b70440 100644 --- a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php +++ b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php @@ -62,6 +62,23 @@ class TestGenerator const MFTF_3_O_0_DEPRECATION_MESSAGE = ' is DEPRECATED and will be removed in MFTF 3.0.0.'; + /** + * PHPUnit 9 Assert Equal Types + */ + const ASSERT_EQUAL_TYPES = [ + 'array', + 'bool', + 'float', + 'int', + 'numeric', + 'object', + 'resource', + 'string', + 'scalar', + 'callable', + 'iterable', + ]; + /** * Actor name for AcceptanceTest * @@ -1011,6 +1028,7 @@ public function generateStepsPhp($actionObjects, $generationScope = TestGenerato break; case "selectOption": case "unselectOption": + case "seeNumberOfElements": $testSteps .= $this->wrapFunctionCall( $actor, $actionObject, @@ -1190,15 +1208,6 @@ public function generateStepsPhp($actionObjects, $generationScope = TestGenerato case "seeOptionIsSelected": $testSteps .= $this->wrapFunctionCall($actor, $actionObject, $selector, $input); break; - case "seeNumberOfElements": - $testSteps .= $this->wrapFunctionCall( - $actor, - $actionObject, - $selector, - $input, - $parameterArray - ); - break; case "seeInPageSource": case "dontSeeInPageSource": case "seeInSource": @@ -1219,14 +1228,67 @@ public function generateStepsPhp($actionObjects, $generationScope = TestGenerato ); break; case "assertEquals": + if (isset($assertDelta)) { + $replaceType = 'assertEqualsWithDelta'; + call_user_func(\Closure::bind( + function () use ($actionObject, $replaceType) { + $actionObject->type = $replaceType; + }, + null, + $actionObject + )); + $testSteps .= $this->wrapFunctionCall( + $actor, + $actionObject, + $assertExpected, + $assertActual, + $assertDelta, + $assertMessage + ); + } else { + $testSteps .= $this->wrapFunctionCall( + $actor, + $actionObject, + $assertExpected, + $assertActual, + $assertMessage + ); + } + break; + case "assertNotEquals": + if (isset($assertDelta)) { + $replaceType = 'assertNotEqualsWithDelta'; + call_user_func(\Closure::bind( + function () use ($actionObject, $replaceType) { + $actionObject->type = $replaceType; + }, + null, + $actionObject + )); + $testSteps .= $this->wrapFunctionCall( + $actor, + $actionObject, + $assertExpected, + $assertActual, + $assertDelta, + $assertMessage + ); + } else { + $testSteps .= $this->wrapFunctionCall( + $actor, + $actionObject, + $assertExpected, + $assertActual, + $assertMessage + ); + } + break; case "assertGreaterOrEquals": case "assertGreaterThan": case "assertGreaterThanOrEqual": - case "assertInternalType": case "assertLessOrEquals": case "assertLessThan": case "assertLessThanOrEqual": - case "assertNotEquals": case "assertInstanceOf": case "assertNotInstanceOf": case "assertNotRegExp": @@ -1238,8 +1300,6 @@ public function generateStepsPhp($actionObjects, $generationScope = TestGenerato case "assertArrayHasKey": case "assertArrayNotHasKey": case "assertCount": - case "assertContains": - case "assertNotContains": case "expectException": $testSteps .= $this->wrapFunctionCall( $actor, @@ -1250,6 +1310,67 @@ public function generateStepsPhp($actionObjects, $generationScope = TestGenerato $assertDelta ); break; + case "assertContains": + if ((substr(trim($assertActual), 0, 1) !== '[') + || (substr(trim($assertActual), -1, 1) !== ']')) { + $replaceType = 'assertStringContainsString'; + call_user_func(\Closure::bind( + function () use ($actionObject, $replaceType) { + $actionObject->type = $replaceType; + }, + null, + $actionObject + )); + } + $testSteps .= $this->wrapFunctionCall( + $actor, + $actionObject, + $assertExpected, + $assertActual, + $assertMessage + ); + break; + case "assertNotContains": + if ((substr(trim($assertActual), 0, 1) !== '[') + || (substr(trim($assertActual), -1, 1) !== ']')) { + $replaceType = 'assertStringNotContainsString'; + call_user_func(\Closure::bind( + function () use ($actionObject, $replaceType) { + $actionObject->type = $replaceType; + }, + null, + $actionObject + )); + } + $testSteps .= $this->wrapFunctionCall( + $actor, + $actionObject, + $assertExpected, + $assertActual, + $assertMessage + ); + break; + case "assertInternalType": + foreach (self::ASSERT_EQUAL_TYPES as $type) { + if (stristr($assertExpected, $type) !== false) { + $replaceType = 'assertIs' . ucfirst($type); + call_user_func(\Closure::bind( + function () use ($actionObject, $replaceType) { + $actionObject->type = $replaceType; + }, + null, + $actionObject + )); + break; + } + } + $testSteps .= $this->wrapFunctionCall( + $actor, + $actionObject, + $assertActual, + $assertMessage + ); + break; case "assertElementContainsAttribute": // If a blank string or null is passed in we need to pass a blank string to the function. if (empty($assertExpected)) { From f80e2db7078f957c042ca94ad18323eb687bc287 Mon Sep 17 00:00:00 2001 From: Ji Lu Date: Mon, 8 Feb 2021 12:15:41 -0600 Subject: [PATCH 04/10] MQE-2494: Missing steps in Allure logs for certain test failures --- .../Util/Sorter/ParallelGroupSorterTest.php | 4 +- .../Tests/SuiteGenerationTest.php | 8 +- .../Allure/Adapter/MagentoAllureAdapter.php | 94 ++++++++++++++++++- .../Console/RunTestFailedCommand.php | 23 ++++- .../Module/MagentoWebDriver.php | 3 +- .../Util/Sorter/ParallelGroupSorter.php | 6 +- 6 files changed, 120 insertions(+), 18 deletions(-) diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Util/Sorter/ParallelGroupSorterTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Util/Sorter/ParallelGroupSorterTest.php index 997bf0c3e..48966fbaa 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/Util/Sorter/ParallelGroupSorterTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/Util/Sorter/ParallelGroupSorterTest.php @@ -101,8 +101,8 @@ public function testSortWithSuites() $this->assertCount(5, $actualResult); $expectedResults = [ - 1 => ['mockSuite1_0'], - 2 => ['mockSuite1_1'], + 1 => ['mockSuite1_0_G'], + 2 => ['mockSuite1_1_G'], 3 => ['test3'], 4 => ['test2','test5', 'test4'], 5 => ['test1'], diff --git a/dev/tests/verification/Tests/SuiteGenerationTest.php b/dev/tests/verification/Tests/SuiteGenerationTest.php index 926287aad..4a8371692 100644 --- a/dev/tests/verification/Tests/SuiteGenerationTest.php +++ b/dev/tests/verification/Tests/SuiteGenerationTest.php @@ -118,10 +118,10 @@ public function testSuiteGenerationParallel() $groupName = 'functionalSuite1'; $expectedGroups = [ - 'functionalSuite1_0', - 'functionalSuite1_1', - 'functionalSuite1_2', - 'functionalSuite1_3' + 'functionalSuite1_0_G', + 'functionalSuite1_1_G', + 'functionalSuite1_2_G', + 'functionalSuite1_3_G' ]; $expectedContents = [ diff --git a/src/Magento/FunctionalTestingFramework/Allure/Adapter/MagentoAllureAdapter.php b/src/Magento/FunctionalTestingFramework/Allure/Adapter/MagentoAllureAdapter.php index e9e1c344c..7d7a7bd44 100644 --- a/src/Magento/FunctionalTestingFramework/Allure/Adapter/MagentoAllureAdapter.php +++ b/src/Magento/FunctionalTestingFramework/Allure/Adapter/MagentoAllureAdapter.php @@ -5,13 +5,18 @@ */ namespace Magento\FunctionalTestingFramework\Allure\Adapter; +use Codeception\Codecept; +use Codeception\Test\Cest; use Codeception\Step\Comment; use Magento\FunctionalTestingFramework\Suite\Handlers\SuiteObjectHandler; use Magento\FunctionalTestingFramework\Test\Objects\ActionGroupObject; use Magento\FunctionalTestingFramework\Test\Objects\ActionObject; use Magento\FunctionalTestingFramework\Util\TestGenerator; +use Yandex\Allure\Adapter\Model\Failure; +use Yandex\Allure\Adapter\Model\Provider; use Yandex\Allure\Adapter\Model\Status; use Yandex\Allure\Adapter\Model\Step; +use Yandex\Allure\Adapter\Allure; use Yandex\Allure\Codeception\AllureCodeception; use Yandex\Allure\Adapter\Event\StepStartedEvent; use Yandex\Allure\Adapter\Event\StepFinishedEvent; @@ -19,9 +24,11 @@ use Yandex\Allure\Adapter\Event\TestCaseFailedEvent; use Yandex\Allure\Adapter\Event\TestCaseFinishedEvent; use Yandex\Allure\Adapter\Event\TestCaseBrokenEvent; +use Yandex\Allure\Adapter\Event\AddAttachmentEvent; use Codeception\Event\FailEvent; use Codeception\Event\SuiteEvent; use Codeception\Event\StepEvent; +use Codeception\Event\TestEvent; /** * Class MagentoAllureAdapter @@ -114,6 +121,7 @@ private function sanitizeGroupName($group) // if we can't find this group in the generated suites we have to assume that the group was split for generation $groupNameSplit = explode("_", $group); array_pop($groupNameSplit); + array_pop($groupNameSplit); $originalName = implode("_", $groupNameSplit); // confirm our original name is one of the existing suite names otherwise just return the original group name @@ -245,11 +253,17 @@ public function testError(FailEvent $failEvent) /** * Override of parent method, polls stepStorage for testcase and formats it according to actionGroup nesting. - * + * @param TestEvent $testEvent + * @throws \Yandex\Allure\Adapter\AllureException * @return void */ - public function testEnd() + public function testEnd(TestEvent $testEvent) { + $test = $this->getLifecycle()->getTestCaseStorage()->get(); + // update testClass label to consolidate re-try reporting + $this->formatAllureTestClassName($test); + // Peek top of testCaseStorage to check of failure + $testFailed = $test->getFailure(); // Pops top of stepStorage, need to add it back in after processing $rootStep = $this->getLifecycle()->getStepStorage()->pollLast(); $formattedSteps = []; @@ -257,6 +271,7 @@ public function testEnd() $actionGroupStepKey = null; foreach ($rootStep->getSteps() as $step) { + $this->removeAttachments($step, $testFailed); $stepKey = str_replace($actionGroupStepKey, '', $step->getName()); if ($stepKey !== '[]' && $stepKey !== null) { $step->setName($stepKey); @@ -309,9 +324,28 @@ function () use ($rootStep, $formattedSteps) { $this->getLifecycle()->getStepStorage()->put($rootStep); + $this->addAttachmentEvent($testEvent); + $this->getLifecycle()->fire(new TestCaseFinishedEvent()); } + /** + * Fire add attachment event + * @param TestEvent $testEvent + * @throws \Yandex\Allure\Adapter\AllureException + * @return void + */ + private function addAttachmentEvent(TestEvent $testEvent) + { + // attachments supported since Codeception 3.0 + if (version_compare(Codecept::VERSION, '3.0.0') > -1 && $testEvent->getTest() instanceof Cest) { + $artifacts = $testEvent->getTest()->getMetadata()->getReports(); + foreach ($artifacts as $name => $artifact) { + Allure::lifecycle()->fire(new AddAttachmentEvent($artifact, $name, null)); + } + } + } + /** * Reads action group stepKey from step. * @@ -354,4 +388,60 @@ private function retrieveStepKey($stepLine) return $stepKey; } + + /** + * Removes attachments from step depending on MFTF configuration + * @param Step $step + * @param Failure $testFailed + * @return void + */ + private function removeAttachments($step, $testFailed) + { + //Remove Attachments if verbose flag is not true AND test did not fail + if (getenv('VERBOSE_ARTIFACTS') !== "true" && $testFailed === null) { + foreach ($step->getAttachments() as $index => $attachment) { + $step->removeAttachment($index); + unlink(Provider::getOutputDirectory() . DIRECTORY_SEPARATOR . $attachment->getSource()); + } + } + } + + /** + * Format testClass label to consolidate re-try reporting for groups split for parallel execution + * @param TestCase $test + * @return void + */ + private function formatAllureTestClassName($test) + { + if ($this->getGroup() !== null) { + foreach ($test->getLabels() as $name => $label) { + if ($label->getName() == 'testClass') { + $originalTestClass = $this->sanitizeTestClassLabel($label->getValue()); + call_user_func(\Closure::bind( + function () use ($label, $originalTestClass) { + $label->value = $originalTestClass; + }, + null, + $label + )); + break; + } + } + } + } + + /** + * Function which sanitizes testClass label for split group runs + * @param string $testClass + * @return string + */ + private function sanitizeTestClassLabel($testClass) + { + $originalTestClass = $testClass; + $originalGroupName = $this->sanitizeGroupName($this->getGroup()); + if ($originalGroupName !== $this->getGroup()) { + $originalTestClass = str_replace($this->getGroup(), $originalGroupName, $testClass); + } + return $originalTestClass; + } } diff --git a/src/Magento/FunctionalTestingFramework/Console/RunTestFailedCommand.php b/src/Magento/FunctionalTestingFramework/Console/RunTestFailedCommand.php index 1909c7e0b..7f912755b 100644 --- a/src/Magento/FunctionalTestingFramework/Console/RunTestFailedCommand.php +++ b/src/Magento/FunctionalTestingFramework/Console/RunTestFailedCommand.php @@ -168,11 +168,7 @@ private function getFailedTestList() if ($suiteName == self::DEFAULT_TEST_GROUP) { array_push($failedTestDetails['tests'], $testName); } else { - // Trim potential suite_parallel_0 to suite_parallel - $suiteNameArray = explode("_", $suiteName); - if (is_numeric(array_pop($suiteNameArray))) { - $suiteName = implode("_", $suiteNameArray); - } + $suiteName = $this->sanitizeSuiteName($suiteName); $failedTestDetails['suites'] = array_merge_recursive( $failedTestDetails['suites'], [$suiteName => [$testName]] @@ -194,6 +190,23 @@ private function getFailedTestList() return $testConfigurationJson; } + /** + * Trim potential suite_parallel_0_G to suite_parallel + * + * @param string $suiteName + * @return string + */ + private function sanitizeSuiteName($suiteName) + { + $suiteNameArray = explode("_", $suiteName); + if (array_pop($suiteNameArray) == 'G') { + if (is_numeric(array_pop($suiteNameArray))) { + $suiteName = implode("_", $suiteNameArray); + } + } + return $suiteName; + } + /** * Returns an array of run commands read from the manifest file created post generation * diff --git a/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php b/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php index fd1d1eebb..f1c49c94d 100644 --- a/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php +++ b/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php @@ -860,8 +860,7 @@ public function saveScreenshot() */ public function amOnPage($page) { - (0 === strpos($page, 'http')) ? parent::amOnUrl($page) : parent::amOnPage($page); - + parent::amOnPage($page); $this->waitForPageLoad(); } diff --git a/src/Magento/FunctionalTestingFramework/Util/Sorter/ParallelGroupSorter.php b/src/Magento/FunctionalTestingFramework/Util/Sorter/ParallelGroupSorter.php index 8f4cac8a2..fa30837cb 100644 --- a/src/Magento/FunctionalTestingFramework/Util/Sorter/ParallelGroupSorter.php +++ b/src/Magento/FunctionalTestingFramework/Util/Sorter/ParallelGroupSorter.php @@ -232,7 +232,7 @@ private function getSuiteToSize($suiteNamesToTests) * * E.g. * Input {suitename = 'sample', tests = ['test1' => 100,'test2' => 150, 'test3' => 300], linelimit = 275} - * Result { ['sample_01' => ['test3' => 300], 'sample_02' => ['test2' => 150, 'test1' => 100]] } + * Result { ['sample_01_G' => ['test3' => 300], 'sample_02_G' => ['test2' => 150, 'test1' => 100]] } * * @param string $suiteName * @param array $tests @@ -252,8 +252,8 @@ private function splitTestSuite($suiteName, $tests, $maxTime) } $group = $this->createTestGroup($maxTime, $test, $size, $availableTests); - $splitSuites["{$suiteName}_${splitCount}"] = $group; - $this->addSuiteToConfig($suiteName, "{$suiteName}_${splitCount}", $group); + $splitSuites["{$suiteName}_${splitCount}_G"] = $group; + $this->addSuiteToConfig($suiteName, "{$suiteName}_${splitCount}_G", $group); $availableTests = array_diff_key($availableTests, $group); $splitCount++; From 0bef7842bef8fc6eaf9a1923458629aaca957ebc Mon Sep 17 00:00:00 2001 From: Ji Lu Date: Tue, 9 Feb 2021 12:44:24 -0600 Subject: [PATCH 05/10] MQE-2494: Missing steps in Allure logs for certain test failures --- .../verification/Resources/AssertTest.txt | 16 ++++--- .../Resources/BasicFunctionalTest.txt | 2 +- .../TestModule/Test/AssertTest.xml | 37 +++++++++------- docs/test/assertions.md | 20 +-------- etc/di.xml | 2 +- .../Allure/Adapter/MagentoAllureAdapter.php | 26 +---------- .../Test/etc/Actions/assertActions.xsd | 21 +-------- .../Util/TestGenerator.php | 44 ++++++++++++------- 8 files changed, 68 insertions(+), 100 deletions(-) diff --git a/dev/tests/verification/Resources/AssertTest.txt b/dev/tests/verification/Resources/AssertTest.txt index aa5619ede..c030353c1 100644 --- a/dev/tests/verification/Resources/AssertTest.txt +++ b/dev/tests/verification/Resources/AssertTest.txt @@ -43,9 +43,10 @@ class AssertTestCest $I->comment("asserts without variable replacement"); $I->assertArrayHasKey("apple", ['orange' => 2, 'apple' => 1], "pass"); // stepKey: assertArrayHasKey $I->assertArrayNotHasKey("kiwi", ['orange' => 2, 'apple' => 1], "pass"); // stepKey: assertArrayNotHasKey - $I->assertArraySubset([1, 2], [1, 2, 3, 5], "pass"); // stepKey: assertArraySubset $I->assertContains("ab", ['item1' => 'a', 'item2' => 'ab'], "pass"); // stepKey: assertContains $I->assertStringContainsString("ab", "abcde", "pass"); // stepKey: assertStringContainsString + $I->assertStringContainsString("ab", $var, "pass"); // stepKey: assertStringContainsStringVar + $I->assertContains("ab", $var, "pass"); // stepKey: assertContainsVar $I->assertCount(2, ['a', 'b'], "pass"); // stepKey: assertCount $I->assertEmpty([], "pass"); // stepKey: assertEmpty $I->assertEquals($text, "Copyright © 2013-2017 Magento, Inc. All rights reserved.", "pass"); // stepKey: assertEquals1 @@ -64,7 +65,9 @@ class AssertTestCest $I->assertLessThan(5, 2, "pass"); // stepKey: assertLessThan $I->assertLessThanOrEqual(5, 2, "pass"); // stepKey: assertLessThanOrEquals $I->assertNotContains("bc", ['item1' => 'a', 'item2' => 'ab'], "pass"); // stepKey: assertNotContains - $I->assertStringNotContainsString("bc", $text, "pass"); // stepKey: assertStringNotContainsString + $I->assertStringNotContainsString("bc", "text", "pass"); // stepKey: assertStringNotContainsString + $I->assertNotContains("bc", $arrayVar, "pass"); // stepKey: assertNotContainsVar + $I->assertStringNotContainsString("bc", $var, "pass"); // stepKey: assertStringNotContainsStringVar $I->assertNotEmpty([1, 2], "pass"); // stepKey: assertNotEmpty1 $I->assertNotEmpty($text, "pass"); // stepKey: assertNotEmpty2 $I->assertNotEqualsWithDelta(2, 5, 0, "pass"); // stepKey: assertNotEquals @@ -81,9 +84,10 @@ class AssertTestCest $I->comment("asserts backward compatible"); $I->assertArrayHasKey("apple", ['orange' => 2, 'apple' => 1], "pass"); // stepKey: assertArrayHasKeyBackwardCompatible $I->assertArrayNotHasKey("kiwi", ['orange' => 2, 'apple' => 1], "pass"); // stepKey: assertArrayNotHasKeyBackwardCompatible - $I->assertArraySubset([1, 2], [1, 2, 3, 5], "pass"); // stepKey: assertArraySubsetBackwardCompatible $I->assertContains("ab", ['item1' => 'a', 'item2' => 'ab'], "pass"); // stepKey: assertContains1BackwardCompatible $I->assertStringContainsString("ab", "abcde", "pass"); // stepKey: assertContains2BackwardCompatible + $I->assertStringContainsString("ab", $var, "pass"); // stepKey: assertContains3BackwardCompatible + $I->assertContains("ab", $arrayVar, "pass"); // stepKey: assertContains4BackwardCompatible $I->assertCount(2, ['a', 'b'], "pass"); // stepKey: assertCountBackwardCompatible $I->assertEmpty([], "pass"); // stepKey: assertEmptyBackwardCompatible $I->assertEquals($text, "Copyright © 2013-2017 Magento, Inc. All rights reserved.", "pass"); // stepKey: assertEquals1BackwardCompatible @@ -101,7 +105,9 @@ class AssertTestCest $I->assertLessThan(5, 2, "pass"); // stepKey: assertLessThanBackwardCompatible $I->assertLessThanOrEqual(5, 2, "pass"); // stepKey: assertLessThanOrEqualBackwardCompatible $I->assertNotContains("bc", ['item1' => 'a', 'item2' => 'ab'], "pass"); // stepKey: assertNotContains1BackwardCompatible - $I->assertStringNotContainsString("bc", $text, "pass"); // stepKey: assertNotContains2BackwardCompatible + $I->assertStringNotContainsString("bc", "text", "pass"); // stepKey: assertNotContains2BackwardCompatible + $I->assertNotContains("bc", $arrayVar, "pass"); // stepKey: assertNotContains3BackwardCompatible + $I->assertStringNotContainsString("bc", $var, "pass"); // stepKey: assertNotContains4BackwardCompatible $I->assertNotEmpty([1, 2], "pass"); // stepKey: assertNotEmpty1BackwardCompatible $I->assertNotEmpty($text, "pass"); // stepKey: assertNotEmpty2BackwardCompatible $I->assertNotEqualsWithDelta(2, 5, 0, "pass"); // stepKey: assertNotEqualsBackwardCompatible @@ -128,8 +134,6 @@ class AssertTestCest $I->assertEquals($I->retrieveEntityField('createData1', 'lastname', 'test'), $I->retrieveEntityField('createData1', 'lastname', 'test'), "pass"); // stepKey: assert5 $I->comment("array type that use created data"); $I->comment("array type that use created data"); - $I->assertArraySubset([$I->retrieveEntityField('createData1', 'lastname', 'test'), $I->retrieveEntityField('createData1', 'firstname', 'test')], [$I->retrieveEntityField('createData1', 'lastname', 'test'), $I->retrieveEntityField('createData1', 'firstname', 'test'), "1"], "pass"); // stepKey: assert9 - $I->assertArraySubset([$I->retrieveEntityField('createData2', 'firstname', 'test'), $I->retrieveEntityField('createData2', 'lastname', 'test')], [$I->retrieveEntityField('createData2', 'firstname', 'test'), $I->retrieveEntityField('createData2', 'lastname', 'test'), "1"], "pass"); // stepKey: assert10 $I->assertArrayHasKey("lastname", ['lastname' => $I->retrieveEntityField('createData1', 'lastname', 'test'), 'firstname' => $I->retrieveEntityField('createData1', 'firstname', 'test')], "pass"); // stepKey: assert3 $I->assertArrayHasKey("lastname", ['lastname' => $I->retrieveEntityField('createData2', 'lastname', 'test'), 'firstname' => $I->retrieveEntityField('createData2', 'firstname', 'test')], "pass"); // stepKey: assert4 $I->comment("this section can only be generated and cannot run"); diff --git a/dev/tests/verification/Resources/BasicFunctionalTest.txt b/dev/tests/verification/Resources/BasicFunctionalTest.txt index 072b58261..f23fb5c6a 100644 --- a/dev/tests/verification/Resources/BasicFunctionalTest.txt +++ b/dev/tests/verification/Resources/BasicFunctionalTest.txt @@ -138,7 +138,7 @@ class BasicFunctionalTestCest $I->moveForward(); // stepKey: moveForwardKey1 $I->moveMouseOver(".functionalTestSelector"); // stepKey: moveMouseOverKey1 $I->openNewTab(); // stepKey: openNewTabKey1 - $I->pauseExecution(); // stepKey: pauseExecutionKey1 + $I->pause(); // stepKey: pauseExecutionKey1 $I->performOn("#selector", function(\WebDriverElement $el) {return $el->isDisplayed();}, 10); // stepKey: performOnKey1 $I->pressKey("#page", "a"); // stepKey: pressKey1 $I->pressKey("#page", ['ctrl', 'a'],'new'); // stepKey: pressKey2 diff --git a/dev/tests/verification/TestModule/Test/AssertTest.xml b/dev/tests/verification/TestModule/Test/AssertTest.xml index e0ba88c5d..86466c7de 100644 --- a/dev/tests/verification/TestModule/Test/AssertTest.xml +++ b/dev/tests/verification/TestModule/Test/AssertTest.xml @@ -31,10 +31,6 @@ kiwi ['orange' => 2, 'apple' => 1] - - [1, 2] - [1, 2, 3, 5] - ab ['item1' => 'a', 'item2' => 'ab'] @@ -43,6 +39,14 @@ ab abcde + + ab + var + + + ab + var + 2 ['a', 'b'] @@ -113,7 +117,15 @@ bc - text + text + + + bc + arrayVar + + + bc + var [1, 2] @@ -163,9 +175,10 @@ - + + @@ -183,7 +196,9 @@ - + + + @@ -221,14 +236,6 @@ - - [$$createData1.lastname$$, $$createData1.firstname$$] - [$$createData1.lastname$$, $$createData1.firstname$$, 1] - - - [$createData2.firstname$, $createData2.lastname$] - [$createData2.firstname$, $createData2.lastname$, 1] - lastname ['lastname' => $$createData1.lastname$$, 'firstname' => $$createData1.firstname$$] diff --git a/docs/test/assertions.md b/docs/test/assertions.md index 17a3d194a..cad01795f 100644 --- a/docs/test/assertions.md +++ b/docs/test/assertions.md @@ -117,22 +117,6 @@ Attribute|Type|Use|Description `before`|string|optional| `stepKey` of action that must be executed next. `after`|string|optional| `stepKey` of the preceding action. -### assertArraySubset - -See [assertArraySubset docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertArraySubset). - -Attribute|Type|Use|Description ----|---|---|--- -`expected`|string|required| A value of the expected result. -`expectedType`|string|optional| A type of the expected result. Possible values: `const` (default), `int`, `float`, `bool`, `string`, `variable`, `array`. -`actual`|string|required| A value of the actual result. -`actualType`|string|optional| A type of the actual result. Possible values: `const` (default), `int`, `float`, `bool`, `string`, `variable`, `array`. -`strict`|boolean|optional| -`message`|string|optional|Text of informational message about a cause of failure. -`stepKey`|string|required| A unique identifier of the text step. -`before`|string|optional| `stepKey` of action that must be executed next. -`after`|string|optional| `stepKey` of the preceding action. - ### assertContains See [assertContains docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertContains). @@ -142,7 +126,7 @@ Attribute|Type|Use|Description `expected`|string|required| A value of the expected result. `expectedType`|string|optional| A type of the expected result. Possible values: `const` (default), `int`, `float`, `bool`, `string`, `variable`, `array`. `actual`|string|required| A value of the actual result. -`actualType`|string|optional| A type of the actual result. Possible values: `const` (default), `int`, `float`, `bool`, `string`, `variable`, `array`. +`actualType`|string|optional| A type of the actual result. Possible values: `const` (default), `int`, `float`, `bool`, `string`, `variable`, `array`, `arrayVariable`. `message`|string|optional|Text of informational message about a cause of failure. `stepKey`|string|required| A unique identifier of the text step. `before`|string|optional| `stepKey` of action that must be executed next. @@ -373,7 +357,7 @@ Attribute|Type|Use|Description `expected`|string|required| A value of the expected result. `expectedType`|string|optional| A type of the expected result. Possible values: `const` (default), `int`, `float`, `bool`, `string`, `variable`, `array`. `actual`|string|required| A value of the actual result. -`actualType`|string|optional| A type of the actual result. Possible values: `const` (default), `int`, `float`, `bool`, `string`, `variable`, `array`. +`actualType`|string|optional| A type of the actual result. Possible values: `const` (default), `int`, `float`, `bool`, `string`, `variable`, `array`, `arrayVariable`. `message`|string|optional|Text of informational message about a cause of failure. `stepKey`|string|required| A unique identifier of the text step. `before`|string|optional| `stepKey` of action that must be executed next. diff --git a/etc/di.xml b/etc/di.xml index e5e31cf87..c8042456e 100644 --- a/etc/di.xml +++ b/etc/di.xml @@ -8,7 +8,7 @@ + ]> diff --git a/src/Magento/FunctionalTestingFramework/Allure/Adapter/MagentoAllureAdapter.php b/src/Magento/FunctionalTestingFramework/Allure/Adapter/MagentoAllureAdapter.php index 7d7a7bd44..489e8297a 100644 --- a/src/Magento/FunctionalTestingFramework/Allure/Adapter/MagentoAllureAdapter.php +++ b/src/Magento/FunctionalTestingFramework/Allure/Adapter/MagentoAllureAdapter.php @@ -12,8 +12,6 @@ use Magento\FunctionalTestingFramework\Test\Objects\ActionGroupObject; use Magento\FunctionalTestingFramework\Test\Objects\ActionObject; use Magento\FunctionalTestingFramework\Util\TestGenerator; -use Yandex\Allure\Adapter\Model\Failure; -use Yandex\Allure\Adapter\Model\Provider; use Yandex\Allure\Adapter\Model\Status; use Yandex\Allure\Adapter\Model\Step; use Yandex\Allure\Adapter\Allure; @@ -21,6 +19,7 @@ use Yandex\Allure\Adapter\Event\StepStartedEvent; use Yandex\Allure\Adapter\Event\StepFinishedEvent; use Yandex\Allure\Adapter\Event\StepFailedEvent; +use Yandex\Allure\Adapter\Model\TestCase; use Yandex\Allure\Adapter\Event\TestCaseFailedEvent; use Yandex\Allure\Adapter\Event\TestCaseFinishedEvent; use Yandex\Allure\Adapter\Event\TestCaseBrokenEvent; @@ -259,11 +258,8 @@ public function testError(FailEvent $failEvent) */ public function testEnd(TestEvent $testEvent) { - $test = $this->getLifecycle()->getTestCaseStorage()->get(); // update testClass label to consolidate re-try reporting - $this->formatAllureTestClassName($test); - // Peek top of testCaseStorage to check of failure - $testFailed = $test->getFailure(); + $this->formatAllureTestClassName($this->getLifecycle()->getTestCaseStorage()->get()); // Pops top of stepStorage, need to add it back in after processing $rootStep = $this->getLifecycle()->getStepStorage()->pollLast(); $formattedSteps = []; @@ -271,7 +267,6 @@ public function testEnd(TestEvent $testEvent) $actionGroupStepKey = null; foreach ($rootStep->getSteps() as $step) { - $this->removeAttachments($step, $testFailed); $stepKey = str_replace($actionGroupStepKey, '', $step->getName()); if ($stepKey !== '[]' && $stepKey !== null) { $step->setName($stepKey); @@ -389,23 +384,6 @@ private function retrieveStepKey($stepLine) return $stepKey; } - /** - * Removes attachments from step depending on MFTF configuration - * @param Step $step - * @param Failure $testFailed - * @return void - */ - private function removeAttachments($step, $testFailed) - { - //Remove Attachments if verbose flag is not true AND test did not fail - if (getenv('VERBOSE_ARTIFACTS') !== "true" && $testFailed === null) { - foreach ($step->getAttachments() as $index => $attachment) { - $step->removeAttachment($index); - unlink(Provider::getOutputDirectory() . DIRECTORY_SEPARATOR . $attachment->getSource()); - } - } - } - /** * Format testClass label to consolidate re-try reporting for groups split for parallel execution * @param TestCase $test diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/assertActions.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/assertActions.xsd index 4fdde9990..bb125b7e8 100644 --- a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/assertActions.xsd +++ b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/assertActions.xsd @@ -14,7 +14,6 @@ - @@ -171,25 +170,6 @@ - - - - Asserts that given array contains a subset array. - - - - - - - - - - - - - - - @@ -759,6 +739,7 @@ + diff --git a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php index 3d0b70440..e238bfc73 100644 --- a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php +++ b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php @@ -1311,8 +1311,10 @@ function () use ($actionObject, $replaceType) { ); break; case "assertContains": - if ((substr(trim($assertActual), 0, 1) !== '[') - || (substr(trim($assertActual), -1, 1) !== ']')) { + if ((!isset($customActionAttributes['actualType']) + || $customActionAttributes['actualType'] !== 'arrayVariable') + && ((substr(trim($assertActual), 0, 1) !== '[') + || (substr(trim($assertActual), -1, 1) !== ']'))) { $replaceType = 'assertStringContainsString'; call_user_func(\Closure::bind( function () use ($actionObject, $replaceType) { @@ -1331,8 +1333,10 @@ function () use ($actionObject, $replaceType) { ); break; case "assertNotContains": - if ((substr(trim($assertActual), 0, 1) !== '[') - || (substr(trim($assertActual), -1, 1) !== ']')) { + if ((!isset($customActionAttributes['actualType']) + || $customActionAttributes['actualType'] !== 'arrayVariable') + && ((substr(trim($assertActual), 0, 1) !== '[') + || (substr(trim($assertActual), -1, 1) !== ']'))) { $replaceType = 'assertStringNotContainsString'; call_user_func(\Closure::bind( function () use ($actionObject, $replaceType) { @@ -1401,16 +1405,6 @@ function () use ($actionObject, $replaceType) { $assertMessage ); break; - case "assertArraySubset": - $testSteps .= $this->wrapFunctionCall( - $actor, - $actionObject, - $assertExpected, - $assertActual, - $assertIsStrict, - $assertMessage - ); - break; case "fail": $testSteps .= $this->wrapFunctionCall( $actor, @@ -1482,6 +1476,23 @@ function () use ($actionObject, $replaceType) { case "skipReadinessCheck": $testSteps .= $this->wrapFunctionCall($actor, $actionObject, $customActionAttributes['state']); break; + case "pauseExecution": + $replaceType = 'pause'; + call_user_func(\Closure::bind( + function () use ($actionObject, $replaceType) { + $actionObject->type = $replaceType; + }, + null, + $actionObject + )); + $testSteps .= $this->wrapFunctionCall( + $actor, + $actionObject, + $selector, + $input, + $parameter + ); + break; case "comment": $input = $input === null ? strtr($value, ['$' => '\$', '{' => '\{', '}' => '\}']) : $input; // Combining userInput from native XML comment and action to fall-through 'default' case @@ -2166,6 +2177,7 @@ private function resolveValueByType($value = null, $type = null) $this->validateParameterArray($value); return $this->wrapParameterArray($this->addUniquenessToParamArray($value)); case 'variable': + case 'arrayVariable': return $this->addDollarSign($value); } @@ -2251,6 +2263,7 @@ private function validateXmlAttributesMutuallyExclusive($key, $tagName, $attribu 'url', 'userInput', 'variable', + 'arrayVariable', ], 'excludes' => [ 'dontSeeLink', @@ -2261,7 +2274,8 @@ private function validateXmlAttributesMutuallyExclusive($key, $tagName, $attribu 'attributes' => [ 'userInput', 'parameterArray', - 'variable' + 'variable', + 'arrayVariable', ], 'excludes' => [ 'dontSeeCookie', From ccdc23a466fc6c3c479dddb33ee5ddf68277adce Mon Sep 17 00:00:00 2001 From: Ji Lu Date: Wed, 10 Feb 2021 08:58:14 -0600 Subject: [PATCH 06/10] MQE-2501: PHP 7.4 Upgrade in MFTF 2.x --- bin/functional | 1 + .../MFTF/DevDocs/Test/FormatCurrencyTest.xml | 52 +++++++++++++++++++ .../Commenting/FunctionCommentSniff.php | 4 +- dev/tests/unit/Util/TestLoggingUtil.php | 2 +- .../ActionGroupWithStepKeyReferences.txt | 2 +- .../ActionGroup/FunctionalActionGroup.xml | 2 +- .../ActionGroup/XmlDuplicateActionGroup.xml | 6 +-- .../TestModule/Test/XmlDuplicateTest.xml | 15 +++--- docs/test/actions.md | 9 ++-- etc/di.xml | 2 +- .../Module/MagentoWebDriver.php | 30 ++++++----- .../Test/Objects/ActionGroupObject.php | 2 +- .../Test/etc/Actions/customActions.xsd | 36 +++++++------ .../Util/TestGenerator.php | 39 ++++++++++++-- 14 files changed, 150 insertions(+), 52 deletions(-) create mode 100644 dev/tests/functional/tests/MFTF/DevDocs/Test/FormatCurrencyTest.xml diff --git a/bin/functional b/bin/functional index 01efbda9f..63bb41197 100755 --- a/bin/functional +++ b/bin/functional @@ -9,3 +9,4 @@ echo "===============================" bin/mftf build:project bin/mftf run:test DeprecatedDevDocsTest -f bin/mftf run:test DevDocsTest -f +bin/mftf run:test FormatCurrencyTest -f \ No newline at end of file diff --git a/dev/tests/functional/tests/MFTF/DevDocs/Test/FormatCurrencyTest.xml b/dev/tests/functional/tests/MFTF/DevDocs/Test/FormatCurrencyTest.xml new file mode 100644 index 000000000..ab3d36c4e --- /dev/null +++ b/dev/tests/functional/tests/MFTF/DevDocs/Test/FormatCurrencyTest.xml @@ -0,0 +1,52 @@ + + + + + + + + + 1.234,57 € + $eurInDE + + + + 1.234,00 € + $eurInDEPos + + + + -1.234,56 € + $eurInDENeg + + + + + 1.234,57 $ + $usdInDE + + + + 1.234,00 $ + $usdInDEPos + + + + -1.234,56 $ + $usdInDENeg + + + + + + 10,50 € + $usingVariable + + + diff --git a/dev/tests/static/Magento/Sniffs/Commenting/FunctionCommentSniff.php b/dev/tests/static/Magento/Sniffs/Commenting/FunctionCommentSniff.php index 5050d5f03..8985f2407 100644 --- a/dev/tests/static/Magento/Sniffs/Commenting/FunctionCommentSniff.php +++ b/dev/tests/static/Magento/Sniffs/Commenting/FunctionCommentSniff.php @@ -214,7 +214,7 @@ protected function processThrows(File $phpcsFile, $stackPtr, $commentStart) } // Starts with a capital letter and ends with a fullstop. - $firstChar = $comment{0}; + $firstChar = $comment[0]; if (strtoupper($firstChar) !== $firstChar) { $error = '@throws tag comment must start with a capital letter'; $phpcsFile->addError($error, ($tag + 2), 'ThrowsNotCapital'); @@ -437,7 +437,7 @@ protected function processParams(File $phpcsFile, $stackPtr, $commentStart) }//end if }//end foreach - $suggestedType = implode($suggestedTypeNames, '|'); + $suggestedType = implode('|', $suggestedTypeNames); if ($param['type'] !== $suggestedType) { $error = 'Expected "%s" but found "%s" for parameter type'; $data = array( diff --git a/dev/tests/unit/Util/TestLoggingUtil.php b/dev/tests/unit/Util/TestLoggingUtil.php index 7becc609a..1b0bce1f9 100644 --- a/dev/tests/unit/Util/TestLoggingUtil.php +++ b/dev/tests/unit/Util/TestLoggingUtil.php @@ -93,7 +93,7 @@ public function validateMockLogStatmentRegex($type, $regex, $context) $records = $this->testLogHandler->getRecords(); $record = $records[count($records)-1]; // we assume the latest record is what requires validation $this->assertEquals(strtoupper($type), $record['level_name']); - $this->assertRegExp($regex, $record['message']); + $this->assertMatchesRegularExpression($regex, $record['message']); $this->assertEquals($context, $record['context']); } diff --git a/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt b/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt index 8098142fd..8a1c53d24 100644 --- a/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt +++ b/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt @@ -42,7 +42,7 @@ class ActionGroupWithStepKeyReferencesCest $date->setTimezone(new \DateTimeZone("America/Los_Angeles")); $action5ActionGroup = $date->format("H:i:s"); - $action6ActionGroup = $I->formatMoney($action6ActionGroup); // stepKey: action6ActionGroup + $action6ActionGroup = $I->formatCurrency($action6ActionGroup, "en_CA", "USD"); // stepKey: action6ActionGroup $I->deleteEntity("{$action7ActionGroupActionGroup}", "test"); // stepKey: action7ActionGroup $I->getEntity("action8ActionGroup", "test", "{$action8}", [], null); // stepKey: action8ActionGroup $I->updateEntity("1", "test", "{$action9}",[]); // stepKey: action9ActionGroup diff --git a/dev/tests/verification/TestModule/ActionGroup/FunctionalActionGroup.xml b/dev/tests/verification/TestModule/ActionGroup/FunctionalActionGroup.xml index 30cba3848..c55099dbd 100644 --- a/dev/tests/verification/TestModule/ActionGroup/FunctionalActionGroup.xml +++ b/dev/tests/verification/TestModule/ActionGroup/FunctionalActionGroup.xml @@ -56,7 +56,7 @@ - + diff --git a/dev/tests/verification/TestModule/ActionGroup/XmlDuplicateActionGroup.xml b/dev/tests/verification/TestModule/ActionGroup/XmlDuplicateActionGroup.xml index fcc22acca..b1663182f 100644 --- a/dev/tests/verification/TestModule/ActionGroup/XmlDuplicateActionGroup.xml +++ b/dev/tests/verification/TestModule/ActionGroup/XmlDuplicateActionGroup.xml @@ -6,7 +6,7 @@ */ --> + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd"> @@ -84,8 +84,8 @@ - - + + diff --git a/dev/tests/verification/TestModule/Test/XmlDuplicateTest.xml b/dev/tests/verification/TestModule/Test/XmlDuplicateTest.xml index 937c6edba..8ca8a956f 100644 --- a/dev/tests/verification/TestModule/Test/XmlDuplicateTest.xml +++ b/dev/tests/verification/TestModule/Test/XmlDuplicateTest.xml @@ -5,9 +5,8 @@ * See COPYING.txt for license details. */ --> - + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd"> @@ -88,8 +87,8 @@ - - + + @@ -304,8 +303,8 @@ - - + + @@ -519,8 +518,8 @@ - - + + diff --git a/docs/test/actions.md b/docs/test/actions.md index 19ec3f43b..5af0c6439 100644 --- a/docs/test/actions.md +++ b/docs/test/actions.md @@ -1032,12 +1032,15 @@ Attribute|Type|Use|Description ``` -### formatMoney +### formatCurrency +Format input to specified currency according to the locale specified. Returns formatted string for test use. +Use NumberFormatter::formatCurrency(), see https://www.php.net/manual/en/numberformatter.formatcurrency.php Attribute|Type|Use|Description ---|---|---|--- -`userInput`|string|optional| Value for the money form field. -`locale`|string|optional| The PHP locale value for the store. +`userInput`|string|required| Number to be formatted. +`locale`|string|required| The locale to format to. +`currency`|string|required| The 3-letter ISO 4217 currency code indicating the currency to use. `stepKey`|string|required| A unique identifier of the action. `before`|string|optional| `stepKey` of action that must be executed next. `after`|string|optional| `stepKey` of preceding action. diff --git a/etc/di.xml b/etc/di.xml index c8042456e..b206976fe 100644 --- a/etc/di.xml +++ b/etc/di.xml @@ -8,7 +8,7 @@ + ]> diff --git a/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php b/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php index f1c49c94d..eaa4be481 100644 --- a/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php +++ b/src/Magento/FunctionalTestingFramework/Module/MagentoWebDriver.php @@ -49,6 +49,7 @@ * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @SuppressWarnings(PHPMD.ExcessivePublicCount) + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) */ class MagentoWebDriver extends WebDriver { @@ -452,21 +453,26 @@ public function waitForLoadingMaskToDisappear($timeout = null) } /** - * @param float $money + * Format input to specified currency in locale specified + * @link https://php.net/manual/en/numberformatter.formatcurrency.php + * + * @param float $value * @param string $locale - * @return array + * @param string $currency + * @return string + * @throws TestFrameworkException */ - public function formatMoney(float $money, $locale = 'en_US.UTF-8') + public function formatCurrency(float $value, $locale, $currency) { - $this->mSetLocale(LC_MONETARY, $locale); - // @codingStandardsIgnoreStart - $money = money_format('%.2n', $money); - // @codingStandardsIgnoreEnd - $this->mResetLocale(); - $prefix = substr($money, 0, 1); - $number = substr($money, 1); - - return ['prefix' => $prefix, 'number' => $number]; + $formatter = \NumberFormatter::create($locale, \NumberFormatter::CURRENCY); + if ($formatter && !empty($formatter)) { + $result = $formatter->formatCurrency($value, $currency); + if ($result) { + return $result; + } + } + + throw new TestFrameworkException('Invalid attributes used in formatCurrency.'); } /** diff --git a/src/Magento/FunctionalTestingFramework/Test/Objects/ActionGroupObject.php b/src/Magento/FunctionalTestingFramework/Test/Objects/ActionGroupObject.php index dc1b158e1..0b0cb4527 100644 --- a/src/Magento/FunctionalTestingFramework/Test/Objects/ActionGroupObject.php +++ b/src/Magento/FunctionalTestingFramework/Test/Objects/ActionGroupObject.php @@ -25,7 +25,7 @@ class ActionGroupObject "executeJS", "magentoCLI", "generateDate", - "formatMoney", + "formatCurrency", "deleteData", "getData", "updateData", diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/customActions.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/customActions.xsd index 8670d9885..23ee931ea 100644 --- a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/customActions.xsd +++ b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/customActions.xsd @@ -16,7 +16,7 @@ - + @@ -158,25 +158,29 @@ - + - Formats given input to given locale. Returns formatted string for test use. + Format input to specified currency according to the locale specified. Returns formatted string for test use. + Use NumberFormatter::formatCurrency(), see https://www.php.net/manual/en/numberformatter.formatcurrency.php - - - - - - - Locale to format given input. Defaults to 'en_US.UTF-8' if nothing is given. - - - - - - + + + + + Locale in which the input would be formatted (e.g. en_US). + + + + + + + The 3-letter ISO 4217 currency code indicating the currency to use. + + + + diff --git a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php index e238bfc73..c6fc60d6d 100644 --- a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php +++ b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php @@ -590,6 +590,7 @@ public function generateStepsPhp($actionObjects, $generationScope = TestGenerato $function = null; $time = null; $locale = null; + $currency = null; $username = null; $password = null; $width = null; @@ -634,7 +635,11 @@ public function generateStepsPhp($actionObjects, $generationScope = TestGenerato $sortOrder = $customActionAttributes['sortOrder']; } - if (isset($customActionAttributes['userInput']) && isset($customActionAttributes['url'])) { + if (isset($customActionAttributes['userInput']) + && isset($customActionAttributes['locale']) + && isset($customActionAttributes['currency'])) { + $input = $this->parseUserInput($customActionAttributes['userInput']); + } elseif (isset($customActionAttributes['userInput']) && isset($customActionAttributes['url'])) { $input = $this->addUniquenessFunctionCall($customActionAttributes['userInput']); $url = $this->addUniquenessFunctionCall($customActionAttributes['url']); } elseif (isset($customActionAttributes['userInput'])) { @@ -758,6 +763,10 @@ public function generateStepsPhp($actionObjects, $generationScope = TestGenerato $locale = $this->wrapWithDoubleQuotes($customActionAttributes['locale']); } + if (isset($customActionAttributes['currency'])) { + $currency = $this->wrapWithDoubleQuotes($customActionAttributes['currency']); + } + if (isset($customActionAttributes['username'])) { $username = $this->wrapWithDoubleQuotes($customActionAttributes['username']); } @@ -1126,13 +1135,14 @@ public function generateStepsPhp($actionObjects, $generationScope = TestGenerato $selector ); break; - case "formatMoney": + case "formatCurrency": $testSteps .= $this->wrapFunctionCallWithReturnValue( $stepKey, $actor, $actionObject, $input, - $locale + $locale, + $currency ); break; case "mSetLocale": @@ -2356,4 +2366,27 @@ private function getReplacement($func, $refVariable): string return "{$func}(\"{$refVariable}\")"; } + + /** + * Parse userInput for formatCurrency action + * + * @param string $userInput + * @return string + */ + private function parseUserInput($userInput) + { + $floatPattern = '/^\s*([+-]?[0-9]*\.?[0-9]+)\s*$/'; + preg_match($floatPattern, $userInput, $float); + if (isset($float[1])) { + return $float[1]; + } + + $intPattern = '/^\s*([+-]?[0-9]+)\s*$/'; + preg_match($intPattern, $userInput, $int); + if (isset($int[1])) { + return $int[1]; + } + + return $this->addUniquenessFunctionCall($userInput); + } } From e28b50119845f939ee527d24057fc5fedac7feba Mon Sep 17 00:00:00 2001 From: Ji Lu Date: Sat, 13 Feb 2021 18:47:28 -0600 Subject: [PATCH 07/10] MQE-2493: Update assert implementation in mftf 2.x to work with phpunit 9 --- bin/functional | 1 + .../tests/MFTF/DevDocs/Test/AssertTest.xml | 204 ++++++++++++++++++ .../verification/Resources/AssertTest.txt | 17 +- .../TestModule/Test/AssertTest.xml | 39 +++- .../Module/MagentoAssert.php | 2 +- .../Test/Objects/ActionObject.php | 11 + .../Util/TestGenerator.php | 55 +---- 7 files changed, 273 insertions(+), 56 deletions(-) create mode 100644 dev/tests/functional/tests/MFTF/DevDocs/Test/AssertTest.xml diff --git a/bin/functional b/bin/functional index 01efbda9f..80dee336c 100755 --- a/bin/functional +++ b/bin/functional @@ -9,3 +9,4 @@ echo "===============================" bin/mftf build:project bin/mftf run:test DeprecatedDevDocsTest -f bin/mftf run:test DevDocsTest -f +bin/mftf run:test AssertTest -f diff --git a/dev/tests/functional/tests/MFTF/DevDocs/Test/AssertTest.xml b/dev/tests/functional/tests/MFTF/DevDocs/Test/AssertTest.xml new file mode 100644 index 000000000..1deb813ba --- /dev/null +++ b/dev/tests/functional/tests/MFTF/DevDocs/Test/AssertTest.xml @@ -0,0 +1,204 @@ + + + + + + + + + [1,2,3,4,5] + + + + + + apple + ['orange' => 2, 'apple' => 1] + + + kiwi + ['orange' => 2, 'apple' => 1] + + + ab + ['item1' => 'a', 'item2' => 'ab'] + + + ab + abcde + + + 2 + ['a', 'b'] + + + [] + + + Copyright + Copyright + + + 1.56 + 1.56 + + + 1.55 + 1.56 + + + 2 + 2 + + + true + true + + + [1, 2] + [1,2] + + + 0 + + + /out.txt + + + 2 + 5 + + + 2 + 5 + + + 2 + 5 + + + string + xyz + + + int + 21 + + + float + 1.23 + + + bool + true + + + array + [1,2] + + + 5 + 2 + + + 5 + 2 + + + 5 + 2 + + + bc + ['item1' => 'a', 'item2' => 'ab'] + + + bc + text + + + [1, 2] + + + 2 + 5 + + + 2 + 5 + + + abc + + + /foo/ + bar + + + log + tag + + + /foo/ + foo + + + bar + bar + + + a + banana + + + a + apple + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/tests/verification/Resources/AssertTest.txt b/dev/tests/verification/Resources/AssertTest.txt index c030353c1..065f024e3 100644 --- a/dev/tests/verification/Resources/AssertTest.txt +++ b/dev/tests/verification/Resources/AssertTest.txt @@ -52,6 +52,10 @@ class AssertTestCest $I->assertEquals($text, "Copyright © 2013-2017 Magento, Inc. All rights reserved.", "pass"); // stepKey: assertEquals1 $I->assertEquals("Copyright © 2013-2017 Magento, Inc. All rights reserved.", $text, "pass"); // stepKey: assertEquals2 $I->assertEquals(1.5, $text, "pass"); // stepKey: assertFloatTypeIsCorrect + $I->assertEqualsWithDelta(1.55, 1.56, 0.1, "pass"); // stepKey: assertFloatTypeWithDelta + $I->assertEquals(2, $text, "pass"); // stepKey: assertInt + $I->assertEquals(true, $text, "pass"); // stepKey: assertBool + $I->assertEquals([1, 2], $text, "pass"); // stepKey: assertArray $I->assertFalse(false, "pass"); // stepKey: assertFalse1 $I->assertFileNotExists("/out.txt", "pass"); // stepKey: assertFileNotExists1 $I->assertFileNotExists($text, "pass"); // stepKey: assertFileNotExists2 @@ -61,6 +65,9 @@ class AssertTestCest $I->assertIsString("xyz", "pass"); // stepKey: assertInternalType1 $I->assertIsInt(21, "pass"); // stepKey: assertInternalType2 $I->assertIsString($text, "pass"); // stepKey: assertInternalType3 + $I->assertIsFloat(1.23, "pass"); // stepKey: assertFloat + $I->assertIsBool(true, "pass"); // stepKey: assertBoolType + $I->assertIsArray([1,2], "pass"); // stepKey: assertArrayType $I->assertLessOrEquals(5, 2, "pass"); // stepKey: assertLessOrEquals $I->assertLessThan(5, 2, "pass"); // stepKey: assertLessThan $I->assertLessThanOrEqual(5, 2, "pass"); // stepKey: assertLessThanOrEquals @@ -70,7 +77,7 @@ class AssertTestCest $I->assertStringNotContainsString("bc", $var, "pass"); // stepKey: assertStringNotContainsStringVar $I->assertNotEmpty([1, 2], "pass"); // stepKey: assertNotEmpty1 $I->assertNotEmpty($text, "pass"); // stepKey: assertNotEmpty2 - $I->assertNotEqualsWithDelta(2, 5, 0, "pass"); // stepKey: assertNotEquals + $I->assertNotEqualsWithDelta(2, 5, 1, "pass"); // stepKey: assertNotEquals $I->assertNotNull("abc", "pass"); // stepKey: assertNotNull1 $I->assertNotNull($text, "pass"); // stepKey: assertNotNull2 $I->assertNotRegExp("/foo/", "bar", "pass"); // stepKey: assertNotRegExp @@ -92,6 +99,7 @@ class AssertTestCest $I->assertEmpty([], "pass"); // stepKey: assertEmptyBackwardCompatible $I->assertEquals($text, "Copyright © 2013-2017 Magento, Inc. All rights reserved.", "pass"); // stepKey: assertEquals1BackwardCompatible $I->assertEquals("Copyright © 2013-2017 Magento, Inc. All rights reserved.", $text, "pass"); // stepKey: assertEquals2BackwardCompatible + $I->assertEqualsWithDelta(2, $text, 0.2, "pass"); // stepKey: assertEquals3BackwardCompatible $I->assertFalse(false, "pass"); // stepKey: assertFalse1BackwardCompatible $I->assertFileNotExists("/out.txt", "pass"); // stepKey: assertFileNotExists1BackwardCompatible $I->assertFileNotExists($text, "pass"); // stepKey: assertFileNotExists2BackwardCompatible @@ -99,8 +107,11 @@ class AssertTestCest $I->assertGreaterThan(2, 5, "pass"); // stepKey: assertGreaterThanBackwardCompatible $I->assertGreaterThanOrEqual(2, 5, "pass"); // stepKey: assertGreaterThanOrEqualBackwardCompatible $I->assertIsString("xyz", "pass"); // stepKey: assertInternalType1BackwardCompatible - $I->assertIsInt(21, "pass"); // stepKey: assertInternalType2BackwardCompatible - $I->assertIsString($text, "pass"); // stepKey: assertInternalType3BackwardCompatible + $I->assertIsString($text, "pass"); // stepKey: assertInternalType2BackwardCompatible + $I->assertIsInt(21, "pass"); // stepKey: assertInternalType3BackwardCompatible + $I->assertIsFloat(1.23, "pass"); // stepKey: assertInternalType4BackwardCompatible + $I->assertIsBool(false, "pass"); // stepKey: assertInternalType5BackwardCompatible + $I->assertIsArray([1,2], "pass"); // stepKey: assertInternalType6BackwardCompatible $I->assertLessOrEquals(5, 2, "pass"); // stepKey: assertLessOrEqualBackwardCompatibles $I->assertLessThan(5, 2, "pass"); // stepKey: assertLessThanBackwardCompatible $I->assertLessThanOrEqual(5, 2, "pass"); // stepKey: assertLessThanOrEqualBackwardCompatible diff --git a/dev/tests/verification/TestModule/Test/AssertTest.xml b/dev/tests/verification/TestModule/Test/AssertTest.xml index 86466c7de..9718f7304 100644 --- a/dev/tests/verification/TestModule/Test/AssertTest.xml +++ b/dev/tests/verification/TestModule/Test/AssertTest.xml @@ -15,7 +15,6 @@ - [1,2,3,4,5] @@ -66,6 +65,22 @@ 1.5 text + + 1.55 + 1.56 + + + 2 + text + + + true + text + + + [1, 2] + text + 0 @@ -99,6 +114,18 @@ string text + + float + 1.23 + + + bool + true + + + array + [1,2] + 5 2 @@ -133,7 +160,7 @@ text - + 2 5 @@ -183,6 +210,7 @@ + @@ -190,8 +218,11 @@ - - + + + + + diff --git a/src/Magento/FunctionalTestingFramework/Module/MagentoAssert.php b/src/Magento/FunctionalTestingFramework/Module/MagentoAssert.php index 3c6c08173..197091901 100644 --- a/src/Magento/FunctionalTestingFramework/Module/MagentoAssert.php +++ b/src/Magento/FunctionalTestingFramework/Module/MagentoAssert.php @@ -26,7 +26,7 @@ class MagentoAssert extends \Codeception\Module public function assertArrayIsSorted(array $data, $sortOrder = "asc") { $elementTotal = count($data); - $message = null; + $message = ''; // If value can be converted to a date and it isn't 1.1 number (strtotime is overzealous) if (strtotime($data[0]) !== false && !is_numeric($data[0])) { diff --git a/src/Magento/FunctionalTestingFramework/Test/Objects/ActionObject.php b/src/Magento/FunctionalTestingFramework/Test/Objects/ActionObject.php index 38a5f450d..91add5b90 100644 --- a/src/Magento/FunctionalTestingFramework/Test/Objects/ActionObject.php +++ b/src/Magento/FunctionalTestingFramework/Test/Objects/ActionObject.php @@ -269,6 +269,17 @@ public function setTimeout($timeout) $this->timeout = $timeout; } + /** + * Set the type. This can be used to override action type for test generation. + * + * @param string $overrideType + * @return void + */ + public function setType($overrideType) + { + $this->type = $overrideType; + } + /** * Populate the resolved custom attributes array with lookup values for the following attributes: * selector diff --git a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php index e238bfc73..54a9bf131 100644 --- a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php +++ b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php @@ -572,6 +572,7 @@ public function generateStepsPhp($actionObjects, $generationScope = TestGenerato $this->currentGenerationScope = $generationScope; $this->deprecationMessages = []; + /** @var $actionObject ActionObject */ foreach ($actionObjects as $actionObject) { $this->deprecationMessages = array_merge($this->deprecationMessages, $actionObject->getDeprecatedUsages()); $stepKey = $actionObject->getStepKey(); @@ -1229,14 +1230,7 @@ public function generateStepsPhp($actionObjects, $generationScope = TestGenerato break; case "assertEquals": if (isset($assertDelta)) { - $replaceType = 'assertEqualsWithDelta'; - call_user_func(\Closure::bind( - function () use ($actionObject, $replaceType) { - $actionObject->type = $replaceType; - }, - null, - $actionObject - )); + $actionObject->setType('assertEqualsWithDelta'); $testSteps .= $this->wrapFunctionCall( $actor, $actionObject, @@ -1257,14 +1251,7 @@ function () use ($actionObject, $replaceType) { break; case "assertNotEquals": if (isset($assertDelta)) { - $replaceType = 'assertNotEqualsWithDelta'; - call_user_func(\Closure::bind( - function () use ($actionObject, $replaceType) { - $actionObject->type = $replaceType; - }, - null, - $actionObject - )); + $actionObject->setType('assertNotEqualsWithDelta'); $testSteps .= $this->wrapFunctionCall( $actor, $actionObject, @@ -1315,14 +1302,7 @@ function () use ($actionObject, $replaceType) { || $customActionAttributes['actualType'] !== 'arrayVariable') && ((substr(trim($assertActual), 0, 1) !== '[') || (substr(trim($assertActual), -1, 1) !== ']'))) { - $replaceType = 'assertStringContainsString'; - call_user_func(\Closure::bind( - function () use ($actionObject, $replaceType) { - $actionObject->type = $replaceType; - }, - null, - $actionObject - )); + $actionObject->setType('assertStringContainsString'); } $testSteps .= $this->wrapFunctionCall( $actor, @@ -1337,14 +1317,7 @@ function () use ($actionObject, $replaceType) { || $customActionAttributes['actualType'] !== 'arrayVariable') && ((substr(trim($assertActual), 0, 1) !== '[') || (substr(trim($assertActual), -1, 1) !== ']'))) { - $replaceType = 'assertStringNotContainsString'; - call_user_func(\Closure::bind( - function () use ($actionObject, $replaceType) { - $actionObject->type = $replaceType; - }, - null, - $actionObject - )); + $actionObject->setType('assertStringNotContainsString'); } $testSteps .= $this->wrapFunctionCall( $actor, @@ -1357,14 +1330,7 @@ function () use ($actionObject, $replaceType) { case "assertInternalType": foreach (self::ASSERT_EQUAL_TYPES as $type) { if (stristr($assertExpected, $type) !== false) { - $replaceType = 'assertIs' . ucfirst($type); - call_user_func(\Closure::bind( - function () use ($actionObject, $replaceType) { - $actionObject->type = $replaceType; - }, - null, - $actionObject - )); + $actionObject->setType('assertIs' . ucfirst($type)); break; } } @@ -1477,14 +1443,7 @@ function () use ($actionObject, $replaceType) { $testSteps .= $this->wrapFunctionCall($actor, $actionObject, $customActionAttributes['state']); break; case "pauseExecution": - $replaceType = 'pause'; - call_user_func(\Closure::bind( - function () use ($actionObject, $replaceType) { - $actionObject->type = $replaceType; - }, - null, - $actionObject - )); + $actionObject->setType('pause'); $testSteps .= $this->wrapFunctionCall( $actor, $actionObject, From 5290c2f7683ec9a40c7a107a62119caa324fd087 Mon Sep 17 00:00:00 2001 From: Ji Lu Date: Tue, 23 Feb 2021 16:14:51 -0600 Subject: [PATCH 08/10] MQE-2501: release 2.7.0 documentation --- CHANGELOG.md | 13 + composer.json | 2 +- composer.lock | 655 +------------------------- docs/backward-incompatible-changes.md | 42 ++ docs/test/actions.md | 179 +++---- docs/test/assertions.md | 71 +-- 6 files changed, 186 insertions(+), 776 deletions(-) create mode 100644 docs/backward-incompatible-changes.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 60e0214d4..44998bcd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ Magento Functional Testing Framework Changelog ================================================ + +2.7.0 +--------- + +* Maintainability + * Added support for PHP 7.4. + * Added support for PHPUnit 9. + * Dropped support for PHP 7.0, 7.1, 7.2. + * Removed action `formatMoney` and added `formatCurrency`. [See actions page for details](./docs/test/actions.md#formatcurrency) + * Updated in test generation to support PHPUnit 9 with the following assertion action changes: [See assertions page for details](./docs/test/assertions.md) + * Removed the action `assertArraySubset`. + * Added a new result type `arrayVariable`. + 2.6.6 --------- diff --git a/composer.json b/composer.json index fcf7350bb..c627850c8 100755 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "magento/magento2-functional-testing-framework", "description": "Magento2 Functional Testing Framework", "type": "library", - "version": "2.6.6", + "version": "2.7.0", "license": "AGPL-3.0", "keywords": ["magento", "automation", "functional", "testing"], "config": { diff --git a/composer.lock b/composer.lock index 130b4fb23..ff01e96aa 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "64777caafb3e49509f5b3ea84bcde5f0", + "content-hash": "396690119bbc3267f2ce743d103ac96e", "packages": [ { "name": "allure-framework/allure-codeception", @@ -299,12 +299,6 @@ "brick", "math" ], - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/brick/math", - "type": "tidelift" - } - ], "time": "2021-01-20T22:51:39+00:00" }, { @@ -483,12 +477,6 @@ "functional testing", "unit testing" ], - "funding": [ - { - "url": "https://opencollective.com/codeception", - "type": "open_collective" - } - ], "time": "2021-02-01T07:30:47+00:00" }, { @@ -816,20 +804,6 @@ "ssl", "tls" ], - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], "time": "2021-01-12T12:10:35+00:00" }, { @@ -910,20 +884,6 @@ "dependency", "package" ], - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], "time": "2021-01-27T14:41:06+00:00" }, { @@ -985,20 +945,6 @@ "validation", "versioning" ], - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], "time": "2020-12-03T15:47:16+00:00" }, { @@ -1059,20 +1005,6 @@ "spdx", "validator" ], - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], "time": "2020-12-03T16:04:16+00:00" }, { @@ -1117,20 +1049,6 @@ "Xdebug", "performance" ], - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], "time": "2020-11-13T08:04:11+00:00" }, { @@ -1476,20 +1394,6 @@ "constructor", "instantiate" ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], "time": "2020-11-10T18:47:58+00:00" }, { @@ -1552,20 +1456,6 @@ "parser", "php" ], - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", - "type": "tidelift" - } - ], "time": "2020-05-25T17:44:05+00:00" }, { @@ -2173,12 +2063,6 @@ "sftp", "storage" ], - "funding": [ - { - "url": "https://offset.earth/frankdejonge", - "type": "other" - } - ], "time": "2020-08-23T07:39:11+00:00" }, { @@ -2221,16 +2105,6 @@ } ], "description": "Mime-type detection for Flysystem", - "funding": [ - { - "url": "https://github.com/frankdejonge", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/league/flysystem", - "type": "tidelift" - } - ], "time": "2021-01-18T20:58:21+00:00" }, { @@ -2303,16 +2177,6 @@ "logging", "psr-3" ], - "funding": [ - { - "url": "https://github.com/Seldaek", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", - "type": "tidelift" - } - ], "time": "2020-12-14T12:56:38+00:00" }, { @@ -2464,12 +2328,6 @@ "object", "object graph" ], - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], "time": "2020-11-13T09:40:50+00:00" }, { @@ -2886,16 +2744,6 @@ "php", "type" ], - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", - "type": "tidelift" - } - ], "time": "2020-07-20T17:29:33+00:00" }, { @@ -3023,12 +2871,6 @@ "testing", "xunit" ], - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-05-23T08:02:54+00:00" }, { @@ -3079,12 +2921,6 @@ "filesystem", "iterator" ], - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-09-28T05:57:25+00:00" }, { @@ -3138,12 +2974,6 @@ "keywords": [ "process" ], - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-09-28T05:58:55+00:00" }, { @@ -3193,12 +3023,6 @@ "keywords": [ "template" ], - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-10-26T05:33:50+00:00" }, { @@ -3248,12 +3072,6 @@ "keywords": [ "timer" ], - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-10-26T13:16:10+00:00" }, { @@ -3303,12 +3121,6 @@ "keywords": [ "tokenizer" ], - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "abandoned": true, "time": "2020-08-04T08:28:15+00:00" }, @@ -3398,16 +3210,6 @@ "testing", "xunit" ], - "funding": [ - { - "url": "https://phpunit.de/donate.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-07-13T17:55:55+00:00" }, { @@ -3751,16 +3553,6 @@ "queue", "set" ], - "funding": [ - { - "url": "https://github.com/ramsey", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", - "type": "tidelift" - } - ], "time": "2021-01-21T17:40:04+00:00" }, { @@ -3842,12 +3634,6 @@ "identifier", "uuid" ], - "funding": [ - { - "url": "https://github.com/ramsey", - "type": "github" - } - ], "time": "2020-08-18T17:17:46+00:00" }, { @@ -3894,12 +3680,6 @@ ], "description": "Collection of value objects that represent the PHP code units", "homepage": "https://github.com/sebastianbergmann/code-unit", - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-10-26T13:08:54+00:00" }, { @@ -3945,12 +3725,6 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-09-28T05:30:19+00:00" }, { @@ -4015,12 +3789,6 @@ "compare", "equality" ], - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-10-26T15:49:45+00:00" }, { @@ -4077,12 +3845,6 @@ "unidiff", "unified diff" ], - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-10-26T13:10:38+00:00" }, { @@ -4136,12 +3898,6 @@ "environment", "hhvm" ], - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-09-28T05:52:38+00:00" }, { @@ -4209,12 +3965,6 @@ "export", "exporter" ], - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-09-28T05:24:23+00:00" }, { @@ -4316,12 +4066,6 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-10-26T13:12:34+00:00" }, { @@ -4367,12 +4111,6 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-10-26T13:14:26+00:00" }, { @@ -4426,12 +4164,6 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-10-26T13:17:30+00:00" }, { @@ -4477,12 +4209,6 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-09-28T06:45:17+00:00" }, { @@ -4529,12 +4255,6 @@ ], "description": "Collection of value objects that represent the types of the PHP type system", "homepage": "https://github.com/sebastianbergmann/type", - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-10-26T13:18:59+00:00" }, { @@ -4578,12 +4298,6 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-09-28T06:39:44+00:00" }, { @@ -4633,16 +4347,6 @@ "parser", "validator" ], - "funding": [ - { - "url": "https://github.com/Seldaek", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", - "type": "tidelift" - } - ], "time": "2020-11-11T09:19:24+00:00" }, { @@ -4759,20 +4463,6 @@ ], "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-27T09:09:26+00:00" }, { @@ -4821,20 +4511,6 @@ ], "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-27T10:01:46+00:00" }, { @@ -4885,20 +4561,6 @@ ], "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2020-09-07T11:33:47+00:00" }, { @@ -4965,20 +4627,6 @@ ], "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-27T09:09:26+00:00" }, { @@ -5041,20 +4689,6 @@ "interoperability", "standards" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2020-07-06T13:19:58+00:00" }, { @@ -5100,20 +4734,6 @@ ], "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-27T10:01:46+00:00" }, { @@ -5158,20 +4778,6 @@ ], "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-28T22:06:19+00:00" }, { @@ -5228,20 +4834,6 @@ ], "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-02-03T04:42:09+00:00" }, { @@ -5307,20 +4899,6 @@ "mime", "mime-type" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-02-02T06:10:15+00:00" }, { @@ -5383,20 +4961,6 @@ "polyfill", "portable" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-07T16:49:33+00:00" }, { @@ -5467,20 +5031,6 @@ "portable", "shim" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-07T16:49:33+00:00" }, { @@ -5548,20 +5098,6 @@ "portable", "shim" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-07T17:09:11+00:00" }, { @@ -5625,20 +5161,6 @@ "portable", "shim" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-07T16:49:33+00:00" }, { @@ -5698,20 +5220,6 @@ "portable", "shim" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-07T16:49:33+00:00" }, { @@ -5774,20 +5282,6 @@ "portable", "shim" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-07T16:49:33+00:00" }, { @@ -5854,20 +5348,6 @@ "portable", "shim" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-07T16:49:33+00:00" }, { @@ -5912,20 +5392,6 @@ ], "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-27T09:09:26+00:00" }, { @@ -5988,20 +5454,6 @@ "interoperability", "standards" ], - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2020-09-07T11:33:47+00:00" }, { @@ -6056,20 +5508,6 @@ ], "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-27T09:09:26+00:00" }, { @@ -6110,12 +5548,6 @@ } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], "time": "2020-07-12T23:59:07+00:00" }, { @@ -6178,16 +5610,6 @@ "env", "environment" ], - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", - "type": "tidelift" - } - ], "time": "2021-01-20T14:39:13+00:00" }, { @@ -6496,12 +5918,6 @@ } ], "description": "Library for accessing git", - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/gitonomy/gitlib", - "type": "tidelift" - } - ], "time": "2020-12-29T16:48:45+00:00" }, { @@ -6868,12 +6284,6 @@ "BSD-3-Clause" ], "description": "Official version of pdepend to be handled with Composer", - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend", - "type": "tidelift" - } - ], "time": "2020-06-20T10:53:13+00:00" }, { @@ -7007,12 +6417,6 @@ "phpmd", "pmd" ], - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/phpmd/phpmd", - "type": "tidelift" - } - ], "time": "2020-09-23T22:06:32+00:00" }, { @@ -7101,12 +6505,6 @@ ], "description": "Library for parsing CLI options", "homepage": "https://github.com/sebastianbergmann/cli-parser", - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-09-28T06:08:49+00:00" }, { @@ -7158,12 +6556,6 @@ ], "description": "Copy/Paste Detector (CPD) for PHP code.", "homepage": "https://github.com/sebastianbergmann/phpcpd", - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], "time": "2020-12-07T05:39:23+00:00" }, { @@ -7274,20 +6666,6 @@ ], "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-27T09:09:26+00:00" }, { @@ -7356,20 +6734,6 @@ ], "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2021-01-27T09:09:26+00:00" }, { @@ -7414,20 +6778,6 @@ ], "description": "Symfony Stopwatch Component", "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], "time": "2020-10-24T10:57:07+00:00" } ], @@ -7443,6 +6793,5 @@ "ext-json": "*", "ext-openssl": "*" }, - "platform-dev": [], - "plugin-api-version": "1.1.0" + "platform-dev": [] } diff --git a/docs/backward-incompatible-changes.md b/docs/backward-incompatible-changes.md new file mode 100644 index 000000000..8ec54bd1b --- /dev/null +++ b/docs/backward-incompatible-changes.md @@ -0,0 +1,42 @@ +# MFTF 2.7.0 backward incompatible changes + +This page highlights backward incompatible changes from previous 2.6.x releases that have major impacts and require special instructions to ensure third-party tests continue working with Magento core tests. + +## Minimum supported PHP version changes + +We changed the minimum PHP version requirement from 7.0 to 7.3. Because of the PHP version requirement change, this MFTF version only supports Magento 2.3.x, where x is 7 or above. + +## XSD schema changes + +- `arrayVariable` is added as an additional supported result type in assertions. +This is used for `assertContains` and `assertNotContains` actions when the result type is a variable that contains an array. + + ```xml + + + ID + columns + + ``` + +## MFTF actions + +### `formatMoney` removed + +**Action**: `formatMoney` has been removed in favor of `formatCurrency`. + +**Reason**: PHP 7.4 has deprecated use of `formatMoney`. + +**Details**: Format input to specified currency according to the locale specified. + +Usage example: + +```xml + +``` + +### `assertArraySubset` removed + +**Action**: Assert action `assertArraySubset` has been removed. + +**Reason**: PHPUnit 9 has dropped support for this assertion. diff --git a/docs/test/actions.md b/docs/test/actions.md index 5af0c6439..7a99e04a3 100644 --- a/docs/test/actions.md +++ b/docs/test/actions.md @@ -1,7 +1,7 @@ # Test actions Actions in the MFTF allow you to automate different scenarios of Magento user's actions. -They are mostly XML implementations of [Codeception actions](http://codeception.com/docs/modules/WebDriver#Actions). +They are mostly XML implementations of [Codeception actions](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#Actions). Some actions drive browser elements, while others use REST APIs. ## Common attributes @@ -185,7 +185,7 @@ If the description of an element does not include a link to Codeception analogue Accepts the current popup visible on the page. -See [acceptPopup docs on codeception.com](http://codeception.com/docs/modules/WebDriver#acceptPopup). +See [acceptPopup docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#acceptPopup). Attribute|Type|Use|Description ---|---|---|--- @@ -204,7 +204,7 @@ Attribute|Type|Use|Description Opens the page by the URL relative to the one set in the `MAGENTO_BASE_URL` configuration variable. -See [amOnPage docs on codeception.com](http://codeception.com/docs/modules/WebDriver#amOnPage). +See [amOnPage docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#amOnPage). Attribute|Type|Use|Description ---|---|---|--- @@ -224,7 +224,7 @@ Attribute|Type|Use|Description Takes the base URL and changes the subdomain. -See [amOnSubdomain docs on codeception.com](http://codeception.com/docs/modules/WebDriver#amOnSubdomain). +See [amOnSubdomain docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#amOnSubdomain). Attribute|Type|Use|Description ---|---|---|--- @@ -248,7 +248,7 @@ Pre-condition: the current base URL is `https://www.magento.com`. Opens a page by the absolute URL. -See [amOnUrl docs on codeception.com](http://codeception.com/docs/modules/WebDriver#amOnUrl). +See [amOnUrl docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#amOnUrl). Attribute|Type|Use|Description ---|---|---|--- @@ -266,7 +266,7 @@ Attribute|Type|Use|Description ### appendField -See [appendField docs on codeception.com](http://codeception.com/docs/modules/WebDriver#appendField). +See [appendField docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#appendField). Attribute|Type|Use|Description ---|---|---|--- @@ -285,7 +285,7 @@ Attribute|Type|Use|Description ### attachFile -See [attachFile docs on codeception.com](http://codeception.com/docs/modules/WebDriver#attachFile). +See [attachFile docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#attachFile). Attribute|Type|Use|Description ---|---|---|--- @@ -304,7 +304,7 @@ Attribute|Type|Use|Description ### cancelPopup -See [cancelPopup docs on codeception.com](http://codeception.com/docs/modules/WebDriver#cancelPopup). +See [cancelPopup docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#cancelPopup). Attribute|Type|Use|Description ---|---|---|--- @@ -321,7 +321,7 @@ Attribute|Type|Use|Description ### checkOption -See [checkOption docs on codeception.com](http://codeception.com/docs/modules/WebDriver#checkOption). +See [checkOption docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#checkOption). Attribute|Type|Use|Description ---|---|---|--- @@ -358,12 +358,12 @@ Attribute|Type|Use|Description ### click -See [click docs on codeception.com](http://codeception.com/docs/modules/WebDriver#click). +See [click docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#click). Attribute|Type|Use|Description ---|---|---|--- `selector`|string|optional| The selector identifying the corresponding HTML element. -`selectorArray`|string|optional| Selects an element as a key value array. See [strict locator](http://codeception.com/docs/modules/WebDriver#locating-elements). +`selectorArray`|string|optional| Selects an element as a key value array. See [strict locator](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#locating-elements). `userInput`|string|optional| Data to be sent with the click. `stepKey`|string|required| A unique identifier of the action. `before`|string|optional| `stepKey` of action that must be executed next. @@ -383,7 +383,7 @@ Attribute|Type|Use|Description ### clickWithLeftButton -See [clickWithLeftButton docs on codeception.com](http://codeception.com/docs/modules/WebDriver#clickWithLeftButton). +See [clickWithLeftButton docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#clickWithLeftButton). Attribute|Type|Use|Description ---|---|---|--- @@ -414,7 +414,7 @@ Attribute|Type|Use|Description ### clickWithRightButton -See [clickWithRightButton docs on codeception.com](http://codeception.com/docs/modules/WebDriver#clickWithRightButton). +See [clickWithRightButton docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#clickWithRightButton). Attribute|Type|Use|Description ---|---|---|--- @@ -462,7 +462,7 @@ Attribute|Type|Use|Description ### closeTab -See [closeTab docs on codeception.com](http://codeception.com/docs/modules/WebDriver#closeTab). +See [closeTab docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#closeTab). Attribute|Type|Use|Description ---|---|---|--- @@ -620,7 +620,7 @@ Delete an entity using [REST API](https://devdocs.magento.com/redoc/2.3/) reques ### dontSee -See [the codeception.com documentation for more information about this action](http://codeception.com/docs/modules/WebDriver#dontSee). +See [the codeception.com documentation for more information about this action](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dontSee). Attribute|Type|Use|Description ---|---|---|--- @@ -640,7 +640,7 @@ Attribute|Type|Use|Description ### dontSeeCheckboxIsChecked -See [dontSeeCheckboxIsChecked docs on codeception.com](http://codeception.com/docs/modules/WebDriver#dontSeeCheckboxIsChecked). +See [dontSeeCheckboxIsChecked docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dontSeeCheckboxIsChecked). Attribute|Type|Use|Description ---|---|---|--- @@ -658,7 +658,7 @@ Attribute|Type|Use|Description ### dontSeeCookie -See [dontSeeCookie docs on codeception.com](http://codeception.com/docs/modules/WebDriver#dontSeeCookie). +See [dontSeeCookie docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dontSeeCookie). Attribute|Type|Use|Description ---|---|---|--- @@ -682,7 +682,7 @@ Attribute|Type|Use|Description ### dontSeeCurrentUrlEquals -See [dontSeeCurrentUrlEquals docs on codeception.com](http://codeception.com/docs/modules/WebDriver#dontSeeCurrentUrlEquals). +See [dontSeeCurrentUrlEquals docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dontSeeCurrentUrlEquals). Attribute|Type|Use|Description ---|---|---|--- @@ -700,7 +700,7 @@ Attribute|Type|Use|Description ### dontSeeCurrentUrlMatches -See [dontSeeCurrentUrlMatches docs on codeception.com](http://codeception.com/docs/modules/WebDriver#dontSeeCurrentUrlMatches) +See [dontSeeCurrentUrlMatches docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dontSeeCurrentUrlMatches) Attribute|Type|Use|Description ---|---|---|--- @@ -718,7 +718,7 @@ Attribute|Type|Use|Description ### dontSeeElement -See [dontSeeElement docs on codeception.com](http://codeception.com/docs/modules/WebDriver#dontSeeElement). +See [dontSeeElement docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dontSeeElement). Attribute|Type|Use|Description ---|---|---|--- @@ -737,7 +737,7 @@ Attribute|Type|Use|Description ### dontSeeElementInDOM -See [dontSeeElementInDOM docs on codeception.com](http://codeception.com/docs/modules/WebDriver#dontSeeElementInDOM). +See [dontSeeElementInDOM docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dontSeeElementInDOM). Attribute|Type|Use|Description ---|---|---|--- @@ -756,7 +756,7 @@ Attribute|Type|Use|Description ### dontSeeInCurrentUrl -See [dontSeeInCurrentUrl docs on codeception.com](http://codeception.com/docs/modules/WebDriver#dontSeeInCurrentUrl). +See [dontSeeInCurrentUrl docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dontSeeInCurrentUrl). Attribute|Type|Use|Description ---|---|---|--- @@ -774,7 +774,7 @@ Attribute|Type|Use|Description ### dontSeeInField -See [dontSeeInField docs on codeception.com](http://codeception.com/docs/modules/WebDriver#dontSeeInField). +See [dontSeeInField docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dontSeeInField). Attribute|Type|Use|Description ---|---|---|--- @@ -794,7 +794,7 @@ Attribute|Type|Use|Description ### dontSeeInFormFields -See [dontSeeInFormFields docs on codeception.com](http://codeception.com/docs/modules/WebDriver#dontSeeInFormFields). +See [dontSeeInFormFields docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dontSeeInFormFields). Attribute|Type|Use|Description ---|---|---|--- @@ -813,7 +813,7 @@ Attribute|Type|Use|Description ### dontSeeInPageSource -See [dontSeeInPageSource docs on codeception.com](http://codeception.com/docs/modules/WebDriver#dontSeeInPageSource). +See [dontSeeInPageSource docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dontSeeInPageSource). Attribute|Type|Use|Description ---|---|---|--- @@ -831,7 +831,7 @@ Attribute|Type|Use|Description ### dontSeeInSource -See [dontSeeInSource docs on codeception.com](http://codeception.com/docs/modules/WebDriver#dontSeeInSource). +See [dontSeeInSource docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dontSeeInSource). Attribute|Type|Use|Description ---|---|---|--- @@ -851,7 +851,7 @@ You must encode the `html` using a tool such as [CyberChef](https://gchq.github. ### dontSeeInTitle -See [dontSeeInTitle docs on codeception.com](http://codeception.com/docs/modules/WebDriver#dontSeeInTitle). +See [dontSeeInTitle docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dontSeeInTitle). Attribute|Type|Use|Description ---|---|---|--- @@ -886,7 +886,7 @@ Attribute|Type|Use|Description ### dontSeeLink -See [dontSeeLink docs on codeception.com](http://codeception.com/docs/modules/WebDriver#dontSeeLink). +See [dontSeeLink docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dontSeeLink). Attribute|Type|Use|Description ---|---|---|--- @@ -910,7 +910,7 @@ Attribute|Type|Use|Description ### dontSeeOptionIsSelected -See [dontSeeOptionIsSelected docs on codeception.com](http://codeception.com/docs/modules/WebDriver#dontSeeOptionIsSelected). +See [dontSeeOptionIsSelected docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dontSeeOptionIsSelected). Attribute|Type|Use|Description ---|---|---|--- @@ -929,7 +929,7 @@ Attribute|Type|Use|Description ### doubleClick -See [doubleClick docs on codeception.com](http://codeception.com/docs/modules/WebDriver#doubleClick). +See [doubleClick docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#doubleClick). Attribute|Type|Use|Description ---|---|---|--- @@ -947,7 +947,7 @@ Attribute|Type|Use|Description ### dragAndDrop -See [dragAndDrop docs on codeception.com](http://codeception.com/docs/modules/WebDriver#dragAndDrop). +See [dragAndDrop docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#dragAndDrop). Attribute|Type|Use|Description ---|---|---|--- @@ -975,7 +975,7 @@ Attribute|Type|Use|Description #### NOTE: `executeInSelenium` action is DEPRECATED and will be removed in MFTF 3.0.0. -See [executeInSelenium docs on codeception.com](http://codeception.com/docs/modules/WebDriver#executeInSelenium). +See [executeInSelenium docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#executeInSelenium). Attribute|Type|Use|Description ---|---|---|--- @@ -993,7 +993,7 @@ Attribute|Type|Use|Description ### executeJS -See [executeJS docs on codeception.com](http://codeception.com/docs/modules/WebDriver#executeJS). +See [executeJS docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#executeJS). Attribute|Type|Use|Description ---|---|---|--- @@ -1014,7 +1014,7 @@ To access this value you would use `{$returnTime}` in later actions. ### fillField -See [fillField docs on codeception.com](http://codeception.com/docs/modules/WebDriver#fillField). +See [fillField docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#fillField). Attribute|Type|Use|Description ---|---|---|--- @@ -1094,7 +1094,7 @@ This action can optionally contain one or more [requiredEntity](#requiredentity) ### grabAttributeFrom -See [grabAttributeFrom docs on codeception.com](http://codeception.com/docs/modules/WebDriver#grabAttributeFrom). +See [grabAttributeFrom docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#grabAttributeFrom). Attribute|Type|Use|Description ---|---|---|--- @@ -1114,7 +1114,7 @@ To access this value, use `{$grabAttributeFromInput}` in later actions. --> ### grabCookie -See [grabCookie docs on codeception.com](http://codeception.com/docs/modules/WebDriver#grabCookie). +See [grabCookie docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#grabCookie). Attribute|Type|Use|Description ---|---|---|--- @@ -1140,7 +1140,7 @@ To access this value, use `{$grabCookieExampleDomain}` in later actions. --> ### grabFromCurrentUrl -See [grabFromCurrentUrl docs on codeception.com](http://codeception.com/docs/modules/WebDriver#grabFromCurrentUrl).. +See [grabFromCurrentUrl docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#grabFromCurrentUrl).. Attribute|Type|Use|Description ---|---|---|--- @@ -1159,7 +1159,7 @@ To access this value, use `{$grabFromCurrentUrl}` in later actions. --> ### grabMultiple -See [grabMultiple docs on codeception.com](http://codeception.com/docs/modules/WebDriver#grabMultiple).. +See [grabMultiple docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#grabMultiple).. Attribute|Type|Use|Description ---|---|---|--- @@ -1185,7 +1185,7 @@ To access this value, use `{$grabAllLinks}` in later actions. --> ### grabPageSource -See [grabPageSource docs on codeception.com](http://codeception.com/docs/modules/WebDriver#grabPageSource). +See [grabPageSource docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#grabPageSource). Attribute|Type|Use|Description ---|---|---|--- @@ -1203,7 +1203,7 @@ To access this value, use `{$grabPageSource}` in later actions. --> ### grabTextFrom -See [grabTextFrom docs on codeception.com](http://codeception.com/docs/modules/WebDriver#grabTextFrom). +See [grabTextFrom docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#grabTextFrom). Attribute|Type|Use|Description ---|---|---|--- @@ -1242,7 +1242,7 @@ To access this value, use `{$grabInputName}` in later actions. --> ### loadSessionSnapshot -See [loadSessionSnapshot docs on codeception.com](http://codeception.com/docs/modules/WebDriver#loadSessionSnapshot). +See [loadSessionSnapshot docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#loadSessionSnapshot). Attribute|Type|Use|Description ---|---|---|--- @@ -1303,7 +1303,7 @@ Attribute|Type|Use|Description ### makeScreenshot -See [makeScreenshot docs on codeception.com](http://codeception.com/docs/modules/WebDriver#makeScreenshot). +See [makeScreenshot docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#makeScreenshot). Attribute|Type|Use|Description ---|---|---|--- @@ -1326,7 +1326,7 @@ This action does not add a screenshot to the Allure [report](../reporting.md).` where you specify the options that must be ### setCookie -See [setCookie docs on codeception.com](http://codeception.com/docs/modules/WebDriver#setCookie). +See [setCookie docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#setCookie). Attribute|Type|Use|Description ---|---|---|--- @@ -2073,7 +2074,7 @@ Attribute|Type|Use|Description ### submitForm -See [submitForm docs on codeception.com](http://codeception.com/docs/modules/WebDriver#submitForm). +See [submitForm docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#submitForm). Attribute|Type|Use|Description ---|---|---|--- @@ -2093,7 +2094,7 @@ Attribute|Type|Use|Description ### switchToIFrame -See [switchToIFrame docs on codeception.com](http://codeception.com/docs/modules/WebDriver#switchToIFrame). +See [switchToIFrame docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#switchToIFrame). Attribute|Type|Use|Description ---|---|---|--- @@ -2112,7 +2113,7 @@ Attribute|Type|Use|Description ### switchToNextTab -See [switchToNextTab docs on codeception.com](http://codeception.com/docs/modules/WebDriver#switchToNextTab). +See [switchToNextTab docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#switchToNextTab). Attribute|Type|Use|Description ---|---|---|--- @@ -2135,7 +2136,7 @@ Attribute|Type|Use|Description ### switchToPreviousTab -See [switchToPreviousTab docs on codeception.com](http://codeception.com/docs/modules/WebDriver#switchToPreviousTab). +See [switchToPreviousTab docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#switchToPreviousTab). Attribute|Type|Use|Description ---|---|---|--- @@ -2158,7 +2159,7 @@ Attribute|Type|Use|Description ### switchToWindow -See [switchToWindow docs on codeception.com](http://codeception.com/docs/modules/WebDriver#switchToWindow). +See [switchToWindow docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#switchToWindow). Attribute|Type|Use|Description ---|---|---|--- @@ -2176,7 +2177,7 @@ Attribute|Type|Use|Description ### typeInPopup -See [typeInPopup docs on codeception.com](http://codeception.com/docs/modules/WebDriver#typeInPopup). +See [typeInPopup docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#typeInPopup). Attribute|Type|Use|Description ---|---|---|--- @@ -2194,7 +2195,7 @@ Attribute|Type|Use|Description ### uncheckOption -See [uncheckOption docs on codeception.com](http://codeception.com/docs/modules/WebDriver#uncheckOption). +See [uncheckOption docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#uncheckOption). Attribute|Type|Use|Description ---|---|---|--- @@ -2212,7 +2213,7 @@ Attribute|Type|Use|Description ### unselectOption -See [unselectOption docs on codeception.com](http://codeception.com/docs/modules/WebDriver#unselectOption). +See [unselectOption docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#unselectOption). Attribute|Type|Use|Description ---|---|---|--- @@ -2264,7 +2265,7 @@ This action can optionally contain one or more [requiredEntity](#requiredentity) ### wait -See [wait docs on codeception.com](http://codeception.com/docs/modules/WebDriver#wait). +See [wait docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#wait). Attribute|Type|Use|Description ---|---|---|--- @@ -2300,7 +2301,7 @@ Attribute|Type|Use|Description ### waitForElementChange -See [waitForElementChange docs on codeception.com](http://codeception.com/docs/modules/WebDriver#waitForElementChange). +See [waitForElementChange docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#waitForElementChange). Attribute|Type|Use|Description ---|---|---|--- @@ -2320,7 +2321,7 @@ Attribute|Type|Use|Description ### waitForElement -See [waitForElement docs on codeception.com](http://codeception.com/docs/modules/WebDriver#waitForElement). +See [waitForElement docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#waitForElement). Attribute|Type|Use|Description ---|---|---|--- @@ -2339,7 +2340,7 @@ Attribute|Type|Use|Description ### waitForElementNotVisible -See [waitForElementNotVisible docs on codeception.com](http://codeception.com/docs/modules/WebDriver#waitForElementNotVisible). +See [waitForElementNotVisible docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#waitForElementNotVisible). Attribute|Type|Use|Description ---|---|---|--- @@ -2358,7 +2359,7 @@ Attribute|Type|Use|Description ### waitForElementVisible -See [waitForElementVisible docs on codeception.com](http://codeception.com/docs/modules/WebDriver#waitForElementVisible). +See [waitForElementVisible docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#waitForElementVisible). Attribute|Type|Use|Description ---|---|---|--- @@ -2377,7 +2378,7 @@ Attribute|Type|Use|Description ### waitForJS -See [waitForJS docs on codeception.com](http://codeception.com/docs/modules/WebDriver#waitForJS). +See [waitForJS docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#waitForJS). Attribute|Type|Use|Description ---|---|---|--- @@ -2483,7 +2484,7 @@ Attribute|Type|Use|Description ### waitForText -See [waitForText docs on codeception.com](http://codeception.com/docs/modules/WebDriver#waitForText). +See [waitForText docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#waitForText). Attribute|Type|Use|Description ---|---|---|--- diff --git a/docs/test/assertions.md b/docs/test/assertions.md index cad01795f..62f3e2ab3 100644 --- a/docs/test/assertions.md +++ b/docs/test/assertions.md @@ -89,7 +89,7 @@ It must be in typical array format like `[1,2,3,4,5]` or `[alpha, brontosaurus, ### assertArrayHasKey -See [assertArrayHasKey docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertArrayHasKey) +See [assertArrayHasKey docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertArrayHasKey) Attribute|Type|Use|Description ---|---|---|--- @@ -104,7 +104,7 @@ Attribute|Type|Use|Description ### assertArrayNotHasKey -See [assertArrayNotHasKey docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertArrayNotHasKey). +See [assertArrayNotHasKey docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertArrayNotHasKey). Attribute|Type|Use|Description ---|---|---|--- @@ -119,7 +119,8 @@ Attribute|Type|Use|Description ### assertContains -See [assertContains docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertContains). +See [assertContains docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertContains). +MFTF will map and generate `assertContains` action to PHPUnit 9 compatible assertContains() or assertStringContainsString() accordingly. Attribute|Type|Use|Description ---|---|---|--- @@ -134,7 +135,7 @@ Attribute|Type|Use|Description ### assertCount -See [assertCount docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertCount). +See [assertCount docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertCount). Attribute|Type|Use|Description ---|---|---|--- @@ -149,7 +150,7 @@ Attribute|Type|Use|Description ### assertEmpty -See [assertEmpty docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertEmpty). +See [assertEmpty docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertEmpty). Attribute|Type|Use|Description ---|---|---|--- @@ -162,7 +163,8 @@ Attribute|Type|Use|Description ### assertEquals -See [assertEquals docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertEquals). +See [assertEquals docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertEquals). +MFTF will map and generate `assertEquals` action to PHPUnit 9 compatible assertEquals() or assertEqualsWithDelta() accordingly. Attribute|Type|Use|Description ---|---|---|--- @@ -178,7 +180,7 @@ Attribute|Type|Use|Description ### assertFalse -See [assertFalse docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertFalse). +See [assertFalse docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertFalse). Attribute|Type|Use|Description ---|---|---|--- @@ -191,7 +193,7 @@ Attribute|Type|Use|Description ### assertFileExists -See [assertFileExists docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertFileExists). +See [assertFileExists docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertFileExists). Attribute|Type|Use|Description ---|---|---|--- @@ -204,7 +206,7 @@ Attribute|Type|Use|Description ### assertFileNotExists -See [assertFileNotExists docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertFileNotExists). +See [assertFileNotExists docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertFileNotExists). Attribute|Type|Use|Description ---|---|---|--- @@ -217,7 +219,7 @@ Attribute|Type|Use|Description ### assertGreaterOrEquals -See [assertGreaterOrEquals docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertGreaterOrEquals). +See [assertGreaterOrEquals docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertGreaterOrEquals). Attribute|Type|Use|Description ---|---|---|--- @@ -232,7 +234,7 @@ Attribute|Type|Use|Description ### assertGreaterThan -See [assertGreaterThan docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertGreaterThan). +See [assertGreaterThan docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertGreaterThan). Attribute|Type|Use|Description ---|---|---|--- @@ -247,7 +249,7 @@ Attribute|Type|Use|Description ### assertGreaterThanOrEqual -See [assertGreaterThanOrEqual docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertGreaterThanOrEqual). +See [assertGreaterThanOrEqual docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertGreaterThanOrEqual). Attribute|Type|Use|Description ---|---|---|--- @@ -262,7 +264,7 @@ Attribute|Type|Use|Description ### assertInstanceOf -See [assertInstanceOf docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertInstanceOf). +See [assertInstanceOf docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertInstanceOf). Attribute|Type|Use|Description ---|---|---|--- @@ -277,7 +279,8 @@ Attribute|Type|Use|Description ### assertInternalType -See [assertInternalType docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertInternalType). +See [assertInternalType docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertInternalType). +MFTF will map and generate `assertInternalType` action to PHPUnit 9 compatible assertIsInt(), assertIsFloat(), assertIsBool(), assertIsString() or assertIsArray() accordingly. Attribute|Type|Use|Description ---|---|---|--- @@ -292,7 +295,7 @@ Attribute|Type|Use|Description ### assertIsEmpty -See [assertIsEmpty docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertIsEmpty). +See [assertIsEmpty docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertIsEmpty). Attribute|Type|Use|Description ---|---|---|--- @@ -305,7 +308,7 @@ Attribute|Type|Use|Description ### assertLessOrEquals -See [assertLessOrEquals docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertLessOrEquals). +See [assertLessOrEquals docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertLessOrEquals). Attribute|Type|Use|Description ---|---|---|--- @@ -320,7 +323,7 @@ Attribute|Type|Use|Description ### assertLessThan -See [assertLessThan docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertLessThan). +See [assertLessThan docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertLessThan). Attribute|Type|Use|Description ---|---|---|--- @@ -335,7 +338,7 @@ Attribute|Type|Use|Description ### assertLessThanOrEqual -See [assertLessThanOrEqual docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertLessThanOrEqual). +See [assertLessThanOrEqual docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertLessThanOrEqual). Attribute|Type|Use|Description ---|---|---|--- @@ -350,7 +353,8 @@ Attribute|Type|Use|Description ### assertNotContains -See [assertNotContains docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertNotContains). +See [assertNotContains docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertNotContains). +MFTF will map and generate `assertNotContains` action to PHPUnit 9 compatible assertNotContains() or assertStringNotContainsString() accordingly. Attribute|Type|Use|Description ---|---|---|--- @@ -365,7 +369,7 @@ Attribute|Type|Use|Description ### assertNotEmpty -See [assertNotEmpty docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertNotEmpty). +See [assertNotEmpty docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertNotEmpty). Attribute|Type|Use|Description ---|---|---|--- @@ -378,7 +382,8 @@ Attribute|Type|Use|Description ### assertNotEquals -See [assertNotEquals docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertNotEquals). +See [assertNotEquals docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertNotEquals). +MFTF will map and generate `assertNotEquals` action to PHPUnit 9 compatible assertNotEquals() or assertNotEqualsWithDelta() accordingly. Attribute|Type|Use|Description ---|---|---|--- @@ -394,7 +399,7 @@ Attribute|Type|Use|Description ### assertNotInstanceOf -See [assertNotInstanceOf docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertNotInstanceOf). +See [assertNotInstanceOf docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertNotInstanceOf). Attribute|Type|Use|Description ---|---|---|--- @@ -409,7 +414,7 @@ Attribute|Type|Use|Description ### assertNotNull -See [assertNotNull docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertNotNull). +See [assertNotNull docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertNotNull). Attribute|Type|Use|Description ---|---|---|--- @@ -422,7 +427,7 @@ Attribute|Type|Use|Description ### assertNotRegExp -See [assertNotRegExp docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertNotRegExp). +See [assertNotRegExp docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertNotRegExp). Attribute|Type|Use|Description ---|---|---|--- @@ -437,7 +442,7 @@ Attribute|Type|Use|Description ### assertNotSame -See [assertNotSame docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertNotSame). +See [assertNotSame docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertNotSame). Attribute|Type|Use|Description ---|---|---|--- @@ -452,7 +457,7 @@ Attribute|Type|Use|Description ### assertNull -See [assertNull docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertNull). +See [assertNull docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertNull). Attribute|Type|Use|Description ---|---|---|--- @@ -465,7 +470,7 @@ Attribute|Type|Use|Description ### assertRegExp -See [assertRegExp docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertRegExp). +See [assertRegExp docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertRegExp). Attribute|Type|Use|Description ---|---|---|--- @@ -480,7 +485,7 @@ Attribute|Type|Use|Description ### assertSame -See [assertSame docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertSame). +See [assertSame docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertSame). Attribute|Type|Use|Description ---|---|---|--- @@ -495,7 +500,7 @@ Attribute|Type|Use|Description ### assertStringStartsNotWith -See [assertStringStartsNotWith docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertStringStartsNotWith). +See [assertStringStartsNotWith docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertStringStartsNotWith). Attribute|Type|Use|Description ---|---|---|--- @@ -510,7 +515,7 @@ Attribute|Type|Use|Description ### assertStringStartsWith -See [assertStringStartsWith docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertStringStartsWith). +See [assertStringStartsWith docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertStringStartsWith). Attribute|Type|Use|Description ---|---|---|--- @@ -525,7 +530,7 @@ Attribute|Type|Use|Description ### assertTrue -See [assertTrue docs on codeception.com](http://codeception.com/docs/modules/Asserts#assertTrue). +See [assertTrue docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/Asserts.md#assertTrue). Attribute|Type|Use|Description ---|---|---|--- @@ -538,7 +543,7 @@ Attribute|Type|Use|Description ### expectException -See [expectException docs on codeception.com](http://codeception.com/docs/modules/WebDriver#expectException). +See [expectException docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#expectException). Attribute|Type|Use|Description ---|---|---|--- @@ -552,7 +557,7 @@ Attribute|Type|Use|Description ### fail -See [fail docs on codeception.com](http://codeception.com/docs/modules/WebDriver#fail). +See [fail docs on codeception.com](https://github.com/Codeception/Codeception/blob/2.5/docs/modules/WebDriver#fail). Attribute|Type|Use|Description ---|---|---|--- From 90dd740dda4c5b1a8dbcf283a976c2a10ffde43e Mon Sep 17 00:00:00 2001 From: Ji Lu Date: Wed, 24 Feb 2021 09:50:48 -0600 Subject: [PATCH 09/10] MQE-2501: release 2.7.0 documentation --- composer.json | 2 +- composer.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index c627850c8..46c7f86eb 100755 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "codeception/module-asserts": "^1.1", "codeception/module-sequence": "^1.0", "codeception/module-webdriver": "^1.0", - "composer/composer": "^1.6", + "composer/composer": "^1.9||^2.0", "csharpru/vault-php": "~3.5.3", "csharpru/vault-php-guzzle6-transport": "^2.0", "flow/jsonpath": ">0.2", diff --git a/composer.lock b/composer.lock index ff01e96aa..54d803eba 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "396690119bbc3267f2ce743d103ac96e", + "content-hash": "75fac2b26086ad6fdb92dced96484e3a", "packages": [ { "name": "allure-framework/allure-codeception", From 07230939509006bd59cdbb2262eaa11f1625a825 Mon Sep 17 00:00:00 2001 From: Donald Booth Date: Wed, 24 Feb 2021 12:26:52 -0500 Subject: [PATCH 10/10] markdown formatting --- docs/test/actions.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/test/actions.md b/docs/test/actions.md index 7a99e04a3..2a029638b 100644 --- a/docs/test/actions.md +++ b/docs/test/actions.md @@ -1033,6 +1033,7 @@ Attribute|Type|Use|Description ``` ### formatCurrency + Format input to specified currency according to the locale specified. Returns formatted string for test use. Use NumberFormatter::formatCurrency(), see https://www.php.net/manual/en/numberformatter.formatcurrency.php