Included vendor/ to the project

This commit is contained in:
2017-09-13 09:35:32 +07:00
parent e72205ff09
commit 17f1643875
2483 changed files with 179073 additions and 0 deletions

82
vendor/phpunit/phpunit/.php_cs vendored Normal file
View File

@@ -0,0 +1,82 @@
<?php
$header = <<<'EOF'
This file is part of PHPUnit.
(c) Sebastian Bergmann <sebastian@phpunit.de>
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
EOF;
return PhpCsFixer\Config::create()
->setRiskyAllowed(true)
->setRules(
[
'array_syntax' => ['syntax' => 'short'],
'binary_operator_spaces' => [
'align_double_arrow' => true,
'align_equals' => true
],
'blank_line_after_namespace' => true,
'blank_line_before_return' => true,
'braces' => true,
'cast_spaces' => true,
'concat_space' => ['spacing' => 'one'],
'elseif' => true,
'encoding' => true,
'full_opening_tag' => true,
'function_declaration' => true,
'header_comment' => ['header' => $header, 'separate' => 'none'],
'indentation_type' => true,
'line_ending' => true,
'lowercase_constants' => true,
'lowercase_keywords' => true,
'method_argument_space' => true,
'native_function_invocation' => true,
'no_alias_functions' => true,
'no_blank_lines_after_class_opening' => true,
'no_blank_lines_after_phpdoc' => true,
'no_closing_tag' => true,
'no_empty_phpdoc' => true,
'no_empty_statement' => true,
'no_extra_consecutive_blank_lines' => true,
'no_leading_namespace_whitespace' => true,
'no_singleline_whitespace_before_semicolons' => true,
'no_spaces_after_function_name' => true,
'no_spaces_inside_parenthesis' => true,
'no_trailing_comma_in_list_call' => true,
'no_trailing_whitespace' => true,
'no_unused_imports' => true,
'no_whitespace_in_blank_line' => true,
'phpdoc_align' => true,
'phpdoc_indent' => true,
'phpdoc_no_access' => true,
'phpdoc_no_empty_return' => true,
'phpdoc_no_package' => true,
'phpdoc_scalar' => true,
'phpdoc_separation' => true,
'phpdoc_to_comment' => true,
'phpdoc_trim' => true,
'phpdoc_types' => true,
'phpdoc_var_without_name' => true,
'self_accessor' => true,
'simplified_null_return' => true,
'single_blank_line_at_eof' => true,
'single_import_per_statement' => true,
'single_line_after_imports' => true,
'single_quote' => true,
'ternary_operator_spaces' => true,
'trim_array_spaces' => true,
'visibility_required' => true,
]
)
->setFinder(
PhpCsFixer\Finder::create()
->files()
->in(__DIR__ . '/build')
->in(__DIR__ . '/src')
->in(__DIR__ . '/tests/Framework')
->in(__DIR__ . '/tests/Runner')
->in(__DIR__ . '/tests/Util')
->name('*.php')
);

3
vendor/phpunit/phpunit/.stickler.yml vendored Normal file
View File

@@ -0,0 +1,3 @@
linters:
phpcs:
standard: 'build/phpcs.xml'

44
vendor/phpunit/phpunit/.travis.yml vendored Normal file
View File

@@ -0,0 +1,44 @@
language: php
sudo: false
php:
- 7.0
- 7.0snapshot
- 7.1
- 7.1snapshot
- master
env:
matrix:
- DEPENDENCIES="high"
- DEPENDENCIES="low"
global:
- DEFAULT_COMPOSER_FLAGS="--no-interaction --no-ansi --no-progress --no-suggest"
before_install:
- composer self-update
- composer clear-cache
install:
- if [[ "$DEPENDENCIES" = 'high' ]]; then travis_retry composer update $DEFAULT_COMPOSER_FLAGS; fi
- if [[ "$DEPENDENCIES" = 'low' ]]; then travis_retry composer update $DEFAULT_COMPOSER_FLAGS --prefer-lowest; fi
before_script:
- echo 'zend.assertions=1' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
- echo 'assert.exception=On' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
script:
- ./phpunit --coverage-clover=coverage.xml
- ./phpunit --configuration ./build/travis-ci-fail.xml > /dev/null; if [ $? -eq 0 ]; then echo "SHOULD FAIL"; false; else echo "fail checked"; fi;
- xmllint --noout --schema phpunit.xsd phpunit.xml
- xmllint --noout --schema phpunit.xsd tests/_files/configuration.xml
- xmllint --noout --schema phpunit.xsd tests/_files/configuration_empty.xml
- xmllint --noout --schema phpunit.xsd tests/_files/configuration_xinclude.xml -xinclude
after_success:
- bash <(curl -s https://codecov.io/bash)
notifications:
email: false

176
vendor/phpunit/phpunit/ChangeLog-4.0.md vendored Normal file
View File

@@ -0,0 +1,176 @@
# Changes in PHPUnit 4.0
All notable changes of the PHPUnit 4.0 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [4.0.20] - 2014-05-02
### Fixed
* Fixed [#1242](https://github.com/sebastianbergmann/phpunit/issues/1242): `--self-update` uses OpenSSL API that is deprecated in PHP 5.6
## [4.0.19] - 2014-04-30
### Fixed
* Fixed [#1193](https://github.com/sebastianbergmann/phpunit/issues/1193): Process isolation does not work correctly when PHPUnit is used from PHAR
* Fixed a BC break related to comparing `DOMNode` objects that was introduced in PHPUnit 4.0.18
## [4.0.18] - 2014-04-29
### Fixed
* Fixed [#1218](https://github.com/sebastianbergmann/phpunit/issues/1218): `--self-update` destroys symlink
## [4.0.17] - 2014-04-21
### Changed
* [Display a message that the PEAR installation method is no longer supported when PHPUnit was installed using the PEAR Installer](https://github.com/sebastianbergmann/phpunit/commit/70b02c6be0176ab8ad3d3c9ec97480556c5dd63b)
## [4.0.16] - 2014-04-20
### Fixed
* [Fixed handling of the `--report-useless-tests`, `--strict-coverage`, `--disallow-test-output`, and `--enforce-time-limit` options](https://github.com/sebastianbergmann/phpunit/commit/38baa9670711adedfe44ef24a33b568f61f3f045)
## [4.0.15] - 2014-04-16
New release of PHPUnit as PHAR and PEAR package with updated dependencies
## [4.0.14] - 2014-03-28
New release of PHPUnit as PHAR and PEAR package with updated dependencies
## [4.0.13] - 2014-03-26
New release of PHPUnit as PHAR and PEAR package with updated dependencies
## [4.0.12] - 2014-03-20
### Changed
* [Use blacklist from PHP_CodeCoverage](https://github.com/sebastianbergmann/phpunit/commit/16152ba4b8d0104ce34f60cb71b2b982ba84c898)
## [4.0.11] - 2014-03-18
### Fixed
* [Fixed unintended autoloader invokation triggered by the `@beforeClass` and `@afterClass` annotations](https://github.com/sebastianbergmann/phpunit/commit/f12e10fddc3ccbddb652a04d9036aeb5a6d54bff)
## [4.0.10] - 2014-03-18
New release of PHPUnit as PHAR and PEAR package with updated dependencies (most notably a [fix](https://github.com/sebastianbergmann/phpunit-mock-objects/commit/c5e6274b8f2bf983cf883bb375cf44f99aff200e) in the mock object generator that caused a [performance regression](https://github.com/sebastianbergmann/phpunit/issues/1187))
## [4.0.9] - 2014-03-17
### Changed
* Optimized the search for the `@before`, `@after`, `@beforeClass` and `@afterClass` annotations
* Optimized the usage of `SebastianBergmann\Environment\Runtime::canCollectCodeCoverage()`
### Fixed
* The "No code coverage will be generated." message was displayed even when code coverage reporting was not requested
## [4.0.8] - 2014-03-17
### Fixed
* Fixed [#1186](https://github.com/sebastianbergmann/phpunit/issues/1186): `@before` and `@after` methods are not called in `@dataProvider` methods
## [4.0.7] - 2014-03-12
### Fixed
* Removed dependency on `phpunit/dbunit` in `composer.json` that was unintentionally added in PHPUnit 4.0.6
## [4.0.6] - 2014-03-11
New release of PHPUnit as PHAR and PEAR package with updated dependencies
## [4.0.5] - 2014-03-10
New release of PHPUnit as PHAR and PEAR package with updated dependencies
## [4.0.4] - 2014-03-08
### Fixed
* Fixed stacktrace filtering when PHPUnit is used from a PHAR
## [4.0.3] - 2014-03-07
New release of PHPUnit as PHAR and PEAR package with updated dependencies
## [4.0.2] - 2014-03-07
### Fixed
* Fixed an issue related to displaying PHPUnit's version number
## [4.0.1] - 2014-03-07
### Fixed
* Fixed collection of code coverage data for tests that use a data provider
## [4.0.0] - 2014-03-07
### Added
* Implemented #382: Added the `$options` parameter to `PHPUnit_Framework_TestCase::getMockFromWsdl()` for configuring the `SoapClient`
* Implemented #628: Added `PHPUnit_Framework_Assert::countOf(), a shortcut to get a `PHPUnit_Framework_Constraint_Count` instance
* Implemented #711: `coverage-text` now has an XML `showOnlySummary` option
* Implemented #719: The `--stderr` switch now respects `--colors` and `--debug`
* Implemented #746: Allow identity checking for non-object types in all asserts that depend on `TraversableContains`
* Implemented #758: Show a proper stack trace when @expectedException fails due to a unexpected exception being thrown
* Implemented #773: Recursive and repeated arrays are more gracefully when comparison differences are exported
* Implemented #813: Added `@before`, `@after`, `@beforeClass` and `@afterClass` annotations
* Implemented #834: Added the `@requires OS` annotation
* Implemented #835: Printers that extend `PHPUnit_TextUI_ResultPrinter` should have similar construction
* Implemented #838: Added a base test listener
* Implemented #859: Added PHP label validation to attribute assertions
* Implemented #869: Added support for the adjacent sibling selector (+) to `PHPUnit_Util_XML::findNodes()`
* Implemented #871: Add Comparator for DateTime objects
* Implemented #877: Added new HTML5 tags to `PHPUnit_Util_XML::findNodes()`
* Added `--coverage-crap4j` switch to generate code coverage report in Crap4J XML format
* `assertCount()`, `assertNotCount()`, `assertSameSize()`, and `assertNotSameSize()` now support all objects that implement the `Traversable` interface
### Changed
* A test will now fail in strict mode when it uses the `@covers` annotation and code that is not expected to be covered is executed
* All relative paths in a configuration file are now resolved relative to that configuration file
### Fixed
* Fixed #240: XML strings are escaped by removing invalid characters
* Fixed #261: `setUp()` and `setUpBeforeClass()` are run before filters are applied
* Fixed #541: Excluded groups are counted towards total number of tests being executed
* Fixed #789: PHP INI settings would not be passed to child processes
* Fixed #806: Array references are now properly displayed in error output
* Fixed #808: Resources are now reported as `resource(13) of type (stream)` instead of `NULL`
* Fixed #873: PHPUnit suppresses exceptions thrown outside of test case function
* Fixed: `phpt` test cases now use the correct php binary when executed through wrapper scripts
[4.0.20]: https://github.com/sebastianbergmann/phpunit/compare/4.0.19...4.0.20
[4.0.19]: https://github.com/sebastianbergmann/phpunit/compare/4.0.18...4.0.19
[4.0.18]: https://github.com/sebastianbergmann/phpunit/compare/4.0.17...4.0.18
[4.0.17]: https://github.com/sebastianbergmann/phpunit/compare/4.0.16...4.0.17
[4.0.16]: https://github.com/sebastianbergmann/phpunit/compare/4.0.15...4.0.16
[4.0.15]: https://github.com/sebastianbergmann/phpunit/compare/4.0.14...4.0.15
[4.0.14]: https://github.com/sebastianbergmann/phpunit/compare/4.0.13...4.0.14
[4.0.13]: https://github.com/sebastianbergmann/phpunit/compare/4.0.12...4.0.13
[4.0.12]: https://github.com/sebastianbergmann/phpunit/compare/4.0.11...4.0.12
[4.0.11]: https://github.com/sebastianbergmann/phpunit/compare/4.0.10...4.0.11
[4.0.10]: https://github.com/sebastianbergmann/phpunit/compare/4.0.9...4.0.10
[4.0.9]: https://github.com/sebastianbergmann/phpunit/compare/4.0.8...4.0.9
[4.0.8]: https://github.com/sebastianbergmann/phpunit/compare/4.0.7...4.0.8
[4.0.7]: https://github.com/sebastianbergmann/phpunit/compare/4.0.6...4.0.7
[4.0.6]: https://github.com/sebastianbergmann/phpunit/compare/4.0.5...4.0.6
[4.0.5]: https://github.com/sebastianbergmann/phpunit/compare/4.0.4...4.0.5
[4.0.4]: https://github.com/sebastianbergmann/phpunit/compare/4.0.3...4.0.4
[4.0.3]: https://github.com/sebastianbergmann/phpunit/compare/4.0.2...4.0.3
[4.0.2]: https://github.com/sebastianbergmann/phpunit/compare/4.0.1...4.0.2
[4.0.1]: https://github.com/sebastianbergmann/phpunit/compare/4.0.0...4.0.1
[4.0.0]: https://github.com/sebastianbergmann/phpunit/compare/3.7...4.0.0

73
vendor/phpunit/phpunit/ChangeLog-4.1.md vendored Normal file
View File

@@ -0,0 +1,73 @@
# Changes in PHPUnit 4.1
All notable changes of the PHPUnit 4.1 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [4.1.6] - 2014-08-17
### Fixed
* Fixed [#1380](https://github.com/sebastianbergmann/phpunit/issues/1380): `assertMatch()` returns `Unexpected end tag : hr`
* Fixed [#1390](https://github.com/sebastianbergmann/phpunit/issues/1390): Licensing issue with third-party components bundled in PHAR distribution
## [4.1.5] - 2014-08-07
### Changed
* Implemented [#1330](https://github.com/sebastianbergmann/phpunit/issues/1330): Allow non-ambiguous shortened long options
### Fixed
* Fixed [#529](https://github.com/sebastianbergmann/phpunit/issues/529): Tests missed in execution when another test extends from it
* Fixed [#1149](https://github.com/sebastianbergmann/phpunit/issues/1149): Test swallows output buffer when run in a separate process
* Fixed [#1336](https://github.com/sebastianbergmann/phpunit/issues/1336): Problem in process isolation with global variables that contain an object which contains a string which contains multiple backslashes
* Fixed [#1337](https://github.com/sebastianbergmann/phpunit/issues/1337): Data Provider with `\` at the end of the name breaks with process isolation
* Fixed [#1345](https://github.com/sebastianbergmann/phpunit/issues/1345): Process isolation blocks infinitely upon fatal error in child process
* Fixed [#1354](https://github.com/sebastianbergmann/phpunit/issues/1354): PHPUnit test suite fails on Windows
* Fixed [#1369](https://github.com/sebastianbergmann/phpunit/issues/1369): Performance of `TestSuite::addTestFile()` and missing documentation
* Fixed [#1374](https://github.com/sebastianbergmann/phpunit/issues/1374): `tearDown()` is called despite unmet requirements
## [4.1.4] - 2014-07-18
### Fixed
* Fixed [#1265](https://github.com/sebastianbergmann/phpunit/issues/1265): `PHPUnit_Runner_StandardTestSuiteLoader` could not be configured as loader
* Fixed [#1311](https://github.com/sebastianbergmann/phpunit/issues/1311): Incomplete XML Schema for PHPUnit XML configuration file
* Fixed [#1314](https://github.com/sebastianbergmann/phpunit/issues/1314): Bug in configuration parser
## [4.1.3] - 2014-06-11
New release of PHPUnit as PHP Archive (PHAR) with updated dependencies
## [4.1.2] - 2014-06-07
New release of PHPUnit as PHP Archive (PHAR) with updated dependencies
## [4.1.1] - 2014-05-24
### Added
* Added `--selfupdate` alias for `--self-update`
### Changed
* Improved the fix for [#1133](https://github.com/sebastianbergmann/phpunit/issues/1133)
### Fixed
* Fixed the constructor argument for `SebastianBergmann\Version`
## [4.1.0] - 2014-05-02
### Changed
* The code to compare PHP values for equality (in `assertEquals()`, for instance) has been factored out into a [separate component](https://github.com/sebastianbergmann/comparator)
* [The mock object generator is now created lazily](https://github.com/sebastianbergmann/phpunit/pull/1165)
[4.1.6]: https://github.com/sebastianbergmann/phpunit/compare/4.1.5...4.1.6
[4.1.5]: https://github.com/sebastianbergmann/phpunit/compare/4.1.4...4.1.5
[4.1.4]: https://github.com/sebastianbergmann/phpunit/compare/4.1.3...4.1.4
[4.1.3]: https://github.com/sebastianbergmann/phpunit/compare/4.1.2...4.1.3
[4.1.2]: https://github.com/sebastianbergmann/phpunit/compare/4.1.1...4.1.2
[4.1.1]: https://github.com/sebastianbergmann/phpunit/compare/4.1.0...4.1.1
[4.1.0]: https://github.com/sebastianbergmann/phpunit/compare/4.0...4.1.0

56
vendor/phpunit/phpunit/ChangeLog-4.2.md vendored Normal file
View File

@@ -0,0 +1,56 @@
# Changes in PHPUnit 4.2
All notable changes of the PHPUnit 4.2 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [4.2.5] - 2014-09-06
New release of PHPUnit as PHP Archive (PHAR) with updated dependencies
## [4.2.4] - 2014-08-31
### Fixed
* Fixed [#1413](https://github.com/sebastianbergmann/phpunit/issues/1413): `assertCount()` hangs in infinite loop on HHVM
## [4.2.3] - 2014-08-28
### Fixed
* Fixed [#1403](https://github.com/sebastianbergmann/phpunit/issues/1403): `phpunit --self-update` does not work
## [4.2.2] - 2014-08-18
### Fixed
* Fixed [#1399](https://github.com/sebastianbergmann/phpunit/issues/1399): `enforceTimeLimit` configuration option is not handled
## [4.2.1] - 2014-08-17
### Fixed
* Fixed [#1380](https://github.com/sebastianbergmann/phpunit/issues/1380): `assertMatch()` returns `Unexpected end tag : hr`
* Fixed [#1390](https://github.com/sebastianbergmann/phpunit/issues/1390): Licensing issue with third-party components bundled in PHAR distribution
## [4.2.0] - 2014-08-08
### Added
* Tests annotated with `@todo` will now be reported as risky when the `--disallow-todo-tests` option is used or `beStrictAboutTodoAnnotatedTests=true` is set in the configuration file
* The `atLeast()` and `atMost()` invocation count matchers were added
### Changed
* `trigger_error(__METHOD__ . ' is deprecated', E_USER_DEPRECATED);` is used now to indicate that a PHPUnit API method is deprecated; the old "system" for deprecating methods has been removed
* The PHP Archive (PHAR) distribution of PHPUnit can now be used as a library; `include()`ing or `require()`ing it will not execute the CLI test runner
### Deprecated
* The `assertTag()` and `assertSelect*()` assertion methods have been deprecated in favor of the [phpunit-dom-assertions](https://github.com/phpunit/phpunit-dom-assertions) extension; these methods will be removed in PHPUnit 5.0
[4.2.5]: https://github.com/sebastianbergmann/phpunit/compare/4.2.4...4.2.5
[4.2.4]: https://github.com/sebastianbergmann/phpunit/compare/4.2.3...4.2.4
[4.2.3]: https://github.com/sebastianbergmann/phpunit/compare/4.2.2...4.2.3
[4.2.2]: https://github.com/sebastianbergmann/phpunit/compare/4.2.1...4.2.2
[4.2.1]: https://github.com/sebastianbergmann/phpunit/compare/4.2.0...4.2.1
[4.2.0]: https://github.com/sebastianbergmann/phpunit/compare/4.1...4.2.0

54
vendor/phpunit/phpunit/ChangeLog-4.3.md vendored Normal file
View File

@@ -0,0 +1,54 @@
# Changes in PHPUnit 4.3
All notable changes of the PHPUnit 4.3 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [4.3.5] - 2014-11-11
### Changed
* Merged [#1484](https://github.com/sebastianbergmann/phpunit/issues/1484): Removed `lazymap` from blacklist as it is not longer used
* Merged [#1489](https://github.com/sebastianbergmann/phpunit/issues/1489): Do not send output from tests in process isolation when testing output
## [4.3.4] - 2014-10-22
### Fixed
* Fixed [#1428](https://github.com/sebastianbergmann/phpunit/issues/1428): Issue with Composer dependencies
* Fixed [#1447](https://github.com/sebastianbergmann/phpunit/issues/1447): PHPT tests treat line endings inconsistently
## [4.3.3] - 2014-10-16
### Fixed
* Fixed [#1471](https://github.com/sebastianbergmann/phpunit/issues/1471): Output made while test is running is printed although `expectOutputString()` is used when an assertion fails
## [4.3.2] - 2014-10-16
### Fixed
* Fixed [#1468](https://github.com/sebastianbergmann/phpunit/issues/1468): Incomplete and `@todo` annotated tests are counted twice
## [4.3.1] - 2014-10-06
New release of PHPUnit as PHP Archive (PHAR) with updated dependencies
## [4.3.0] - 2014-10-03
### Added
* Merged [#1358](https://github.com/sebastianbergmann/phpunit/issues/1358): Implement `@expectedExceptionMessageRegExp` annotation
* Merged [#1360](https://github.com/sebastianbergmann/phpunit/issues/1360): Allow a test to identify whether it runs in isolation
### Fixed
* Fixed [#1216](https://github.com/sebastianbergmann/phpunit/issues/1216): Bootstrap does not have global variables set when `--bootstrap` is specified on commandline
* Fixed [#1351](https://github.com/sebastianbergmann/phpunit/issues/1351): `TestResult` object contains serialized test class upon test failure/exception in process isolation
* Fixed [#1437](https://github.com/sebastianbergmann/phpunit/issues/1437): Risky test messages mask failures
[4.3.5]: https://github.com/sebastianbergmann/phpunit/compare/4.3.4...4.3.5
[4.3.4]: https://github.com/sebastianbergmann/phpunit/compare/4.3.3...4.3.4
[4.3.3]: https://github.com/sebastianbergmann/phpunit/compare/4.3.2...4.3.3
[4.3.2]: https://github.com/sebastianbergmann/phpunit/compare/4.3.1...4.3.2
[4.3.1]: https://github.com/sebastianbergmann/phpunit/compare/4.3.0...4.3.1
[4.3.0]: https://github.com/sebastianbergmann/phpunit/compare/4.2...4.3.0

57
vendor/phpunit/phpunit/ChangeLog-4.4.md vendored Normal file
View File

@@ -0,0 +1,57 @@
# Changes in PHPUnit 4.4
All notable changes of the PHPUnit 4.4 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [4.4.5] - 2015-01-27
### Fixed
* Fixed [#1592](https://github.com/sebastianbergmann/phpunit/issues/1592): Incorrect dependency information
## [4.4.4] - 2015-01-24
### Fixed
* Fixed [#1587](https://github.com/sebastianbergmann/phpunit/issues/1587): Class `SebastianBergmann\Exporter\Context` not found
## [4.4.3] - 2015-01-24
New PHAR release due to updated dependencies
## [4.4.2] - 2015-01-17
### Changed
* Merged [#1573](https://github.com/sebastianbergmann/phpunit/issues/1573): Updates for the XSD for PHPUnit XML configuration
### Fixed
* Merged [#1567](https://github.com/sebastianbergmann/phpunit/issues/1567): `coverage-crap4j` missing in XSD for PHPUnit XML configuration
* Fixed [#1570](https://github.com/sebastianbergmann/phpunit/issues/1570): Test that prints output is marked as failure and not as risky when `--disallow-test-output` is used
* Fixed `--stderr` with `--tap` or `--testdox` options
## [4.4.1] - 2014-12-28
### Changed
* Merged [#1528](https://github.com/sebastianbergmann/phpunit/issues/1528): Add `expectedCount()` to `toString()` return value
## [4.4.0] - 2014-12-05
### Added
* Merged [#1371](https://github.com/sebastianbergmann/phpunit/issues/1371): Implement `assertArraySubset()` assertion
* Merged [#1439](https://github.com/sebastianbergmann/phpunit/issues/1439): Add support for `double` to `assertInternalType()`
### Changed
* Merged [#1427](https://github.com/sebastianbergmann/phpunit/issues/1427): Improve failure output for tests when provided data is binary
* Merged [#1458](https://github.com/sebastianbergmann/phpunit/issues/1458): Only enable colors when PHPUnit is run on a console (and output is not sent to a file)
[4.4.5]: https://github.com/sebastianbergmann/phpunit/compare/4.4.4...4.4.5
[4.4.4]: https://github.com/sebastianbergmann/phpunit/compare/4.4.3...4.4.4
[4.4.3]: https://github.com/sebastianbergmann/phpunit/compare/4.4.2...4.4.3
[4.4.2]: https://github.com/sebastianbergmann/phpunit/compare/4.4.1...4.4.2
[4.4.1]: https://github.com/sebastianbergmann/phpunit/compare/4.4.0...4.4.1
[4.4.0]: https://github.com/sebastianbergmann/phpunit/compare/4.3...4.4.0

28
vendor/phpunit/phpunit/ChangeLog-4.5.md vendored Normal file
View File

@@ -0,0 +1,28 @@
# Changes in PHPUnit 4.5
All notable changes of the PHPUnit 4.5 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [4.5.1] - 2015-03-29
## [4.5.0] - 2015-02-05
### Added
* Added out-of-the-box support for [Prophecy](https://github.com/phpspec/prophecy)
* Implemented [#137](https://github.com/sebastianbergmann/phpunit/issues/137): Add support for variable number of tests shown per line in default result printer
### Changed
* Merged [#1478](https://github.com/sebastianbergmann/phpunit/issues/1478): Improve the performance of `PHPUnit_Framework_Constraint_IsEqual` (which is used by `assertEquals()`, for instance) for the most common case
### Deprecated
* [Deprecated](https://github.com/sebastianbergmann/phpunit/commit/7abe7796f77b13fdf3cfc506fb987d6c2ab477f5) the `--strict` commandline option and the XML configuration's `strict` attribute
### Fixed
* Fixed [#1474](https://github.com/sebastianbergmann/phpunit/issues/1474): Allow the registration of custom comparators for `assertEquals()` et al. (again)
[4.5.1]: https://github.com/sebastianbergmann/phpunit/compare/4.5.0...4.5.1
[4.5.0]: https://github.com/sebastianbergmann/phpunit/compare/4.4...4.5.0

95
vendor/phpunit/phpunit/ChangeLog-4.6.md vendored Normal file
View File

@@ -0,0 +1,95 @@
# Changes in PHPUnit 4.6
All notable changes of the PHPUnit 4.6 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [4.6.10] - 2015-06-03
### Changed
* Merged [#1693](https://github.com/sebastianbergmann/phpunit/pull/1693): Improved API documentation
* Merged [#1706](https://github.com/sebastianbergmann/phpunit/pull/1706): Avoid hard-coded URI to `phpunit.xsd`
* Merged [#1725](https://github.com/sebastianbergmann/phpunit/pull/1725): Update phpDox XSD URI
* Merged [#1735](https://github.com/sebastianbergmann/phpunit/pull/1735): Mute `chdir()` failures in XInclude handling of XML configuration file
* Merged [#1736](https://github.com/sebastianbergmann/phpunit/pull/1736): Verify that phar file can be overwritten before attempting self update
### Fixed
* Fixed [#1737](https://github.com/sebastianbergmann/phpunit/issues/1737): Confusing output from `--testdox` for empty test class
## [4.6.9] - 2015-05-29
### Fixed
* Fixed [#1731](https://github.com/sebastianbergmann/phpunit/issues/1731): `.` after failure count has no background color when `--colors` is used
## [4.6.8] - 2015-05-28
New PHAR release due to updated dependencies
## [4.6.7] - 2015-05-25
New PHAR release due to updated dependencies
## [4.6.6] - 2015-04-29
### Fixed
* Fixed [#1684](https://github.com/sebastianbergmann/phpunit/issues/1684): PHAR does not work on HHVM
## [4.6.5] - 2015-04-29
* Fixed [#1677](https://github.com/sebastianbergmann/phpunit/issues/1677): Number of risky tests not printed when there are failing tests
* Fixed [#1688](https://github.com/sebastianbergmann/phpunit/issues/1688): Self-Update operation does not work due to outdated SSL certificate
## [4.6.4] - 2015-04-11
### Changed
* The default list of blacklisted classes is now always passed to PHP_CodeCoverage
## [4.6.3] - 2015-04-11
### Changed
* Updated the default list of blacklisted classes
## [4.6.2] - 2015-04-07
### Fixed
* Fixed [#1667](https://github.com/sebastianbergmann/phpunit/issues/1667): Loading `src/Framework/Assert/Functions.php` by default causes collisions
## [4.6.1] - 2015-04-03
### Fixed
* Fixed [#1665](https://github.com/sebastianbergmann/phpunit/issues/1665): PHPUnit 4.6.0 PHAR does not work when renamed to `phpunit`
## [4.6.0] - 2015-04-03
### Added
* Added the `--strict-global-state` command-line option and the `beStrictAboutChangesToGlobalState` configuration setting for enabling a check that global variabes, super-global variables, and static attributes in user-defined classes are not modified during a test
* Merged [#1527](https://github.com/sebastianbergmann/phpunit/issues/1527) and [#1529](https://github.com/sebastianbergmann/phpunit/issues/1529): Allow to define options for displaying colors
### Changed
* Merged [#1528](https://github.com/sebastianbergmann/phpunit/issues/1528): Improve message when `PHPUnit_Framework_Constraint_Count` is used with logical operators
### Fixed
* Merged [#1537](https://github.com/sebastianbergmann/phpunit/issues/1537): Fix problem of `--stderr` with `--tap` and `--testdox`
* Fixed [#1599](https://github.com/sebastianbergmann/phpunit/issues/1599): The PHAR build of PHPUnit no longer uses an autoloader to load PHPUnit's own classes and instead statically loads all classes on startup
[4.6.10]: https://github.com/sebastianbergmann/phpunit/compare/4.6.9...4.6.10
[4.6.9]: https://github.com/sebastianbergmann/phpunit/compare/4.6.8...4.6.9
[4.6.8]: https://github.com/sebastianbergmann/phpunit/compare/4.6.7...4.6.8
[4.6.7]: https://github.com/sebastianbergmann/phpunit/compare/4.6.6...4.6.7
[4.6.6]: https://github.com/sebastianbergmann/phpunit/compare/4.6.5...4.6.6
[4.6.5]: https://github.com/sebastianbergmann/phpunit/compare/4.6.4...4.6.5
[4.6.4]: https://github.com/sebastianbergmann/phpunit/compare/4.6.3...4.6.4
[4.6.3]: https://github.com/sebastianbergmann/phpunit/compare/4.6.2...4.6.3
[4.6.2]: https://github.com/sebastianbergmann/phpunit/compare/4.6.1...4.6.2
[4.6.1]: https://github.com/sebastianbergmann/phpunit/compare/4.6.0...4.6.1
[4.6.0]: https://github.com/sebastianbergmann/phpunit/compare/4.5...4.6.0

71
vendor/phpunit/phpunit/ChangeLog-4.7.md vendored Normal file
View File

@@ -0,0 +1,71 @@
# Changes in PHPUnit 4.7
All notable changes of the PHPUnit 4.7 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [4.7.7] - 2015-07-13
New PHAR release due to updated dependencies
## [4.7.6] - 2015-06-30
### Fixed
* Fixed [#1681](https://github.com/sebastianbergmann/phpunit/issues/1681): Code Coverage filter configuration is not passed to child processes
* Fixed [#1692](https://github.com/sebastianbergmann/phpunit/issues/1692): Clean up `PHPUnit_Extensions_RepeatedTest` after refactoring
* Fixed [#1763](https://github.com/sebastianbergmann/phpunit/issues/1763): `@before` and `@after` annotations do not work when inherited
## [4.7.5] - 2015-06-21
### Fixed
* Fixed [#490](https://github.com/sebastianbergmann/phpunit/issues/490): Ensure that a test can only be one of `@small`, `@medium`, or `@large`.
* Fixed [#1704](https://github.com/sebastianbergmann/phpunit/issues/1704): Output printed during test missing when using TAP
## [4.7.4] - 2015-06-18
### Changed
* The `PHPUnit_Framework_Constraint_IsType` constraint now knows about the `real` type (which is an alias for `float`)
* Various work on compatibility with PHP 7
### Fixed
* Fixed [#1749](https://github.com/sebastianbergmann/phpunit/issues/1749): `stopOnError` configuration setting does not work
## [4.7.3] - 2015-06-11
### Fixed
* Fixed [#1317](https://github.com/sebastianbergmann/phpunit/issues/1317): JUnit XML logfiles does not contain warnings
* Fixed an [issue](https://github.com/sebastianbergmann/php-code-coverage/issues/347) where the warning that no whitelist is used is displayed when it should not
## [4.7.2] - 2015-06-06
New PHAR release due to updated dependencies
## [4.7.1] - 2015-06-05
New PHAR release due to updated dependencies
## [4.7.0] - 2015-06-05
### Added
* Merged [#1718](https://github.com/sebastianbergmann/phpunit/issues/1718): Support for `--INI--` section in PHPT tests
### Changed
* Tests not annotated with `@small`, `@medium`, or `@large` are no longer treated as being annotated with `@small`
* In verbose mode, the test runner now prints information about the PHP runtime
* To be consistent with the printing of PHP runtime information, the configuration file used is only printed in verbose mode
* A warning is now printed when code coverage data is collected but no whitelist is configured
[4.7.7]: https://github.com/sebastianbergmann/phpunit/compare/4.7.6...4.7.7
[4.7.6]: https://github.com/sebastianbergmann/phpunit/compare/4.7.5...4.7.6
[4.7.5]: https://github.com/sebastianbergmann/phpunit/compare/4.7.4...4.7.5
[4.7.4]: https://github.com/sebastianbergmann/phpunit/compare/4.7.3...4.7.4
[4.7.3]: https://github.com/sebastianbergmann/phpunit/compare/4.7.2...4.7.3
[4.7.2]: https://github.com/sebastianbergmann/phpunit/compare/4.7.1...4.7.2
[4.7.1]: https://github.com/sebastianbergmann/phpunit/compare/4.7.0...4.7.1
[4.7.0]: https://github.com/sebastianbergmann/phpunit/compare/4.6...4.7.0

293
vendor/phpunit/phpunit/ChangeLog-4.8.md vendored Normal file
View File

@@ -0,0 +1,293 @@
# Changes in PHPUnit 4.8
All notable changes of the PHPUnit 4.8 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [4.8.36] - 2017-06-21
### Added
* Added `PHPUnit\Framework\AssertionFailedError`, `PHPUnit\Framework\Test`, and `PHPUnit\Framework\TestSuite` to the forward compatibility layer for PHPUnit 6
## [4.8.35] - 2017-02-06
### Added
* Backported the forward compatibility layer for PHPUnit 6 from PHPUnit 5 so that `PHPUnit\Framework\TestCase` can be used instead of `PHPUnit_Framework_TestCase`
## [4.8.34] - 2017-01-26
* Fixed [#2447](https://github.com/sebastianbergmann/phpunit/issues/2447): Reverted backwards incompatible change to handling of boolean environment variable values specified in XML
## [4.8.33] - 2017-01-25
### Fixed
* Fixed [#1983](https://github.com/sebastianbergmann/phpunit/pull/1983): Tests with `@expectedException` annotation cannot be skipped
* Fixed [#2275](https://github.com/sebastianbergmann/phpunit/pull/2275): Invalid UTF-8 characters can lead to missing output
* Fixed [#2331](https://github.com/sebastianbergmann/phpunit/issues/2331): Boolean environment variable values specified in XML get mangled
* Fixed [#2392](https://github.com/sebastianbergmann/phpunit/issues/2392): Empty (but valid) data provider should skip the test
* Fixed [#2431](https://github.com/sebastianbergmann/phpunit/issues/2431): `assertArraySubset()` does not support `ArrayAccess`
## [4.8.32] - 2017-01-22
### Fixed
* Fixed [#2428](https://github.com/sebastianbergmann/phpunit/pull/2428): Nested arrays specificied in XML configuration file are not handled correctly
## [4.8.31] - 2016-12-09
### Fixed
* Fixed [#2384](https://github.com/sebastianbergmann/phpunit/pull/2384): Handle `PHPUnit_Framework_Exception` correctly when expecting exceptions
## [4.8.30] - 2016-12-02
### Fixed
* Fixed [#2367](https://github.com/sebastianbergmann/phpunit/pull/2367): Bug in `PHPUnit_Util_Test::parseAnnotationContent()`
* Fixed [#2375](https://github.com/sebastianbergmann/phpunit/issues/2375): Invalid regular expression for `--filter` causes PHP warning
## [4.8.29] - 2016-11-20
### Changed
* Bumped the required version of `sebastian/comparator`
## [4.8.28] - 2016-11-14
### Fixed
* Improved the fix for [#1955](https://github.com/sebastianbergmann/phpunit/issues/1955): Process isolation fails when running tests with `phpdbg -qrr`
## [4.8.27] - 2016-07-21
### Fixed
* Fixed [#1968](https://github.com/sebastianbergmann/phpunit/issues/1968): Invalid data sets are not handled correctly for `@testWith` annotation
## [4.8.26] - 2016-05-17
### Fixed
* Fixed [phpunit-mock-objects/#301](https://github.com/sebastianbergmann/phpunit-mock-objects/issues/301): `PHPUnit_Framework_MockObject_MockBuilder::getMock()` calls `PHPUnit_Framework_TestCase::getMock()` with more arguments than accepted
## [4.8.25] - 2016-05-10
### Fixed
* Fixed [#2112](https://github.com/sebastianbergmann/phpunit/issues/2112): Output is html entity encoded when ran through `phpdbg`
* Fixed [#2158](https://github.com/sebastianbergmann/phpunit/issues/2158): Failure to run tests in separate processes if a file included into main process contains constant definition
## [4.8.24] - 2016-03-14
### Fixed
* Fixed [#1959](https://github.com/sebastianbergmann/phpunit/issues/1959): Prophecy errors are not handled correctly
* Fixed [#2039](https://github.com/sebastianbergmann/phpunit/issues/2039): TestDox does not handle snake_case test methods properly
* Fixed [#2109](https://github.com/sebastianbergmann/phpunit/issues/2109): Process isolation leaks global variable
## [4.8.23] - 2016-02-11
### Fixed
* Fixed [#2072](https://github.com/sebastianbergmann/phpunit/issues/2072): Paths in XML configuration file were not handled correctly when they have whitespace around them
## [4.8.22] - 2016-02-02
### Fixed
* Fixed [#2050](https://github.com/sebastianbergmann/phpunit/issues/2050): `PHPUnit_Util_XML::load()` raises exception with empty message when XML string is empty
* Fixed a bug in `PHPUnit_Runner_Version::series()`
## [4.8.21] - 2015-12-12
### Changed
* Reverted the changes introduced in PHPUnit 4.8.20 as the only thing the new version constraint in `composer.json` achieved was locking PHP 7 users to PHPUnit 4.8.19
## [4.8.20] - 2015-12-10
### Changed
* Changed PHP version constraint in `composer.json` to prevent installing PHPUnit 4.8 on PHP 7
* `phpunit.phar` will now refuse to work on PHP 7
## [4.8.19] - 2015-11-30
### Fixed
* Fixed [#1955](https://github.com/sebastianbergmann/phpunit/issues/1955): Process isolation fails when running tests with `phpdbg -qrr`
## [4.8.18] - 2015-11-11
### Changed
* DbUnit 1.4 is bundled again in the PHAR distribution
## [4.8.17] - 2015-11-10
### Fixed
* Fixed [#1935](https://github.com/sebastianbergmann/phpunit/issues/1935): `PHP_CodeCoverage_Exception` not handled properly
* Fixed [#1948](https://github.com/sebastianbergmann/phpunit/issues/1948): Unable to use PHAR due to unsupported signature error
### Changed
* DbUnit >= 2.0.2 is now bundled in the PHAR distribution
## [4.8.16] - 2015-10-23
### Added
* Implemented [#1925](https://github.com/sebastianbergmann/phpunit/issues/1925): Provide a library-only PHAR
## [4.8.15] - 2015-10-22
### Fixed
* The backup of global state is now properly restored when changes to global state are disallowed
* The `__PHPUNIT_PHAR__` constant is now properly set when the PHPUnit PHAR is used as a library
## [4.8.14] - 2015-10-17
### Fixed
* Fixed [#1892](https://github.com/sebastianbergmann/phpunit/issues/1892): `--coverage-text` does not honor color settings
## [4.8.13] - 2015-10-14
### Added
* Added the `--self-upgrade` commandline switch for upgrading a PHPUnit PHAR to the latest version
### Changed
* The `--self-update` commandline switch now updates a PHPUnit PHAR to the latest version within the same release series
## [4.8.12] - 2015-10-12
### Changed
* Merged [#1893](https://github.com/sebastianbergmann/phpunit/issues/1893): Removed workaround for phpab bug
## [4.8.11] - 2015-10-07
### Fixed
* Merged [#1885](https://github.com/sebastianbergmann/phpunit/issues/1885): Fixed handling of PHP configuration settings for process isolation
* Fixed [#1857](https://github.com/sebastianbergmann/phpunit/issues/1857): `@covers` and `@uses` should only take a single word
* Fixed [#1879](https://github.com/sebastianbergmann/phpunit/issues/1879): `assertEqualXMLStructure()` cannot compare nodes with an ID
* Fixed [#1898](https://github.com/sebastianbergmann/phpunit/issues/1898): `@covers` and `@uses` cannot be used for namespaced functions
* Fixed [#1901](https://github.com/sebastianbergmann/phpunit/issues/1901): `--self-update` updates to PHPUnit 5, even on PHP < 5.6
## [4.8.10] - 2015-10-01
### Fixed
* Merged [#1884](https://github.com/sebastianbergmann/phpunit/issues/1884): Avoid passing `Error` to `onNotSuccessfulTest()` on PHP 7
## [4.8.9] - 2015-09-20
### Fixed
* Fixed regression introduced in PHPUnit 4.8.8
## [4.8.8] - 2015-09-19
### Fixed
* Fixed [#1860](https://github.com/sebastianbergmann/phpunit/issues/1860): Not well-formed XML strings are always considered equal by `PHPUnit_Framework_Assert::assertXmlStringEqualsXmlString()`
## [4.8.7] - 2015-09-14
New PHAR release due to updated dependencies
## [4.8.6] - 2015-08-24
### Fixed
* Fixed [#1835](https://github.com/sebastianbergmann/phpunit/issues/1835): Skipped test reported as errored since PHPUnit 4.7.4
## [4.8.5] - 2015-08-19
### Fixed
* Fixed [#1831](https://github.com/sebastianbergmann/phpunit/issues/1831): PHAR manifest is missing
## [4.8.4] - 2015-08-15
### Fixed
* Fixed [#1823](https://github.com/sebastianbergmann/phpunit/issues/1823): Columns attribute in XML configuration file is ignored
## [4.8.3] - 2015-08-10
### Changed
* PHPUnit now exits early during bootstrap when an unsupported version of PHP is used
## [4.8.2] - 2015-08-07
### Fixed
* Fixed [#1816](https://github.com/sebastianbergmann/phpunit/issues/1816): PHPUnit 4.8.1 shows "4.8.0" as version number
## [4.8.1] - 2015-08-07
### Fixed
* Fixed [#1815](https://github.com/sebastianbergmann/phpunit/issues/1815): `phpunit --self-update` does not work in PHPUnit 4.8.0
## [4.8.0] - 2015-08-07
### Added
* Added `--check-version` commandline switch to check whether the current version of PHPUnit is used (PHAR only)
* Added `--no-coverage` commandline switch to ignore code coverage configuration from the configuration file
* Implemented [#1663](https://github.com/sebastianbergmann/phpunit/issues/1663): The Crap4J report's threshold is now configurable
* Merged [#1728](https://github.com/sebastianbergmann/phpunit/issues/1728): Implemented the `@testWith` annotation as "syntactic sugar" for data providers
* Merged [#1739](https://github.com/sebastianbergmann/phpunit/issues/1739): Added support to the commandline test runner for using options after arguments
### Changed
* Made the argument check of `assertContains()` and `assertNotContains()` more strict to prevent undefined behavior such as [#1808](https://github.com/sebastianbergmann/phpunit/issues/1808)
* Changed the name of the default group from `__nogroup__` to `default`
[4.8.36]: https://github.com/sebastianbergmann/phpunit/compare/4.8.35...4.8.36
[4.8.35]: https://github.com/sebastianbergmann/phpunit/compare/4.8.34...4.8.35
[4.8.34]: https://github.com/sebastianbergmann/phpunit/compare/4.8.33...4.8.34
[4.8.33]: https://github.com/sebastianbergmann/phpunit/compare/4.8.32...4.8.33
[4.8.32]: https://github.com/sebastianbergmann/phpunit/compare/4.8.31...4.8.32
[4.8.31]: https://github.com/sebastianbergmann/phpunit/compare/4.8.30...4.8.31
[4.8.30]: https://github.com/sebastianbergmann/phpunit/compare/4.8.29...4.8.30
[4.8.29]: https://github.com/sebastianbergmann/phpunit/compare/4.8.28...4.8.29
[4.8.28]: https://github.com/sebastianbergmann/phpunit/compare/4.8.27...4.8.28
[4.8.27]: https://github.com/sebastianbergmann/phpunit/compare/4.8.26...4.8.27
[4.8.26]: https://github.com/sebastianbergmann/phpunit/compare/4.8.25...4.8.26
[4.8.25]: https://github.com/sebastianbergmann/phpunit/compare/4.8.24...4.8.25
[4.8.24]: https://github.com/sebastianbergmann/phpunit/compare/4.8.23...4.8.24
[4.8.23]: https://github.com/sebastianbergmann/phpunit/compare/4.8.22...4.8.23
[4.8.22]: https://github.com/sebastianbergmann/phpunit/compare/4.8.21...4.8.22
[4.8.21]: https://github.com/sebastianbergmann/phpunit/compare/4.8.20...4.8.21
[4.8.20]: https://github.com/sebastianbergmann/phpunit/compare/4.8.19...4.8.20
[4.8.19]: https://github.com/sebastianbergmann/phpunit/compare/4.8.18...4.8.19
[4.8.18]: https://github.com/sebastianbergmann/phpunit/compare/4.8.17...4.8.18
[4.8.17]: https://github.com/sebastianbergmann/phpunit/compare/4.8.16...4.8.17
[4.8.16]: https://github.com/sebastianbergmann/phpunit/compare/4.8.15...4.8.16
[4.8.15]: https://github.com/sebastianbergmann/phpunit/compare/4.8.14...4.8.15
[4.8.14]: https://github.com/sebastianbergmann/phpunit/compare/4.8.13...4.8.14
[4.8.13]: https://github.com/sebastianbergmann/phpunit/compare/4.8.12...4.8.13
[4.8.12]: https://github.com/sebastianbergmann/phpunit/compare/4.8.11...4.8.12
[4.8.11]: https://github.com/sebastianbergmann/phpunit/compare/4.8.10...4.8.11
[4.8.10]: https://github.com/sebastianbergmann/phpunit/compare/4.8.9...4.8.10
[4.8.9]: https://github.com/sebastianbergmann/phpunit/compare/4.8.8...4.8.9
[4.8.8]: https://github.com/sebastianbergmann/phpunit/compare/4.8.7...4.8.8
[4.8.7]: https://github.com/sebastianbergmann/phpunit/compare/4.8.6...4.8.7
[4.8.6]: https://github.com/sebastianbergmann/phpunit/compare/4.8.5...4.8.6
[4.8.5]: https://github.com/sebastianbergmann/phpunit/compare/4.8.4...4.8.5
[4.8.4]: https://github.com/sebastianbergmann/phpunit/compare/4.8.3...4.8.4
[4.8.3]: https://github.com/sebastianbergmann/phpunit/compare/4.8.2...4.8.3
[4.8.2]: https://github.com/sebastianbergmann/phpunit/compare/4.8.1...4.8.2
[4.8.1]: https://github.com/sebastianbergmann/phpunit/compare/4.8.0...4.8.1
[4.8.0]: https://github.com/sebastianbergmann/phpunit/compare/4.7...4.8.0

128
vendor/phpunit/phpunit/ChangeLog-5.0.md vendored Normal file
View File

@@ -0,0 +1,128 @@
# Changes in PHPUnit 5.0
All notable changes of the PHPUnit 5.0 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [5.0.10] - 2015-11-30
### Fixed
* Fixed [#1953](https://github.com/sebastianbergmann/phpunit/issues/1953): `Error`s raised outside the scope of a test method are not handled properly
* Fixed [#1955](https://github.com/sebastianbergmann/phpunit/issues/1955): Process isolation fails when running tests with `phpdbg -qrr`
## [5.0.9] - 2015-11-10
### Added
* Merged [#1909](https://github.com/sebastianbergmann/phpunit/issues/1909): Added `flowId` parameter to each TeamCity message (for parallel tests)
### Fixed
* Fixed [#1935](https://github.com/sebastianbergmann/phpunit/issues/1935): `PHP_CodeCoverage_Exception` not handled properly
* Fixed [#1944](https://github.com/sebastianbergmann/phpunit/issues/1944): Exceptions are not handled correctly on PHP 7 when an exception is expected
* Fixed [#1948](https://github.com/sebastianbergmann/phpunit/issues/1948): Unable to use PHAR due to unsupported signature error
### Removed
* Removed leftover references to PHPUnit_Selenium
## [5.0.8] - 2015-10-23
### Added
* Implemented [#1925](https://github.com/sebastianbergmann/phpunit/issues/1925): Provide a library-only PHAR
## [5.0.7] - 2015-10-22
### Fixed
* The backup of global state is now properly restored when changes to global state are disallowed
* The `__PHPUNIT_PHAR__` constant is now properly set when the PHPUnit PHAR is used as a library
## [5.0.6] - 2015-10-14
### Added
* Added the `--self-upgrade` commandline switch for upgrading a PHPUnit PHAR to the latest version
### Changed
* The `--self-update` commandline switch now updates a PHPUnit PHAR to the latest version within the same release series
### Fixed
* Fixed [#1892](https://github.com/sebastianbergmann/phpunit/issues/1892): `--coverage-text` does not honor color settings
## [5.0.5] - 2015-10-12
### Changed
* Merged [#1893](https://github.com/sebastianbergmann/phpunit/issues/1893): Removed workaround for phpab bug
## [5.0.4] - 2015-10-07
### Fixed
* Fixed [#1857](https://github.com/sebastianbergmann/phpunit/issues/1857): `@covers` and `@uses` should only take a single word
* Fixed [#1898](https://github.com/sebastianbergmann/phpunit/issues/1898): `@covers` and `@uses` cannot be used for namespaced functions
## [5.0.3] - 2015-10-02
* Fixed check for PHP version in PHAR distribution of PHPUnit
## [5.0.2] - 2015-10-02
### Fixed
* Fixed [#1879](https://github.com/sebastianbergmann/phpunit/issues/1879): `assertEqualXMLStructure()` cannot compare nodes with an ID
* Fixed [#1887](https://github.com/sebastianbergmann/phpunit/issues/1887): PHAR distribution of PHPUnit 5.0.1 does not work
## [5.0.1] - 2015-10-02
### Fixed
* Merged [#1885](https://github.com/sebastianbergmann/phpunit/issues/1885): Fixed handling of PHP configuration settings for process isolation
* An outdated version of DbUnit was bundled in the PHAR distribution of PHPUnit
## [5.0.0] - 2015-10-02
### Added
* Implemented [#1604](https://github.com/sebastianbergmann/phpunit/issues/1604): A `@small` test should be marked as risky when it executes code that performs I/O operations
* Implemented [#1656](https://github.com/sebastianbergmann/phpunit/issues/1656): Allow sorting test failures in reverse
* Merged [#1753](https://github.com/sebastianbergmann/phpunit/issues/1753): Added the `assertFinite()`, `assertInfinite()` and `assertNan()` assertions
* Merged [#1876](https://github.com/sebastianbergmann/phpunit/issues/1876): Added the `--atleast-version` commandline option
* Implemented [#1780](https://github.com/sebastianbergmann/phpunit/issues/1780): Support for deep-cloning of results passed between tests using `@depends`
* Implemented [#1821](https://github.com/sebastianbergmann/phpunit/issues/1821): Expectations on mock objects passed via `@depends` are now also evaluated for the depending test
* Added `--whitelist` commandline option to configure a whitelist for code coverage analysis
* Added convenience wrapper `getMockWithoutInvokingTheOriginalConstructor()` to create a test double without invoking the original class' constructor
* Added TeamCity test result logger for more seamless integration of PHPUnit with PhpStorm
### Changed
* Merged [#1781](https://github.com/sebastianbergmann/phpunit/issues/1781): Empty string is not treated as a valid JSON string anymore
* Merged [#1822](https://github.com/sebastianbergmann/phpunit/issues/1822): Always output progress totals on last line
* It is now mandatory to configure a whitelist for code coverage analysis
* Renamed the `beStrictAboutTestSize` configuration option to `enforceTimeLimit`
* Printer-related CLI options now override printer-related configuration settings
### Removed
* The `assertSelectCount()`, `assertSelectRegExp()`, `assertSelectEquals()`, `assertTag()`, `assertNotTag()` assertions have been removed
* The `--strict` commandline option and the XML configuration's `strict` attribute have been removed
* The code coverage blacklist functionality has been removed
* The PHPUnit_Selenium component is no longer bundled in the PHAR distribution
* The PHPUnit_Selenium component can no longer be configured using the `<selenium/browser>` element of PHPUnit's configuration file
* PHPUnit is no longer supported on PHP 5.3, PHP 5.4, and PHP 5.5
[5.0.10]: https://github.com/sebastianbergmann/phpunit/compare/5.0.9...5.0.10
[5.0.9]: https://github.com/sebastianbergmann/phpunit/compare/5.0.8...5.0.9
[5.0.8]: https://github.com/sebastianbergmann/phpunit/compare/5.0.7...5.0.8
[5.0.7]: https://github.com/sebastianbergmann/phpunit/compare/5.0.6...5.0.7
[5.0.6]: https://github.com/sebastianbergmann/phpunit/compare/5.0.5...5.0.6
[5.0.5]: https://github.com/sebastianbergmann/phpunit/compare/5.0.4...5.0.5
[5.0.4]: https://github.com/sebastianbergmann/phpunit/compare/5.0.3...5.0.4
[5.0.3]: https://github.com/sebastianbergmann/phpunit/compare/5.0.2...5.0.3
[5.0.2]: https://github.com/sebastianbergmann/phpunit/compare/5.0.1...5.0.2
[5.0.1]: https://github.com/sebastianbergmann/phpunit/compare/5.0.0...5.0.1
[5.0.0]: https://github.com/sebastianbergmann/phpunit/compare/4.8...5.0.0

68
vendor/phpunit/phpunit/ChangeLog-5.1.md vendored Normal file
View File

@@ -0,0 +1,68 @@
# Changes in PHPUnit 5.1
All notable changes of the PHPUnit 5.1 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [5.1.7] - 2016-02-02
### Fixed
* Fixed [#2050](https://github.com/sebastianbergmann/phpunit/issues/2050): `PHPUnit_Util_XML::load()` raises exception with empty message when XML string is empty
## [5.1.6] - 2016-01-29
### Fixed
* Fixed [#2052](https://github.com/sebastianbergmann/phpunit/issues/2052): PHPUnit 5.1.5 breaks coverage whitelist include directory globbing
## [5.1.5] - 2016-01-29
### Fixed
* An exception is now raised when non-existant directories or files are to be added to the code coverage whitelist
* Fixed a bug in `PHPUnit_Runner_Version::series()`
## [5.1.4] - 2016-01-11
### Fixed
* Fixed [#1959](https://github.com/sebastianbergmann/phpunit/issues/1959): Prophecy errors are not handled correctly
### Fixed
## [5.1.3] - 2015-12-10
### Added
* Added support for `Throwable` to `PHPUnit_Framework_TestCase::throwsException()`
## [5.1.2] - 2015-12-07
### Fixed
* Fixed a backwards compatibility break related to the execution order of `@before` and `setUp()` introduced in PHPUnit 5.1.0
## [5.1.1] - 2015-12-07
### Fixed
* Fixed a backwards compatibility break in the `PHPUnit_Framework_TestListener` interface introduced in PHPUnit 5.1.0
## [5.1.0] - 2015-12-04
### Added
* Implemented [#1802](https://github.com/sebastianbergmann/phpunit/issues/1802): Refactor how PHPUnit emits warnings (such as `No tests found in class "Test"`)
* Merged [#1824](https://github.com/sebastianbergmann/phpunit/issues/1824): Added support for the `--CLEAN--` and `--EXPECTREGEX--` sections for PHPT test cases
* Merged [#1825](https://github.com/sebastianbergmann/phpunit/issues/1825): Redirect STDERR to STDOUT when running PHPT test cases
* Merged [#1871](https://github.com/sebastianbergmann/phpunit/issues/1871): Added support for `@testdox` annotations on classes
* Merged [#1917](https://github.com/sebastianbergmann/phpunit/issues/1917): Allow `@coversDefaultClass` annotation to work on traits
[5.1.7]: https://github.com/sebastianbergmann/phpunit/compare/5.1.6...5.1.7
[5.1.6]: https://github.com/sebastianbergmann/phpunit/compare/5.1.5...5.1.6
[5.1.5]: https://github.com/sebastianbergmann/phpunit/compare/5.1.4...5.1.5
[5.1.4]: https://github.com/sebastianbergmann/phpunit/compare/5.1.3...5.1.4
[5.1.3]: https://github.com/sebastianbergmann/phpunit/compare/5.1.2...5.1.3
[5.1.2]: https://github.com/sebastianbergmann/phpunit/compare/5.1.1...5.1.2
[5.1.1]: https://github.com/sebastianbergmann/phpunit/compare/5.1.0...5.1.1
[5.1.0]: https://github.com/sebastianbergmann/phpunit/compare/5.0...5.1.0

117
vendor/phpunit/phpunit/ChangeLog-5.2.md vendored Normal file
View File

@@ -0,0 +1,117 @@
# Changes in PHPUnit 5.2
All notable changes of the PHPUnit 5.2 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [5.2.12] - 2016-03-15
### Fixed
* Fixed [#2112](https://github.com/sebastianbergmann/phpunit/issues/2112): Output is html entity encoded when ran through `phpdbg`
* Fixed [#2118](https://github.com/sebastianbergmann/phpunit/issues/2118): Prophecy integration does not work on PHP 7
## [5.2.11] - 2016-03-14
### Fixed
* Fixed [#2094](https://github.com/sebastianbergmann/phpunit/issues/2094): Missing argument for `PHPUnit_TextUI_TestRunner::run()`
* Fixed [#2109](https://github.com/sebastianbergmann/phpunit/issues/2109): Process isolation leaks global variable
## [5.2.10] - 2016-03-03
### Fixed
* Fixed [#2039](https://github.com/sebastianbergmann/phpunit/issues/2039): TestDox does not handle snake_case test methods properly
* Fixed a bug that caused no code coverage to be generated for tests that execute custom comparators
## [5.2.9] - 2016-02-19
### Changed
* Improved the TestDox HTML report
### Fixed
* Fixed [#2083](https://github.com/sebastianbergmann/phpunit/issues/2083): Restored backwards compatibility in deprecated `setExpectedException()` method
## [5.2.8] - 2016-02-18
### Changed
* Updated dependency information in `composer.json`
## [5.2.7] - 2016-02-18
### Changed
* Improved the typography of the TestDox HTML report
## [5.2.6] - 2016-02-16
### Fixed
* `PHPUnit_Framework_InvalidCoversTargetException` is now properly handled and results in a warning
## [5.2.5] - 2016-02-13
### Fixed
* Fixed [#2076](https://github.com/sebastianbergmann/phpunit/issues/2076): Code of custom comparators should not result in a test being marked as risky when PHPUnit is strict about @covers annotation usage
## [5.2.4] - 2016-02-11
### Fixed
* Fixed [#2072](https://github.com/sebastianbergmann/phpunit/issues/2072): Paths in XML configuration file were not handled correctly when they have whitespace around them
## [5.2.3] - 2016-02-08
### Removed
* Removed the implementation of [#1899](https://github.com/sebastianbergmann/phpunit/issues/1899) due to a [bug](https://github.com/sebastianbergmann/php-code-coverage/issues/420) in PHP_CodeCoverage
## [5.2.2] - 2016-02-07
### Removed
* Removed the implementation of [#1902](https://github.com/sebastianbergmann/phpunit/issues/1902) due to [#2042](https://github.com/sebastianbergmann/phpunit/issues/2042)
## [5.2.1] - 2016-02-05
### Fixed
* Fixed [#2060](https://github.com/sebastianbergmann/phpunit/issues/2060): Allow usage of `sebastian/version` in version 1
## [5.2.0] - 2016-02-05
### Added
* Implemented [#1899](https://github.com/sebastianbergmann/phpunit/issues/1899): Mark a test as risky that does not execute the code it wants to test
* Implemented [#1902](https://github.com/sebastianbergmann/phpunit/issues/1902): Mark a test as risky when it performs an assertion on a test double
* Implemented [#1905](https://github.com/sebastianbergmann/phpunit/issues/1905): Add `--fail-on-risky` and `--fail-on-warning` commandline options as well as `failOnRisky` and `failOnWarning` configuration options
* Implemented [#1912](https://github.com/sebastianbergmann/phpunit/issues/1912): Add support for specifying the extension version with the `@requires` annotation
* Implemented [#1977](https://github.com/sebastianbergmann/phpunit/issues/1977): Add support for disabling annotations that control the ignoring of code coverage
* Added `PHPUnit_Framework_TestCase::expectException()`, `PHPUnit_Framework_TestCase::expectExceptionCode()`, `PHPUnit_Framework_TestCase::expectExceptionMessage()`, and `PHPUnit_Framework_TestCase::expectExceptionMessageRegExp()` for programmatically setting expectations for exceptions
### Changed
* Deprecated `PHPUnit_Framework_TestCase::setExpectedException()`
* Deprecated the `checkForUnintentionallyCoveredCode` configuration setting (use `beStrictAboutCoversAnnotation` instead)
### Removed
* The `mapTestClassNameToCoveredClassName` configuration setting has been removed
[5.2.12]: https://github.com/sebastianbergmann/phpunit/compare/5.2.11...5.2.12
[5.2.11]: https://github.com/sebastianbergmann/phpunit/compare/5.2.10...5.2.11
[5.2.10]: https://github.com/sebastianbergmann/phpunit/compare/5.2.9...5.2.10
[5.2.9]: https://github.com/sebastianbergmann/phpunit/compare/5.2.8...5.2.9
[5.2.8]: https://github.com/sebastianbergmann/phpunit/compare/5.2.7...5.2.8
[5.2.7]: https://github.com/sebastianbergmann/phpunit/compare/5.2.6...5.2.7
[5.2.6]: https://github.com/sebastianbergmann/phpunit/compare/5.2.5...5.2.6
[5.2.5]: https://github.com/sebastianbergmann/phpunit/compare/5.2.4...5.2.5
[5.2.4]: https://github.com/sebastianbergmann/phpunit/compare/5.2.3...5.2.4
[5.2.3]: https://github.com/sebastianbergmann/phpunit/compare/5.2.2...5.2.3
[5.2.2]: https://github.com/sebastianbergmann/phpunit/compare/5.2.1...5.2.2
[5.2.1]: https://github.com/sebastianbergmann/phpunit/compare/5.2.0...5.2.1
[5.2.0]: https://github.com/sebastianbergmann/phpunit/compare/5.1...5.2.0

55
vendor/phpunit/phpunit/ChangeLog-5.3.md vendored Normal file
View File

@@ -0,0 +1,55 @@
# Changes in PHPUnit 5.3
All notable changes of the PHPUnit 5.3 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [5.3.5] - 2016-06-03
### Fixed
* Fixed [phpunit-mock-objects/#308](https://github.com/sebastianbergmann/phpunit-mock-objects/issues/308): Make sure that PHPUnit 5.3 does not pull in PHPUnit 5.4 dependencies
## [5.3.4] - 2016-05-11
### Changed
* The checks that can be enabled by `--strict-coverage` and `beStrictAboutCoversAnnotation` are no longer performed for tests annotated with `@medium` or `@large`
## [5.3.3] - 2016-05-10
### Fixed
* Fixed [#2158](https://github.com/sebastianbergmann/phpunit/issues/2158): Failure to run tests in separate processes if a file included into main process contains constant definition
## [5.3.2] - 2016-04-12
### Fixed
* Fixed [#2134](https://github.com/sebastianbergmann/phpunit/issues/2134): Failures are not shown when there are warnings
* Fixed [phpunit-mock-objects/#301](https://github.com/sebastianbergmann/phpunit-mock-objects/issues/301): `PHPUnit_Framework_MockObject_MockBuilder::getMock()` calls `PHPUnit_Framework_TestCase::getMock()` with more arguments than accepted
## [5.3.1] - 2016-04-07
### Fixed
* Fixed [#2128](https://github.com/sebastianbergmann/phpunit/issues/2128): PHPUnit 5.3 50% slower than PHPUnit 5.2 (when using large data sets with `@dataProvider`)
## [5.3.0] - 2016-04-01
### Added
* Implemented [#1984](https://github.com/sebastianbergmann/phpunit/issues/1984): Support for comparison operators to `@requires` annotation
* Added `--generate-configuration` option to generate an XML configuration file with suggested settings
### Changed
* In strict coverage mode, a test will now be marked as risky when it does not have a `@covers` annotation but is supposed to have one
* The passing of test doubles from one test to another has been improved
* Implemented [phpunit-mock-objects/#296](https://github.com/sebastianbergmann/phpunit-mock-objects/issues/296): Trigger an error when final or private method is configured on a test double
[5.3.5]: https://github.com/sebastianbergmann/phpunit/compare/5.3.4...5.3.5
[5.3.4]: https://github.com/sebastianbergmann/phpunit/compare/5.3.3...5.3.4
[5.3.3]: https://github.com/sebastianbergmann/phpunit/compare/5.3.2...5.3.3
[5.3.2]: https://github.com/sebastianbergmann/phpunit/compare/5.3.1...5.3.2
[5.3.1]: https://github.com/sebastianbergmann/phpunit/compare/5.3.0...5.3.1
[5.3.0]: https://github.com/sebastianbergmann/phpunit/compare/5.2...5.3.0

84
vendor/phpunit/phpunit/ChangeLog-5.4.md vendored Normal file
View File

@@ -0,0 +1,84 @@
# Changes in PHPUnit 5.4
All notable changes of the PHPUnit 5.4 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [5.4.8] - 2016-07-26
### Changed
* Bumped required version of `phpunit/php-code-coverage` to `4.0.1`
## [5.4.7] - 2016-07-21
### Fixed
* Fixed [#1968](https://github.com/sebastianbergmann/phpunit/issues/1968): Invalid data sets are not handled correctly for `@testWith` annotation
* Fixed [#2200](https://github.com/sebastianbergmann/phpunit/issues/2200): No warnings when test runs in separate process
* Fixed [#2221](https://github.com/sebastianbergmann/phpunit/issues/2221): `expectException()` accepts non-string argument
## [5.4.6] - 2016-06-16
### Fixed
* Fixed [#2219](https://github.com/sebastianbergmann/phpunit/issues/2219): PHAR does not contain all dependencies
## [5.4.5] - 2016-06-15
### Fixed
* Fixed [#2181](https://github.com/sebastianbergmann/phpunit/issues/2181): Use `setlocale()` with `0` as second argument to not affect current setting
* Fixed [#2211](https://github.com/sebastianbergmann/phpunit/issues/2211): Correctly handle paths to PHP binary that contain spaces (`C:\Program Files`) on Microsoft Windows
## [5.4.4] - 2016-06-09
### Fixed
* Blacklisted phpdocumentor/reflection-docblock 3.0.2 due to https://github.com/phpDocumentor/ReflectionDocBlock/pull/77
## [5.4.3] - 2016-06-09
### Changed
* Renamed `phpunit\framework\TestCase` to `PHPUnit\Framework\TestCase`
## [5.4.2] - 2016-06-03
### Fixed
* Reverted the JUnit XML logfile format change to restore backward compatibility
## [5.4.1] - 2016-06-03
### Fixed
* Fixed [#2186](https://github.com/sebastianbergmann/phpunit/issues/2186): `PHPUnit_Framework_TestCase::getMockBuilder()` should be `public`, not `protected`
## [5.4.0] - 2016-06-03
### Added
* Implemented [#2037](https://github.com/sebastianbergmann/phpunit/issues/2037): Log more information about failures in JSON output
* Implemented [#2152](https://github.com/sebastianbergmann/phpunit/issues/2152): Filter for which tests TestDox output is generated
* Added the `PHPUnit\Framework\TestCase::createMock()` method for creating test doubles using best practice defaults
* Added `registerMockObjectsFromTestArgumentsRecursively` configuration directive for optionally registering mock objects from test arguments recursively
* Added support for the `ENV`, `STDIN`, `ARGS`, `FILEEOF`, `FILE_EXTERNAL`, `EXPECT_EXTERNAL`, `EXPECTF_EXTERNAL`, `EXPECTREGEX_EXTERNAL`, and `XFAIL` sections to PHPT test runner
* Added TestDox XML logger
* Added `phpunit\framework\TestCase` as an alias for `PHPUnit_Framework_TestCase` for forward compatibility
### Changed
* The `PHPUnit_Framework_TestCase::getMock()` method has been deprecated. Please use `PHPUnit_Framework_TestCase::createMock()` or `PHPUnit_Framework_TestCase::getMockBuilder()` instead.
* The `PHPUnit_Framework_TestCase::getMockWithoutInvokingTheOriginalConstructor()` method has been deprecated. Please use `PHPUnit_Framework_TestCase::createMock()` instead.
* The logfile format generated using the `--log-junit` option and the `<log type="junit" target="..."/>` configuration directive has been updated to match the [current format used by JUnit](http://llg.cubic.org/docs/junit/). Due to this change you may need to update how your continuous integration server processes test result logfiles generated by PHPUnit.
* The methods `PHPUnit_Framework_TestCase::getMockBuilder()`, `PHPUnit_Framework_TestCase::createTestDouble()`, `PHPUnit_Framework_TestCase::getMock()`, `PHPUnit_Framework_TestCase::getMockWithoutInvokingTheOriginalConstructor()`, `PHPUnit_Framework_TestCase::getMockForAbstractClass()` and `PHPUnit_Framework_TestCase::getMockForTrait()` are now protected (they were public before).
[5.4.8]: https://github.com/sebastianbergmann/phpunit/compare/5.4.7...5.4.8
[5.4.7]: https://github.com/sebastianbergmann/phpunit/compare/5.4.6...5.4.7
[5.4.6]: https://github.com/sebastianbergmann/phpunit/compare/5.4.5...5.4.6
[5.4.5]: https://github.com/sebastianbergmann/phpunit/compare/5.4.4...5.4.5
[5.4.4]: https://github.com/sebastianbergmann/phpunit/compare/5.4.3...5.4.4
[5.4.3]: https://github.com/sebastianbergmann/phpunit/compare/5.4.2...5.4.3
[5.4.2]: https://github.com/sebastianbergmann/phpunit/compare/5.4.1...5.4.2
[5.4.1]: https://github.com/sebastianbergmann/phpunit/compare/5.4.0...5.4.1
[5.4.0]: https://github.com/sebastianbergmann/phpunit/compare/5.3...5.4.0

74
vendor/phpunit/phpunit/ChangeLog-5.5.md vendored Normal file
View File

@@ -0,0 +1,74 @@
# Changes in PHPUnit 5.5
All notable changes of the PHPUnit 5.5 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [5.5.7] - 2016-10-03
### Changed
* Reverted [#2300](https://github.com/sebastianbergmann/phpunit/issues/2300): Exclude tests from package distribution
## [5.5.6] - 2016-10-03
### Changed
* Implemented [#2300](https://github.com/sebastianbergmann/phpunit/issues/2300): Exclude tests from package distribution
### Fixed
* Fixed [#2261](https://github.com/sebastianbergmann/phpunit/issues/2261): Invalid test listener configuration leads to confusing behavior
* Fixed [#2309](https://github.com/sebastianbergmann/phpunit/pull/2309): `PHPUnit\Framework\TestCase` is not declared `abstract`
## [5.5.5] - 2016-09-21
### Fixed
* Fixed [#2101](https://github.com/sebastianbergmann/phpunit/issues/2101): Output Buffer Level consumption prevents custom output buffers from working
## [5.5.4] - 2016-08-26
New release of PHPUnit as PHAR with updated dependencies
## [5.5.3] - 2016-08-25
### Fixed
* Fixed [#2270](https://github.com/sebastianbergmann/phpunit/pull/2270): Allow `createPartialMock()` to not mock any methods
## [5.5.2] - 2016-08-18
### Changed
* The JUnit logger no longer uses `<warning>` elements when the `logIncompleteSkipped` configuration option is set to `false` (default)
### Fixed
* Restored the `logIncompleteSkipped` configuration option for the JUnit logger that got lost in PHPUnit 5.4.2
## [5.5.1] - 2016-08-17
### Fixed
* Fixed [#1961](https://github.com/sebastianbergmann/phpunit/issues/1961): XSD schema in 5.x does not validate
* Incorrect warning about missing `@covers` annotation is no longer shown when `@coversNothing` is used together with `forceCoversAnnotation=true`
## [5.5.0] - 2016-08-05
### Added
* Added the `PHPUnit\Framework\TestCase::createPartialMock()` method for creating partial test doubles using best practice defaults
* Merged [#2203](https://github.com/sebastianbergmann/phpunit/pull/2203): Ability to `--list-suites` for a given configuration
### Changed
* An `AssertionError` raised by an `assert()` in the tested code now causes the test to be interpreted as a failure instead of an error
[5.5.7]: https://github.com/sebastianbergmann/phpunit/compare/5.5.6...5.5.7
[5.5.6]: https://github.com/sebastianbergmann/phpunit/compare/5.5.5...5.5.6
[5.5.5]: https://github.com/sebastianbergmann/phpunit/compare/5.5.4...5.5.5
[5.5.4]: https://github.com/sebastianbergmann/phpunit/compare/5.5.3...5.5.4
[5.5.3]: https://github.com/sebastianbergmann/phpunit/compare/5.5.2...5.5.3
[5.5.2]: https://github.com/sebastianbergmann/phpunit/compare/5.5.1...5.5.2
[5.5.1]: https://github.com/sebastianbergmann/phpunit/compare/5.5.0...5.5.1
[5.5.0]: https://github.com/sebastianbergmann/phpunit/compare/5.4...5.5.0

79
vendor/phpunit/phpunit/ChangeLog-5.6.md vendored Normal file
View File

@@ -0,0 +1,79 @@
# Changes in PHPUnit 5.6
All notable changes of the PHPUnit 5.6 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [5.6.8] - 2016-12-02
### Fixed
* Fixed [#1976](https://github.com/sebastianbergmann/phpunit/issues/1976): `str_repeat()` error when using lowest dependencies
## [5.6.7] - 2016-11-28
### Changed
* The logic for not performing the check for unintentionally covered code on `@medium` and `@large` tests has been moved to `php-code-coverage`
## [5.6.6] - 2016-11-28
### Fixed
* Fixed [#2367](https://github.com/sebastianbergmann/phpunit/pull/2367): Bug in `PHPUnit_Util_Test::parseAnnotationContent()`
* Fixed [#2375](https://github.com/sebastianbergmann/phpunit/issues/2375): Invalid regular expression for `--filter` causes PHP warning
## [5.6.5] - 2016-11-21
### Fixed
* Fixed [#2366](https://github.com/sebastianbergmann/phpunit/issues/2366): Using a test double from a data provider only works once
### Changed
Bumped the required versions of `sebastian/comparator`, `sebastian/exporter`, and `sebastian/enumerator`
## [5.6.4] - 2016-11-18
### Fixed
* Fixed [#2361](https://github.com/sebastianbergmann/phpunit/issues/2361): Conflict with newer versions of `sebastian/recursion-context`
## [5.6.3] - 2016-11-14
### Fixed
* Improved the fix for [#1955](https://github.com/sebastianbergmann/phpunit/issues/1955): Process isolation fails when running tests with `phpdbg -qrr`
## [5.6.2] - 2016-10-25
New PHAR release due to updated dependencies
## [5.6.1] - 2016-10-07
### Fixed
* Fixed [#2320](https://github.com/sebastianbergmann/phpunit/issues/2320): Conflict between `PHPUnit_Framework_TestCase::getDataSet()` and `PHPUnit_Extensions_Database_TestCase::getDataSet()`
## [5.6.0] - 2016-10-07
### Added
* Merged [#2240](https://github.com/sebastianbergmann/phpunit/pull/2240): Provide access to a test case's data set (for use in `setUp()`, for instance)
* Merged [#2262](https://github.com/sebastianbergmann/phpunit/pull/2262): Add the `PHPUnit_Framework_Constraint_DirectoryExists`, `PHPUnit_Framework_Constraint_IsReadable`, and `PHPUnit_Framework_Constraint_IsWritable` constraints as well as the `assertIsReadable()`, `assertNotIsReadable()`, `assertIsWritable()`, `assertNotIsWritable()`, `assertDirectoryExists()`, `assertDirectoryNotExists()`, `assertDirectoryIsReadable()`, `assertDirectoryNotIsReadable()`, `assertDirectoryIsWritable()`, `assertDirectoryNotIsWritable()`, `assertFileIsReadable()`, `assertFileNotIsReadable()`, `assertFileIsWritable()`, and `assertFileNotIsWritable()` assertions
* Added `PHPUnit\Framework\TestCase::createConfiguredMock()` based on [idea](https://twitter.com/kriswallsmith/status/763550169090625536) by Kris Wallsmith
* Added the `@doesNotPerformAssertions` annotation for excluding a test from the "useless test" risky test check
### Changed
* Deprecated `PHPUnit\Framework\TestCase::setExpectedExceptionRegExp()`
* `PHPUnit_Util_Printer` no longer optionally cleans up HTML output using `ext/tidy`
[5.6.8]: https://github.com/sebastianbergmann/phpunit/compare/5.6.7...5.6.8
[5.6.7]: https://github.com/sebastianbergmann/phpunit/compare/5.6.6...5.6.7
[5.6.6]: https://github.com/sebastianbergmann/phpunit/compare/5.6.5...5.6.6
[5.6.5]: https://github.com/sebastianbergmann/phpunit/compare/5.6.4...5.6.5
[5.6.4]: https://github.com/sebastianbergmann/phpunit/compare/5.6.3...5.6.4
[5.6.3]: https://github.com/sebastianbergmann/phpunit/compare/5.6.2...5.6.3
[5.6.2]: https://github.com/sebastianbergmann/phpunit/compare/5.6.1...5.6.2
[5.6.1]: https://github.com/sebastianbergmann/phpunit/compare/5.6.0...5.6.1
[5.6.0]: https://github.com/sebastianbergmann/phpunit/compare/5.5...5.6.0

196
vendor/phpunit/phpunit/ChangeLog-5.7.md vendored Normal file
View File

@@ -0,0 +1,196 @@
# Changes in PHPUnit 5.7
All notable changes of the PHPUnit 5.7 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [5.7.21] - 2017-06-21
### Added
* Added `PHPUnit\Framework\AssertionFailedError`, `PHPUnit\Framework\Test`, and `PHPUnit\Framework\TestSuite` to the forward compatibility layer for PHPUnit 6
### Fixed
* Fixed [#2705](https://github.com/sebastianbergmann/phpunit/issues/2705): `stderr` parameter in `phpunit.xml` always considered `true`
## [5.7.20] - 2017-05-22
### Fixed
* Fixed [#2563](https://github.com/sebastianbergmann/phpunit/pull/2563): `phpunit --version` does not display version when running unsupported PHP
## [5.7.19] - 2017-04-03
### Fixed
* Fixed [#2638](https://github.com/sebastianbergmann/phpunit/pull/2638): Regression in `PHPUnit\Framework\TestCase:registerMockObjectsFromTestArguments()`
## [5.7.18] - 2017-04-02
### Fixed
* Fixed [#2145](https://github.com/sebastianbergmann/phpunit/issues/2145): `--stop-on-failure` fails to stop on PHP 7
* Fixed [#2572](https://github.com/sebastianbergmann/phpunit/issues/2572): `PHPUnit\Framework\TestCase:registerMockObjectsFromTestArguments()` does not correctly handle arrays that reference themselves
## [5.7.17] - 2017-03-19
### Fixed
* Fixed [#2016](https://github.com/sebastianbergmann/phpunit/issues/2016): `prophesize()` does not work when static attributes are backed up
* Fixed [#2568](https://github.com/sebastianbergmann/phpunit/issues/2568): `ArraySubsetConstraint` uses invalid cast to array
* Fixed [#2573](https://github.com/sebastianbergmann/phpunit/issues/2573): `getMockFromWsdl()` does not handle URLs with query parameters
* `PHPUnit\Util\Test::getDataFromTestWithAnnotation()` raises notice when docblock contains Windows line endings
## [5.7.16] - 2017-03-15
### Fixed
* Fixed [#2547](https://github.com/sebastianbergmann/phpunit/issues/2547): Code Coverage data is collected for test annotated with `@coversNothing`
* Fixed [#2558](https://github.com/sebastianbergmann/phpunit/issues/2558): `countOf()` function is missing
## [5.7.15] - 2017-03-02
### Fixed
* Fixed [#1999](https://github.com/sebastianbergmann/phpunit/issues/1999): Handler is inherited from previous custom option with handler
* Fixed [#2149](https://github.com/sebastianbergmann/phpunit/issues/2149): `assertCount()` does not handle generators properly
* Fixed [#2478](https://github.com/sebastianbergmann/phpunit/issues/2478): Tests that take too long are not reported as risky test
## [5.7.14] - 2017-02-19
### Fixed
* Fixed [#2489](https://github.com/sebastianbergmann/phpunit/issues/2489): `processUncoveredFilesFromWhitelist` is not handled correctly
* Fixed default values for `addUncoveredFilesFromWhitelist` and `processUncoveredFilesFromWhitelist` in `phpunit.xsd`
## [5.7.13] - 2017-02-10
### Fixed
* Fixed [#2493](https://github.com/sebastianbergmann/phpunit/issues/2493): Fix for [#2475](https://github.com/sebastianbergmann/phpunit/pull/2475) does not apply to PHPUnit 5.7
## [5.7.12] - 2017-02-08
### Fixed
* Fixed [#2475](https://github.com/sebastianbergmann/phpunit/pull/2475): Defining a test suite with only one file does not work
## [5.7.11] - 2017-02-05
### Fixed
* Deprecation errors when used with PHP 7.2
## [5.7.10] - 2017-02-04
### Fixed
* Fixed [#2462](https://github.com/sebastianbergmann/phpunit/issues/2462): Code Coverage whitelist is filled even if no code coverage data is to be collected
## [5.7.9] - 2017-01-28
### Fixed
* Fixed [#2447](https://github.com/sebastianbergmann/phpunit/issues/2447): Reverted backwards incompatible change to handling of boolean environment variable values specified in XML
## [5.7.8] - 2017-01-26
### Fixed
* Fixed [#2446](https://github.com/sebastianbergmann/phpunit/issues/2446): Reverted backwards incompatible change to exit code in case of warnings
## [5.7.7] - 2017-01-25
### Fixed
* Fixed [#1896](https://github.com/sebastianbergmann/phpunit/issues/1896): Wrong test location when `@depends` and `@dataProvider` are combined
* Fixed [#1983](https://github.com/sebastianbergmann/phpunit/pull/1983): Tests with `@expectedException` annotation cannot be skipped
* Fixed [#2137](https://github.com/sebastianbergmann/phpunit/issues/2137): Warnings for invalid data providers are suppressed when test execution is filtered
* Fixed [#2275](https://github.com/sebastianbergmann/phpunit/pull/2275): Invalid UTF-8 characters can lead to missing output
* Fixed [#2299](https://github.com/sebastianbergmann/phpunit/issues/2299): `expectExceptionMessage()` and `expectExceptionCode()` do not work without `expectException()`
* Fixed [#2328](https://github.com/sebastianbergmann/phpunit/issues/2328): `TestListener` callbacks `startTest()` and `endTest()` are not called when test is skipped due to `@depends`
* Fixed [#2331](https://github.com/sebastianbergmann/phpunit/issues/2331): Boolean environment variable values specified in XML get mangled
* Fixed [#2333](https://github.com/sebastianbergmann/phpunit/issues/2333): `assertContains()` and `assertNotContains()` do not handle UTF-8 strings correctly
* Fixed [#2340](https://github.com/sebastianbergmann/phpunit/pull/2340): Data providers that use `yield` or implement `Iterator` cannot be combined
* Fixed [#2349](https://github.com/sebastianbergmann/phpunit/pull/2349): `PHPUnit_TextUI_Command` does not `exit()` when it should
* Fixed [#2392](https://github.com/sebastianbergmann/phpunit/issues/2392): Empty (but valid) data provider should skip the test
* Fixed [#2431](https://github.com/sebastianbergmann/phpunit/issues/2431): `assertArraySubset()` does not support `ArrayAccess`
* Fixed [#2435](https://github.com/sebastianbergmann/phpunit/issues/2435): Empty `@group` annotation causes error on PHP 7.2+
## [5.7.6] - 2017-01-22
### Fixed
* Fixed [#2424](https://github.com/sebastianbergmann/phpunit/issues/2424): `TestCase::getStatus()` returns `STATUS_PASSED` instead of `STATUS_RISKY` for risky test
* Fixed [#2427](https://github.com/sebastianbergmann/phpunit/issues/2427): TestDox group configuration is not handled
* Fixed [#2428](https://github.com/sebastianbergmann/phpunit/pull/2428): Nested arrays specificied in XML configuration file are not handled correctly
## [5.7.5] - 2016-12-28
### Fixed
* Fixed [#2404](https://github.com/sebastianbergmann/phpunit/pull/2404): `assertDirectoryNotIsWriteable()` calls itself
## [5.7.4] - 2016-12-13
### Fixed
* Fixed [#2394](https://github.com/sebastianbergmann/phpunit/issues/2394): Do not treat `AssertionError` as assertion failure on PHP 5
## [5.7.3] - 2016-12-09
### Fixed
* Fixed [#2384](https://github.com/sebastianbergmann/phpunit/pull/2384): Handle `PHPUnit_Framework_Exception` correctly when expecting exceptions
## [5.7.2] - 2016-12-03
### Fixed
* Fixed [#2382](https://github.com/sebastianbergmann/phpunit/issues/2382): Uncloneable test doubles passed via data provider do not work
## [5.7.1] - 2016-12-02
### Fixed
* Fixed [#2380](https://github.com/sebastianbergmann/phpunit/issues/2380): Data Providers cannot be generators anymore
## [5.7.0] - 2016-12-02
### Added
* Merged [#2223](https://github.com/sebastianbergmann/phpunit/pull/2223): Add support for multiple data providers
* Added `extensionsDirectory` configuration directive to configure a directory from which all `.phar` files are loaded as PHPUnit extensions
* Added `--no-extensions` commandline option to suppress loading of extensions (from configured extension directory)
* Added `PHPUnit\Framework\Assert` as an alias for `PHPUnit_Framework_Assert` for forward compatibility
* Added `PHPUnit\Framework\BaseTestListener` as an alias for `PHPUnit_Framework_BaseTestListener` for forward compatibility
* Added `PHPUnit\Framework\TestListener` as an alias for `PHPUnit_Framework_TestListener` for forward compatibility
### Changed
* The `--log-json` commandline option has been deprecated
* The `--tap` and `--log-tap` commandline options have been deprecated
* The `--self-update` and `--self-upgrade` commandline options have been deprecated (PHAR binary only)
[5.7.21]: https://github.com/sebastianbergmann/phpunit/compare/5.7.20...5.7.21
[5.7.20]: https://github.com/sebastianbergmann/phpunit/compare/5.7.19...5.7.20
[5.7.19]: https://github.com/sebastianbergmann/phpunit/compare/5.7.18...5.7.19
[5.7.18]: https://github.com/sebastianbergmann/phpunit/compare/5.7.17...5.7.18
[5.7.17]: https://github.com/sebastianbergmann/phpunit/compare/5.7.16...5.7.17
[5.7.16]: https://github.com/sebastianbergmann/phpunit/compare/5.7.15...5.7.16
[5.7.15]: https://github.com/sebastianbergmann/phpunit/compare/5.7.14...5.7.15
[5.7.14]: https://github.com/sebastianbergmann/phpunit/compare/5.7.13...5.7.14
[5.7.13]: https://github.com/sebastianbergmann/phpunit/compare/5.7.12...5.7.13
[5.7.12]: https://github.com/sebastianbergmann/phpunit/compare/5.7.11...5.7.12
[5.7.11]: https://github.com/sebastianbergmann/phpunit/compare/5.7.10...5.7.11
[5.7.10]: https://github.com/sebastianbergmann/phpunit/compare/5.7.9...5.7.10
[5.7.9]: https://github.com/sebastianbergmann/phpunit/compare/5.7.8...5.7.9
[5.7.8]: https://github.com/sebastianbergmann/phpunit/compare/5.7.7...5.7.8
[5.7.7]: https://github.com/sebastianbergmann/phpunit/compare/5.7.6...5.7.7
[5.7.6]: https://github.com/sebastianbergmann/phpunit/compare/5.7.5...5.7.6
[5.7.5]: https://github.com/sebastianbergmann/phpunit/compare/5.7.4...5.7.5
[5.7.4]: https://github.com/sebastianbergmann/phpunit/compare/5.7.3...5.7.4
[5.7.3]: https://github.com/sebastianbergmann/phpunit/compare/5.7.2...5.7.3
[5.7.2]: https://github.com/sebastianbergmann/phpunit/compare/5.7.1...5.7.2
[5.7.1]: https://github.com/sebastianbergmann/phpunit/compare/5.7.0...5.7.1
[5.7.0]: https://github.com/sebastianbergmann/phpunit/compare/5.6...5.7.0

168
vendor/phpunit/phpunit/ChangeLog-6.0.md vendored Normal file
View File

@@ -0,0 +1,168 @@
# Changes in PHPUnit 6.0
All notable changes of the PHPUnit 6.0 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [6.0.13] - 2017-04-03
### Fixed
* Fixed [#2638](https://github.com/sebastianbergmann/phpunit/pull/2638): Regression in `PHPUnit\Framework\TestCase:registerMockObjectsFromTestArguments()`
## [6.0.12] - 2017-04-02
### Fixed
* Fixed [#2145](https://github.com/sebastianbergmann/phpunit/issues/2145): `--stop-on-failure` fails to stop on PHP 7
* Fixed [#2448](https://github.com/sebastianbergmann/phpunit/issues/2448): Weird error when trying to run `Test` from `Test.php` but `Test.php` does not exist
* Fixed [#2572](https://github.com/sebastianbergmann/phpunit/issues/2572): `PHPUnit\Framework\TestCase:.registerMockObjectsFromTestArguments()` does not correctly handle arrays that reference themselves
## [6.0.11] - 2017-03-29
### Fixed
* Fixed [#2584](https://github.com/sebastianbergmann/phpunit/issues/2584): Wrong path to `eval-stdin.php`
## [6.0.10] - 2017-03-19
### Fixed
* Fixed [#2016](https://github.com/sebastianbergmann/phpunit/issues/2016): `prophesize()` does not work when static attributes are backed up
* Fixed [#2568](https://github.com/sebastianbergmann/phpunit/issues/2568): `ArraySubsetConstraint` uses invalid cast to array
* Fixed [#2573](https://github.com/sebastianbergmann/phpunit/issues/2573): `getMockFromWsdl()` does not handle URLs with query parameters
* `PHPUnit\Util\Test::getDataFromTestWithAnnotation()` raises notice when docblock contains Windows line endings
## [6.0.9] - 2017-03-15
### Fixed
* Fixed [#2547](https://github.com/sebastianbergmann/phpunit/issues/2547): Code Coverage data is collected for test annotated with `@coversNothing`
* Fixed [#2558](https://github.com/sebastianbergmann/phpunit/issues/2558): `countOf()` function is missing
## [6.0.8] - 2017-03-02
### Changed
* The `--check-version` commandline option is now also available when PHPUnit is installed using Composer
### Fixed
* Fixed [#1999](https://github.com/sebastianbergmann/phpunit/issues/1999): Handler is inherited from previous custom option with handler
* Fixed [#2149](https://github.com/sebastianbergmann/phpunit/issues/2149): `assertCount()` does not handle generators properly
* Fixed [#2478](https://github.com/sebastianbergmann/phpunit/issues/2478): Tests that take too long are not reported as risky test
* Fixed [#2527](https://github.com/sebastianbergmann/phpunit/issues/2527): Output of `--check-version` suggests removed `--self-upgrade`
## [6.0.7] - 2017-02-19
### Fixed
* Fixed [#2489](https://github.com/sebastianbergmann/phpunit/issues/2489): `processUncoveredFilesFromWhitelist` is not handled correctly
* Fixed default values for `addUncoveredFilesFromWhitelist` and `processUncoveredFilesFromWhitelist` in `phpunit.xsd`
## [6.0.6] - 2017-02-08
### Fixed
* Fixed [#2474](https://github.com/sebastianbergmann/phpunit/issues/2474): `--globals-backup` commandline option is not recognized
* Fixed [#2475](https://github.com/sebastianbergmann/phpunit/pull/2475): Defining a test suite with only one file does not work
* Fixed [#2487](https://github.com/sebastianbergmann/phpunit/pull/2487): Wrong default values for `backupGlobals` and `beStrictAboutTestsThatDoNotTestAnything` in `phpunit.xsd`
## [6.0.5] - 2017-02-05
### Fixed
* Deprecation errors when used with PHP 7.2
## [6.0.4] - 2017-02-04
### Fixed
* Fixed [#2470](https://github.com/sebastianbergmann/phpunit/issues/2470): PHPUnit 6.0 does not work with PHP 7.0.0-7.0.12
## [6.0.3] - 2017-02-04
### Fixed
* Fixed [#2460](https://github.com/sebastianbergmann/phpunit/issues/2460): Strange error in tests after update to PHPUnit 6
* Fixed [#2467](https://github.com/sebastianbergmann/phpunit/issues/2467): Process Isolation does not work when using PHPUnit from PHAR
## [6.0.2] - 2017-02-03
### Fixed
* Fixed [#2463](https://github.com/sebastianbergmann/phpunit/issues/2463): Whitelisting for code coverage does not work
## [6.0.1] - 2017-02-03
### Fixed
* Fixed [#2461](https://github.com/sebastianbergmann/phpunit/issues/2461): Performance regression in PHPUnit 6.0
* Fixed [#2462](https://github.com/sebastianbergmann/phpunit/issues/2462): Code Coverage whitelist is filled even if no code coverage data is to be collected
## [6.0.0] - 2017-02-03
### Added
* Merged [#2230](https://github.com/sebastianbergmann/phpunit/pull/2230): Add `getExpectedExceptionCode()` and `getExpectedExceptionMessage()`
* Merged [#2344](https://github.com/sebastianbergmann/phpunit/pull/2344): Add support for annotations on traits
* Merged [#2351](https://github.com/sebastianbergmann/phpunit/pull/2351): Allow to filter for multiple test suites
* Added the `PHPUnit\Framework\TestCase::createTestProxy()` method for creating test proxies
* Added the `--dont-report-useless-tests` commandline option
* Added the `--globals-backup` commandline option
* Added `verbatim` attribute to prevent `"true"` and `"false"` from being converted to `true` and `false`, respectively
### Changed
* PHPUnit's units of code are now namespaced
* PHPUnit is now strict about useless tests by default
* The configuration generated using `--generate-configuration` now includes `forceCoversAnnotation="true"`
* Global and super-global variables are no longer backed up before and restored after each test by default
* `PHPUnit\Framework\Assert::fail()` now increments the assertion counter
* `setUpBeforeClass()` is now invoked after all methods annotated with `@beforeClass`
* `setUp()` is now invoked after all methods annotated with `@before`
* Added `addWarning()` method to `PHPUnit\Framework\TestListener` interface
* The logfile format generated using the `--log-junit` option and the `<log type="junit" target="..."/>` configuration directive has been updated to match the [current format used by JUnit](http://llg.cubic.org/docs/junit/). Due to this change you may need to update how your continuous integration server processes test result logfiles generated by PHPUnit.
* The binary PHAR is now binary-only and cannot be used as a library anymore
* Renamed the `PHPUnit_Extensions_PhptTestCase` class to `PHPUnit_Runner_PhptTestCase`
* The `PHPUnit\Framework\TestCase::getMockObjectGenerator()` method is now private
* Merged [#2241](https://github.com/sebastianbergmann/phpunit/pull/2241): Make JSON assertions stricter
* The test runner now exits with `1` (instead of `0`) when all tests pass but there are warnings
### Removed
* Removed `PHPUnit\Framework\TestCase::getMock()` (deprecated in PHPUnit 5.4)
* Removed `PHPUnit\Framework\TestCase::getMockWithoutInvokingTheOriginalConstructor()` (deprecated in PHPUnit 5.4)
* Removed `PHPUnit\Framework\TestCase::setExpectedException()` (deprecated in PHPUnit 5.2)
* Removed `PHPUnit\Framework\TestCase::setExpectedExceptionRegExp()` (deprecated in PHPUnit 5.6)
* Removed `PHPUnit\Framework\TestCase::hasPerformedExpectationsOnOutput()` (deprecated in PHPUnit 4.3)
* Removed the `PHPUnit_Extensions_GroupTestSuite` class
* Removed the `PHPUnit_Extensions_PhptTestSuite` class
* Removed the `PHPUnit_Extensions_RepeatedTest` class
* Removed the `PHPUnit_Extensions_TestDecorator` class
* Removed the `PHPUnit_Extensions_TicketListener` class
* Removed the `PHPUnit_Util_Log_JSON` class
* Removed the `PHPUnit_Util_Log_TAP` class
* Removed the `PHPUnit_Util_Test::getTickets()` method
* Removed the `checkForUnintentionallyCoveredCode` configuration setting (deprecated in PHPUnit 5.2)
* Removed the `--log-json` commandline option (deprecated in PHPUnit 5.7)
* Removed the `--log-tap` and `--tap` commandline options (deprecated in PHPUnit 5.7)
* Removed the `--no-globals-backup` commandline option
* Removed the `--report-useless-tests` commandline option
* Removed the `--self-update` and `--self-upgrade` commandline options (deprecated in PHPUnit 5.7)
* DbUnit is no longer bundled in the PHAR distribution of PHPUnit
* PHPUnit is no longer supported on PHP 5.6
[6.0.13]: https://github.com/sebastianbergmann/phpunit/compare/6.0.12...6.0.13
[6.0.12]: https://github.com/sebastianbergmann/phpunit/compare/6.0.11...6.0.12
[6.0.11]: https://github.com/sebastianbergmann/phpunit/compare/6.0.10...6.0.11
[6.0.10]: https://github.com/sebastianbergmann/phpunit/compare/6.0.9...6.0.10
[6.0.9]: https://github.com/sebastianbergmann/phpunit/compare/6.0.8...6.0.9
[6.0.8]: https://github.com/sebastianbergmann/phpunit/compare/6.0.7...6.0.8
[6.0.7]: https://github.com/sebastianbergmann/phpunit/compare/6.0.6...6.0.7
[6.0.6]: https://github.com/sebastianbergmann/phpunit/compare/6.0.5...6.0.6
[6.0.5]: https://github.com/sebastianbergmann/phpunit/compare/6.0.4...6.0.5
[6.0.4]: https://github.com/sebastianbergmann/phpunit/compare/6.0.3...6.0.4
[6.0.3]: https://github.com/sebastianbergmann/phpunit/compare/6.0.2...6.0.3
[6.0.2]: https://github.com/sebastianbergmann/phpunit/compare/6.0.1...6.0.2
[6.0.1]: https://github.com/sebastianbergmann/phpunit/compare/6.0.0...6.0.1
[6.0.0]: https://github.com/sebastianbergmann/phpunit/compare/5.7...6.0.0

59
vendor/phpunit/phpunit/ChangeLog-6.1.md vendored Normal file
View File

@@ -0,0 +1,59 @@
# Changes in PHPUnit 6.1
All notable changes of the PHPUnit 6.1 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [6.1.4] - 2017-05-22
### Changed
* Version 3.0.2 of `sebastian/environment` is now required
### Fixed
* Fixed [#2563](https://github.com/sebastianbergmann/phpunit/pull/2563): `phpunit --version` does not display version when running unsupported PHP
## [6.1.3] - 2017-04-29
* Fixed [#2661](https://github.com/sebastianbergmann/phpunit/pull/2661): Inconsistent information in JUnit XML logfile for tests that use data provider
## [6.1.2] - 2017-04-25
### Changed
* Version 3.0.1 of `sebastian/environment` is now required
## [6.1.1] - 2017-04-21
### Changed
* Version 5.2 of `phpunit/php-code-coverage` is now required
* Version 3.0.0 of `sebastian/environment` is now required
## [6.1.0] - 2017-04-07
### Added
* Implemented [#2437](https://github.com/sebastianbergmann/phpunit/issues/2437): Show previous exceptions in TeamCity logfile
* Implemented [#2533](https://github.com/sebastianbergmann/phpunit/pull/2533): Implement configuration option to set a default test suite
* Implemented [#2541](https://github.com/sebastianbergmann/phpunit/issues/2541): Implement configuration option to ignore deprecated code from code coverage
* Implemented [#2546](https://github.com/sebastianbergmann/phpunit/issues/2546): Render `__FILE__` and `__DIR__` in `SKIPIF` section of PHPT tests
* Implemented [#2551](https://github.com/sebastianbergmann/phpunit/issues/2551): Allow directory traversal in `FILE_EXTERNAL` section of PHPT tests
* Implemented [#2579](https://github.com/sebastianbergmann/phpunit/issues/2579): Added `classname` attribute to JUnit XML logfile
* Implemented [#2623](https://github.com/sebastianbergmann/phpunit/pull/2623): Added support for Composer-style version constraints to `@requires` annotation
### Changed
* `.phar` files that are to be loaded as a PHPUnit extension must now have a valid `manifest.xml` file
* Details about risky tests are now always displayed
### Fixed
* Fixed [#2049](https://github.com/sebastianbergmann/phpunit/issues/2049): Misleading error message when whitelist configuration contains paths that do not exist
* Fixed [#2472](https://github.com/sebastianbergmann/phpunit/issues/2472): `PHPUnit\Util\Getopt` uses deprecated `each()` function
[6.1.4]: https://github.com/sebastianbergmann/phpunit/compare/6.1.3...6.1.4
[6.1.3]: https://github.com/sebastianbergmann/phpunit/compare/6.1.2...6.1.3
[6.1.2]: https://github.com/sebastianbergmann/phpunit/compare/6.1.1...6.1.2
[6.1.1]: https://github.com/sebastianbergmann/phpunit/compare/6.1.0...6.1.1
[6.1.0]: https://github.com/sebastianbergmann/phpunit/compare/6.0...6.1.0

49
vendor/phpunit/phpunit/ChangeLog-6.2.md vendored Normal file
View File

@@ -0,0 +1,49 @@
# Changes in PHPUnit 6.2
All notable changes of the PHPUnit 6.2 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [6.2.4] - 2017-08-03
### Changed
* Do not pull in `sebastian/diff` `^2.0`
## [6.2.3] - 2017-07-03
### Fixed
* Fixed [#2705](https://github.com/sebastianbergmann/phpunit/issues/2705): `stderr` parameter in `phpunit.xml` always considered `true`
## [6.2.2] - 2017-06-13
### Fixed
* Fixed [#2703](https://github.com/sebastianbergmann/phpunit/pull/2703): `RiskyTestError` class is not declared in the correct namespace
## [6.2.1] - 2017-06-02
### Changed
* Rolled back the change that when `beStrictAboutCoversAnnotation="true"` is configured or `--strict-coverage` is used then a test is now also marked as risky when it specifies units of code using `@covers` or `@uses` that are not executed by the test
## [6.2.0] - 2017-06-02
### Added
* Implemented [#2642](https://github.com/sebastianbergmann/phpunit/pull/2642): Support counting non-`Iterator` `Traversable` objects
* Implemented [#2664](https://github.com/sebastianbergmann/phpunit/pull/2664): Add `@runClassInSeparateProcess` annotation to execute all tests of a class in a single, separate process
* Implemented [#2666](https://github.com/sebastianbergmann/phpunit/pull/2666): Allow using a `Traversable` as data provider (not only `Iterator`)
* Implemented [#2670](https://github.com/sebastianbergmann/phpunit/issues/2670): Add support for disabling the conversion of `E_DEPRECATED` to exceptions
* Implemented [#2692](https://github.com/sebastianbergmann/phpunit/issues/2692): Add `--no-logging` option to disable logging
### Changed
* Implemented [#2689](https://github.com/sebastianbergmann/phpunit/pull/2689): Unpack nested `IteratorAggregate` objects for `Count` constraint
* When `beStrictAboutCoversAnnotation="true"` is configured or `--strict-coverage` is used then a test is now also marked as risky when it specifies units of code using `@covers` or `@uses` that are not executed by the test
[6.2.4]: https://github.com/sebastianbergmann/phpunit/compare/6.2.3...6.2.4
[6.2.3]: https://github.com/sebastianbergmann/phpunit/compare/6.2.2...6.2.3
[6.2.2]: https://github.com/sebastianbergmann/phpunit/compare/6.2.1...6.2.2
[6.2.1]: https://github.com/sebastianbergmann/phpunit/compare/6.2.0...6.2.1
[6.2.0]: https://github.com/sebastianbergmann/phpunit/compare/6.1...6.2.0

17
vendor/phpunit/phpunit/ChangeLog-6.3.md vendored Normal file
View File

@@ -0,0 +1,17 @@
# Changes in PHPUnit 6.3
All notable changes of the PHPUnit 6.3 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [6.3.0] - 2017-08-04
### Added
* Implemented [#2722](https://github.com/sebastianbergmann/phpunit/pull/2722): `@requires OSFAMILY` annotation
* Implemented [#2723](https://github.com/sebastianbergmann/phpunit/pull/2723): Provide a way to force set an environment variable from XML configuration file
### Changed
* Implemented [#2751](https://github.com/sebastianbergmann/phpunit/pull/2751): Use `fopen()` instead of `is_readable()` to check if a file is readable (workaround for Windows and network shares)
[6.3.0]: https://github.com/sebastianbergmann/phpunit/compare/6.2...6.3.0

33
vendor/phpunit/phpunit/LICENSE vendored Normal file
View File

@@ -0,0 +1,33 @@
PHPUnit
Copyright (c) 2001-2017, Sebastian Bergmann <sebastian@phpunit.de>.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
* Neither the name of Sebastian Bergmann nor the names of his
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

46
vendor/phpunit/phpunit/README.md vendored Normal file
View File

@@ -0,0 +1,46 @@
# PHPUnit
PHPUnit is a programmer-oriented testing framework for PHP. It is an instance of the xUnit architecture for unit testing frameworks.
[![Latest Stable Version](https://img.shields.io/packagist/v/phpunit/phpunit.svg?style=flat-square)](https://packagist.org/packages/phpunit/phpunit)
[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%207.0-8892BF.svg?style=flat-square)](https://php.net/)
[![Build Status](https://img.shields.io/travis/sebastianbergmann/phpunit/master.svg?style=flat-square)](https://phpunit.de/build-status.html)
## Installation
We distribute a [PHP Archive (PHAR)](https://php.net/phar) that has all required (as well as some optional) dependencies of PHPUnit bundled in a single file:
```bash
$ wget https://phar.phpunit.de/phpunit.phar
$ chmod +x phpunit.phar
$ mv phpunit.phar /usr/local/bin/phpunit
```
You can also immediately use the PHAR after you have downloaded it, of course:
```bash
$ wget https://phar.phpunit.de/phpunit.phar
$ php phpunit.phar
```
Alternatively, you may use [Composer](https://getcomposer.org/) to download and install PHPUnit as well as its dependencies. Please refer to the [documentation](https://phpunit.de/documentation.html) for details on how to do this.
## Contribute
Please refer to [CONTRIBUTING.md](https://github.com/sebastianbergmann/phpunit/blob/master/.github/CONTRIBUTING.md) for information on how to contribute to PHPUnit and its related projects.
## List of Contributors
Thanks to everyone who has contributed to PHPUnit! You can find a detailed list of contributors on every PHPUnit related package on GitHub. This list shows only the major components:
* [PHPUnit](https://github.com/sebastianbergmann/phpunit/graphs/contributors)
* [PHP_CodeCoverage](https://github.com/sebastianbergmann/php-code-coverage/graphs/contributors)
* [PHPUnit_MockObject](https://github.com/sebastianbergmann/phpunit-mock-objects/graphs/contributors)
A very special thanks to everyone who has contributed to the documentation and helps maintain the translations:
* [PHPUnit Documentation](https://github.com/sebastianbergmann/phpunit-documentation/graphs/contributors)

65
vendor/phpunit/phpunit/appveyor.yml vendored Normal file
View File

@@ -0,0 +1,65 @@
build: false
clone_folder: c:\phpunit
max_jobs: 3
platform: x86
pull_requests:
do_not_increment_build_number: true
version: '{build}.{branch}'
environment:
COMPOSER_ROOT_VERSION: '6.1.x-dev'
matrix:
- PHP_VERSION: '7.0.16'
XDEBUG_VERSION: '2.5.1-7.0'
DEPENDENCIES: '--prefer-lowest'
- PHP_VERSION: '7.0.16'
XDEBUG_VERSION: '2.5.1-7.0'
DEPENDENCIES: ''
- PHP_VERSION: '7.1.2'
XDEBUG_VERSION: '2.5.1-7.1'
DEPENDENCIES: '--prefer-lowest'
- PHP_VERSION: '7.1.2'
XDEBUG_VERSION: '2.5.1-7.1'
DEPENDENCIES: ''
matrix:
fast_finish: true
cache:
- c:\php -> appveyor.yml
- '%LOCALAPPDATA%\Composer\files'
init:
- SET PATH=c:\php\%PHP_VERSION%;%PATH%
install:
- IF NOT EXIST c:\php mkdir c:\php
- IF NOT EXIST c:\php\%PHP_VERSION% mkdir c:\php\%PHP_VERSION%
- cd c:\php\%PHP_VERSION%
- IF NOT EXIST php-installed.txt appveyor DownloadFile http://windows.php.net/downloads/releases/archives/php-%PHP_VERSION%-Win32-VC14-x86.zip
- IF NOT EXIST php-installed.txt 7z x php-%PHP_VERSION%-Win32-VC14-x86.zip -y >nul
- IF NOT EXIST php-installed.txt del /Q *.zip
- IF NOT EXIST php-installed.txt copy /Y php.ini-development php.ini
- IF NOT EXIST php-installed.txt echo max_execution_time=1200 >> php.ini
- IF NOT EXIST php-installed.txt echo date.timezone="UTC" >> php.ini
- IF NOT EXIST php-installed.txt echo extension_dir=ext >> php.ini
- IF NOT EXIST php-installed.txt echo extension=php_curl.dll >> php.ini
- IF NOT EXIST php-installed.txt echo extension=php_openssl.dll >> php.ini
- IF NOT EXIST php-installed.txt echo extension=php_mbstring.dll >> php.ini
- IF NOT EXIST php-installed.txt echo extension=php_fileinfo.dll >> php.ini
- IF NOT EXIST php-installed.txt echo extension=php_mysqli.dll >> php.ini
- IF NOT EXIST php-installed.txt echo extension=php_pdo_sqlite.dll >> php.ini
- IF NOT EXIST php-installed.txt echo zend.assertions=1 >> php.ini
- IF NOT EXIST php-installed.txt echo assert.exception=On >> php.ini
- IF NOT EXIST php-installed.txt appveyor DownloadFile https://getcomposer.org/composer.phar
- IF NOT EXIST php-installed.txt echo @php %%~dp0composer.phar %%* > composer.bat
- IF NOT EXIST php-installed.txt appveyor DownloadFile https://xdebug.org/files/php_xdebug-%XDEBUG_VERSION%-vc14.dll -FileName c:\php\%PHP_VERSION%\ext\php_xdebug-%XDEBUG_VERSION%-vc14.dll
- IF NOT EXIST php-installed.txt echo zend_extension=php_xdebug-%XDEBUG_VERSION%-vc14.dll >> php.ini
- IF NOT EXIST php-installed.txt type nul >> php-installed.txt
- cd c:\phpunit
- composer update --no-interaction --no-ansi --no-progress --no-suggest --optimize-autoloader --prefer-stable %DEPENDENCIES%
test_script:
- cd c:\phpunit
- php phpunit

430
vendor/phpunit/phpunit/build.xml vendored Normal file
View File

@@ -0,0 +1,430 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="phpunit" default="setup">
<target name="setup" depends="clean,install-dependencies"/>
<target name="validate" depends="php-syntax-check,validate-composer-json,validate-phpunit-xsd"/>
<target name="clean" unless="clean.done" description="Cleanup build artifacts">
<delete dir="${basedir}/bin"/>
<delete dir="${basedir}/vendor"/>
<delete file="${basedir}/composer.lock"/>
<delete dir="${basedir}/build/documentation"/>
<delete dir="${basedir}/build/logfiles"/>
<delete dir="${basedir}/build/phar"/>
<delete>
<fileset dir="${basedir}/build">
<include name="**/phpunit*.phar"/>
<include name="**/phpunit*.phar.asc"/>
</fileset>
</delete>
<property name="clean.done" value="true"/>
</target>
<target name="prepare" unless="prepare.done" depends="clean" description="Prepare for build">
<mkdir dir="${basedir}/build/documentation"/>
<mkdir dir="${basedir}/build/logfiles"/>
<property name="prepare.done" value="true"/>
</target>
<target name="validate-composer-json" unless="validate-composer-json.done" description="Validate composer.json">
<exec executable="${basedir}/build/tools/composer" failonerror="true" taskname="composer">
<arg value="validate"/>
<arg value="--no-check-lock"/>
<arg value="--strict"/>
<arg value="${basedir}/composer.json"/>
</exec>
<property name="validate-composer-json.done" value="true"/>
</target>
<target name="-dependencies-installed">
<available file="${basedir}/composer.lock" property="dependencies-installed"/>
</target>
<target name="install-dependencies" unless="dependencies-installed" depends="-dependencies-installed,validate-composer-json" description="Install dependencies with Composer">
<exec executable="${basedir}/build/tools/composer" taskname="composer">
<arg value="update"/>
<arg value="--no-interaction"/>
<arg value="--no-progress"/>
<arg value="--no-ansi"/>
<arg value="--no-suggest"/>
</exec>
</target>
<target name="php-syntax-check" unless="php-syntax-check.done" description="Perform syntax check on PHP files">
<apply executable="php" failonerror="true" taskname="lint">
<arg value="-l"/>
<fileset dir="${basedir}/src">
<include name="**/*.php"/>
<modified/>
</fileset>
<fileset dir="${basedir}/tests">
<include name="**/*.php"/>
<modified/>
</fileset>
</apply>
<property name="php-syntax-check.done" value="true"/>
</target>
<target name="validate-phpunit-xsd" unless="validate-phpunit-xsd.done" description="Validate phpunit.xsd">
<exec executable="xmllint" failonerror="true" taskname="xmllint">
<arg value="--noout"/>
<arg path="${basedir}/phpunit.xsd"/>
</exec>
<property name="validate-phpunit-xsd.done" value="true"/>
</target>
<target name="test" depends="validate,install-dependencies" description="Run tests">
<exec executable="${basedir}/phpunit" taskname="phpunit"/>
</target>
<target name="signed-phar" depends="phar" description="Create signed PHAR archive of PHPUnit and all its dependencies">
<exec executable="gpg" failonerror="true">
<arg value="--local-user"/>
<arg value="sb@sebastian-bergmann.de"/>
<arg value="--armor"/>
<arg value="--detach-sign"/>
<arg path="${basedir}/build/phpunit-library-${version}.phar"/>
</exec>
<exec executable="gpg" failonerror="true">
<arg value="--local-user"/>
<arg value="sb@sebastian-bergmann.de"/>
<arg value="--armor"/>
<arg value="--detach-sign"/>
<arg path="${basedir}/build/phpunit-${version}.phar"/>
</exec>
</target>
<target name="phar" depends="-phar-determine-version,-phar-prepare" description="Create PHAR archive of PHPUnit and all its dependencies">
<antcall target="-phar-build">
<param name="type" value="release"/>
</antcall>
</target>
<target name="phar-nightly" depends="-phar-prepare" description="Create PHAR archive of PHPUnit and all its dependencies (nightly)">
<antcall target="-phar-build">
<param name="type" value="nightly"/>
</antcall>
</target>
<target name="-phar-prepare" depends="clean,install-dependencies">
<mkdir dir="${basedir}/build/phar"/>
<copy file="${basedir}/composer.json" tofile="${basedir}/composer.json.bak"/>
<exec executable="${basedir}/build/tools/composer">
<arg value="require"/>
<arg value="phpunit/php-invoker:~1.1"/>
</exec>
<move file="${basedir}/composer.json.bak" tofile="${basedir}/composer.json"/>
<exec executable="${basedir}/build/phar-manifest.php" output="${basedir}/build/phar/manifest.txt"/>
<copy todir="${basedir}/build/phar" file="${basedir}/build/ca.pem" />
<copy file="${basedir}/vendor/phpunit/php-code-coverage/LICENSE" tofile="${basedir}/build/phar/php-code-coverage/LICENSE"/>
<copy todir="${basedir}/build/phar/php-code-coverage">
<fileset dir="${basedir}/vendor/phpunit/php-code-coverage/src">
<include name="**/*" />
</fileset>
</copy>
<copy file="${basedir}/vendor/phpunit/php-file-iterator/LICENSE" tofile="${basedir}/build/phar/php-file-iterator/LICENSE"/>
<copy todir="${basedir}/build/phar/php-file-iterator">
<fileset dir="${basedir}/vendor/phpunit/php-file-iterator/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/phpunit/php-text-template/LICENSE" tofile="${basedir}/build/phar/php-text-template/LICENSE"/>
<copy todir="${basedir}/build/phar/php-text-template">
<fileset dir="${basedir}/vendor/phpunit/php-text-template/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/phpunit/php-timer/LICENSE" tofile="${basedir}/build/phar/php-timer/LICENSE"/>
<copy todir="${basedir}/build/phar/php-timer">
<fileset dir="${basedir}/vendor/phpunit/php-timer/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/phpunit/php-token-stream/LICENSE" tofile="${basedir}/build/phar/php-token-stream/LICENSE"/>
<copy todir="${basedir}/build/phar/php-token-stream">
<fileset dir="${basedir}/vendor/phpunit/php-token-stream/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/phpunit/phpunit-mock-objects/LICENSE" tofile="${basedir}/build/phar/phpunit-mock-objects/LICENSE"/>
<copy todir="${basedir}/build/phar/phpunit-mock-objects">
<fileset dir="${basedir}/vendor/phpunit/phpunit-mock-objects/src">
<include name="**/*" />
</fileset>
</copy>
<copy file="${basedir}/vendor/sebastian/code-unit-reverse-lookup/LICENSE" tofile="${basedir}/build/phar/sebastian-code-unit-reverse-lookup/LICENSE"/>
<copy todir="${basedir}/build/phar/sebastian-code-unit-reverse-lookup">
<fileset dir="${basedir}/vendor/sebastian/code-unit-reverse-lookup/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/sebastian/comparator/LICENSE" tofile="${basedir}/build/phar/sebastian-comparator/LICENSE"/>
<copy todir="${basedir}/build/phar/sebastian-comparator">
<fileset dir="${basedir}/vendor/sebastian/comparator/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/sebastian/diff/LICENSE" tofile="${basedir}/build/phar/sebastian-diff/LICENSE"/>
<copy todir="${basedir}/build/phar/sebastian-diff">
<fileset dir="${basedir}/vendor/sebastian/diff/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/sebastian/environment/LICENSE" tofile="${basedir}/build/phar/sebastian-environment/LICENSE"/>
<copy todir="${basedir}/build/phar/sebastian-environment">
<fileset dir="${basedir}/vendor/sebastian/environment/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/sebastian/exporter/LICENSE" tofile="${basedir}/build/phar/sebastian-exporter/LICENSE"/>
<copy todir="${basedir}/build/phar/sebastian-exporter">
<fileset dir="${basedir}/vendor/sebastian/exporter/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/sebastian/recursion-context/LICENSE" tofile="${basedir}/build/phar/sebastian-recursion-context/LICENSE"/>
<copy todir="${basedir}/build/phar/sebastian-recursion-context">
<fileset dir="${basedir}/vendor/sebastian/recursion-context/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/sebastian/resource-operations/LICENSE" tofile="${basedir}/build/phar/sebastian-resource-operations/LICENSE"/>
<copy todir="${basedir}/build/phar/sebastian-resource-operations">
<fileset dir="${basedir}/vendor/sebastian/resource-operations/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/sebastian/global-state/LICENSE" tofile="${basedir}/build/phar/sebastian-global-state/LICENSE"/>
<copy todir="${basedir}/build/phar/sebastian-global-state">
<fileset dir="${basedir}/vendor/sebastian/global-state/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/sebastian/object-enumerator/LICENSE" tofile="${basedir}/build/phar/object-enumerator/LICENSE"/>
<copy todir="${basedir}/build/phar/sebastian-object-enumerator">
<fileset dir="${basedir}/vendor/sebastian/object-enumerator/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/sebastian/object-reflector/LICENSE" tofile="${basedir}/build/phar/object-reflector/LICENSE"/>
<copy todir="${basedir}/build/phar/sebastian-object-reflector">
<fileset dir="${basedir}/vendor/sebastian/object-reflector/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/sebastian/version/LICENSE" tofile="${basedir}/build/phar/sebastian-version/LICENSE"/>
<copy todir="${basedir}/build/phar/sebastian-version">
<fileset dir="${basedir}/vendor/sebastian/version/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/doctrine/instantiator/LICENSE" tofile="${basedir}/build/phar/doctrine-instantiator/LICENSE"/>
<copy todir="${basedir}/build/phar/doctrine-instantiator">
<fileset dir="${basedir}/vendor/doctrine/instantiator/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy todir="${basedir}/build/phar/php-invoker">
<fileset dir="${basedir}/vendor/phpunit/php-invoker/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/phpdocumentor/reflection-common/LICENSE" tofile="${basedir}/build/phar/phpdocumentor-reflection-common/LICENSE"/>
<copy todir="${basedir}/build/phar/phpdocumentor-reflection-common">
<fileset dir="${basedir}/vendor/phpdocumentor/reflection-common/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/phpdocumentor/reflection-docblock/LICENSE" tofile="${basedir}/build/phar/phpdocumentor-reflection-docblock/LICENSE"/>
<copy todir="${basedir}/build/phar/phpdocumentor-reflection-docblock">
<fileset dir="${basedir}/vendor/phpdocumentor/reflection-docblock/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/phpdocumentor/type-resolver/LICENSE" tofile="${basedir}/build/phar/phpdocumentor-type-resolver/LICENSE"/>
<copy todir="${basedir}/build/phar/phpdocumentor-type-resolver">
<fileset dir="${basedir}/vendor/phpdocumentor/type-resolver/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/phpspec/prophecy/LICENSE" tofile="${basedir}/build/phar/phpspec-prophecy/LICENSE"/>
<copy todir="${basedir}/build/phar/phpspec-prophecy">
<fileset dir="${basedir}/vendor/phpspec/prophecy/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/myclabs/deep-copy/LICENSE" tofile="${basedir}/build/phar/myclabs-deep-copy/LICENSE"/>
<copy todir="${basedir}/build/phar/myclabs-deep-copy">
<fileset dir="${basedir}/vendor/myclabs/deep-copy/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/webmozart/assert/LICENSE" tofile="${basedir}/build/phar/webmozart-assert/LICENSE"/>
<copy todir="${basedir}/build/phar/webmozart-assert">
<fileset dir="${basedir}/vendor/webmozart/assert/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/phar-io/manifest/LICENSE" tofile="${basedir}/build/phar/phar-io-manifest/LICENSE"/>
<copy todir="${basedir}/build/phar/phar-io-manifest">
<fileset dir="${basedir}/vendor/phar-io/manifest/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/phar-io/version/LICENSE" tofile="${basedir}/build/phar/phar-io-version/LICENSE"/>
<copy todir="${basedir}/build/phar/phar-io-version">
<fileset dir="${basedir}/vendor/phar-io/version/src">
<include name="**/*.php" />
</fileset>
</copy>
<copy file="${basedir}/vendor/theseer/tokenizer/LICENSE" tofile="${basedir}/build/phar/theseer-tokenizer/LICENSE"/>
<copy todir="${basedir}/build/phar/theseer-tokenizer">
<fileset dir="${basedir}/vendor/theseer/tokenizer/src">
<include name="**/*.php" />
</fileset>
</copy>
</target>
<target name="-phar-build" depends="-phar-determine-version">
<copy todir="${basedir}/build/phar/phpunit">
<fileset dir="${basedir}/src">
<include name="**/*.php"/>
<include name="**/*.tpl*"/>
</fileset>
</copy>
<exec executable="${basedir}/build/phar-version.php" outputproperty="_version">
<arg value="${version}"/>
<arg value="${type}"/>
</exec>
<exec executable="${basedir}/build/tools/phpab" taskname="phpab">
<arg value="--all" />
<arg value="--static" />
<arg value="--once" />
<arg value="--phar" />
<arg value="--hash" />
<arg value="SHA-1" />
<arg value="--output" />
<arg path="${basedir}/build/phpunit-library-${_version}.phar" />
<arg value="--template" />
<arg path="${basedir}/build/library-phar-autoload.php.in" />
<arg path="${basedir}/build/phar" />
</exec>
<copy file="${basedir}/build/binary-phar-autoload.php.in" tofile="${basedir}/build/binary-phar-autoload.php"/>
<replace file="${basedir}/build/binary-phar-autoload.php" token="X.Y.Z" value="${_version}"/>
<exec executable="${basedir}/build/tools/phpab" taskname="phpab">
<arg value="--all" />
<arg value="--nolower" />
<arg value="--static" />
<arg value="--phar" />
<arg value="--hash" />
<arg value="SHA-1" />
<arg value="--output" />
<arg path="${basedir}/build/phpunit-${_version}.phar" />
<arg value="--template" />
<arg path="${basedir}/build/binary-phar-autoload.php" />
<arg path="${basedir}/build/phar" />
</exec>
<chmod file="${basedir}/build/phpunit-${_version}.phar" perm="ugo+rx"/>
<delete dir="${basedir}/build/phar"/>
<delete file="${basedir}/build/binary-phar-autoload.php"/>
</target>
<target name="-phar-determine-version">
<exec executable="${basedir}/build/version.php" outputproperty="version" />
</target>
<target name="generate-project-documentation" depends="-phploc,-phpcs,-phpmd,-phpunit">
<exec executable="${basedir}/build/tools/phpdox" dir="${basedir}/build" taskname="phpdox"/>
</target>
<target name="-phploc" depends="prepare">
<exec executable="${basedir}/build/tools/phploc" output="/dev/null" taskname="phploc">
<arg value="--count-tests"/>
<arg value="--log-xml"/>
<arg path="${basedir}/build/logfiles/phploc.xml"/>
<arg path="${basedir}/src"/>
<arg path="${basedir}/tests"/>
</exec>
</target>
<target name="phpcs">
<exec executable="${basedir}/build/tools/phpcs" taskname="phpcs">
<arg value="--standard=${basedir}/build/phpcs.xml"/>
<arg value="--extensions=php"/>
<arg value="--cache"/>
</exec>
</target>
<target name="-phpcs" depends="prepare">
<exec executable="${basedir}/build/tools/phpcs" output="/dev/null" taskname="phpcs">
<arg value="--standard=${basedir}/build/phpcs.xml"/>
<arg value="--extensions=php"/>
<arg value="--cache"/>
<arg value="--report=checkstyle"/>
<arg value="--report-file=${basedir}/build/logfiles/checkstyle.xml"/>
</exec>
</target>
<target name="-phpmd" depends="prepare">
<exec executable="${basedir}/build/tools/phpmd" taskname="phpmd">
<arg path="${basedir}/src"/>
<arg value="xml"/>
<arg path="${basedir}/build/phpmd.xml"/>
<arg value="--reportfile"/>
<arg path="${basedir}/build/logfiles/pmd.xml"/>
</exec>
</target>
<target name="-phpunit" depends="setup">
<exec executable="${basedir}/phpunit" taskname="phpunit">
<arg value="--coverage-xml"/>
<arg path="${basedir}/build/logfiles/coverage"/>
<arg value="--log-junit"/>
<arg path="${basedir}/build/logfiles/junit.xml"/>
</exec>
</target>
</project>

53
vendor/phpunit/phpunit/phpunit vendored Executable file
View File

@@ -0,0 +1,53 @@
#!/usr/bin/env php
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
if (version_compare('7.0.0', PHP_VERSION, '>')) {
fwrite(
STDERR,
sprintf(
'This version of PHPUnit is supported on PHP 7.0 and PHP 7.1.' . PHP_EOL .
'You are using PHP %s (%s).' . PHP_EOL,
PHP_VERSION,
PHP_BINARY
)
);
die(1);
}
if (!ini_get('date.timezone')) {
ini_set('date.timezone', 'UTC');
}
foreach (array(__DIR__ . '/../../autoload.php', __DIR__ . '/../vendor/autoload.php', __DIR__ . '/vendor/autoload.php') as $file) {
if (file_exists($file)) {
define('PHPUNIT_COMPOSER_INSTALL', $file);
break;
}
}
unset($file);
if (!defined('PHPUNIT_COMPOSER_INSTALL')) {
fwrite(
STDERR,
'You need to set up the project dependencies using Composer:' . PHP_EOL . PHP_EOL .
' composer install' . PHP_EOL . PHP_EOL .
'You can learn all about Composer on https://getcomposer.org/.' . PHP_EOL
);
die(1);
}
require PHPUNIT_COMPOSER_INSTALL;
PHPUnit\TextUI\Command::main();

269
vendor/phpunit/phpunit/phpunit.xsd vendored Normal file
View File

@@ -0,0 +1,269 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:documentation source="https://phpunit.de/manual/6.3/en/appendixes.configuration.html">
This Schema file defines the rules by which the XML configuration file of PHPUnit 6.3 may be structured.
</xs:documentation>
<xs:appinfo source="https://phpunit.de/manual/6.3/en/appendixes.configuration.html"/>
</xs:annotation>
<xs:element name="phpunit" type="phpUnitType">
<xs:annotation>
<xs:documentation>Root Element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="filtersType">
<xs:sequence>
<xs:element name="whitelist" type="whiteListType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="filterType">
<xs:sequence>
<xs:group ref="pathGroup"/>
<xs:element name="exclude" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:group ref="pathGroup"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="whiteListType">
<xs:complexContent>
<xs:extension base="filterType">
<xs:attribute name="addUncoveredFilesFromWhitelist" default="true" type="xs:boolean"/>
<xs:attribute name="processUncoveredFilesFromWhitelist" default="false" type="xs:boolean"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="groupsType">
<xs:choice>
<xs:sequence>
<xs:element name="include" type="groupType"/>
<xs:element name="exclude" type="groupType" minOccurs="0"/>
</xs:sequence>
<xs:sequence>
<xs:element name="exclude" type="groupType"/>
</xs:sequence>
</xs:choice>
</xs:complexType>
<xs:complexType name="groupType">
<xs:sequence>
<xs:element name="group" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="listenersType">
<xs:sequence>
<xs:element name="listener" type="objectType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="objectType">
<xs:sequence>
<xs:element name="arguments" minOccurs="0">
<xs:complexType>
<xs:group ref="argumentsGroup"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="class" type="xs:string" use="required"/>
<xs:attribute name="file" type="xs:anyURI"/>
</xs:complexType>
<xs:complexType name="arrayType">
<xs:sequence>
<xs:element name="element" type="argumentType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="argumentType">
<xs:group ref="argumentChoice"/>
<xs:attribute name="key" use="required"/>
</xs:complexType>
<xs:group name="argumentsGroup">
<xs:sequence>
<xs:element name="array" type="arrayType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="integer" type="xs:integer" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="string" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="double" type="xs:double" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="null" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="object" type="objectType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="file" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="directory" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:group>
<xs:group name="argumentChoice">
<xs:choice>
<xs:element name="array" type="arrayType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="integer" type="xs:integer" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="string" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="double" type="xs:double" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="null" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="object" type="objectType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="file" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="directory" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:group>
<xs:simpleType name="columnsType">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:integer"/>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="max"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:complexType name="loggersType">
<xs:sequence>
<xs:element name="log" type="loggerType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="loggerType">
<xs:attribute name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="coverage-html"/>
<xs:enumeration value="coverage-text"/>
<xs:enumeration value="coverage-clover"/>
<xs:enumeration value="coverage-crap4j"/>
<xs:enumeration value="coverage-xml"/>
<xs:enumeration value="json"/>
<xs:enumeration value="plain"/>
<xs:enumeration value="tap"/>
<xs:enumeration value="teamcity"/>
<xs:enumeration value="junit"/>
<xs:enumeration value="testdox-html"/>
<xs:enumeration value="testdox-text"/>
<xs:enumeration value="testdox-xml"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="target" type="xs:anyURI"/>
<xs:attribute name="lowUpperBound" type="xs:nonNegativeInteger" default="35"/>
<xs:attribute name="highLowerBound" type="xs:nonNegativeInteger" default="70"/>
<xs:attribute name="showUncoveredFiles" type="xs:boolean" default="false"/>
<xs:attribute name="threshold" type="xs:nonNegativeInteger" default="30"/>
</xs:complexType>
<xs:group name="pathGroup">
<xs:sequence>
<xs:element name="directory" type="directoryFilterType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="file" type="fileFilterType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:group>
<xs:complexType name="directoryFilterType">
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute type="xs:string" name="suffix" default="Test.php"/>
<xs:attributeGroup ref="phpVersionGroup"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="fileFilterType">
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attributeGroup ref="phpVersionGroup"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:attributeGroup name="phpVersionGroup">
<xs:attribute name="phpVersion" type="xs:string" default="5.3.0"/>
<xs:attribute name="phpVersionOperator" type="xs:string" default="&gt;="/>
</xs:attributeGroup>
<xs:complexType name="phpType">
<xs:sequence>
<xs:choice maxOccurs="unbounded">
<xs:element name="includePath" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ini" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="const" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="var" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="env" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="post" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="get" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="cookie" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="server" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="files" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="request" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="namedValueType">
<xs:attribute name="name" use="required" type="xs:string"/>
<xs:attribute name="value" use="required" type="xs:anySimpleType"/>
<xs:attribute name="verbatim" use="optional" type="xs:boolean"/>
<xs:attribute name="force" use="optional" type="xs:boolean"/>
</xs:complexType>
<xs:complexType name="phpUnitType">
<xs:annotation>
<xs:documentation>The main type specifying the document structure</xs:documentation>
</xs:annotation>
<xs:group ref="configGroup"/>
<xs:attributeGroup ref="configAttributeGroup"/>
</xs:complexType>
<xs:attributeGroup name="configAttributeGroup">
<xs:attribute name="backupGlobals" type="xs:boolean" default="false"/>
<xs:attribute name="backupStaticAttributes" type="xs:boolean" default="false"/>
<xs:attribute name="bootstrap" type="xs:anyURI"/>
<xs:attribute name="cacheTokens" type="xs:boolean"/>
<xs:attribute name="colors" type="xs:boolean" default="false"/>
<xs:attribute name="columns" type="columnsType" default="80"/>
<xs:attribute name="convertDeprecationsToExceptions" type="xs:boolean" default="true"/>
<xs:attribute name="convertErrorsToExceptions" type="xs:boolean" default="true"/>
<xs:attribute name="convertNoticesToExceptions" type="xs:boolean" default="true"/>
<xs:attribute name="convertWarningsToExceptions" type="xs:boolean" default="true"/>
<xs:attribute name="forceCoversAnnotation" type="xs:boolean" default="false"/>
<xs:attribute name="printerClass" type="xs:string" default="PHPUnit_TextUI_ResultPrinter"/>
<xs:attribute name="printerFile" type="xs:anyURI"/>
<xs:attribute name="processIsolation" type="xs:boolean" default="false"/>
<xs:attribute name="stopOnError" type="xs:boolean" default="false"/>
<xs:attribute name="stopOnFailure" type="xs:boolean" default="false"/>
<xs:attribute name="stopOnWarning" type="xs:boolean" default="false"/>
<xs:attribute name="stopOnIncomplete" type="xs:boolean" default="false"/>
<xs:attribute name="stopOnRisky" type="xs:boolean" default="false"/>
<xs:attribute name="stopOnSkipped" type="xs:boolean" default="false"/>
<xs:attribute name="failOnRisky" type="xs:boolean" default="false"/>
<xs:attribute name="failOnWarning" type="xs:boolean" default="false"/>
<xs:attribute name="beStrictAboutChangesToGlobalState" type="xs:boolean" default="false"/>
<xs:attribute name="beStrictAboutOutputDuringTests" type="xs:boolean" default="false"/>
<xs:attribute name="beStrictAboutResourceUsageDuringSmallTests" type="xs:boolean" default="false"/>
<xs:attribute name="beStrictAboutTestsThatDoNotTestAnything" type="xs:boolean" default="true"/>
<xs:attribute name="beStrictAboutTodoAnnotatedTests" type="xs:boolean" default="false"/>
<xs:attribute name="beStrictAboutCoversAnnotation" type="xs:boolean" default="false"/>
<xs:attribute name="enforceTimeLimit" type="xs:boolean" default="false"/>
<xs:attribute name="ignoreDeprecatedCodeUnitsFromCodeCoverage" type="xs:boolean" default="false"/>
<xs:attribute name="timeoutForSmallTests" type="xs:integer" default="1"/>
<xs:attribute name="timeoutForMediumTests" type="xs:integer" default="10"/>
<xs:attribute name="timeoutForLargeTests" type="xs:integer" default="60"/>
<xs:attribute name="testSuiteLoaderClass" type="xs:string" default="PHPUnit_Runner_StandardTestSuiteLoader"/>
<xs:attribute name="testSuiteLoaderFile" type="xs:anyURI"/>
<xs:attribute name="defaultTestSuite" type="xs:string" default=""/>
<xs:attribute name="verbose" type="xs:boolean" default="false"/>
<xs:attribute name="stderr" type="xs:boolean" default="false"/>
<xs:attribute name="reverseDefectList" type="xs:boolean" default="false"/>
<xs:attribute name="registerMockObjectsFromTestArgumentsRecursively" type="xs:boolean" default="false"/>
<xs:attribute name="extensionsDirectory" type="xs:string"/>
</xs:attributeGroup>
<xs:group name="configGroup">
<xs:all>
<xs:element ref="testSuiteFacet" minOccurs="0"/>
<xs:element name="groups" type="groupsType" minOccurs="0"/>
<xs:element name="testdoxGroups" type="groupsType" minOccurs="0"/>
<xs:element name="filter" type="filtersType" minOccurs="0"/>
<xs:element name="logging" type="loggersType" minOccurs="0"/>
<xs:element name="listeners" type="listenersType" minOccurs="0"/>
<xs:element name="php" type="phpType" minOccurs="0"/>
</xs:all>
</xs:group>
<xs:element name="testSuiteFacet" abstract="true"/>
<xs:element name="testsuite" type="testSuiteType" substitutionGroup="testSuiteFacet"/>
<xs:element name="testsuites" type="testSuitesType" substitutionGroup="testSuiteFacet"/>
<xs:complexType name="testSuitesType">
<xs:sequence>
<xs:element name="testsuite" type="testSuiteType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="testSuiteType">
<xs:sequence>
<xs:group ref="pathGroup"/>
<xs:element name="exclude" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:schema>

View File

@@ -0,0 +1,18 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit;
/**
* Marker interface for PHPUnit exceptions.
*/
interface Exception
{
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,27 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
/**
* Thrown when an assertion failed.
*/
class AssertionFailedError extends Exception implements SelfDescribing
{
/**
* Wrapper for getMessage() which is declared as final.
*
* @return string
*/
public function toString()
{
return $this->getMessage();
}
}

View File

@@ -0,0 +1,59 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
/**
* An empty Listener that can be extended to implement TestListener
* with just a few lines of code.
*
* @see TestListener for documentation on the API methods.
*/
abstract class BaseTestListener implements TestListener
{
public function addError(Test $test, \Exception $e, $time)
{
}
public function addWarning(Test $test, Warning $e, $time)
{
}
public function addFailure(Test $test, AssertionFailedError $e, $time)
{
}
public function addIncompleteTest(Test $test, \Exception $e, $time)
{
}
public function addRiskyTest(Test $test, \Exception $e, $time)
{
}
public function addSkippedTest(Test $test, \Exception $e, $time)
{
}
public function startTestSuite(TestSuite $suite)
{
}
public function endTestSuite(TestSuite $suite)
{
}
public function startTest(Test $test)
{
}
public function endTest(Test $test, $time)
{
}
}

View File

@@ -0,0 +1,15 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
class CodeCoverageException extends Exception
{
}

View File

@@ -0,0 +1,83 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use ArrayAccess;
/**
* Constraint that asserts that the array it is evaluated for has a given key.
*
* Uses array_key_exists() to check if the key is found in the input array, if
* not found the evaluation fails.
*
* The array key is passed in the constructor.
*/
class ArrayHasKey extends Constraint
{
/**
* @var int|string
*/
protected $key;
/**
* @param int|string $key
*/
public function __construct($key)
{
parent::__construct();
$this->key = $key;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
if (\is_array($other)) {
return \array_key_exists($this->key, $other);
}
if ($other instanceof ArrayAccess) {
return $other->offsetExists($this->key);
}
return false;
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'has the key ' . $this->exporter->export($this->key);
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
return 'an array ' . $this->toString();
}
}

View File

@@ -0,0 +1,112 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that asserts that the array it is evaluated for has a specified subset.
*
* Uses array_replace_recursive() to check if a key value subset is part of the
* subject array.
*/
class ArraySubset extends Constraint
{
/**
* @var array|\Traversable
*/
protected $subset;
/**
* @var bool
*/
protected $strict;
/**
* @param array|\Traversable $subset
* @param bool $strict Check for object identity
*/
public function __construct($subset, $strict = false)
{
parent::__construct();
$this->strict = $strict;
$this->subset = $subset;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param array|\Traversable $other Array or Traversable object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
//type cast $other & $this->subset as an array to allow
//support in standard array functions.
$other = $this->toArray($other);
$this->subset = $this->toArray($this->subset);
$patched = \array_replace_recursive($other, $this->subset);
if ($this->strict) {
return $other === $patched;
}
return $other == $patched;
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'has the subset ' . $this->exporter->export($this->subset);
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
return 'an array ' . $this->toString();
}
/**
* @param array|\Traversable $other
*
* @return array
*/
private function toArray($other)
{
if (\is_array($other)) {
return $other;
}
if ($other instanceof \ArrayObject) {
return $other->getArrayCopy();
}
if ($other instanceof \Traversable) {
return \iterator_to_array($other);
}
// Keep BC even if we know that array would not be the expected one
return (array) $other;
}
}

View File

@@ -0,0 +1,88 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use PHPUnit\Framework\Assert;
use PHPUnit\Framework\ExpectationFailedException;
class Attribute extends Composite
{
/**
* @var string
*/
protected $attributeName;
/**
* @param Constraint $constraint
* @param string $attributeName
*/
public function __construct(Constraint $constraint, $attributeName)
{
parent::__construct($constraint);
$this->attributeName = $attributeName;
}
/**
* Evaluates the constraint for parameter $other
*
* If $returnResult is set to false (the default), an exception is thrown
* in case of a failure. null is returned otherwise.
*
* If $returnResult is true, the result of the evaluation is returned as
* a boolean value instead: true in case of success, false in case of a
* failure.
*
* @param mixed $other Value or object to evaluate.
* @param string $description Additional information about the test
* @param bool $returnResult Whether to return a result or throw an exception
*
* @return mixed
*
* @throws ExpectationFailedException
*/
public function evaluate($other, $description = '', $returnResult = false)
{
return parent::evaluate(
Assert::readAttribute(
$other,
$this->attributeName
),
$description,
$returnResult
);
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'attribute "' . $this->attributeName . '" ' .
$this->innerConstraint->toString();
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
return $this->toString();
}
}

View File

@@ -0,0 +1,62 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use PHPUnit\Util\InvalidArgumentHelper;
/**
* Constraint that evaluates against a specified closure.
*/
class Callback extends Constraint
{
private $callback;
/**
* @param callable $callback
*
* @throws \PHPUnit\Framework\Exception
*/
public function __construct($callback)
{
if (!\is_callable($callback)) {
throw InvalidArgumentHelper::factory(
1,
'callable'
);
}
parent::__construct();
$this->callback = $callback;
}
/**
* Evaluates the constraint for parameter $value. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return \call_user_func($this->callback, $other);
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'is accepted by specified callback';
}
}

View File

@@ -0,0 +1,83 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use ReflectionClass;
/**
* Constraint that asserts that the class it is evaluated for has a given
* attribute.
*
* The attribute name is passed in the constructor.
*/
class ClassHasAttribute extends Constraint
{
/**
* @var string
*/
protected $attributeName;
/**
* @param string $attributeName
*/
public function __construct($attributeName)
{
parent::__construct();
$this->attributeName = $attributeName;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
$class = new ReflectionClass($other);
return $class->hasProperty($this->attributeName);
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return \sprintf(
'has attribute "%s"',
$this->attributeName
);
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
return \sprintf(
'%sclass "%s" %s',
\is_object($other) ? 'object of ' : '',
\is_object($other) ? \get_class($other) : $other,
$this->toString()
);
}
}

View File

@@ -0,0 +1,55 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use ReflectionClass;
/**
* Constraint that asserts that the class it is evaluated for has a given
* static attribute.
*
* The attribute name is passed in the constructor.
*/
class ClassHasStaticAttribute extends ClassHasAttribute
{
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
$class = new ReflectionClass($other);
if ($class->hasProperty($this->attributeName)) {
$attribute = $class->getProperty($this->attributeName);
return $attribute->isStatic();
}
return false;
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return \sprintf(
'has static attribute "%s"',
$this->attributeName
);
}
}

View File

@@ -0,0 +1,70 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use PHPUnit\Framework\ExpectationFailedException;
abstract class Composite extends Constraint
{
/**
* @var Constraint
*/
protected $innerConstraint;
/**
* @param Constraint $innerConstraint
*/
public function __construct(Constraint $innerConstraint)
{
parent::__construct();
$this->innerConstraint = $innerConstraint;
}
/**
* Evaluates the constraint for parameter $other
*
* If $returnResult is set to false (the default), an exception is thrown
* in case of a failure. null is returned otherwise.
*
* If $returnResult is true, the result of the evaluation is returned as
* a boolean value instead: true in case of success, false in case of a
* failure.
*
* @param mixed $other Value or object to evaluate.
* @param string $description Additional information about the test
* @param bool $returnResult Whether to return a result or throw an exception
*
* @return mixed
*
* @throws ExpectationFailedException
*/
public function evaluate($other, $description = '', $returnResult = false)
{
try {
return $this->innerConstraint->evaluate(
$other,
$description,
$returnResult
);
} catch (ExpectationFailedException $e) {
$this->fail($other, $description, $e->getComparisonFailure());
}
}
/**
* Counts the number of constraint elements.
*
* @return int
*/
public function count()
{
return \count($this->innerConstraint);
}
}

View File

@@ -0,0 +1,155 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use Countable;
use PHPUnit\Framework\ExpectationFailedException;
use PHPUnit\Framework\SelfDescribing;
use SebastianBergmann\Comparator\ComparisonFailure;
use SebastianBergmann\Exporter\Exporter;
/**
* Abstract base class for constraints which can be applied to any value.
*/
abstract class Constraint implements Countable, SelfDescribing
{
protected $exporter;
public function __construct()
{
$this->exporter = new Exporter;
}
/**
* Evaluates the constraint for parameter $other
*
* If $returnResult is set to false (the default), an exception is thrown
* in case of a failure. null is returned otherwise.
*
* If $returnResult is true, the result of the evaluation is returned as
* a boolean value instead: true in case of success, false in case of a
* failure.
*
* @param mixed $other Value or object to evaluate.
* @param string $description Additional information about the test
* @param bool $returnResult Whether to return a result or throw an exception
*
* @return mixed
*
* @throws ExpectationFailedException
*/
public function evaluate($other, $description = '', $returnResult = false)
{
$success = false;
if ($this->matches($other)) {
$success = true;
}
if ($returnResult) {
return $success;
}
if (!$success) {
$this->fail($other, $description);
}
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* This method can be overridden to implement the evaluation algorithm.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return false;
}
/**
* Counts the number of constraint elements.
*
* @return int
*/
public function count()
{
return 1;
}
/**
* Throws an exception for the given compared value and test description
*
* @param mixed $other Evaluated value or object.
* @param string $description Additional information about the test
* @param ComparisonFailure $comparisonFailure
*
* @throws ExpectationFailedException
*/
protected function fail($other, $description, ComparisonFailure $comparisonFailure = null)
{
$failureDescription = \sprintf(
'Failed asserting that %s.',
$this->failureDescription($other)
);
$additionalFailureDescription = $this->additionalFailureDescription($other);
if ($additionalFailureDescription) {
$failureDescription .= "\n" . $additionalFailureDescription;
}
if (!empty($description)) {
$failureDescription = $description . "\n" . $failureDescription;
}
throw new ExpectationFailedException(
$failureDescription,
$comparisonFailure
);
}
/**
* Return additional failure description where needed
*
* The function can be overridden to provide additional failure
* information like a diff
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function additionalFailureDescription($other)
{
return '';
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* To provide additional failure information additionalFailureDescription
* can be used.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
return $this->exporter->export($other) . ' ' . $this->toString();
}
}

View File

@@ -0,0 +1,135 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use Countable;
use Iterator;
use IteratorAggregate;
use Traversable;
use Generator;
class Count extends Constraint
{
/**
* @var int
*/
protected $expectedCount = 0;
/**
* @param int $expected
*/
public function __construct($expected)
{
parent::__construct();
$this->expectedCount = $expected;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other
*
* @return bool
*/
protected function matches($other)
{
return $this->expectedCount === $this->getCountOf($other);
}
/**
* @param \Countable|\Traversable|array $other
*
* @return int|null
*/
protected function getCountOf($other)
{
if ($other instanceof Countable || \is_array($other)) {
return \count($other);
}
if ($other instanceof Traversable) {
while ($other instanceof IteratorAggregate) {
$other = $other->getIterator();
}
$iterator = $other;
if ($iterator instanceof Generator) {
return $this->getCountOfGenerator($iterator);
}
if (!$iterator instanceof Iterator) {
return \iterator_count($iterator);
}
$key = $iterator->key();
$count = \iterator_count($iterator);
// Manually rewind $iterator to previous key, since iterator_count
// moves pointer.
if ($key !== null) {
$iterator->rewind();
while ($iterator->valid() && $key !== $iterator->key()) {
$iterator->next();
}
}
return $count;
}
}
/**
* Returns the total number of iterations from a generator.
* This will fully exhaust the generator.
*
* @param Generator $generator
*
* @return int
*/
protected function getCountOfGenerator(Generator $generator)
{
for ($count = 0; $generator->valid(); $generator->next()) {
++$count;
}
return $count;
}
/**
* Returns the description of the failure.
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
return \sprintf(
'actual size %d matches expected size %d',
$this->getCountOf($other),
$this->expectedCount
);
}
/**
* @return string
*/
public function toString()
{
return \sprintf(
'count matches %d',
$this->expectedCount
);
}
}

View File

@@ -0,0 +1,59 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that checks if the directory(name) that it is evaluated for exists.
*
* The file path to check is passed as $other in evaluate().
*/
class DirectoryExists extends Constraint
{
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return \is_dir($other);
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
return \sprintf(
'directory "%s" exists',
$other
);
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'directory exists';
}
}

View File

@@ -0,0 +1,89 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use PHPUnit\Util\Filter;
use Throwable;
class Exception extends Constraint
{
/**
* @var string
*/
protected $className;
/**
* @param string $className
*/
public function __construct($className)
{
parent::__construct();
$this->className = $className;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return $other instanceof $this->className;
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
if ($other !== null) {
$message = '';
if ($other instanceof Throwable) {
$message = '. Message was: "' . $other->getMessage() . '" at'
. "\n" . Filter::getFilteredStacktrace($other);
}
return \sprintf(
'exception of type "%s" matches expected exception "%s"%s',
\get_class($other),
$this->className,
$message
);
}
return \sprintf(
'exception of type "%s" is thrown',
$this->className
);
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return \sprintf(
'exception of type "%s"',
$this->className
);
}
}

View File

@@ -0,0 +1,68 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
class ExceptionCode extends Constraint
{
/**
* @var int
*/
protected $expectedCode;
/**
* @param int $expected
*/
public function __construct($expected)
{
parent::__construct();
$this->expectedCode = $expected;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param \Throwable $other
*
* @return bool
*/
protected function matches($other)
{
return (string) $other->getCode() == (string) $this->expectedCode;
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
return \sprintf(
'%s is equal to expected exception code %s',
$this->exporter->export($other->getCode()),
$this->exporter->export($this->expectedCode)
);
}
/**
* @return string
*/
public function toString()
{
return 'exception code is ';
}
}

View File

@@ -0,0 +1,68 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
class ExceptionMessage extends Constraint
{
/**
* @var int
*/
protected $expectedMessage;
/**
* @param string $expected
*/
public function __construct($expected)
{
parent::__construct();
$this->expectedMessage = $expected;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param \Throwable $other
*
* @return bool
*/
protected function matches($other)
{
return \strpos($other->getMessage(), $this->expectedMessage) !== false;
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
return \sprintf(
"exception message '%s' contains '%s'",
$other->getMessage(),
$this->expectedMessage
);
}
/**
* @return string
*/
public function toString()
{
return 'exception message contains ';
}
}

View File

@@ -0,0 +1,77 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use PHPUnit\Util\RegularExpression as RegularExpressionUtil;
class ExceptionMessageRegularExpression extends Constraint
{
/**
* @var string
*/
protected $expectedMessageRegExp;
/**
* @param string $expected
*/
public function __construct($expected)
{
parent::__construct();
$this->expectedMessageRegExp = $expected;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param \PHPUnit\Framework\Exception $other
*
* @return bool
*/
protected function matches($other)
{
$match = RegularExpressionUtil::safeMatch($this->expectedMessageRegExp, $other->getMessage());
if (false === $match) {
throw new \PHPUnit\Framework\Exception(
"Invalid expected exception message regex given: '{$this->expectedMessageRegExp}'"
);
}
return 1 === $match;
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
return \sprintf(
"exception message '%s' matches '%s'",
$other->getMessage(),
$this->expectedMessageRegExp
);
}
/**
* @return string
*/
public function toString()
{
return 'exception message matches ';
}
}

View File

@@ -0,0 +1,59 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that checks if the file(name) that it is evaluated for exists.
*
* The file path to check is passed as $other in evaluate().
*/
class FileExists extends Constraint
{
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return \file_exists($other);
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
return \sprintf(
'file "%s" exists',
$other
);
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'file exists';
}
}

View File

@@ -0,0 +1,56 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use numeric;
/**
* Constraint that asserts that the value it is evaluated for is greater
* than a given value.
*/
class GreaterThan extends Constraint
{
/**
* @var numeric
*/
protected $value;
/**
* @param numeric $value
*/
public function __construct($value)
{
parent::__construct();
$this->value = $value;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return $this->value < $other;
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'is greater than ' . $this->exporter->export($this->value);
}
}

View File

@@ -0,0 +1,61 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use PHPUnit\Framework\ExpectationFailedException;
/**
* Constraint that accepts any input value.
*/
class IsAnything extends Constraint
{
/**
* Evaluates the constraint for parameter $other
*
* If $returnResult is set to false (the default), an exception is thrown
* in case of a failure. null is returned otherwise.
*
* If $returnResult is true, the result of the evaluation is returned as
* a boolean value instead: true in case of success, false in case of a
* failure.
*
* @param mixed $other Value or object to evaluate.
* @param string $description Additional information about the test
* @param bool $returnResult Whether to return a result or throw an exception
*
* @return mixed
*
* @throws ExpectationFailedException
*/
public function evaluate($other, $description = '', $returnResult = false)
{
return $returnResult ? true : null;
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'is anything';
}
/**
* Counts the number of constraint elements.
*
* @return int
*/
public function count()
{
return 0;
}
}

View File

@@ -0,0 +1,67 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use Countable;
/**
* Constraint that checks whether a variable is empty().
*/
class IsEmpty extends Constraint
{
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
if ($other instanceof Countable) {
return \count($other) === 0;
}
return empty($other);
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'is empty';
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
$type = \gettype($other);
return \sprintf(
'%s %s %s',
$type[0] == 'a' || $type[0] == 'o' ? 'an' : 'a',
$type,
$this->toString()
);
}
}

View File

@@ -0,0 +1,182 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use PHPUnit\Framework\ExpectationFailedException;
use PHPUnit\Util\InvalidArgumentHelper;
use SebastianBergmann;
/**
* Constraint that checks if one value is equal to another.
*
* Equality is checked with PHP's == operator, the operator is explained in
* detail at {@url http://www.php.net/manual/en/types.comparisons.php}.
* Two values are equal if they have the same value disregarding type.
*
* The expected value is passed in the constructor.
*/
class IsEqual extends Constraint
{
/**
* @var mixed
*/
protected $value;
/**
* @var float
*/
protected $delta = 0.0;
/**
* @var int
*/
protected $maxDepth = 10;
/**
* @var bool
*/
protected $canonicalize = false;
/**
* @var bool
*/
protected $ignoreCase = false;
/**
* @var SebastianBergmann\Comparator\ComparisonFailure
*/
protected $lastFailure;
/**
* @param mixed $value
* @param float $delta
* @param int $maxDepth
* @param bool $canonicalize
* @param bool $ignoreCase
*
* @throws \PHPUnit\Framework\Exception
*/
public function __construct($value, $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
{
parent::__construct();
if (!\is_numeric($delta)) {
throw InvalidArgumentHelper::factory(2, 'numeric');
}
if (!\is_int($maxDepth)) {
throw InvalidArgumentHelper::factory(3, 'integer');
}
if (!\is_bool($canonicalize)) {
throw InvalidArgumentHelper::factory(4, 'boolean');
}
if (!\is_bool($ignoreCase)) {
throw InvalidArgumentHelper::factory(5, 'boolean');
}
$this->value = $value;
$this->delta = $delta;
$this->maxDepth = $maxDepth;
$this->canonicalize = $canonicalize;
$this->ignoreCase = $ignoreCase;
}
/**
* Evaluates the constraint for parameter $other
*
* If $returnResult is set to false (the default), an exception is thrown
* in case of a failure. null is returned otherwise.
*
* If $returnResult is true, the result of the evaluation is returned as
* a boolean value instead: true in case of success, false in case of a
* failure.
*
* @param mixed $other Value or object to evaluate.
* @param string $description Additional information about the test
* @param bool $returnResult Whether to return a result or throw an exception
*
* @return mixed
*
* @throws ExpectationFailedException
*/
public function evaluate($other, $description = '', $returnResult = false)
{
// If $this->value and $other are identical, they are also equal.
// This is the most common path and will allow us to skip
// initialization of all the comparators.
if ($this->value === $other) {
return true;
}
$comparatorFactory = SebastianBergmann\Comparator\Factory::getInstance();
try {
$comparator = $comparatorFactory->getComparatorFor(
$this->value,
$other
);
$comparator->assertEquals(
$this->value,
$other,
$this->delta,
$this->canonicalize,
$this->ignoreCase
);
} catch (SebastianBergmann\Comparator\ComparisonFailure $f) {
if ($returnResult) {
return false;
}
throw new ExpectationFailedException(
\trim($description . "\n" . $f->getMessage()),
$f
);
}
return true;
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
$delta = '';
if (\is_string($this->value)) {
if (\strpos($this->value, "\n") !== false) {
return 'is equal to <text>';
}
return \sprintf(
'is equal to <string:%s>',
$this->value
);
}
if ($this->delta != 0) {
$delta = \sprintf(
' with delta <%F>',
$this->delta
);
}
return \sprintf(
'is equal to %s%s',
$this->exporter->export($this->value),
$delta
);
}
}

View File

@@ -0,0 +1,39 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that accepts false.
*/
class IsFalse extends Constraint
{
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return $other === false;
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'is false';
}
}

View File

@@ -0,0 +1,39 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that accepts finite.
*/
class IsFinite extends Constraint
{
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return \is_finite($other);
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'is finite';
}
}

View File

@@ -0,0 +1,133 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use PHPUnit\Framework\ExpectationFailedException;
use SebastianBergmann;
/**
* Constraint that asserts that one value is identical to another.
*
* Identical check is performed with PHP's === operator, the operator is
* explained in detail at
* {@url http://www.php.net/manual/en/types.comparisons.php}.
* Two values are identical if they have the same value and are of the same
* type.
*
* The expected value is passed in the constructor.
*/
class IsIdentical extends Constraint
{
/**
* @var float
*/
const EPSILON = 0.0000000001;
/**
* @var mixed
*/
protected $value;
/**
* @param mixed $value
*/
public function __construct($value)
{
parent::__construct();
$this->value = $value;
}
/**
* Evaluates the constraint for parameter $other
*
* If $returnResult is set to false (the default), an exception is thrown
* in case of a failure. null is returned otherwise.
*
* If $returnResult is true, the result of the evaluation is returned as
* a boolean value instead: true in case of success, false in case of a
* failure.
*
* @param mixed $other Value or object to evaluate.
* @param string $description Additional information about the test
* @param bool $returnResult Whether to return a result or throw an exception
*
* @return mixed
*
* @throws ExpectationFailedException
*/
public function evaluate($other, $description = '', $returnResult = false)
{
if (\is_float($this->value) && \is_float($other) &&
!\is_infinite($this->value) && !\is_infinite($other) &&
!\is_nan($this->value) && !\is_nan($other)) {
$success = \abs($this->value - $other) < self::EPSILON;
} else {
$success = $this->value === $other;
}
if ($returnResult) {
return $success;
}
if (!$success) {
$f = null;
// if both values are strings, make sure a diff is generated
if (\is_string($this->value) && \is_string($other)) {
$f = new SebastianBergmann\Comparator\ComparisonFailure(
$this->value,
$other,
\sprintf("'%s'", $this->value),
\sprintf("'%s'", $other)
);
}
$this->fail($other, $description, $f);
}
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
if (\is_object($this->value) && \is_object($other)) {
return 'two variables reference the same object';
}
if (\is_string($this->value) && \is_string($other)) {
return 'two strings are identical';
}
return parent::failureDescription($other);
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
if (\is_object($this->value)) {
return 'is identical to an object of class "' .
\get_class($this->value) . '"';
}
return 'is identical to ' . $this->exporter->export($this->value);
}
}

View File

@@ -0,0 +1,39 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that accepts infinite.
*/
class IsInfinite extends Constraint
{
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return \is_infinite($other);
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'is infinite';
}
}

View File

@@ -0,0 +1,96 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use ReflectionClass;
use ReflectionException;
/**
* Constraint that asserts that the object it is evaluated for is an instance
* of a given class.
*
* The expected class name is passed in the constructor.
*/
class IsInstanceOf extends Constraint
{
/**
* @var string
*/
protected $className;
/**
* @param string $className
*/
public function __construct($className)
{
parent::__construct();
$this->className = $className;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return ($other instanceof $this->className);
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
return \sprintf(
'%s is an instance of %s "%s"',
$this->exporter->shortenedExport($other),
$this->getType(),
$this->className
);
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return \sprintf(
'is instance of %s "%s"',
$this->getType(),
$this->className
);
}
private function getType()
{
try {
$reflection = new ReflectionClass($this->className);
if ($reflection->isInterface()) {
return 'interface';
}
} catch (ReflectionException $e) {
}
return 'class';
}
}

View File

@@ -0,0 +1,76 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that asserts that a string is valid JSON.
*/
class IsJson extends Constraint
{
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
if ($other === '') {
return false;
}
\json_decode($other);
if (\json_last_error()) {
return false;
}
return true;
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
if ($other === '') {
return 'an empty string is valid JSON';
}
\json_decode($other);
$error = JsonMatchesErrorMessageProvider::determineJsonError(
\json_last_error()
);
return \sprintf(
'%s is valid JSON (%s)',
$this->exporter->shortenedExport($other),
$error
);
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'is valid JSON';
}
}

View File

@@ -0,0 +1,39 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that accepts nan.
*/
class IsNan extends Constraint
{
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return \is_nan($other);
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'is nan';
}
}

View File

@@ -0,0 +1,39 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that accepts null.
*/
class IsNull extends Constraint
{
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return $other === null;
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'is null';
}
}

View File

@@ -0,0 +1,59 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that checks if the file/dir(name) that it is evaluated for is readable.
*
* The file path to check is passed as $other in evaluate().
*/
class IsReadable extends Constraint
{
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return \is_readable($other);
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
return \sprintf(
'"%s" is readable',
$other
);
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'is readable';
}
}

View File

@@ -0,0 +1,39 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that accepts true.
*/
class IsTrue extends Constraint
{
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return $other === true;
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'is true';
}
}

View File

@@ -0,0 +1,142 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that asserts that the value it is evaluated for is of a
* specified type.
*
* The expected value is passed in the constructor.
*/
class IsType extends Constraint
{
const TYPE_ARRAY = 'array';
const TYPE_BOOL = 'bool';
const TYPE_FLOAT = 'float';
const TYPE_INT = 'int';
const TYPE_NULL = 'null';
const TYPE_NUMERIC = 'numeric';
const TYPE_OBJECT = 'object';
const TYPE_RESOURCE = 'resource';
const TYPE_STRING = 'string';
const TYPE_SCALAR = 'scalar';
const TYPE_CALLABLE = 'callable';
/**
* @var array
*/
protected $types = [
'array' => true,
'boolean' => true,
'bool' => true,
'double' => true,
'float' => true,
'integer' => true,
'int' => true,
'null' => true,
'numeric' => true,
'object' => true,
'real' => true,
'resource' => true,
'string' => true,
'scalar' => true,
'callable' => true
];
/**
* @var string
*/
protected $type;
/**
* @param string $type
*
* @throws \PHPUnit\Framework\Exception
*/
public function __construct($type)
{
parent::__construct();
if (!isset($this->types[$type])) {
throw new \PHPUnit\Framework\Exception(
\sprintf(
'Type specified for PHPUnit\Framework\Constraint\IsType <%s> ' .
'is not a valid type.',
$type
)
);
}
$this->type = $type;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
switch ($this->type) {
case 'numeric':
return \is_numeric($other);
case 'integer':
case 'int':
return \is_int($other);
case 'double':
case 'float':
case 'real':
return \is_float($other);
case 'string':
return \is_string($other);
case 'boolean':
case 'bool':
return \is_bool($other);
case 'null':
return null === $other;
case 'array':
return \is_array($other);
case 'object':
return \is_object($other);
case 'resource':
return \is_resource($other) || \is_string(@\get_resource_type($other));
case 'scalar':
return \is_scalar($other);
case 'callable':
return \is_callable($other);
}
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return \sprintf(
'is of type "%s"',
$this->type
);
}
}

View File

@@ -0,0 +1,59 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that checks if the file/dir(name) that it is evaluated for is writable.
*
* The file path to check is passed as $other in evaluate().
*/
class IsWritable extends Constraint
{
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return \is_writable($other);
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
return \sprintf(
'"%s" is writable',
$other
);
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'is writable';
}
}

View File

@@ -0,0 +1,146 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use PHPUnit\Framework\ExpectationFailedException;
use SebastianBergmann\Comparator\ComparisonFailure;
/**
* Asserts whether or not two JSON objects are equal.
*/
class JsonMatches extends Constraint
{
/**
* @var string
*/
protected $value;
/**
* Creates a new constraint.
*
* @param string $value
*/
public function __construct($value)
{
parent::__construct();
$this->value = $value;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* This method can be overridden to implement the evaluation algorithm.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
list($error, $recodedOther) = $this->canonicalizeJson($other);
if ($error) {
return false;
}
list($error, $recodedValue) = $this->canonicalizeJson($this->value);
if ($error) {
return false;
}
return $recodedOther == $recodedValue;
}
/**
* Throws an exception for the given compared value and test description
*
* @param mixed $other Evaluated value or object.
* @param string $description Additional information about the test
* @param ComparisonFailure $comparisonFailure
*
* @throws ExpectationFailedException
*/
protected function fail($other, $description, ComparisonFailure $comparisonFailure = null)
{
if ($comparisonFailure === null) {
list($error) = $this->canonicalizeJson($other);
if ($error) {
parent::fail($other, $description);
return;
}
list($error) = $this->canonicalizeJson($this->value);
if ($error) {
parent::fail($other, $description);
return;
}
$comparisonFailure = new ComparisonFailure(
\json_decode($this->value),
\json_decode($other),
$other,
$this->value,
false,
'Failed asserting that two json values are equal.'
);
}
parent::fail($other, $description, $comparisonFailure);
}
/*
* To allow comparison of JSON strings, first process them into a consistent
* format so that they can be compared as strings.
* @return array ($error, $canonicalized_json) The $error parameter is used
* to indicate an error decoding the json. This is used to avoid ambiguity
* with JSON strings consisting entirely of 'null' or 'false'.
*/
private function canonicalizeJson($json)
{
$decodedJson = \json_decode($json, true);
if (\json_last_error()) {
return [true, null];
}
$this->recursiveSort($decodedJson);
$reencodedJson = \json_encode($decodedJson);
return [false, $reencodedJson];
}
/*
* JSON object keys are unordered while PHP array keys are ordered.
* Sort all array keys to ensure both the expected and actual values have
* their keys in the same order.
*/
private function recursiveSort(&$json)
{
if (\is_array($json)) {
\ksort($json);
foreach ($json as $key => &$value) {
$this->recursiveSort($value);
}
}
}
/**
* Returns a string representation of the object.
*
* @return string
*/
public function toString()
{
return \sprintf(
'matches JSON string "%s"',
$this->value
);
}
}

View File

@@ -0,0 +1,69 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Provides human readable messages for each JSON error.
*/
class JsonMatchesErrorMessageProvider
{
/**
* Translates JSON error to a human readable string.
*
* @param string $error
* @param string $prefix
*
* @return string
*/
public static function determineJsonError($error, $prefix = '')
{
switch ($error) {
case JSON_ERROR_NONE:
return;
case JSON_ERROR_DEPTH:
return $prefix . 'Maximum stack depth exceeded';
case JSON_ERROR_STATE_MISMATCH:
return $prefix . 'Underflow or the modes mismatch';
case JSON_ERROR_CTRL_CHAR:
return $prefix . 'Unexpected control character found';
case JSON_ERROR_SYNTAX:
return $prefix . 'Syntax error, malformed JSON';
case JSON_ERROR_UTF8:
return $prefix . 'Malformed UTF-8 characters, possibly incorrectly encoded';
default:
return $prefix . 'Unknown error';
}
}
/**
* Translates a given type to a human readable message prefix.
*
* @param string $type
*
* @return string
*/
public static function translateTypeToPrefix($type)
{
switch (\strtolower($type)) {
case 'expected':
$prefix = 'Expected value JSON decode error - ';
break;
case 'actual':
$prefix = 'Actual value JSON decode error - ';
break;
default:
$prefix = '';
break;
}
return $prefix;
}
}

View File

@@ -0,0 +1,56 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use numeric;
/**
* Constraint that asserts that the value it is evaluated for is less than
* a given value.
*/
class LessThan extends Constraint
{
/**
* @var numeric
*/
protected $value;
/**
* @param numeric $value
*/
public function __construct($value)
{
parent::__construct();
$this->value = $value;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return $this->value > $other;
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'is less than ' . $this->exporter->export($this->value);
}
}

View File

@@ -0,0 +1,124 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use PHPUnit\Framework\ExpectationFailedException;
/**
* Logical AND.
*/
class LogicalAnd extends Constraint
{
/**
* @var Constraint[]
*/
protected $constraints = [];
/**
* @var Constraint
*/
protected $lastConstraint;
/**
* @param Constraint[] $constraints
*
* @throws \PHPUnit\Framework\Exception
*/
public function setConstraints(array $constraints)
{
$this->constraints = [];
foreach ($constraints as $constraint) {
if (!($constraint instanceof Constraint)) {
throw new \PHPUnit\Framework\Exception(
'All parameters to ' . __CLASS__ .
' must be a constraint object.'
);
}
$this->constraints[] = $constraint;
}
}
/**
* Evaluates the constraint for parameter $other
*
* If $returnResult is set to false (the default), an exception is thrown
* in case of a failure. null is returned otherwise.
*
* If $returnResult is true, the result of the evaluation is returned as
* a boolean value instead: true in case of success, false in case of a
* failure.
*
* @param mixed $other Value or object to evaluate.
* @param string $description Additional information about the test
* @param bool $returnResult Whether to return a result or throw an exception
*
* @return mixed
*
* @throws ExpectationFailedException
*/
public function evaluate($other, $description = '', $returnResult = false)
{
$success = true;
$constraint = null;
foreach ($this->constraints as $constraint) {
if (!$constraint->evaluate($other, $description, true)) {
$success = false;
break;
}
}
if ($returnResult) {
return $success;
}
if (!$success) {
$this->fail($other, $description);
}
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
$text = '';
foreach ($this->constraints as $key => $constraint) {
if ($key > 0) {
$text .= ' and ';
}
$text .= $constraint->toString();
}
return $text;
}
/**
* Counts the number of constraint elements.
*
* @return int
*/
public function count()
{
$count = 0;
foreach ($this->constraints as $constraint) {
$count += \count($constraint);
}
return $count;
}
}

View File

@@ -0,0 +1,159 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use PHPUnit\Framework\ExpectationFailedException;
/**
* Logical NOT.
*/
class LogicalNot extends Constraint
{
/**
* @var Constraint
*/
protected $constraint;
/**
* @param Constraint $constraint
*/
public function __construct($constraint)
{
parent::__construct();
if (!($constraint instanceof Constraint)) {
$constraint = new IsEqual($constraint);
}
$this->constraint = $constraint;
}
/**
* @param string $string
*
* @return string
*/
public static function negate($string)
{
return \str_replace(
[
'contains ',
'exists',
'has ',
'is ',
'are ',
'matches ',
'starts with ',
'ends with ',
'reference ',
'not not '
],
[
'does not contain ',
'does not exist',
'does not have ',
'is not ',
'are not ',
'does not match ',
'starts not with ',
'ends not with ',
'don\'t reference ',
'not '
],
$string
);
}
/**
* Evaluates the constraint for parameter $other
*
* If $returnResult is set to false (the default), an exception is thrown
* in case of a failure. null is returned otherwise.
*
* If $returnResult is true, the result of the evaluation is returned as
* a boolean value instead: true in case of success, false in case of a
* failure.
*
* @param mixed $other Value or object to evaluate.
* @param string $description Additional information about the test
* @param bool $returnResult Whether to return a result or throw an exception
*
* @return mixed
*
* @throws ExpectationFailedException
*/
public function evaluate($other, $description = '', $returnResult = false)
{
$success = !$this->constraint->evaluate($other, $description, true);
if ($returnResult) {
return $success;
}
if (!$success) {
$this->fail($other, $description);
}
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
switch (\get_class($this->constraint)) {
case LogicalAnd::class:
case self::class:
case LogicalOr::class:
return 'not( ' . $this->constraint->failureDescription($other) . ' )';
default:
return self::negate(
$this->constraint->failureDescription($other)
);
}
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
switch (\get_class($this->constraint)) {
case LogicalAnd::class:
case self::class:
case LogicalOr::class:
return 'not( ' . $this->constraint->toString() . ' )';
default:
return self::negate(
$this->constraint->toString()
);
}
}
/**
* Counts the number of constraint elements.
*
* @return int
*/
public function count()
{
return \count($this->constraint);
}
}

View File

@@ -0,0 +1,116 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use PHPUnit\Framework\ExpectationFailedException;
/**
* Logical OR.
*/
class LogicalOr extends Constraint
{
/**
* @var Constraint[]
*/
protected $constraints = [];
/**
* @param Constraint[] $constraints
*/
public function setConstraints(array $constraints)
{
$this->constraints = [];
foreach ($constraints as $constraint) {
if (!($constraint instanceof Constraint)) {
$constraint = new IsEqual(
$constraint
);
}
$this->constraints[] = $constraint;
}
}
/**
* Evaluates the constraint for parameter $other
*
* If $returnResult is set to false (the default), an exception is thrown
* in case of a failure. null is returned otherwise.
*
* If $returnResult is true, the result of the evaluation is returned as
* a boolean value instead: true in case of success, false in case of a
* failure.
*
* @param mixed $other Value or object to evaluate.
* @param string $description Additional information about the test
* @param bool $returnResult Whether to return a result or throw an exception
*
* @return mixed
*
* @throws ExpectationFailedException
*/
public function evaluate($other, $description = '', $returnResult = false)
{
$success = false;
$constraint = null;
foreach ($this->constraints as $constraint) {
if ($constraint->evaluate($other, $description, true)) {
$success = true;
break;
}
}
if ($returnResult) {
return $success;
}
if (!$success) {
$this->fail($other, $description);
}
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
$text = '';
foreach ($this->constraints as $key => $constraint) {
if ($key > 0) {
$text .= ' or ';
}
$text .= $constraint->toString();
}
return $text;
}
/**
* Counts the number of constraint elements.
*
* @return int
*/
public function count()
{
$count = 0;
foreach ($this->constraints as $constraint) {
$count += \count($constraint);
}
return $count;
}
}

View File

@@ -0,0 +1,121 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use PHPUnit\Framework\ExpectationFailedException;
/**
* Logical XOR.
*/
class LogicalXor extends Constraint
{
/**
* @var Constraint[]
*/
protected $constraints = [];
/**
* @param Constraint[] $constraints
*/
public function setConstraints(array $constraints)
{
$this->constraints = [];
foreach ($constraints as $constraint) {
if (!($constraint instanceof Constraint)) {
$constraint = new IsEqual(
$constraint
);
}
$this->constraints[] = $constraint;
}
}
/**
* Evaluates the constraint for parameter $other
*
* If $returnResult is set to false (the default), an exception is thrown
* in case of a failure. null is returned otherwise.
*
* If $returnResult is true, the result of the evaluation is returned as
* a boolean value instead: true in case of success, false in case of a
* failure.
*
* @param mixed $other Value or object to evaluate.
* @param string $description Additional information about the test
* @param bool $returnResult Whether to return a result or throw an exception
*
* @return mixed
*
* @throws ExpectationFailedException
*/
public function evaluate($other, $description = '', $returnResult = false)
{
$success = true;
$lastResult = null;
$constraint = null;
foreach ($this->constraints as $constraint) {
$result = $constraint->evaluate($other, $description, true);
if ($result === $lastResult) {
$success = false;
break;
}
$lastResult = $result;
}
if ($returnResult) {
return $success;
}
if (!$success) {
$this->fail($other, $description);
}
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
$text = '';
foreach ($this->constraints as $key => $constraint) {
if ($key > 0) {
$text .= ' xor ';
}
$text .= $constraint->toString();
}
return $text;
}
/**
* Counts the number of constraint elements.
*
* @return int
*/
public function count()
{
$count = 0;
foreach ($this->constraints as $constraint) {
$count += \count($constraint);
}
return $count;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use ReflectionObject;
/**
* Constraint that asserts that the object it is evaluated for has a given
* attribute.
*
* The attribute name is passed in the constructor.
*/
class ObjectHasAttribute extends ClassHasAttribute
{
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
$object = new ReflectionObject($other);
return $object->hasProperty($this->attributeName);
}
}

View File

@@ -0,0 +1,62 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that asserts that the string it is evaluated for matches
* a regular expression.
*
* Checks a given value using the Perl Compatible Regular Expression extension
* in PHP. The pattern is matched by executing preg_match().
*
* The pattern string passed in the constructor.
*/
class RegularExpression extends Constraint
{
/**
* @var string
*/
protected $pattern;
/**
* @param string $pattern
*/
public function __construct($pattern)
{
parent::__construct();
$this->pattern = $pattern;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return \preg_match($this->pattern, $other) > 0;
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return \sprintf(
'matches PCRE pattern "%s"',
$this->pattern
);
}
}

View File

@@ -0,0 +1,26 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
class SameSize extends Count
{
/**
* @var int
*/
protected $expectedCount;
/**
* @param \Countable|\Traversable|array $expected
*/
public function __construct($expected)
{
parent::__construct($this->getCountOf($expected));
}
}

View File

@@ -0,0 +1,80 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that asserts that the string it is evaluated for contains
* a given string.
*
* Uses mb_strpos() to find the position of the string in the input, if not
* found the evaluation fails.
*
* The sub-string is passed in the constructor.
*/
class StringContains extends Constraint
{
/**
* @var string
*/
protected $string;
/**
* @var bool
*/
protected $ignoreCase;
/**
* @param string $string
* @param bool $ignoreCase
*/
public function __construct($string, $ignoreCase = false)
{
parent::__construct();
$this->string = $string;
$this->ignoreCase = $ignoreCase;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
if ($this->ignoreCase) {
return \mb_stripos($other, $this->string) !== false;
}
return \mb_strpos($other, $this->string) !== false;
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
if ($this->ignoreCase) {
$string = \mb_strtolower($this->string);
} else {
$string = $this->string;
}
return \sprintf(
'contains "%s"',
$string
);
}
}

View File

@@ -0,0 +1,54 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that asserts that the string it is evaluated for ends with a given
* suffix.
*/
class StringEndsWith extends Constraint
{
/**
* @var string
*/
protected $suffix;
/**
* @param string $suffix
*/
public function __construct($suffix)
{
parent::__construct();
$this->suffix = $suffix;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return \substr($other, 0 - \strlen($this->suffix)) == $this->suffix;
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'ends with "' . $this->suffix . '"';
}
}

View File

@@ -0,0 +1,101 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use SebastianBergmann\Diff\Differ;
/**
* ...
*/
class StringMatchesFormatDescription extends RegularExpression
{
/**
* @var string
*/
protected $string;
/**
* @param string $string
*/
public function __construct($string)
{
parent::__construct($string);
$this->pattern = $this->createPatternFromFormat(
\preg_replace('/\r\n/', "\n", $string)
);
$this->string = $string;
}
protected function failureDescription($other)
{
return 'string matches format description';
}
protected function additionalFailureDescription($other)
{
$from = \preg_split('(\r\n|\r|\n)', $this->string);
$to = \preg_split('(\r\n|\r|\n)', $other);
foreach ($from as $index => $line) {
if (isset($to[$index]) && $line !== $to[$index]) {
$line = $this->createPatternFromFormat($line);
if (\preg_match($line, $to[$index]) > 0) {
$from[$index] = $to[$index];
}
}
}
$this->string = \implode("\n", $from);
$other = \implode("\n", $to);
$differ = new Differ("--- Expected\n+++ Actual\n");
return $differ->diff($this->string, $other);
}
protected function createPatternFromFormat($string)
{
$string = \str_replace(
[
'%e',
'%s',
'%S',
'%a',
'%A',
'%w',
'%i',
'%d',
'%x',
'%f',
'%c'
],
[
'\\' . DIRECTORY_SEPARATOR,
'[^\r\n]+',
'[^\r\n]*',
'.+',
'.*',
'\s*',
'[+-]?\d+',
'\d+',
'[0-9a-fA-F]+',
'[+-]?\.?\d+\.?\d*(?:[Ee][+-]?\d+)?',
'.'
],
\preg_quote($string, '/')
);
return '/^' . $string . '$/s';
}
}

View File

@@ -0,0 +1,54 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
/**
* Constraint that asserts that the string it is evaluated for begins with a
* given prefix.
*/
class StringStartsWith extends Constraint
{
/**
* @var string
*/
protected $prefix;
/**
* @param string $prefix
*/
public function __construct($prefix)
{
parent::__construct();
$this->prefix = $prefix;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
return \strpos($other, $this->prefix) === 0;
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'starts with "' . $this->prefix . '"';
}
}

View File

@@ -0,0 +1,131 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use PHPUnit\Util\InvalidArgumentHelper;
use SplObjectStorage;
/**
* Constraint that asserts that the Traversable it is applied to contains
* a given value.
*/
class TraversableContains extends Constraint
{
/**
* @var bool
*/
protected $checkForObjectIdentity;
/**
* @var bool
*/
protected $checkForNonObjectIdentity;
/**
* @var mixed
*/
protected $value;
/**
* @param mixed $value
* @param bool $checkForObjectIdentity
* @param bool $checkForNonObjectIdentity
*
* @throws \PHPUnit\Framework\Exception
*/
public function __construct($value, $checkForObjectIdentity = true, $checkForNonObjectIdentity = false)
{
parent::__construct();
if (!\is_bool($checkForObjectIdentity)) {
throw InvalidArgumentHelper::factory(2, 'boolean');
}
if (!\is_bool($checkForNonObjectIdentity)) {
throw InvalidArgumentHelper::factory(3, 'boolean');
}
$this->checkForObjectIdentity = $checkForObjectIdentity;
$this->checkForNonObjectIdentity = $checkForNonObjectIdentity;
$this->value = $value;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other Value or object to evaluate.
*
* @return bool
*/
protected function matches($other)
{
if ($other instanceof SplObjectStorage) {
return $other->contains($this->value);
}
if (\is_object($this->value)) {
foreach ($other as $element) {
if ($this->checkForObjectIdentity && $element === $this->value) {
return true;
}
if (!$this->checkForObjectIdentity && $element == $this->value) {
return true;
}
}
} else {
foreach ($other as $element) {
if ($this->checkForNonObjectIdentity && $element === $this->value) {
return true;
}
if (!$this->checkForNonObjectIdentity && $element == $this->value) {
return true;
}
}
}
return false;
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
if (\is_string($this->value) && \strpos($this->value, "\n") !== false) {
return 'contains "' . $this->value . '"';
}
return 'contains ' . $this->exporter->export($this->value);
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
*
* @return string
*/
protected function failureDescription($other)
{
return \sprintf(
'%s %s',
\is_array($other) ? 'an array' : 'a traversable',
$this->toString()
);
}
}

View File

@@ -0,0 +1,96 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use PHPUnit\Framework\ExpectationFailedException;
/**
* Constraint that asserts that the Traversable it is applied to contains
* only values of a given type.
*/
class TraversableContainsOnly extends Constraint
{
/**
* @var Constraint
*/
protected $constraint;
/**
* @var string
*/
protected $type;
/**
* @param string $type
* @param bool $isNativeType
*/
public function __construct($type, $isNativeType = true)
{
parent::__construct();
if ($isNativeType) {
$this->constraint = new IsType($type);
} else {
$this->constraint = new IsInstanceOf(
$type
);
}
$this->type = $type;
}
/**
* Evaluates the constraint for parameter $other
*
* If $returnResult is set to false (the default), an exception is thrown
* in case of a failure. null is returned otherwise.
*
* If $returnResult is true, the result of the evaluation is returned as
* a boolean value instead: true in case of success, false in case of a
* failure.
*
* @param mixed $other Value or object to evaluate.
* @param string $description Additional information about the test
* @param bool $returnResult Whether to return a result or throw an exception
*
* @return mixed
*
* @throws ExpectationFailedException
*/
public function evaluate($other, $description = '', $returnResult = false)
{
$success = true;
foreach ($other as $item) {
if (!$this->constraint->evaluate($item, '', true)) {
$success = false;
break;
}
}
if ($returnResult) {
return $success;
}
if (!$success) {
$this->fail($other, $description);
}
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString()
{
return 'contains only values of type "' . $this->type . '"';
}
}

View File

@@ -0,0 +1,15 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
class CoveredCodeNotExecutedException extends RiskyTestError
{
}

View File

@@ -0,0 +1,25 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
class DataProviderTestSuite extends TestSuite
{
/**
* Sets the dependencies of a TestCase.
*
* @param string[] $dependencies
*/
public function setDependencies(array $dependencies)
{
foreach ($this->tests as $test) {
$test->setDependencies($dependencies);
}
}
}

View File

@@ -0,0 +1,15 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Error;
class Deprecated extends Error
{
public static $enabled = true;
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Error;
use PHPUnit\Framework\Exception;
/**
* Wrapper for PHP errors.
*/
class Error extends Exception
{
/**
* Constructor.
*
* @param string $message
* @param int $code
* @param string $file
* @param int $line
* @param \Exception $previous
*/
public function __construct($message, $code, $file, $line, \Exception $previous = null)
{
parent::__construct($message, $code, $previous);
$this->file = $file;
$this->line = $line;
}
}

View File

@@ -0,0 +1,15 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Error;
class Notice extends Error
{
public static $enabled = true;
}

View File

@@ -0,0 +1,15 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Error;
class Warning extends Error
{
public static $enabled = true;
}

View File

@@ -0,0 +1,80 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
use PHPUnit\Util\Filter;
/**
* Base class for all PHPUnit Framework exceptions.
*
* Ensures that exceptions thrown during a test run do not leave stray
* references behind.
*
* Every Exception contains a stack trace. Each stack frame contains the 'args'
* of the called function. The function arguments can contain references to
* instantiated objects. The references prevent the objects from being
* destructed (until test results are eventually printed), so memory cannot be
* freed up.
*
* With enabled process isolation, test results are serialized in the child
* process and unserialized in the parent process. The stack trace of Exceptions
* may contain objects that cannot be serialized or unserialized (e.g., PDO
* connections). Unserializing user-space objects from the child process into
* the parent would break the intended encapsulation of process isolation.
*
* @see http://fabien.potencier.org/article/9/php-serialization-stack-traces-and-exceptions
*/
class Exception extends \RuntimeException implements \PHPUnit\Exception
{
/**
* @var array
*/
protected $serializableTrace;
public function __construct($message = '', $code = 0, \Exception $previous = null)
{
parent::__construct($message, $code, $previous);
$this->serializableTrace = $this->getTrace();
foreach ($this->serializableTrace as $i => $call) {
unset($this->serializableTrace[$i]['args']);
}
}
/**
* Returns the serializable trace (without 'args').
*
* @return array
*/
public function getSerializableTrace()
{
return $this->serializableTrace;
}
/**
* @return string
*/
public function __toString()
{
$string = TestFailure::exceptionToString($this);
if ($trace = Filter::getFilteredStacktrace($this)) {
$string .= "\n" . $trace;
}
return $string;
}
public function __sleep()
{
return \array_keys(\get_object_vars($this));
}
}

View File

@@ -0,0 +1,93 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
use PHPUnit\Util\Filter;
use Throwable;
/**
* Wraps Exceptions thrown by code under test.
*
* Re-instantiates Exceptions thrown by user-space code to retain their original
* class names, properties, and stack traces (but without arguments).
*
* Unlike PHPUnit\Framework_\Exception, the complete stack of previous Exceptions
* is processed.
*/
class ExceptionWrapper extends Exception
{
/**
* @var string
*/
protected $className;
/**
* @var ExceptionWrapper|null
*/
protected $previous;
/**
* @param Throwable $t
*/
public function __construct(Throwable $t)
{
// PDOException::getCode() is a string.
// @see http://php.net/manual/en/class.pdoexception.php#95812
parent::__construct($t->getMessage(), (int) $t->getCode());
$this->className = \get_class($t);
$this->file = $t->getFile();
$this->line = $t->getLine();
$this->serializableTrace = $t->getTrace();
foreach ($this->serializableTrace as $i => $call) {
unset($this->serializableTrace[$i]['args']);
}
if ($t->getPrevious()) {
$this->previous = new self($t->getPrevious());
}
}
/**
* @return string
*/
public function getClassName()
{
return $this->className;
}
/**
* @return ExceptionWrapper
*/
public function getPreviousWrapped()
{
return $this->previous;
}
/**
* @return string
*/
public function __toString()
{
$string = TestFailure::exceptionToString($this);
if ($trace = Filter::getFilteredStacktrace($this)) {
$string .= "\n" . $trace;
}
if ($this->previous) {
$string .= "\nCaused by\n" . $this->previous;
}
return $string;
}
}

View File

@@ -0,0 +1,44 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
use SebastianBergmann\Comparator\ComparisonFailure;
/**
* Exception for expectations which failed their check.
*
* The exception contains the error message and optionally a
* SebastianBergmann\Comparator\ComparisonFailure which is used to
* generate diff output of the failed expectations.
*/
class ExpectationFailedException extends AssertionFailedError
{
protected $comparisonFailure;
/**
* @param string $message
* @param ComparisonFailure|null $comparisonFailure
* @param \Exception|null $previous
*/
public function __construct($message, ComparisonFailure $comparisonFailure = null, \Exception $previous = null)
{
$this->comparisonFailure = $comparisonFailure;
parent::__construct($message, 0, $previous);
}
/**
* @return null|ComparisonFailure
*/
public function getComparisonFailure()
{
return $this->comparisonFailure;
}
}

View File

@@ -0,0 +1,19 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
/**
* A marker interface for marking any exception/error as result of an unit
* test as incomplete implementation or currently not implemented.
*/
interface IncompleteTest
{
}

View File

@@ -0,0 +1,83 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
/**
* An incomplete test case
*/
class IncompleteTestCase extends TestCase
{
/**
* @var string
*/
protected $message = '';
/**
* @var bool
*/
protected $backupGlobals = false;
/**
* @var bool
*/
protected $backupStaticAttributes = false;
/**
* @var bool
*/
protected $runTestInSeparateProcess = false;
/**
* @var bool
*/
protected $useErrorHandler = false;
/**
* @var bool
*/
protected $useOutputBuffering = false;
/**
* @param string $className
* @param string $methodName
* @param string $message
*/
public function __construct($className, $methodName, $message = '')
{
$this->message = $message;
parent::__construct($className . '::' . $methodName);
}
/**
* @throws Exception
*/
protected function runTest()
{
$this->markTestIncomplete($this->message);
}
/**
* @return string
*/
public function getMessage()
{
return $this->message;
}
/**
* Returns a string representation of the test case.
*
* @return string
*/
public function toString()
{
return $this->getName();
}
}

View File

@@ -0,0 +1,14 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
class IncompleteTestError extends AssertionFailedError implements IncompleteTest
{
}

View File

@@ -0,0 +1,14 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
class InvalidCoversTargetException extends CodeCoverageException
{
}

View File

@@ -0,0 +1,15 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
class MissingCoversAnnotationException extends RiskyTestError
{
}

View File

@@ -0,0 +1,14 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
class OutputError extends AssertionFailedError
{
}

View File

@@ -0,0 +1,15 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
interface RiskyTest
{
}

View File

@@ -0,0 +1,14 @@
<?php
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework;
class RiskyTestError extends AssertionFailedError implements RiskyTest
{
}

Some files were not shown because too many files have changed in this diff Show More