Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5be34453ce | ||
|
|
7773b78e17 | ||
|
|
2a3798c8c2 | ||
|
|
bc8303fe5f |
@@ -7,9 +7,9 @@ base_folder="${BASE_FOLDER}../../www/";
|
||||
# locale gettext po to mo translator master
|
||||
for file in $(ls -1 ${base_folder}../4dev/locale/*.po); do
|
||||
file=$(basename $file .po);
|
||||
echo "Translate language ${file}";
|
||||
locale=$(echo "${file}" | cut -d "-" -f 1);
|
||||
domain=$(echo "${file}" | cut -d "-" -f 2);
|
||||
echo "- Translate language file '${file}' for locale '${locale}' and domain '${domain}':";
|
||||
if [ ! -d "${base_folder}/includes/locale/${locale}/LC_MESSAGES/" ]; then
|
||||
mkdir -p "${base_folder}/includes/locale/${locale}/LC_MESSAGES/";
|
||||
fi;
|
||||
|
||||
@@ -26,22 +26,22 @@ CREATE OR REPLACE FUNCTION set_login_user_id_set_date()
|
||||
RETURNS TRIGGER AS
|
||||
$$
|
||||
BEGIN
|
||||
-- if new is not null/empty
|
||||
-- and old one is null or old one different new one
|
||||
-- set NOW()
|
||||
-- if new one is NULL
|
||||
-- set NULL
|
||||
IF
|
||||
NEW.login_user_id IS NOT NULL AND NEW.login_user_id <> '' AND
|
||||
(OLD.login_user_id IS NULL OR NEW.login_user_id <> OLD.login_user_id)
|
||||
THEN
|
||||
NEW.login_user_id_set_date = NOW();
|
||||
NEW.login_user_id_last_revalidate = NOW();
|
||||
ELSIF NEW.login_user_id IS NULL OR NEW.login_user_id = '' THEN
|
||||
NEW.login_user_id_set_date = NULL;
|
||||
NEW.login_user_id_last_revalidate = NULL;
|
||||
END IF;
|
||||
RETURN NEW;
|
||||
-- if new is not null/empty
|
||||
-- and old one is null or old one different new one
|
||||
-- set NOW()
|
||||
-- if new one is NULL
|
||||
-- set NULL
|
||||
IF
|
||||
NEW.login_user_id IS NOT NULL AND NEW.login_user_id <> '' AND
|
||||
(OLD.login_user_id IS NULL OR NEW.login_user_id <> OLD.login_user_id)
|
||||
THEN
|
||||
NEW.login_user_id_set_date = NOW();
|
||||
NEW.login_user_id_last_revalidate = NOW();
|
||||
ELSIF NEW.login_user_id IS NULL OR NEW.login_user_id = '' THEN
|
||||
NEW.login_user_id_set_date = NULL;
|
||||
NEW.login_user_id_last_revalidate = NULL;
|
||||
END IF;
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$
|
||||
LANGUAGE 'plpgsql';
|
||||
|
||||
60
www/composer.lock
generated
60
www/composer.lock
generated
@@ -623,16 +623,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "9.5.24",
|
||||
"version": "9.5.25",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "d0aa6097bef9fd42458a9b3c49da32c6ce6129c5"
|
||||
"reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d0aa6097bef9fd42458a9b3c49da32c6ce6129c5",
|
||||
"reference": "d0aa6097bef9fd42458a9b3c49da32c6ce6129c5",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d",
|
||||
"reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -654,14 +654,14 @@
|
||||
"phpunit/php-timer": "^5.0.2",
|
||||
"sebastian/cli-parser": "^1.0.1",
|
||||
"sebastian/code-unit": "^1.0.6",
|
||||
"sebastian/comparator": "^4.0.5",
|
||||
"sebastian/comparator": "^4.0.8",
|
||||
"sebastian/diff": "^4.0.3",
|
||||
"sebastian/environment": "^5.1.3",
|
||||
"sebastian/exporter": "^4.0.3",
|
||||
"sebastian/exporter": "^4.0.5",
|
||||
"sebastian/global-state": "^5.0.1",
|
||||
"sebastian/object-enumerator": "^4.0.3",
|
||||
"sebastian/resource-operations": "^3.0.3",
|
||||
"sebastian/type": "^3.1",
|
||||
"sebastian/type": "^3.2",
|
||||
"sebastian/version": "^3.0.2"
|
||||
},
|
||||
"suggest": {
|
||||
@@ -705,7 +705,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.24"
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.25"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -715,9 +715,13 @@
|
||||
{
|
||||
"url": "https://github.com/sebastianbergmann",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-08-30T07:42:16+00:00"
|
||||
"time": "2022-09-25T03:44:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/cli-parser",
|
||||
@@ -888,16 +892,16 @@
|
||||
},
|
||||
{
|
||||
"name": "sebastian/comparator",
|
||||
"version": "4.0.6",
|
||||
"version": "4.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/comparator.git",
|
||||
"reference": "55f4261989e546dc112258c7a75935a81a7ce382"
|
||||
"reference": "fa0f136dd2334583309d32b62544682ee972b51a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382",
|
||||
"reference": "55f4261989e546dc112258c7a75935a81a7ce382",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
|
||||
"reference": "fa0f136dd2334583309d32b62544682ee972b51a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -950,7 +954,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/comparator/issues",
|
||||
"source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6"
|
||||
"source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -958,7 +962,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2020-10-26T15:49:45+00:00"
|
||||
"time": "2022-09-14T12:41:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/complexity",
|
||||
@@ -1148,16 +1152,16 @@
|
||||
},
|
||||
{
|
||||
"name": "sebastian/exporter",
|
||||
"version": "4.0.4",
|
||||
"version": "4.0.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/exporter.git",
|
||||
"reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9"
|
||||
"reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9",
|
||||
"reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
|
||||
"reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1213,7 +1217,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/exporter/issues",
|
||||
"source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4"
|
||||
"source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1221,7 +1225,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-11-11T14:18:36+00:00"
|
||||
"time": "2022-09-14T06:03:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/global-state",
|
||||
@@ -1576,16 +1580,16 @@
|
||||
},
|
||||
{
|
||||
"name": "sebastian/type",
|
||||
"version": "3.1.0",
|
||||
"version": "3.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/type.git",
|
||||
"reference": "fb44e1cc6e557418387ad815780360057e40753e"
|
||||
"reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb44e1cc6e557418387ad815780360057e40753e",
|
||||
"reference": "fb44e1cc6e557418387ad815780360057e40753e",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
|
||||
"reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1597,7 +1601,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.1-dev"
|
||||
"dev-master": "3.2-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -1620,7 +1624,7 @@
|
||||
"homepage": "https://github.com/sebastianbergmann/type",
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/type/issues",
|
||||
"source": "https://github.com/sebastianbergmann/type/tree/3.1.0"
|
||||
"source": "https://github.com/sebastianbergmann/type/tree/3.2.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1628,7 +1632,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-08-29T06:55:37+00:00"
|
||||
"time": "2022-09-12T14:47:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/version",
|
||||
|
||||
@@ -249,7 +249,7 @@ if ($is_secure) {
|
||||
define('HOST_PROTOCOL', 'http://');
|
||||
}
|
||||
// define the db config set name, the db config and the db schema
|
||||
define('DB_CONFIG_NAME', $SITE_CONFIG[HOST_NAME]['db_host']);
|
||||
define('DB_CONFIG_NAME', $SITE_CONFIG[HOST_NAME]['db_host'] ?? '');
|
||||
define('DB_CONFIG', $DB_CONFIG[DB_CONFIG_NAME] ?? []);
|
||||
// because we can't change constant, but we want to for db debug flag
|
||||
$GLOBALS['DB_CONFIG_SET'] = DB_CONFIG;
|
||||
@@ -268,9 +268,9 @@ define('SITE_ENCODING', $SITE_CONFIG[HOST_NAME]['site_encoding'] ?? DEFAULT_ENCO
|
||||
define('LOGIN_ENABLED', $SITE_CONFIG[HOST_NAME]['login_enabled'] ?? false);
|
||||
define('AUTH', $SITE_CONFIG[HOST_NAME]['auth'] ?? false);
|
||||
// paths
|
||||
// define('CSV_PATH', $PATHS[TARGET]['csv_path']);
|
||||
// define('EXPORT_SCRIPT', $PATHS[TARGET]['perl_bin']);
|
||||
// define('REDIRECT_URL', $PATHS[TARGET]['redirect_url']);
|
||||
// define('CSV_PATH', $PATHS[TARGET]['csv_path'] ?? '');
|
||||
// define('EXPORT_SCRIPT', $PATHS[TARGET]['perl_bin'] ?? '');
|
||||
// define('REDIRECT_URL', $PATHS[TARGET]['redirect_url'] ?? '');
|
||||
|
||||
// show all errors if debug_all & show_error_handling are enabled
|
||||
define('SHOW_ALL_ERRORS', true);
|
||||
|
||||
@@ -159,9 +159,9 @@ input[type="text"]:focus, textarea:focus, select:focus {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.warning {
|
||||
border: 1px solid #df7700;
|
||||
color: #d57200;
|
||||
.warning, .warn {
|
||||
border: 1px solid #ffa947;
|
||||
color: #ffa947;
|
||||
margin: 5px;
|
||||
padding: 2px;
|
||||
text-align: center;
|
||||
@@ -181,8 +181,8 @@ input[type="text"]:focus, textarea:focus, select:focus {
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
.div_warning {
|
||||
border: 1px solid #df7700;
|
||||
.div_warning, .div_warn {
|
||||
border: 1px solid #ffa947;
|
||||
}
|
||||
|
||||
/* borders */
|
||||
|
||||
@@ -974,7 +974,7 @@ function phfo(tree)
|
||||
if (tree.id) {
|
||||
line += ' id="' + tree.id + '"';
|
||||
// if anything input (input, textarea, select then add name too)
|
||||
if (['input', 'textarea', 'select'].includes(tree.tag)) {
|
||||
if (['input', 'textarea', 'select', 'button'].includes(tree.tag)) {
|
||||
line += ' name="' + (tree.name ? tree.name : tree.id) + '"';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ class Byte
|
||||
// remove all non valid characters from the number
|
||||
$number = preg_replace('/[^0-9\.]/', '', $matches[2]);
|
||||
// final clean up and convert to float
|
||||
$number = (float)trim($number);
|
||||
$number = (float)trim((string)$number);
|
||||
// convert any mb/gb/etc to single m/b
|
||||
$unit = preg_replace('/[^bkmgtpezy]/i', '', $matches[3]);
|
||||
if ($unit) {
|
||||
|
||||
@@ -465,7 +465,7 @@ class SmartyExtend extends \Smarty
|
||||
$this->HEADER['JAVASCRIPT'] = $this->ADMIN_JAVASCRIPT ? $this->ADMIN_JAVASCRIPT : ADMIN_JAVASCRIPT;
|
||||
// the page name
|
||||
$this->DATA['page_name'] = $this->page_name;
|
||||
$this->DATA['table_width'] = empty($this->PAGE_WIDTH) ?: PAGE_WIDTH;
|
||||
$this->DATA['table_width'] = !empty($this->PAGE_WIDTH) ?: PAGE_WIDTH;
|
||||
$this->DATA['form_name'] = $this->DATA['FORM_NAME'];
|
||||
// for tinymce special
|
||||
$this->DATA['TINYMCE_LANG'] = $this->lang_short;
|
||||
|
||||
2
www/vendor/composer/autoload_classmap.php
vendored
2
www/vendor/composer/autoload_classmap.php
vendored
@@ -367,6 +367,7 @@ return array(
|
||||
'PHPUnit\\Util\\Annotation\\DocBlock' => $vendorDir . '/phpunit/phpunit/src/Util/Annotation/DocBlock.php',
|
||||
'PHPUnit\\Util\\Annotation\\Registry' => $vendorDir . '/phpunit/phpunit/src/Util/Annotation/Registry.php',
|
||||
'PHPUnit\\Util\\Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php',
|
||||
'PHPUnit\\Util\\Cloner' => $vendorDir . '/phpunit/phpunit/src/Util/Cloner.php',
|
||||
'PHPUnit\\Util\\Color' => $vendorDir . '/phpunit/phpunit/src/Util/Color.php',
|
||||
'PHPUnit\\Util\\ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php',
|
||||
'PHPUnit\\Util\\Exception' => $vendorDir . '/phpunit/phpunit/src/Util/Exception.php',
|
||||
@@ -668,6 +669,7 @@ return array(
|
||||
'SebastianBergmann\\Type\\NeverType' => $vendorDir . '/sebastian/type/src/type/NeverType.php',
|
||||
'SebastianBergmann\\Type\\NullType' => $vendorDir . '/sebastian/type/src/type/NullType.php',
|
||||
'SebastianBergmann\\Type\\ObjectType' => $vendorDir . '/sebastian/type/src/type/ObjectType.php',
|
||||
'SebastianBergmann\\Type\\Parameter' => $vendorDir . '/sebastian/type/src/Parameter.php',
|
||||
'SebastianBergmann\\Type\\ReflectionMapper' => $vendorDir . '/sebastian/type/src/ReflectionMapper.php',
|
||||
'SebastianBergmann\\Type\\RuntimeException' => $vendorDir . '/sebastian/type/src/exception/RuntimeException.php',
|
||||
'SebastianBergmann\\Type\\SimpleType' => $vendorDir . '/sebastian/type/src/type/SimpleType.php',
|
||||
|
||||
2
www/vendor/composer/autoload_static.php
vendored
2
www/vendor/composer/autoload_static.php
vendored
@@ -400,6 +400,7 @@ class ComposerStaticInit10fe8fe2ec4017b8644d2b64bcf398b9
|
||||
'PHPUnit\\Util\\Annotation\\DocBlock' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Annotation/DocBlock.php',
|
||||
'PHPUnit\\Util\\Annotation\\Registry' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Annotation/Registry.php',
|
||||
'PHPUnit\\Util\\Blacklist' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Blacklist.php',
|
||||
'PHPUnit\\Util\\Cloner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Cloner.php',
|
||||
'PHPUnit\\Util\\Color' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Color.php',
|
||||
'PHPUnit\\Util\\ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ErrorHandler.php',
|
||||
'PHPUnit\\Util\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Exception.php',
|
||||
@@ -701,6 +702,7 @@ class ComposerStaticInit10fe8fe2ec4017b8644d2b64bcf398b9
|
||||
'SebastianBergmann\\Type\\NeverType' => __DIR__ . '/..' . '/sebastian/type/src/type/NeverType.php',
|
||||
'SebastianBergmann\\Type\\NullType' => __DIR__ . '/..' . '/sebastian/type/src/type/NullType.php',
|
||||
'SebastianBergmann\\Type\\ObjectType' => __DIR__ . '/..' . '/sebastian/type/src/type/ObjectType.php',
|
||||
'SebastianBergmann\\Type\\Parameter' => __DIR__ . '/..' . '/sebastian/type/src/Parameter.php',
|
||||
'SebastianBergmann\\Type\\ReflectionMapper' => __DIR__ . '/..' . '/sebastian/type/src/ReflectionMapper.php',
|
||||
'SebastianBergmann\\Type\\RuntimeException' => __DIR__ . '/..' . '/sebastian/type/src/exception/RuntimeException.php',
|
||||
'SebastianBergmann\\Type\\SimpleType' => __DIR__ . '/..' . '/sebastian/type/src/type/SimpleType.php',
|
||||
|
||||
68
www/vendor/composer/installed.json
vendored
68
www/vendor/composer/installed.json
vendored
@@ -646,17 +646,17 @@
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "9.5.24",
|
||||
"version_normalized": "9.5.24.0",
|
||||
"version": "9.5.25",
|
||||
"version_normalized": "9.5.25.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "d0aa6097bef9fd42458a9b3c49da32c6ce6129c5"
|
||||
"reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d0aa6097bef9fd42458a9b3c49da32c6ce6129c5",
|
||||
"reference": "d0aa6097bef9fd42458a9b3c49da32c6ce6129c5",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d",
|
||||
"reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -678,21 +678,21 @@
|
||||
"phpunit/php-timer": "^5.0.2",
|
||||
"sebastian/cli-parser": "^1.0.1",
|
||||
"sebastian/code-unit": "^1.0.6",
|
||||
"sebastian/comparator": "^4.0.5",
|
||||
"sebastian/comparator": "^4.0.8",
|
||||
"sebastian/diff": "^4.0.3",
|
||||
"sebastian/environment": "^5.1.3",
|
||||
"sebastian/exporter": "^4.0.3",
|
||||
"sebastian/exporter": "^4.0.5",
|
||||
"sebastian/global-state": "^5.0.1",
|
||||
"sebastian/object-enumerator": "^4.0.3",
|
||||
"sebastian/resource-operations": "^3.0.3",
|
||||
"sebastian/type": "^3.1",
|
||||
"sebastian/type": "^3.2",
|
||||
"sebastian/version": "^3.0.2"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-soap": "*",
|
||||
"ext-xdebug": "*"
|
||||
},
|
||||
"time": "2022-08-30T07:42:16+00:00",
|
||||
"time": "2022-09-25T03:44:45+00:00",
|
||||
"bin": [
|
||||
"phpunit"
|
||||
],
|
||||
@@ -731,7 +731,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.24"
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.25"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -741,6 +741,10 @@
|
||||
{
|
||||
"url": "https://github.com/sebastianbergmann",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"install-path": "../phpunit/phpunit"
|
||||
@@ -923,17 +927,17 @@
|
||||
},
|
||||
{
|
||||
"name": "sebastian/comparator",
|
||||
"version": "4.0.6",
|
||||
"version_normalized": "4.0.6.0",
|
||||
"version": "4.0.8",
|
||||
"version_normalized": "4.0.8.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/comparator.git",
|
||||
"reference": "55f4261989e546dc112258c7a75935a81a7ce382"
|
||||
"reference": "fa0f136dd2334583309d32b62544682ee972b51a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382",
|
||||
"reference": "55f4261989e546dc112258c7a75935a81a7ce382",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
|
||||
"reference": "fa0f136dd2334583309d32b62544682ee972b51a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -944,7 +948,7 @@
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9.3"
|
||||
},
|
||||
"time": "2020-10-26T15:49:45+00:00",
|
||||
"time": "2022-09-14T12:41:17+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
@@ -988,7 +992,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/comparator/issues",
|
||||
"source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6"
|
||||
"source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1195,17 +1199,17 @@
|
||||
},
|
||||
{
|
||||
"name": "sebastian/exporter",
|
||||
"version": "4.0.4",
|
||||
"version_normalized": "4.0.4.0",
|
||||
"version": "4.0.5",
|
||||
"version_normalized": "4.0.5.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/exporter.git",
|
||||
"reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9"
|
||||
"reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9",
|
||||
"reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
|
||||
"reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1216,7 +1220,7 @@
|
||||
"ext-mbstring": "*",
|
||||
"phpunit/phpunit": "^9.3"
|
||||
},
|
||||
"time": "2021-11-11T14:18:36+00:00",
|
||||
"time": "2022-09-14T06:03:37+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
@@ -1263,7 +1267,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/exporter/issues",
|
||||
"source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4"
|
||||
"source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1644,17 +1648,17 @@
|
||||
},
|
||||
{
|
||||
"name": "sebastian/type",
|
||||
"version": "3.1.0",
|
||||
"version_normalized": "3.1.0.0",
|
||||
"version": "3.2.0",
|
||||
"version_normalized": "3.2.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/type.git",
|
||||
"reference": "fb44e1cc6e557418387ad815780360057e40753e"
|
||||
"reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb44e1cc6e557418387ad815780360057e40753e",
|
||||
"reference": "fb44e1cc6e557418387ad815780360057e40753e",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
|
||||
"reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1663,11 +1667,11 @@
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9.5"
|
||||
},
|
||||
"time": "2022-08-29T06:55:37+00:00",
|
||||
"time": "2022-09-12T14:47:03+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.1-dev"
|
||||
"dev-master": "3.2-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
@@ -1691,7 +1695,7 @@
|
||||
"homepage": "https://github.com/sebastianbergmann/type",
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/type/issues",
|
||||
"source": "https://github.com/sebastianbergmann/type/tree/3.1.0"
|
||||
"source": "https://github.com/sebastianbergmann/type/tree/3.2.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
||||
24
www/vendor/composer/installed.php
vendored
24
www/vendor/composer/installed.php
vendored
@@ -110,12 +110,12 @@
|
||||
'dev_requirement' => true,
|
||||
),
|
||||
'phpunit/phpunit' => array(
|
||||
'pretty_version' => '9.5.24',
|
||||
'version' => '9.5.24.0',
|
||||
'pretty_version' => '9.5.25',
|
||||
'version' => '9.5.25.0',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../phpunit/phpunit',
|
||||
'aliases' => array(),
|
||||
'reference' => 'd0aa6097bef9fd42458a9b3c49da32c6ce6129c5',
|
||||
'reference' => '3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d',
|
||||
'dev_requirement' => true,
|
||||
),
|
||||
'sebastian/cli-parser' => array(
|
||||
@@ -146,12 +146,12 @@
|
||||
'dev_requirement' => true,
|
||||
),
|
||||
'sebastian/comparator' => array(
|
||||
'pretty_version' => '4.0.6',
|
||||
'version' => '4.0.6.0',
|
||||
'pretty_version' => '4.0.8',
|
||||
'version' => '4.0.8.0',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../sebastian/comparator',
|
||||
'aliases' => array(),
|
||||
'reference' => '55f4261989e546dc112258c7a75935a81a7ce382',
|
||||
'reference' => 'fa0f136dd2334583309d32b62544682ee972b51a',
|
||||
'dev_requirement' => true,
|
||||
),
|
||||
'sebastian/complexity' => array(
|
||||
@@ -182,12 +182,12 @@
|
||||
'dev_requirement' => true,
|
||||
),
|
||||
'sebastian/exporter' => array(
|
||||
'pretty_version' => '4.0.4',
|
||||
'version' => '4.0.4.0',
|
||||
'pretty_version' => '4.0.5',
|
||||
'version' => '4.0.5.0',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../sebastian/exporter',
|
||||
'aliases' => array(),
|
||||
'reference' => '65e8b7db476c5dd267e65eea9cab77584d3cfff9',
|
||||
'reference' => 'ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d',
|
||||
'dev_requirement' => true,
|
||||
),
|
||||
'sebastian/global-state' => array(
|
||||
@@ -245,12 +245,12 @@
|
||||
'dev_requirement' => true,
|
||||
),
|
||||
'sebastian/type' => array(
|
||||
'pretty_version' => '3.1.0',
|
||||
'version' => '3.1.0.0',
|
||||
'pretty_version' => '3.2.0',
|
||||
'version' => '3.2.0.0',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../sebastian/type',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb44e1cc6e557418387ad815780360057e40753e',
|
||||
'reference' => 'fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e',
|
||||
'dev_requirement' => true,
|
||||
),
|
||||
'sebastian/version' => array(
|
||||
|
||||
9
www/vendor/phpunit/phpunit/ChangeLog-8.5.md
vendored
9
www/vendor/phpunit/phpunit/ChangeLog-8.5.md
vendored
@@ -2,11 +2,16 @@
|
||||
|
||||
All notable changes of the PHPUnit 8.5 release series are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles.
|
||||
|
||||
## [8.5.30] - 2022-MM-DD
|
||||
## [8.5.30] - 2022-09-25
|
||||
|
||||
### Changed
|
||||
|
||||
* The configuration generator now asks for a cache directory
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#4913](https://github.com/sebastianbergmann/phpunit/issues/4913): Failed `assert()` should show a backtrace
|
||||
* [#4966](https://github.com/sebastianbergmann/phpunit/issues/4966): `TestCase::assertSame()` (and related exact comparisons) must compare `float` exactly
|
||||
|
||||
## [8.5.29] - 2022-08-22
|
||||
|
||||
@@ -245,7 +250,7 @@ All notable changes of the PHPUnit 8.5 release series are documented in this fil
|
||||
* [#3967](https://github.com/sebastianbergmann/phpunit/issues/3967): Cannot double interface that extends interface that extends `\Throwable`
|
||||
* [#3968](https://github.com/sebastianbergmann/phpunit/pull/3968): Test class run in a separate PHP process are passing when `exit` called inside
|
||||
|
||||
[8.5.30]: https://github.com/sebastianbergmann/phpunit/compare/8.5.29...8.5
|
||||
[8.5.30]: https://github.com/sebastianbergmann/phpunit/compare/8.5.29...8.5.30
|
||||
[8.5.29]: https://github.com/sebastianbergmann/phpunit/compare/8.5.28...8.5.29
|
||||
[8.5.28]: https://github.com/sebastianbergmann/phpunit/compare/8.5.27...8.5.28
|
||||
[8.5.27]: https://github.com/sebastianbergmann/phpunit/compare/8.5.26...8.5.27
|
||||
|
||||
11
www/vendor/phpunit/phpunit/ChangeLog-9.5.md
vendored
11
www/vendor/phpunit/phpunit/ChangeLog-9.5.md
vendored
@@ -2,6 +2,16 @@
|
||||
|
||||
All notable changes of the PHPUnit 9.5 release series are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles.
|
||||
|
||||
## [9.5.25] - 2022-09-25
|
||||
|
||||
### Added
|
||||
|
||||
* [#5042](https://github.com/sebastianbergmann/phpunit/issues/5042): Support Disjunctive Normal Form types
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#4966](https://github.com/sebastianbergmann/phpunit/issues/4966): `TestCase::assertSame()` (and related exact comparisons) must compare `float` exactly
|
||||
|
||||
## [9.5.24] - 2022-08-30
|
||||
|
||||
### Added
|
||||
@@ -190,6 +200,7 @@ All notable changes of the PHPUnit 9.5 release series are documented in this fil
|
||||
|
||||
* [#4535](https://github.com/sebastianbergmann/phpunit/issues/4535): `getMockFromWsdl()` does not handle methods that do not have parameters correctly
|
||||
|
||||
[9.5.25]: https://github.com/sebastianbergmann/phpunit/compare/9.5.24...9.5.25
|
||||
[9.5.24]: https://github.com/sebastianbergmann/phpunit/compare/9.5.23...9.5.24
|
||||
[9.5.23]: https://github.com/sebastianbergmann/phpunit/compare/9.5.22...9.5.23
|
||||
[9.5.22]: https://github.com/sebastianbergmann/phpunit/compare/9.5.21...9.5.22
|
||||
|
||||
46
www/vendor/phpunit/phpunit/LICENSE
vendored
46
www/vendor/phpunit/phpunit/LICENSE
vendored
@@ -1,33 +1,29 @@
|
||||
PHPUnit
|
||||
BSD 3-Clause License
|
||||
|
||||
Copyright (c) 2001-2022, Sebastian Bergmann <sebastian@phpunit.de>.
|
||||
Copyright (c) 2001-2022, Sebastian Bergmann
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
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.
|
||||
1. 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.
|
||||
2. 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.
|
||||
3. Neither the name of the copyright holder nor the names of its
|
||||
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.
|
||||
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 HOLDER 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.
|
||||
|
||||
11
www/vendor/phpunit/phpunit/SECURITY.md
vendored
Normal file
11
www/vendor/phpunit/phpunit/SECURITY.md
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
# Security Policy
|
||||
|
||||
PHPUnit is a framework for writing as well as a commandline tool for running tests. Writing and running tests is a development-time activity. There is no reason why PHPUnit should be installed on a webserver.
|
||||
|
||||
**If you upload PHPUnit to a webserver then your deployment process is broken. On a more general note, if your `vendor` directory is publicly accessible on your webserver then your deployment process is also broken.**
|
||||
|
||||
Please note that if you upload PHPUnit to a webserver "bad things" may happen. [You have been warned.](https://thephp.cc/articles/phpunit-a-security-risk)
|
||||
|
||||
## Security Contact Information
|
||||
|
||||
After the above, if you still would like to report a security vulnerability, please email `sebastian@phpunit.de`.
|
||||
6
www/vendor/phpunit/phpunit/composer.json
vendored
6
www/vendor/phpunit/phpunit/composer.json
vendored
@@ -39,14 +39,14 @@
|
||||
"phpunit/php-timer": "^5.0.2",
|
||||
"sebastian/cli-parser": "^1.0.1",
|
||||
"sebastian/code-unit": "^1.0.6",
|
||||
"sebastian/comparator": "^4.0.5",
|
||||
"sebastian/comparator": "^4.0.8",
|
||||
"sebastian/diff": "^4.0.3",
|
||||
"sebastian/environment": "^5.1.3",
|
||||
"sebastian/exporter": "^4.0.3",
|
||||
"sebastian/exporter": "^4.0.5",
|
||||
"sebastian/global-state": "^5.0.1",
|
||||
"sebastian/object-enumerator": "^4.0.3",
|
||||
"sebastian/resource-operations": "^3.0.3",
|
||||
"sebastian/type": "^3.1",
|
||||
"sebastian/type": "^3.2",
|
||||
"sebastian/version": "^3.0.2"
|
||||
},
|
||||
"config": {
|
||||
|
||||
@@ -1321,7 +1321,9 @@ abstract class Assert
|
||||
* @throws ExpectationFailedException
|
||||
*
|
||||
* @psalm-template ExpectedType
|
||||
*
|
||||
* @psalm-param ExpectedType $expected
|
||||
*
|
||||
* @psalm-assert =ExpectedType $actual
|
||||
*/
|
||||
public static function assertSame($expected, $actual, string $message = ''): void
|
||||
@@ -1364,7 +1366,9 @@ abstract class Assert
|
||||
* @throws ExpectationFailedException
|
||||
*
|
||||
* @psalm-template ExpectedType of object
|
||||
*
|
||||
* @psalm-param class-string<ExpectedType> $expected
|
||||
*
|
||||
* @psalm-assert =ExpectedType $actual
|
||||
*/
|
||||
public static function assertInstanceOf(string $expected, $actual, string $message = ''): void
|
||||
@@ -1388,7 +1392,9 @@ abstract class Assert
|
||||
* @throws ExpectationFailedException
|
||||
*
|
||||
* @psalm-template ExpectedType of object
|
||||
*
|
||||
* @psalm-param class-string<ExpectedType> $expected
|
||||
*
|
||||
* @psalm-assert !ExpectedType $actual
|
||||
*/
|
||||
public static function assertNotInstanceOf(string $expected, $actual, string $message = ''): void
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
namespace PHPUnit\Framework;
|
||||
|
||||
use function func_get_args;
|
||||
use function function_exists;
|
||||
use ArrayAccess;
|
||||
use Countable;
|
||||
use DOMDocument;
|
||||
@@ -1453,7 +1454,9 @@ if (!function_exists('PHPUnit\Framework\assertSame')) {
|
||||
* @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
|
||||
*
|
||||
* @psalm-template ExpectedType
|
||||
*
|
||||
* @psalm-param ExpectedType $expected
|
||||
*
|
||||
* @psalm-assert =ExpectedType $actual
|
||||
*
|
||||
* @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
|
||||
@@ -1494,7 +1497,9 @@ if (!function_exists('PHPUnit\Framework\assertInstanceOf')) {
|
||||
* @throws Exception
|
||||
*
|
||||
* @psalm-template ExpectedType of object
|
||||
*
|
||||
* @psalm-param class-string<ExpectedType> $expected
|
||||
*
|
||||
* @psalm-assert =ExpectedType $actual
|
||||
*
|
||||
* @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
|
||||
@@ -1516,7 +1521,9 @@ if (!function_exists('PHPUnit\Framework\assertNotInstanceOf')) {
|
||||
* @throws Exception
|
||||
*
|
||||
* @psalm-template ExpectedType of object
|
||||
*
|
||||
* @psalm-param class-string<ExpectedType> $expected
|
||||
*
|
||||
* @psalm-assert !ExpectedType $actual
|
||||
*
|
||||
* @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
|
||||
|
||||
@@ -82,6 +82,7 @@ abstract class Constraint implements Countable, SelfDescribing
|
||||
* This method can be overridden to implement the evaluation algorithm.
|
||||
*
|
||||
* @param mixed $other value or object to evaluate
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
protected function matches($other): bool
|
||||
|
||||
@@ -9,13 +9,8 @@
|
||||
*/
|
||||
namespace PHPUnit\Framework\Constraint;
|
||||
|
||||
use const PHP_FLOAT_EPSILON;
|
||||
use function abs;
|
||||
use function get_class;
|
||||
use function is_array;
|
||||
use function is_float;
|
||||
use function is_infinite;
|
||||
use function is_nan;
|
||||
use function is_object;
|
||||
use function is_string;
|
||||
use function sprintf;
|
||||
@@ -52,13 +47,7 @@ final class IsIdentical extends Constraint
|
||||
*/
|
||||
public function evaluate($other, string $description = '', bool $returnResult = false): ?bool
|
||||
{
|
||||
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) < PHP_FLOAT_EPSILON;
|
||||
} else {
|
||||
$success = $this->value === $other;
|
||||
}
|
||||
$success = $this->value === $other;
|
||||
|
||||
if ($returnResult) {
|
||||
return $success;
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
*/
|
||||
namespace PHPUnit\Framework\MockObject;
|
||||
|
||||
use function array_diff_assoc;
|
||||
use function array_unique;
|
||||
use function implode;
|
||||
use function sprintf;
|
||||
|
||||
/**
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
*/
|
||||
namespace PHPUnit\Framework\MockObject;
|
||||
|
||||
use function get_class;
|
||||
use function gettype;
|
||||
use function is_object;
|
||||
use function sprintf;
|
||||
|
||||
/**
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
*/
|
||||
namespace PHPUnit\Framework\MockObject;
|
||||
|
||||
use function sprintf;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*/
|
||||
|
||||
@@ -291,7 +291,9 @@ EOT;
|
||||
* Concrete methods to mock can be specified with the $mockedMethods parameter.
|
||||
*
|
||||
* @psalm-template RealInstanceType of object
|
||||
*
|
||||
* @psalm-param class-string<RealInstanceType> $originalClassName
|
||||
*
|
||||
* @psalm-return MockObject&RealInstanceType
|
||||
*
|
||||
* @throws \PHPUnit\Framework\InvalidArgumentException
|
||||
|
||||
@@ -13,6 +13,8 @@ use function array_map;
|
||||
use function explode;
|
||||
use function get_class;
|
||||
use function implode;
|
||||
use function in_array;
|
||||
use function interface_exists;
|
||||
use function is_object;
|
||||
use function sprintf;
|
||||
use function strpos;
|
||||
@@ -20,7 +22,7 @@ use function strtolower;
|
||||
use function substr;
|
||||
use Doctrine\Instantiator\Instantiator;
|
||||
use PHPUnit\Framework\SelfDescribing;
|
||||
use PHPUnit\Util\Type;
|
||||
use PHPUnit\Util\Cloner;
|
||||
use SebastianBergmann\Exporter\Exporter;
|
||||
use stdClass;
|
||||
use Throwable;
|
||||
@@ -90,7 +92,7 @@ final class Invocation implements SelfDescribing
|
||||
|
||||
foreach ($this->parameters as $key => $value) {
|
||||
if (is_object($value)) {
|
||||
$this->parameters[$key] = $this->cloneObject($value);
|
||||
$this->parameters[$key] = Cloner::clone($value);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -121,12 +123,17 @@ final class Invocation implements SelfDescribing
|
||||
return null;
|
||||
}
|
||||
|
||||
$intersection = false;
|
||||
$union = false;
|
||||
$intersection = false;
|
||||
$union = false;
|
||||
$unionContainsIntersections = false;
|
||||
|
||||
if (strpos($this->returnType, '|') !== false) {
|
||||
$types = explode('|', $this->returnType);
|
||||
$union = true;
|
||||
|
||||
if (strpos($this->returnType, '(') !== false) {
|
||||
$unionContainsIntersections = true;
|
||||
}
|
||||
} elseif (strpos($this->returnType, '&') !== false) {
|
||||
$types = explode('&', $this->returnType);
|
||||
$intersection = true;
|
||||
@@ -136,7 +143,7 @@ final class Invocation implements SelfDescribing
|
||||
|
||||
$types = array_map('strtolower', $types);
|
||||
|
||||
if (!$intersection) {
|
||||
if (!$intersection && !$unionContainsIntersections) {
|
||||
if (in_array('', $types, true) ||
|
||||
in_array('null', $types, true) ||
|
||||
in_array('mixed', $types, true) ||
|
||||
@@ -220,38 +227,28 @@ final class Invocation implements SelfDescribing
|
||||
}
|
||||
}
|
||||
|
||||
if ($intersection && $this->onlyInterfaces($types)) {
|
||||
try {
|
||||
return (new Generator)->getMockForInterfaces($types);
|
||||
} catch (Throwable $t) {
|
||||
throw new RuntimeException(
|
||||
sprintf(
|
||||
'Return value for %s::%s() cannot be generated: %s',
|
||||
$this->className,
|
||||
$this->methodName,
|
||||
$t->getMessage(),
|
||||
),
|
||||
(int) $t->getCode(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$reason = '';
|
||||
|
||||
if ($union) {
|
||||
$reason = ' because the declared return type is a union';
|
||||
} elseif ($intersection) {
|
||||
$reason = ' because the declared return type is an intersection';
|
||||
|
||||
$onlyInterfaces = true;
|
||||
|
||||
foreach ($types as $type) {
|
||||
if (!interface_exists($type)) {
|
||||
$onlyInterfaces = false;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($onlyInterfaces) {
|
||||
try {
|
||||
return (new Generator)->getMockForInterfaces($types);
|
||||
} catch (Throwable $t) {
|
||||
throw new RuntimeException(
|
||||
sprintf(
|
||||
'Return value for %s::%s() cannot be generated: %s',
|
||||
$this->className,
|
||||
$this->methodName,
|
||||
$t->getMessage(),
|
||||
),
|
||||
(int) $t->getCode(),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
throw new RuntimeException(
|
||||
@@ -288,12 +285,17 @@ final class Invocation implements SelfDescribing
|
||||
return $this->object;
|
||||
}
|
||||
|
||||
private function cloneObject(object $original): object
|
||||
/**
|
||||
* @psalm-param non-empty-list<string> $types
|
||||
*/
|
||||
private function onlyInterfaces(array $types): bool
|
||||
{
|
||||
if (Type::isCloneable($original)) {
|
||||
return clone $original;
|
||||
foreach ($types as $type) {
|
||||
if (!interface_exists($type)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return $original;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,11 +23,8 @@ use function substr;
|
||||
use function substr_count;
|
||||
use function trim;
|
||||
use function var_export;
|
||||
use ReflectionIntersectionType;
|
||||
use ReflectionMethod;
|
||||
use ReflectionNamedType;
|
||||
use ReflectionParameter;
|
||||
use ReflectionUnionType;
|
||||
use SebastianBergmann\Template\Exception as TemplateException;
|
||||
use SebastianBergmann\Template\Template;
|
||||
use SebastianBergmann\Type\ReflectionMapper;
|
||||
@@ -274,6 +271,7 @@ final class MockMethod
|
||||
private static function getMethodParametersForDeclaration(ReflectionMethod $method): string
|
||||
{
|
||||
$parameters = [];
|
||||
$types = (new ReflectionMapper)->fromParameterTypes($method);
|
||||
|
||||
foreach ($method->getParameters() as $i => $parameter) {
|
||||
$name = '$' . $parameter->getName();
|
||||
@@ -285,19 +283,16 @@ final class MockMethod
|
||||
$name = '$arg' . $i;
|
||||
}
|
||||
|
||||
$nullable = '';
|
||||
$default = '';
|
||||
$reference = '';
|
||||
$typeDeclaration = '';
|
||||
$type = null;
|
||||
$typeName = null;
|
||||
|
||||
if ($parameter->hasType()) {
|
||||
$type = $parameter->getType();
|
||||
if (!$types[$i]->type()->isUnknown()) {
|
||||
$typeDeclaration = $types[$i]->type()->asString() . ' ';
|
||||
}
|
||||
|
||||
if ($type instanceof ReflectionNamedType) {
|
||||
$typeName = $type->getName();
|
||||
}
|
||||
if ($parameter->isPassedByReference()) {
|
||||
$reference = '&';
|
||||
}
|
||||
|
||||
if ($parameter->isVariadic()) {
|
||||
@@ -308,34 +303,7 @@ final class MockMethod
|
||||
$default = ' = null';
|
||||
}
|
||||
|
||||
if ($type !== null) {
|
||||
if ($typeName !== 'mixed' &&
|
||||
$typeName !== 'null' &&
|
||||
!$type instanceof ReflectionIntersectionType &&
|
||||
!$type instanceof ReflectionUnionType &&
|
||||
$parameter->allowsNull()) {
|
||||
$nullable = '?';
|
||||
}
|
||||
|
||||
if ($typeName === 'self') {
|
||||
$typeDeclaration = $method->getDeclaringClass()->getName() . ' ';
|
||||
} elseif ($typeName !== null) {
|
||||
$typeDeclaration = $typeName . ' ';
|
||||
} elseif ($type instanceof ReflectionUnionType) {
|
||||
$typeDeclaration = self::unionTypeAsString(
|
||||
$type,
|
||||
$method->getDeclaringClass()->getName()
|
||||
);
|
||||
} elseif ($type instanceof ReflectionIntersectionType) {
|
||||
$typeDeclaration = self::intersectionTypeAsString($type);
|
||||
}
|
||||
}
|
||||
|
||||
if ($parameter->isPassedByReference()) {
|
||||
$reference = '&';
|
||||
}
|
||||
|
||||
$parameters[] = $nullable . $typeDeclaration . $reference . $name . $default;
|
||||
$parameters[] = $typeDeclaration . $reference . $name . $default;
|
||||
}
|
||||
|
||||
return implode(', ', $parameters);
|
||||
@@ -409,30 +377,4 @@ final class MockMethod
|
||||
}
|
||||
// @codeCoverageIgnoreEnd
|
||||
}
|
||||
|
||||
private static function unionTypeAsString(ReflectionUnionType $union, string $self): string
|
||||
{
|
||||
$types = [];
|
||||
|
||||
foreach ($union->getTypes() as $type) {
|
||||
if ((string) $type === 'self') {
|
||||
$types[] = $self;
|
||||
} else {
|
||||
$types[] = $type;
|
||||
}
|
||||
}
|
||||
|
||||
return implode('|', $types) . ' ';
|
||||
}
|
||||
|
||||
private static function intersectionTypeAsString(ReflectionIntersectionType $intersection): string
|
||||
{
|
||||
$types = [];
|
||||
|
||||
foreach ($intersection->getTypes() as $type) {
|
||||
$types[] = $type;
|
||||
}
|
||||
|
||||
return implode('&', $types) . ' ';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ use PHPUnit\Framework\MockObject\Invocation as BaseInvocation;
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @deprecated https://github.com/sebastianbergmann/phpunit/issues/4297
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
final class InvokedAtIndex extends InvocationOrder
|
||||
|
||||
@@ -91,11 +91,11 @@ use PHPUnit\Framework\MockObject\Stub\ReturnStub;
|
||||
use PHPUnit\Framework\MockObject\Stub\ReturnValueMap as ReturnValueMapStub;
|
||||
use PHPUnit\Runner\BaseTestRunner;
|
||||
use PHPUnit\Runner\PhptTestCase;
|
||||
use PHPUnit\Util\Cloner;
|
||||
use PHPUnit\Util\Exception as UtilException;
|
||||
use PHPUnit\Util\GlobalState;
|
||||
use PHPUnit\Util\PHP\AbstractPhpProcess;
|
||||
use PHPUnit\Util\Test as TestUtil;
|
||||
use PHPUnit\Util\Type;
|
||||
use Prophecy\Exception\Prediction\PredictionException;
|
||||
use Prophecy\Prophecy\MethodProphecy;
|
||||
use Prophecy\Prophecy\ObjectProphecy;
|
||||
@@ -417,6 +417,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T
|
||||
* at the given index.
|
||||
*
|
||||
* @deprecated https://github.com/sebastianbergmann/phpunit/issues/4297
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public static function at(int $index): InvokedAtIndexMatcher
|
||||
@@ -912,7 +913,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T
|
||||
* Returns a builder object to create mock objects using a fluent interface.
|
||||
*
|
||||
* @psalm-template RealInstanceType of object
|
||||
*
|
||||
* @psalm-param class-string<RealInstanceType> $className
|
||||
*
|
||||
* @psalm-return MockBuilder<RealInstanceType>
|
||||
*/
|
||||
public function getMockBuilder(string $className): MockBuilder
|
||||
@@ -1699,7 +1702,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T
|
||||
* Makes configurable stub for the specified class.
|
||||
*
|
||||
* @psalm-template RealInstanceType of object
|
||||
*
|
||||
* @psalm-param class-string<RealInstanceType> $originalClassName
|
||||
*
|
||||
* @psalm-return Stub&RealInstanceType
|
||||
*/
|
||||
protected function createStub(string $originalClassName): Stub
|
||||
@@ -1711,7 +1716,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T
|
||||
* Returns a mock object for the specified class.
|
||||
*
|
||||
* @psalm-template RealInstanceType of object
|
||||
*
|
||||
* @psalm-param class-string<RealInstanceType> $originalClassName
|
||||
*
|
||||
* @psalm-return MockObject&RealInstanceType
|
||||
*/
|
||||
protected function createMock(string $originalClassName): MockObject
|
||||
@@ -1723,7 +1730,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T
|
||||
* Returns a configured mock object for the specified class.
|
||||
*
|
||||
* @psalm-template RealInstanceType of object
|
||||
*
|
||||
* @psalm-param class-string<RealInstanceType> $originalClassName
|
||||
*
|
||||
* @psalm-return MockObject&RealInstanceType
|
||||
*/
|
||||
protected function createConfiguredMock(string $originalClassName, array $configuration): MockObject
|
||||
@@ -1743,7 +1752,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T
|
||||
* @param string[] $methods
|
||||
*
|
||||
* @psalm-template RealInstanceType of object
|
||||
*
|
||||
* @psalm-param class-string<RealInstanceType> $originalClassName
|
||||
*
|
||||
* @psalm-return MockObject&RealInstanceType
|
||||
*/
|
||||
protected function createPartialMock(string $originalClassName, array $methods): MockObject
|
||||
@@ -1791,7 +1802,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T
|
||||
* Returns a test proxy for the specified class.
|
||||
*
|
||||
* @psalm-template RealInstanceType of object
|
||||
*
|
||||
* @psalm-param class-string<RealInstanceType> $originalClassName
|
||||
*
|
||||
* @psalm-return MockObject&RealInstanceType
|
||||
*/
|
||||
protected function createTestProxy(string $originalClassName, array $constructorArguments = []): MockObject
|
||||
@@ -1808,7 +1821,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T
|
||||
* @param null|array $methods $methods
|
||||
*
|
||||
* @psalm-template RealInstanceType of object
|
||||
*
|
||||
* @psalm-param class-string<RealInstanceType>|string $originalClassName
|
||||
*
|
||||
* @psalm-return class-string<MockObject&RealInstanceType>
|
||||
*/
|
||||
protected function getMockClass(string $originalClassName, $methods = [], array $arguments = [], string $mockClassName = '', bool $callOriginalConstructor = false, bool $callOriginalClone = true, bool $callAutoload = true, bool $cloneArguments = false): string
|
||||
@@ -1835,7 +1850,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T
|
||||
* To mock concrete methods, use the 7th parameter ($mockedMethods).
|
||||
*
|
||||
* @psalm-template RealInstanceType of object
|
||||
*
|
||||
* @psalm-param class-string<RealInstanceType> $originalClassName
|
||||
*
|
||||
* @psalm-return MockObject&RealInstanceType
|
||||
*/
|
||||
protected function getMockForAbstractClass(string $originalClassName, array $arguments = [], string $mockClassName = '', bool $callOriginalConstructor = true, bool $callOriginalClone = true, bool $callAutoload = true, array $mockedMethods = [], bool $cloneArguments = false): MockObject
|
||||
@@ -1862,7 +1879,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T
|
||||
* Returns a mock object based on the given WSDL file.
|
||||
*
|
||||
* @psalm-template RealInstanceType of object
|
||||
*
|
||||
* @psalm-param class-string<RealInstanceType>|string $originalClassName
|
||||
*
|
||||
* @psalm-return MockObject&RealInstanceType
|
||||
*/
|
||||
protected function getMockFromWsdl(string $wsdlFile, string $originalClassName = '', string $mockClassName = '', array $methods = [], bool $callOriginalConstructor = true, array $options = []): MockObject
|
||||
@@ -2434,9 +2453,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T
|
||||
} else {
|
||||
foreach ($testArguments as $testArgument) {
|
||||
if ($testArgument instanceof MockObject) {
|
||||
if (Type::isCloneable($testArgument)) {
|
||||
$testArgument = clone $testArgument;
|
||||
}
|
||||
$testArgument = Cloner::clone($testArgument);
|
||||
|
||||
$this->registerMockObject($testArgument);
|
||||
} elseif (is_array($testArgument) && !in_array($testArgument, $visited, true)) {
|
||||
@@ -2569,7 +2586,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T
|
||||
|
||||
/**
|
||||
* @psalm-template RealInstanceType of object
|
||||
*
|
||||
* @psalm-param class-string<RealInstanceType> $originalClassName
|
||||
*
|
||||
* @psalm-return MockObject&RealInstanceType
|
||||
*/
|
||||
private function createMockObject(string $originalClassName): MockObject
|
||||
|
||||
@@ -13,6 +13,7 @@ use Throwable;
|
||||
|
||||
/**
|
||||
* @deprecated The `TestListener` interface is deprecated
|
||||
*
|
||||
* @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
|
||||
*/
|
||||
trait TestListenerDefaultImplementation
|
||||
|
||||
@@ -10,7 +10,9 @@
|
||||
namespace PHPUnit\Framework;
|
||||
|
||||
use const PHP_EOL;
|
||||
use function class_exists;
|
||||
use function count;
|
||||
use function extension_loaded;
|
||||
use function function_exists;
|
||||
use function get_class;
|
||||
use function sprintf;
|
||||
|
||||
@@ -13,6 +13,7 @@ use const PHP_EOL;
|
||||
use function array_keys;
|
||||
use function array_map;
|
||||
use function array_merge;
|
||||
use function array_slice;
|
||||
use function array_unique;
|
||||
use function basename;
|
||||
use function call_user_func;
|
||||
|
||||
@@ -21,6 +21,7 @@ use function is_dir;
|
||||
use function is_file;
|
||||
use function json_decode;
|
||||
use function json_encode;
|
||||
use function sprintf;
|
||||
use PHPUnit\Util\Filesystem;
|
||||
|
||||
/**
|
||||
|
||||
@@ -100,6 +100,7 @@ final class ExtensionHandler
|
||||
if ($extensionConfiguration->hasSourceFile()) {
|
||||
/**
|
||||
* @noinspection PhpIncludeInspection
|
||||
*
|
||||
* @psalm-suppress UnresolvableInclude
|
||||
*/
|
||||
require_once $extensionConfiguration->sourceFile();
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
*/
|
||||
namespace PHPUnit\Runner\Extension;
|
||||
|
||||
use function is_file;
|
||||
use PharIo\Manifest\ApplicationName;
|
||||
use PharIo\Manifest\Exception as ManifestException;
|
||||
use PharIo\Manifest\ManifestLoader;
|
||||
@@ -60,6 +61,7 @@ final class PharLoader
|
||||
|
||||
/**
|
||||
* @noinspection PhpIncludeInspection
|
||||
*
|
||||
* @psalm-suppress UnresolvableInclude
|
||||
*/
|
||||
require $file;
|
||||
|
||||
@@ -41,7 +41,7 @@ final class Version
|
||||
}
|
||||
|
||||
if (self::$version === '') {
|
||||
self::$version = (new VersionId('9.5.24', dirname(__DIR__, 2)))->getVersion();
|
||||
self::$version = (new VersionId('9.5.25', dirname(__DIR__, 2)))->getVersion();
|
||||
}
|
||||
|
||||
return self::$version;
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\TextUI\XmlConfiguration\Extension;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Configuration
|
||||
|
||||
@@ -24,6 +24,7 @@ use function get_class;
|
||||
use function getcwd;
|
||||
use function ini_get;
|
||||
use function ini_set;
|
||||
use function is_array;
|
||||
use function is_callable;
|
||||
use function is_dir;
|
||||
use function is_file;
|
||||
@@ -437,6 +438,7 @@ class Command
|
||||
if ($loaderFile) {
|
||||
/**
|
||||
* @noinspection PhpIncludeInspection
|
||||
*
|
||||
* @psalm-suppress UnresolvableInclude
|
||||
*/
|
||||
require $loaderFile;
|
||||
@@ -498,6 +500,7 @@ class Command
|
||||
if ($printerFile) {
|
||||
/**
|
||||
* @noinspection PhpIncludeInspection
|
||||
*
|
||||
* @psalm-suppress UnresolvableInclude
|
||||
*/
|
||||
require $printerFile;
|
||||
|
||||
@@ -24,6 +24,7 @@ use PHPUnit\TextUI\XmlConfiguration\FileCollection;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class CodeCoverage
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace PHPUnit\TextUI\XmlConfiguration\CodeCoverage\Filter;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Directory
|
||||
|
||||
@@ -15,6 +15,7 @@ use IteratorAggregate;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class DirectoryCollection implements Countable, IteratorAggregate
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\TextUI\XmlConfiguration\File;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Clover
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\TextUI\XmlConfiguration\File;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Cobertura
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\TextUI\XmlConfiguration\File;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Crap4j
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\TextUI\XmlConfiguration\Directory;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Html
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\TextUI\XmlConfiguration\File;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Php
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\TextUI\XmlConfiguration\File;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Text
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\TextUI\XmlConfiguration\Directory;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Xml
|
||||
|
||||
@@ -15,6 +15,7 @@ use PHPUnit\Util\Xml\ValidationResult;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Configuration
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace PHPUnit\TextUI\XmlConfiguration;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Directory
|
||||
|
||||
@@ -15,6 +15,7 @@ use IteratorAggregate;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class DirectoryCollection implements Countable, IteratorAggregate
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace PHPUnit\TextUI\XmlConfiguration;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class File
|
||||
|
||||
@@ -15,6 +15,7 @@ use IteratorAggregate;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class FileCollection implements Countable, IteratorAggregate
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace PHPUnit\TextUI\XmlConfiguration;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Group
|
||||
|
||||
@@ -13,6 +13,7 @@ use IteratorAggregate;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class GroupCollection implements IteratorAggregate
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace PHPUnit\TextUI\XmlConfiguration;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Groups
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\TextUI\XmlConfiguration\File;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Junit
|
||||
|
||||
@@ -16,6 +16,7 @@ use PHPUnit\TextUI\XmlConfiguration\Logging\TestDox\Xml as TestDoxXml;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Logging
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\TextUI\XmlConfiguration\File;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class TeamCity
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\TextUI\XmlConfiguration\File;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Html
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\TextUI\XmlConfiguration\File;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Text
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\TextUI\XmlConfiguration\File;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Xml
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\TextUI\XmlConfiguration\File;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Text
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
*/
|
||||
namespace PHPUnit\TextUI\XmlConfiguration;
|
||||
|
||||
use function assert;
|
||||
use function in_array;
|
||||
use DOMDocument;
|
||||
use DOMElement;
|
||||
use PHPUnit\Util\Xml\SnapshotNodeList;
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace PHPUnit\TextUI\XmlConfiguration;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Constant
|
||||
|
||||
@@ -15,6 +15,7 @@ use IteratorAggregate;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class ConstantCollection implements Countable, IteratorAggregate
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace PHPUnit\TextUI\XmlConfiguration;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class IniSetting
|
||||
|
||||
@@ -15,6 +15,7 @@ use IteratorAggregate;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class IniSettingCollection implements Countable, IteratorAggregate
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace PHPUnit\TextUI\XmlConfiguration;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Php
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace PHPUnit\TextUI\XmlConfiguration;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Variable
|
||||
|
||||
@@ -15,6 +15,7 @@ use IteratorAggregate;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class VariableCollection implements Countable, IteratorAggregate
|
||||
|
||||
@@ -11,12 +11,14 @@ namespace PHPUnit\TextUI\XmlConfiguration;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Extension
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*
|
||||
* @psalm-var class-string
|
||||
*/
|
||||
private $className;
|
||||
|
||||
@@ -13,6 +13,7 @@ use IteratorAggregate;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class ExtensionCollection implements IteratorAggregate
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace PHPUnit\TextUI\XmlConfiguration;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class PHPUnit
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\Util\VersionComparisonOperator;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class TestDirectory
|
||||
|
||||
@@ -15,6 +15,7 @@ use IteratorAggregate;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class TestDirectoryCollection implements Countable, IteratorAggregate
|
||||
|
||||
@@ -13,6 +13,7 @@ use PHPUnit\Util\VersionComparisonOperator;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class TestFile
|
||||
|
||||
@@ -15,6 +15,7 @@ use IteratorAggregate;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class TestFileCollection implements Countable, IteratorAggregate
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace PHPUnit\TextUI\XmlConfiguration;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class TestSuite
|
||||
|
||||
@@ -15,6 +15,7 @@ use IteratorAggregate;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class TestSuiteCollection implements Countable, IteratorAggregate
|
||||
|
||||
@@ -43,6 +43,7 @@ final class Registry
|
||||
|
||||
/**
|
||||
* @throws Exception
|
||||
*
|
||||
* @psalm-param class-string $class
|
||||
*/
|
||||
public function forClassName(string $class): DocBlock
|
||||
@@ -68,6 +69,7 @@ final class Registry
|
||||
|
||||
/**
|
||||
* @throws Exception
|
||||
*
|
||||
* @psalm-param class-string $classInHierarchy
|
||||
*/
|
||||
public function forMethod(string $classInHierarchy, string $method): DocBlock
|
||||
|
||||
34
www/vendor/phpunit/phpunit/src/Util/Cloner.php
vendored
Normal file
34
www/vendor/phpunit/phpunit/src/Util/Cloner.php
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php declare(strict_types=1);
|
||||
/*
|
||||
* 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\Util;
|
||||
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*/
|
||||
final class Cloner
|
||||
{
|
||||
/**
|
||||
* @psalm-template OriginalType
|
||||
*
|
||||
* @psalm-param OriginalType $original
|
||||
*
|
||||
* @psalm-return OriginalType
|
||||
*/
|
||||
public static function clone(object $original): object
|
||||
{
|
||||
try {
|
||||
return clone $original;
|
||||
} catch (Throwable $t) {
|
||||
return $original;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -60,6 +60,7 @@ final class FileLoader
|
||||
|
||||
/**
|
||||
* @noinspection PhpIncludeInspection
|
||||
*
|
||||
* @psalm-suppress UnresolvableInclude
|
||||
*/
|
||||
include_once $filename;
|
||||
|
||||
6
www/vendor/phpunit/phpunit/src/Util/Test.php
vendored
6
www/vendor/phpunit/phpunit/src/Util/Test.php
vendored
@@ -112,6 +112,7 @@ final class Test
|
||||
* @throws CodeCoverageException
|
||||
*
|
||||
* @return array|bool
|
||||
*
|
||||
* @psalm-param class-string $className
|
||||
*/
|
||||
public static function getLinesToBeCovered(string $className, string $methodName)
|
||||
@@ -132,6 +133,7 @@ final class Test
|
||||
* Returns lines of code specified with the @uses annotation.
|
||||
*
|
||||
* @throws CodeCoverageException
|
||||
*
|
||||
* @psalm-param class-string $className
|
||||
*/
|
||||
public static function getLinesToBeUsed(string $className, string $methodName): array
|
||||
@@ -173,6 +175,7 @@ final class Test
|
||||
|
||||
/**
|
||||
* @throws Exception
|
||||
*
|
||||
* @psalm-param class-string $className
|
||||
*/
|
||||
public static function getRequirements(string $className, string $methodName): array
|
||||
@@ -188,6 +191,7 @@ final class Test
|
||||
*
|
||||
* @throws Exception
|
||||
* @throws Warning
|
||||
*
|
||||
* @psalm-param class-string $className
|
||||
*/
|
||||
public static function getMissingRequirements(string $className, string $methodName): array
|
||||
@@ -316,6 +320,7 @@ final class Test
|
||||
* Returns the provided data for a method.
|
||||
*
|
||||
* @throws Exception
|
||||
*
|
||||
* @psalm-param class-string $className
|
||||
*/
|
||||
public static function getProvidedData(string $className, string $methodName): ?array
|
||||
@@ -592,6 +597,7 @@ final class Test
|
||||
|
||||
/**
|
||||
* @throws CodeCoverageException
|
||||
*
|
||||
* @psalm-param class-string $className
|
||||
*/
|
||||
private static function getLinesToBeCoveredOrUsed(string $className, string $methodName, string $mode): array
|
||||
|
||||
13
www/vendor/phpunit/phpunit/src/Util/Type.php
vendored
13
www/vendor/phpunit/phpunit/src/Util/Type.php
vendored
@@ -9,8 +9,6 @@
|
||||
*/
|
||||
namespace PHPUnit\Util;
|
||||
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*/
|
||||
@@ -38,15 +36,4 @@ final class Type
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static function isCloneable(object $object): bool
|
||||
{
|
||||
try {
|
||||
$clone = clone $object;
|
||||
} catch (Throwable $t) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $clone instanceof $object;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ use function sprintf;
|
||||
|
||||
/**
|
||||
* @internal This class is not covered by the backward compatibility promise for PHPUnit
|
||||
*
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class VersionComparisonOperator
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
*/
|
||||
namespace PHPUnit\Util\Xml;
|
||||
|
||||
use function count;
|
||||
use ArrayIterator;
|
||||
use Countable;
|
||||
use DOMNode;
|
||||
|
||||
@@ -32,7 +32,7 @@ final class XmlTestListRenderer
|
||||
|
||||
$writer->openMemory();
|
||||
$writer->setIndent(true);
|
||||
$writer->startDocument();
|
||||
$writer->startDocument('1.0', 'UTF-8');
|
||||
$writer->startElement('tests');
|
||||
|
||||
$currentTestCase = null;
|
||||
@@ -84,6 +84,7 @@ final class XmlTestListRenderer
|
||||
}
|
||||
|
||||
$writer->endElement();
|
||||
$writer->endDocument();
|
||||
|
||||
return $writer->outputMemory();
|
||||
}
|
||||
|
||||
41
www/vendor/sebastian/comparator/ChangeLog.md
vendored
41
www/vendor/sebastian/comparator/ChangeLog.md
vendored
@@ -2,6 +2,18 @@
|
||||
|
||||
All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
|
||||
|
||||
## [4.0.8] - 2022-09-14
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#102](https://github.com/sebastianbergmann/comparator/pull/102): Fix `float` comparison precision
|
||||
|
||||
## [4.0.7] - 2022-09-14
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#99](https://github.com/sebastianbergmann/comparator/pull/99): Fix weak comparison between `'0'` and `false`
|
||||
|
||||
## [4.0.6] - 2020-10-26
|
||||
|
||||
### Fixed
|
||||
@@ -44,6 +56,24 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt
|
||||
|
||||
* Removed support for PHP 7.1 and PHP 7.2
|
||||
|
||||
## [3.0.5] - 2022-09-14
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#102](https://github.com/sebastianbergmann/comparator/pull/102): Fix `float` comparison precision
|
||||
|
||||
## [3.0.4] - 2022-09-14
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#99](https://github.com/sebastianbergmann/comparator/pull/99): Fix weak comparison between `'0'` and `false`
|
||||
|
||||
## [3.0.3] - 2020-11-30
|
||||
|
||||
### Changed
|
||||
|
||||
* Changed PHP version constraint in `composer.json` from `^7.1` to `>=7.1`
|
||||
|
||||
## [3.0.2] - 2018-07-12
|
||||
|
||||
### Changed
|
||||
@@ -61,7 +91,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt
|
||||
|
||||
### Fixed
|
||||
|
||||
* Fixed [#48](https://github.com/sebastianbergmann/comparator/issues/48): `DateTimeComparator` does not support fractional second deltas
|
||||
* [#48](https://github.com/sebastianbergmann/comparator/issues/48): `DateTimeComparator` does not support fractional second deltas
|
||||
|
||||
### Removed
|
||||
|
||||
@@ -83,7 +113,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt
|
||||
|
||||
### Fixed
|
||||
|
||||
* Fixed [phpunit/#2923](https://github.com/sebastianbergmann/phpunit/issues/2923): Unexpected failed date matching
|
||||
* [phpunit/#2923](https://github.com/sebastianbergmann/phpunit/issues/2923): Unexpected failed date matching
|
||||
|
||||
## [2.1.0] - 2017-11-03
|
||||
|
||||
@@ -92,13 +122,18 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt
|
||||
* Added `SebastianBergmann\Comparator\Factory::reset()` to unregister all non-default comparators
|
||||
* Added support for `phpunit/phpunit-mock-objects` version `^5.0`
|
||||
|
||||
[4.0.8]: https://github.com/sebastianbergmann/comparator/compare/4.0.7...4.0.8
|
||||
[4.0.7]: https://github.com/sebastianbergmann/comparator/compare/4.0.6...4.0.7
|
||||
[4.0.6]: https://github.com/sebastianbergmann/comparator/compare/4.0.5...4.0.6
|
||||
[4.0.5]: https://github.com/sebastianbergmann/comparator/compare/4.0.4...4.0.5
|
||||
[4.0.4]: https://github.com/sebastianbergmann/comparator/compare/4.0.3...4.0.4
|
||||
[4.0.3]: https://github.com/sebastianbergmann/comparator/compare/4.0.2...4.0.3
|
||||
[4.0.2]: https://github.com/sebastianbergmann/comparator/compare/4.0.1...4.0.2
|
||||
[4.0.1]: https://github.com/sebastianbergmann/comparator/compare/4.0.0...4.0.1
|
||||
[4.0.0]: https://github.com/sebastianbergmann/comparator/compare/3.0.2...4.0.0
|
||||
[4.0.0]: https://github.com/sebastianbergmann/comparator/compare/3.0.5...4.0.0
|
||||
[3.0.5]: https://github.com/sebastianbergmann/comparator/compare/3.0.4...3.0.5
|
||||
[3.0.4]: https://github.com/sebastianbergmann/comparator/compare/3.0.3...3.0.4
|
||||
[3.0.3]: https://github.com/sebastianbergmann/comparator/compare/3.0.2...3.0.3
|
||||
[3.0.2]: https://github.com/sebastianbergmann/comparator/compare/3.0.1...3.0.2
|
||||
[3.0.1]: https://github.com/sebastianbergmann/comparator/compare/3.0.0...3.0.1
|
||||
[3.0.0]: https://github.com/sebastianbergmann/comparator/compare/2.1.3...3.0.0
|
||||
|
||||
@@ -14,6 +14,8 @@ use function is_numeric;
|
||||
|
||||
/**
|
||||
* Compares doubles for equality.
|
||||
*
|
||||
* @deprecated since v3.0.5 and v4.0.8
|
||||
*/
|
||||
class DoubleComparator extends NumericComparator
|
||||
{
|
||||
|
||||
@@ -127,7 +127,6 @@ class Factory
|
||||
$this->registerDefaultComparator(new ObjectComparator);
|
||||
$this->registerDefaultComparator(new ResourceComparator);
|
||||
$this->registerDefaultComparator(new ArrayComparator);
|
||||
$this->registerDefaultComparator(new DoubleComparator);
|
||||
$this->registerDefaultComparator(new NumericComparator);
|
||||
$this->registerDefaultComparator(new ScalarComparator);
|
||||
$this->registerDefaultComparator(new TypeComparator);
|
||||
|
||||
@@ -32,10 +32,8 @@ class NumericComparator extends ScalarComparator
|
||||
*/
|
||||
public function accepts($expected, $actual)
|
||||
{
|
||||
// all numerical values, but not if one of them is a double
|
||||
// or both of them are strings
|
||||
// all numerical values, but not if both of them are strings
|
||||
return is_numeric($expected) && is_numeric($actual) &&
|
||||
!(is_float($expected) || is_float($actual)) &&
|
||||
!(is_string($expected) && is_string($actual));
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
*/
|
||||
namespace SebastianBergmann\Comparator;
|
||||
|
||||
use function is_bool;
|
||||
use function is_object;
|
||||
use function is_scalar;
|
||||
use function is_string;
|
||||
@@ -58,7 +59,7 @@ class ScalarComparator extends Comparator
|
||||
|
||||
// always compare as strings to avoid strange behaviour
|
||||
// otherwise 0 == 'Foobar'
|
||||
if (is_string($expected) || is_string($actual)) {
|
||||
if ((is_string($expected) && !is_bool($actual)) || (is_string($actual) && !is_bool($expected))) {
|
||||
$expectedToCompare = (string) $expectedToCompare;
|
||||
$actualToCompare = (string) $actualToCompare;
|
||||
|
||||
|
||||
14
www/vendor/sebastian/exporter/ChangeLog.md
vendored
14
www/vendor/sebastian/exporter/ChangeLog.md
vendored
@@ -2,6 +2,12 @@
|
||||
|
||||
All notable changes are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles.
|
||||
|
||||
## [4.0.5] - 2022-09-14
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#47](https://github.com/sebastianbergmann/exporter/pull/47): Fix `float` export precision
|
||||
|
||||
## [4.0.4] - 2021-11-11
|
||||
|
||||
### Changed
|
||||
@@ -32,6 +38,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt
|
||||
|
||||
* This component is no longer supported on PHP 7.0, PHP 7.1, and PHP 7.2
|
||||
|
||||
## [3.1.5] - 2022-09-14
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#47](https://github.com/sebastianbergmann/exporter/pull/47): Fix `float` export precision
|
||||
|
||||
## [3.1.4] - 2021-11-11
|
||||
|
||||
### Changed
|
||||
@@ -54,11 +66,13 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt
|
||||
|
||||
* Remove HHVM-specific code that is no longer needed
|
||||
|
||||
[4.0.5]: https://github.com/sebastianbergmann/exporter/compare/4.0.4...4.0.5
|
||||
[4.0.4]: https://github.com/sebastianbergmann/exporter/compare/4.0.3...4.0.4
|
||||
[4.0.3]: https://github.com/sebastianbergmann/exporter/compare/4.0.2...4.0.3
|
||||
[4.0.2]: https://github.com/sebastianbergmann/exporter/compare/4.0.1...4.0.2
|
||||
[4.0.1]: https://github.com/sebastianbergmann/exporter/compare/4.0.0...4.0.1
|
||||
[4.0.0]: https://github.com/sebastianbergmann/exporter/compare/3.1.2...4.0.0
|
||||
[3.1.5]: https://github.com/sebastianbergmann/exporter/compare/3.1.4...3.1.5
|
||||
[3.1.4]: https://github.com/sebastianbergmann/exporter/compare/3.1.3...3.1.4
|
||||
[3.1.3]: https://github.com/sebastianbergmann/exporter/compare/3.1.2...3.1.3
|
||||
[3.1.2]: https://github.com/sebastianbergmann/exporter/compare/3.1.1...3.1.2
|
||||
|
||||
20
www/vendor/sebastian/exporter/src/Exporter.php
vendored
20
www/vendor/sebastian/exporter/src/Exporter.php
vendored
@@ -16,6 +16,8 @@ use function get_class;
|
||||
use function get_resource_type;
|
||||
use function gettype;
|
||||
use function implode;
|
||||
use function ini_get;
|
||||
use function ini_set;
|
||||
use function is_array;
|
||||
use function is_float;
|
||||
use function is_object;
|
||||
@@ -232,8 +234,22 @@ class Exporter
|
||||
return 'false';
|
||||
}
|
||||
|
||||
if (is_float($value) && (float) ((int) $value) === $value) {
|
||||
return "{$value}.0";
|
||||
if (is_float($value)) {
|
||||
$precisionBackup = ini_get('precision');
|
||||
|
||||
ini_set('precision', '-1');
|
||||
|
||||
try {
|
||||
$valueStr = (string) $value;
|
||||
|
||||
if ((string) (int) $value === $valueStr) {
|
||||
return $valueStr . '.0';
|
||||
}
|
||||
|
||||
return $valueStr;
|
||||
} finally {
|
||||
ini_set('precision', $precisionBackup);
|
||||
}
|
||||
}
|
||||
|
||||
if (gettype($value) === 'resource (closed)') {
|
||||
|
||||
10
www/vendor/sebastian/type/ChangeLog.md
vendored
10
www/vendor/sebastian/type/ChangeLog.md
vendored
@@ -2,6 +2,15 @@
|
||||
|
||||
All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
|
||||
|
||||
## [3.2.0] - 2022-09-12
|
||||
|
||||
### Added
|
||||
|
||||
* [#25](https://github.com/sebastianbergmann/type/issues/25): Support Disjunctive Normal Form types
|
||||
* Added `ReflectionMapper::fromParameterTypes()`
|
||||
* Added `IntersectionType::types()` and `UnionType::types()`
|
||||
* Added `UnionType::containsIntersectionTypes()`
|
||||
|
||||
## [3.1.0] - 2022-08-29
|
||||
|
||||
### Added
|
||||
@@ -130,6 +139,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt
|
||||
|
||||
* Initial release based on [code contributed by Michel Hartmann to PHPUnit](https://github.com/sebastianbergmann/phpunit/pull/3673)
|
||||
|
||||
[3.2.0]: https://github.com/sebastianbergmann/type/compare/3.1.0...3.2.0
|
||||
[3.1.0]: https://github.com/sebastianbergmann/type/compare/3.0.0...3.1.0
|
||||
[3.0.0]: https://github.com/sebastianbergmann/type/compare/2.3.4...3.0.0
|
||||
[2.3.4]: https://github.com/sebastianbergmann/type/compare/ca39369c41313ed12c071ed38ecda8fcdb248859...2.3.4
|
||||
|
||||
2
www/vendor/sebastian/type/composer.json
vendored
2
www/vendor/sebastian/type/composer.json
vendored
@@ -44,7 +44,7 @@
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.1-dev"
|
||||
"dev-master": "3.2-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
42
www/vendor/sebastian/type/src/Parameter.php
vendored
Normal file
42
www/vendor/sebastian/type/src/Parameter.php
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php declare(strict_types=1);
|
||||
/*
|
||||
* This file is part of sebastian/type.
|
||||
*
|
||||
* (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 SebastianBergmann\Type;
|
||||
|
||||
final class Parameter
|
||||
{
|
||||
/**
|
||||
* @psalm-var non-empty-string
|
||||
*/
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* @var Type
|
||||
*/
|
||||
private $type;
|
||||
|
||||
/**
|
||||
* @psalm-param non-empty-string $name
|
||||
*/
|
||||
public function __construct(string $name, Type $type)
|
||||
{
|
||||
$this->name = $name;
|
||||
$this->type = $type;
|
||||
}
|
||||
|
||||
public function name(): string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function type(): Type
|
||||
{
|
||||
return $this->type;
|
||||
}
|
||||
}
|
||||
163
www/vendor/sebastian/type/src/ReflectionMapper.php
vendored
163
www/vendor/sebastian/type/src/ReflectionMapper.php
vendored
@@ -19,6 +19,55 @@ use ReflectionUnionType;
|
||||
|
||||
final class ReflectionMapper
|
||||
{
|
||||
/**
|
||||
* @psalm-return list<Parameter>
|
||||
*/
|
||||
public function fromParameterTypes(ReflectionFunctionAbstract $functionOrMethod): array
|
||||
{
|
||||
$parameters = [];
|
||||
|
||||
foreach ($functionOrMethod->getParameters() as $parameter) {
|
||||
$name = $parameter->getName();
|
||||
|
||||
assert($name !== '');
|
||||
|
||||
if (!$parameter->hasType()) {
|
||||
$parameters[] = new Parameter($name, new UnknownType);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$type = $parameter->getType();
|
||||
|
||||
if ($type instanceof ReflectionNamedType) {
|
||||
$parameters[] = new Parameter(
|
||||
$name,
|
||||
$this->mapNamedType($type, $functionOrMethod)
|
||||
);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($type instanceof ReflectionUnionType) {
|
||||
$parameters[] = new Parameter(
|
||||
$name,
|
||||
$this->mapUnionType($type, $functionOrMethod)
|
||||
);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($type instanceof ReflectionIntersectionType) {
|
||||
$parameters[] = new Parameter(
|
||||
$name,
|
||||
$this->mapIntersectionType($type, $functionOrMethod)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return $parameters;
|
||||
}
|
||||
|
||||
public function fromReturnType(ReflectionFunctionAbstract $functionOrMethod): Type
|
||||
{
|
||||
if (!$this->hasReturnType($functionOrMethod)) {
|
||||
@@ -30,54 +79,78 @@ final class ReflectionMapper
|
||||
assert($returnType instanceof ReflectionNamedType || $returnType instanceof ReflectionUnionType || $returnType instanceof ReflectionIntersectionType);
|
||||
|
||||
if ($returnType instanceof ReflectionNamedType) {
|
||||
if ($functionOrMethod instanceof ReflectionMethod && $returnType->getName() === 'self') {
|
||||
return ObjectType::fromName(
|
||||
$functionOrMethod->getDeclaringClass()->getName(),
|
||||
$returnType->allowsNull()
|
||||
);
|
||||
}
|
||||
|
||||
if ($functionOrMethod instanceof ReflectionMethod && $returnType->getName() === 'static') {
|
||||
return new StaticType(
|
||||
TypeName::fromReflection($functionOrMethod->getDeclaringClass()),
|
||||
$returnType->allowsNull()
|
||||
);
|
||||
}
|
||||
|
||||
if ($returnType->getName() === 'mixed') {
|
||||
return new MixedType;
|
||||
}
|
||||
|
||||
if ($functionOrMethod instanceof ReflectionMethod && $returnType->getName() === 'parent') {
|
||||
return ObjectType::fromName(
|
||||
$functionOrMethod->getDeclaringClass()->getParentClass()->getName(),
|
||||
$returnType->allowsNull()
|
||||
);
|
||||
}
|
||||
|
||||
return Type::fromName(
|
||||
$returnType->getName(),
|
||||
$returnType->allowsNull()
|
||||
);
|
||||
}
|
||||
|
||||
assert($returnType instanceof ReflectionUnionType || $returnType instanceof ReflectionIntersectionType);
|
||||
|
||||
$types = [];
|
||||
|
||||
foreach ($returnType->getTypes() as $type) {
|
||||
if ($functionOrMethod instanceof ReflectionMethod && $type->getName() === 'self') {
|
||||
$types[] = ObjectType::fromName(
|
||||
$functionOrMethod->getDeclaringClass()->getName(),
|
||||
false
|
||||
);
|
||||
} else {
|
||||
$types[] = Type::fromName($type->getName(), false);
|
||||
}
|
||||
return $this->mapNamedType($returnType, $functionOrMethod);
|
||||
}
|
||||
|
||||
if ($returnType instanceof ReflectionUnionType) {
|
||||
return new UnionType(...$types);
|
||||
return $this->mapUnionType($returnType, $functionOrMethod);
|
||||
}
|
||||
|
||||
if ($returnType instanceof ReflectionIntersectionType) {
|
||||
return $this->mapIntersectionType($returnType, $functionOrMethod);
|
||||
}
|
||||
}
|
||||
|
||||
private function mapNamedType(ReflectionNamedType $type, ReflectionFunctionAbstract $functionOrMethod): Type
|
||||
{
|
||||
if ($functionOrMethod instanceof ReflectionMethod && $type->getName() === 'self') {
|
||||
return ObjectType::fromName(
|
||||
$functionOrMethod->getDeclaringClass()->getName(),
|
||||
$type->allowsNull()
|
||||
);
|
||||
}
|
||||
|
||||
if ($functionOrMethod instanceof ReflectionMethod && $type->getName() === 'static') {
|
||||
return new StaticType(
|
||||
TypeName::fromReflection($functionOrMethod->getDeclaringClass()),
|
||||
$type->allowsNull()
|
||||
);
|
||||
}
|
||||
|
||||
if ($type->getName() === 'mixed') {
|
||||
return new MixedType;
|
||||
}
|
||||
|
||||
if ($functionOrMethod instanceof ReflectionMethod && $type->getName() === 'parent') {
|
||||
return ObjectType::fromName(
|
||||
$functionOrMethod->getDeclaringClass()->getParentClass()->getName(),
|
||||
$type->allowsNull()
|
||||
);
|
||||
}
|
||||
|
||||
return Type::fromName(
|
||||
$type->getName(),
|
||||
$type->allowsNull()
|
||||
);
|
||||
}
|
||||
|
||||
private function mapUnionType(ReflectionUnionType $type, ReflectionFunctionAbstract $functionOrMethod): Type
|
||||
{
|
||||
$types = [];
|
||||
|
||||
foreach ($type->getTypes() as $_type) {
|
||||
assert($_type instanceof ReflectionNamedType || $_type instanceof ReflectionIntersectionType);
|
||||
|
||||
if ($_type instanceof ReflectionNamedType) {
|
||||
$types[] = $this->mapNamedType($_type, $functionOrMethod);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$types[] = $this->mapIntersectionType($_type, $functionOrMethod);
|
||||
}
|
||||
|
||||
return new UnionType(...$types);
|
||||
}
|
||||
|
||||
private function mapIntersectionType(ReflectionIntersectionType $type, ReflectionFunctionAbstract $functionOrMethod): Type
|
||||
{
|
||||
$types = [];
|
||||
|
||||
foreach ($type->getTypes() as $_type) {
|
||||
assert($_type instanceof ReflectionNamedType);
|
||||
|
||||
$types[] = $this->mapNamedType($_type, $functionOrMethod);
|
||||
}
|
||||
|
||||
return new IntersectionType(...$types);
|
||||
|
||||
@@ -84,6 +84,9 @@ final class CallableType extends Type
|
||||
return $this->allowsNull;
|
||||
}
|
||||
|
||||
/**
|
||||
* @psalm-assert-if-true CallableType $this
|
||||
*/
|
||||
public function isCallable(): bool
|
||||
{
|
||||
return true;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user