mirror of
https://code.mensbeam.com/MensBeam/Arsse.git
synced 2024-12-22 21:22:40 +00:00
Remove dependency on Webmozart's Glob outside of testing
Native glob is effectively tested via use of unmodified Lang throughout non-Lang tests
This commit is contained in:
parent
b778e8eacd
commit
719290c82a
5 changed files with 170 additions and 157 deletions
|
@ -23,11 +23,11 @@
|
||||||
"fguillot/picofeed": ">=0.1.31",
|
"fguillot/picofeed": ">=0.1.31",
|
||||||
"jkingweb/druuid": "^3.0.0",
|
"jkingweb/druuid": "^3.0.0",
|
||||||
"phpseclib/phpseclib": "^2.0.4",
|
"phpseclib/phpseclib": "^2.0.4",
|
||||||
"hosteurope/password-generator": "^1.0.1",
|
"hosteurope/password-generator": "^1.0.1"
|
||||||
"webmozart/glob": "^4.1.0"
|
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"mikey179/vfsStream": "^1.6.4",
|
"mikey179/vfsStream": "^1.6.4",
|
||||||
|
"webmozart/glob": "^4.1.0",
|
||||||
"phake/phake": "^2.3.2",
|
"phake/phake": "^2.3.2",
|
||||||
"phpunit/phpunit": "^6.0.5"
|
"phpunit/phpunit": "^6.0.5"
|
||||||
},
|
},
|
||||||
|
|
298
composer.lock
generated
298
composer.lock
generated
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "cd32c438fa1e530cc51e9ba5b608123c",
|
"content-hash": "716302e991c06ae6308829749b16a078",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "fguillot/picofeed",
|
"name": "fguillot/picofeed",
|
||||||
|
@ -236,149 +236,6 @@
|
||||||
],
|
],
|
||||||
"time": "2017-05-08T05:58:35+00:00"
|
"time": "2017-05-08T05:58:35+00:00"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "webmozart/assert",
|
|
||||||
"version": "1.2.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/webmozart/assert.git",
|
|
||||||
"reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f",
|
|
||||||
"reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^5.3.3 || ^7.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^4.6",
|
|
||||||
"sebastian/version": "^1.0.1"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.3-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Webmozart\\Assert\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Bernhard Schussek",
|
|
||||||
"email": "bschussek@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Assertions to validate method input/output with nice error messages.",
|
|
||||||
"keywords": [
|
|
||||||
"assert",
|
|
||||||
"check",
|
|
||||||
"validate"
|
|
||||||
],
|
|
||||||
"time": "2016-11-23T20:04:58+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "webmozart/glob",
|
|
||||||
"version": "4.1.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/webmozart/glob.git",
|
|
||||||
"reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/webmozart/glob/zipball/3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe",
|
|
||||||
"reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^5.3.3|^7.0",
|
|
||||||
"webmozart/path-util": "^2.2"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^4.6",
|
|
||||||
"sebastian/version": "^1.0.1",
|
|
||||||
"symfony/filesystem": "^2.5"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "4.1-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Webmozart\\Glob\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Bernhard Schussek",
|
|
||||||
"email": "bschussek@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A PHP implementation of Ant's glob.",
|
|
||||||
"time": "2015-12-29T11:14:33+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "webmozart/path-util",
|
|
||||||
"version": "2.3.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/webmozart/path-util.git",
|
|
||||||
"reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
|
|
||||||
"reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.3",
|
|
||||||
"webmozart/assert": "~1.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^4.6",
|
|
||||||
"sebastian/version": "^1.0.1"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "2.3-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Webmozart\\PathUtil\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Bernhard Schussek",
|
|
||||||
"email": "bschussek@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.",
|
|
||||||
"time": "2015-12-17T08:42:14+00:00"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "zendframework/zendxml",
|
"name": "zendframework/zendxml",
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
|
@ -1337,16 +1194,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/diff",
|
"name": "sebastian/diff",
|
||||||
"version": "1.4.2",
|
"version": "1.4.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/diff.git",
|
"url": "https://github.com/sebastianbergmann/diff.git",
|
||||||
"reference": "3c7d21999e815cdfac70c6c7d79d3a9cb1bc7bc2"
|
"reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3c7d21999e815cdfac70c6c7d79d3a9cb1bc7bc2",
|
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
|
||||||
"reference": "3c7d21999e815cdfac70c6c7d79d3a9cb1bc7bc2",
|
"reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1385,7 +1242,7 @@
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"diff"
|
"diff"
|
||||||
],
|
],
|
||||||
"time": "2017-05-18T13:44:30+00:00"
|
"time": "2017-05-22T07:24:03+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/environment",
|
"name": "sebastian/environment",
|
||||||
|
@ -1778,6 +1635,149 @@
|
||||||
],
|
],
|
||||||
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
|
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
|
||||||
"time": "2017-04-07T12:08:54+00:00"
|
"time": "2017-04-07T12:08:54+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "webmozart/assert",
|
||||||
|
"version": "1.2.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/webmozart/assert.git",
|
||||||
|
"reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f",
|
||||||
|
"reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^5.3.3 || ^7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^4.6",
|
||||||
|
"sebastian/version": "^1.0.1"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.3-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Webmozart\\Assert\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Bernhard Schussek",
|
||||||
|
"email": "bschussek@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Assertions to validate method input/output with nice error messages.",
|
||||||
|
"keywords": [
|
||||||
|
"assert",
|
||||||
|
"check",
|
||||||
|
"validate"
|
||||||
|
],
|
||||||
|
"time": "2016-11-23T20:04:58+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "webmozart/glob",
|
||||||
|
"version": "4.1.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/webmozart/glob.git",
|
||||||
|
"reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/webmozart/glob/zipball/3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe",
|
||||||
|
"reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^5.3.3|^7.0",
|
||||||
|
"webmozart/path-util": "^2.2"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^4.6",
|
||||||
|
"sebastian/version": "^1.0.1",
|
||||||
|
"symfony/filesystem": "^2.5"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "4.1-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Webmozart\\Glob\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Bernhard Schussek",
|
||||||
|
"email": "bschussek@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A PHP implementation of Ant's glob.",
|
||||||
|
"time": "2015-12-29T11:14:33+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "webmozart/path-util",
|
||||||
|
"version": "2.3.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/webmozart/path-util.git",
|
||||||
|
"reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
|
||||||
|
"reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3",
|
||||||
|
"webmozart/assert": "~1.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^4.6",
|
||||||
|
"sebastian/version": "^1.0.1"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.3-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Webmozart\\PathUtil\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Bernhard Schussek",
|
||||||
|
"email": "bschussek@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.",
|
||||||
|
"time": "2015-12-17T08:42:14+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
|
12
lib/Lang.php
12
lib/Lang.php
|
@ -1,7 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
namespace JKingWeb\Arsse;
|
namespace JKingWeb\Arsse;
|
||||||
use Webmozart\Glob\Glob;
|
|
||||||
|
|
||||||
class Lang {
|
class Lang {
|
||||||
const DEFAULT = "en"; // fallback locale
|
const DEFAULT = "en"; // fallback locale
|
||||||
|
@ -110,13 +109,16 @@ class Lang {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function globFiles(string $path): array {
|
||||||
|
// we wrap PHP's glob function in this method so that unit tests may override it
|
||||||
|
return glob($path."*.php");
|
||||||
|
}
|
||||||
|
|
||||||
protected function listFiles(): array {
|
protected function listFiles(): array {
|
||||||
$out = glob($this->path."*.php");
|
$out = $this->globFiles($this->path."*.php");
|
||||||
// built-in glob doesn't work with vfsStream (and this other glob doesn't seem to work with Windows paths), so we try both
|
|
||||||
if(empty($out)) $out = Glob::glob($this->path."*.php"); // FIXME: we should just mock glob() in tests instead and make this a dev dependency
|
|
||||||
// trim the returned file paths to return just the language tag
|
// trim the returned file paths to return just the language tag
|
||||||
$out = array_map(function($file) {
|
$out = array_map(function($file) {
|
||||||
$file = str_replace(DIRECTORY_SEPARATOR, "/", $file);
|
$file = str_replace(DIRECTORY_SEPARATOR, "/", $file); // we replace the directory separator because we don't use native paths in testing
|
||||||
$file = substr($file, strrpos($file, "/")+1);
|
$file = substr($file, strrpos($file, "/")+1);
|
||||||
return strtolower(substr($file,0,strrpos($file,".")));
|
return strtolower(substr($file,0,strrpos($file,".")));
|
||||||
},$out);
|
},$out);
|
||||||
|
|
|
@ -34,7 +34,7 @@ trait Setup {
|
||||||
// set up a file without read access
|
// set up a file without read access
|
||||||
chmod($this->path."ru.php", 0000);
|
chmod($this->path."ru.php", 0000);
|
||||||
// make the test Lang class use the vfs files
|
// make the test Lang class use the vfs files
|
||||||
$this->l = new Lang($this->path);
|
$this->l = new TestLang($this->path);
|
||||||
// create a mock Lang object so as not to create a dependency loop
|
// create a mock Lang object so as not to create a dependency loop
|
||||||
$this->clearData(false);
|
$this->clearData(false);
|
||||||
Data::$l = Phake::mock(Lang::class);
|
Data::$l = Phake::mock(Lang::class);
|
||||||
|
|
11
tests/lib/Lang/TestLang.php
Normal file
11
tests/lib/Lang/TestLang.php
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
|
namespace JKingWeb\Arsse\Test\Lang;
|
||||||
|
use Webmozart\Glob\Glob;
|
||||||
|
|
||||||
|
class TestLang extends \JKingWeb\Arsse\Lang {
|
||||||
|
|
||||||
|
protected function globFiles(string $path): array {
|
||||||
|
return Glob::glob($this->path."*.php");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue