Merge pull request #1572 from ArthurHoaro/feature/php8

This commit is contained in:
ArthurHoaro 2020-09-29 11:36:27 +02:00 committed by GitHub
commit 6cdca9562c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
52 changed files with 258 additions and 244 deletions

View file

@ -43,7 +43,8 @@ cache:
install:
# install/update composer and php dependencies
- composer install --prefer-dist
- composer config --unset platform && composer config platform.php $TRAVIS_PHP_VERSION
- composer update
before_script:
- PATH=${PATH//:\.\/node_modules\/\.bin/}

View file

@ -28,7 +28,7 @@
"require-dev": {
"roave/security-advisories": "dev-master",
"phpunit/phpcov": "*",
"phpunit/phpunit": "^7.5",
"phpunit/phpunit": "^7.5 || ^8.0",
"squizlabs/php_codesniffer": "3.*"
},
"suggest": {

View file

@ -17,7 +17,7 @@ class ApplicationUtilsTest extends \PHPUnit\Framework\TestCase
/**
* Reset test data for each test
*/
public function setUp()
protected function setUp(): void
{
FakeApplicationUtils::$VERSION_CODE = '';
if (file_exists(self::$testUpdateFile)) {
@ -28,7 +28,7 @@ class ApplicationUtilsTest extends \PHPUnit\Framework\TestCase
/**
* Remove test version file if it exists
*/
public function tearDown()
protected function tearDown(): void
{
if (is_file('sandbox/version.php')) {
unlink('sandbox/version.php');
@ -145,10 +145,11 @@ class ApplicationUtilsTest extends \PHPUnit\Framework\TestCase
/**
* Test update checks - invalid Git branch
* @expectedException Exception
* @expectedExceptionMessageRegExp /Invalid branch selected for updates/
*/
public function testCheckUpdateInvalidGitBranch()
{
$this->expectExceptionMessageRegExp('/Invalid branch selected for updates/');
ApplicationUtils::checkUpdate('', 'null', 0, true, true, 'unstable');
}
@ -261,20 +262,22 @@ class ApplicationUtilsTest extends \PHPUnit\Framework\TestCase
/**
* Check a unsupported PHP version
* @expectedException Exception
* @expectedExceptionMessageRegExp /Your PHP version is obsolete/
*/
public function testCheckSupportedPHPVersion51()
{
$this->expectExceptionMessageRegExp('/Your PHP version is obsolete/');
$this->assertTrue(ApplicationUtils::checkPHPVersion('5.3', '5.1.0'));
}
/**
* Check another unsupported PHP version
* @expectedException Exception
* @expectedExceptionMessageRegExp /Your PHP version is obsolete/
*/
public function testCheckSupportedPHPVersion52()
{
$this->expectExceptionMessageRegExp('/Your PHP version is obsolete/');
$this->assertTrue(ApplicationUtils::checkPHPVersion('5.3', '5.2'));
}

View file

@ -19,7 +19,7 @@ class FileUtilsTest extends \PHPUnit\Framework\TestCase
/**
* Delete test file after every test.
*/
public function tearDown()
protected function tearDown(): void
{
@unlink(self::$file);
}
@ -49,12 +49,12 @@ class FileUtilsTest extends \PHPUnit\Framework\TestCase
/**
* File not writable: raise an exception.
*
* @expectedException Shaarli\Exceptions\IOException
* @expectedExceptionMessage Error accessing "sandbox/flat.db"
*/
public function testWriteWithoutPermission()
{
$this->expectException(\Shaarli\Exceptions\IOException::class);
$this->expectExceptionMessage('Error accessing "sandbox/flat.db"');
touch(self::$file);
chmod(self::$file, 0440);
FileUtils::writeFlatDB(self::$file, null);
@ -62,23 +62,23 @@ class FileUtilsTest extends \PHPUnit\Framework\TestCase
/**
* Folder non existent: raise an exception.
*
* @expectedException Shaarli\Exceptions\IOException
* @expectedExceptionMessage Error accessing "nopefolder"
*/
public function testWriteFolderDoesNotExist()
{
$this->expectException(\Shaarli\Exceptions\IOException::class);
$this->expectExceptionMessage('Error accessing "nopefolder"');
FileUtils::writeFlatDB('nopefolder/file', null);
}
/**
* Folder non writable: raise an exception.
*
* @expectedException Shaarli\Exceptions\IOException
* @expectedExceptionMessage Error accessing "sandbox"
*/
public function testWriteFolderPermission()
{
$this->expectException(\Shaarli\Exceptions\IOException::class);
$this->expectExceptionMessage('Error accessing "sandbox"');
chmod(dirname(self::$file), 0555);
try {
FileUtils::writeFlatDB(self::$file, null);

View file

@ -16,7 +16,7 @@ class HistoryTest extends \PHPUnit\Framework\TestCase
/**
* Delete history file.
*/
public function setUp()
protected function setUp(): void
{
if (file_exists(self::$historyFilePath)) {
unlink(self::$historyFilePath);
@ -44,12 +44,12 @@ class HistoryTest extends \PHPUnit\Framework\TestCase
/**
* Not writable history file: raise an exception.
*
* @expectedException Exception
* @expectedExceptionMessage History file isn't readable or writable
*/
public function testConstructNotWritable()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('History file isn\'t readable or writable');
touch(self::$historyFilePath);
chmod(self::$historyFilePath, 0440);
$history = new History(self::$historyFilePath);
@ -58,12 +58,12 @@ class HistoryTest extends \PHPUnit\Framework\TestCase
/**
* Not parsable history file: raise an exception.
*
* @expectedException Exception
* @expectedExceptionMessageRegExp /Could not parse history file/
*/
public function testConstructNotParsable()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessageRegExp('/Could not parse history file/');
file_put_contents(self::$historyFilePath, 'not parsable');
$history = new History(self::$historyFilePath);
// gzinflate generates a warning

View file

@ -22,7 +22,7 @@ class LanguagesTest extends \PHPUnit\Framework\TestCase
/**
*
*/
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager(self::$configFile);
}

View file

@ -30,7 +30,7 @@ class ThumbnailerTest extends TestCase
*/
protected $conf;
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager('tests/utils/config/configJson');
$this->conf->set('thumbnails.mode', Thumbnailer::MODE_ALL);
@ -43,7 +43,7 @@ class ThumbnailerTest extends TestCase
WTConfigManager::addFile('tests/utils/config/wt.json');
}
public function tearDown()
protected function tearDown(): void
{
$this->rrmdirContent('sandbox/');
}

View file

@ -15,7 +15,7 @@ class TimeZoneTest extends PHPUnit\Framework\TestCase
*/
protected $installedTimezones;
public function setUp()
protected function setUp(): void
{
$this->installedTimezones = [
'Antarctica/Syowa',

View file

@ -26,7 +26,7 @@ class UtilsTest extends PHPUnit\Framework\TestCase
/**
* Assign reference data
*/
public static function setUpBeforeClass()
public static function setUpBeforeClass(): void
{
self::$defaultTimeZone = date_default_timezone_get();
// Timezone without DST for test consistency
@ -36,7 +36,7 @@ class UtilsTest extends PHPUnit\Framework\TestCase
/**
* Reset the timezone
*/
public static function tearDownAfterClass()
public static function tearDownAfterClass(): void
{
date_default_timezone_set(self::$defaultTimeZone);
}
@ -44,7 +44,7 @@ class UtilsTest extends PHPUnit\Framework\TestCase
/**
* Resets test data before each test
*/
protected function setUp()
protected function setUp(): void
{
if (file_exists(self::$testLogFile)) {
unlink(self::$testLogFile);

View file

@ -43,7 +43,7 @@ class ApiMiddlewareTest extends \PHPUnit\Framework\TestCase
/**
* Before every test, instantiate a new Api with its config, plugins and bookmarks.
*/
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager('tests/utils/config/configJson');
$this->conf->set('api.secret', 'NapoleonWasALizard');
@ -61,7 +61,7 @@ class ApiMiddlewareTest extends \PHPUnit\Framework\TestCase
/**
* After every test, remove the test datastore.
*/
public function tearDown()
protected function tearDown(): void
{
@unlink(self::$testDatastore);
}

View file

@ -13,7 +13,7 @@ class ApiUtilsTest extends \PHPUnit\Framework\TestCase
/**
* Force the timezone for ISO datetimes.
*/
public static function setUpBeforeClass()
public static function setUpBeforeClass(): void
{
date_default_timezone_set('UTC');
}
@ -66,143 +66,143 @@ class ApiUtilsTest extends \PHPUnit\Framework\TestCase
/**
* Test validateJwtToken() with a malformed JWT token.
*
* @expectedException \Shaarli\Api\Exceptions\ApiAuthorizationException
* @expectedExceptionMessage Malformed JWT token
*/
public function testValidateJwtTokenMalformed()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiAuthorizationException::class);
$this->expectExceptionMessage('Malformed JWT token');
$token = 'ABC.DEF';
ApiUtils::validateJwtToken($token, 'foo');
}
/**
* Test validateJwtToken() with an empty JWT token.
*
* @expectedException \Shaarli\Api\Exceptions\ApiAuthorizationException
* @expectedExceptionMessage Malformed JWT token
*/
public function testValidateJwtTokenMalformedEmpty()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiAuthorizationException::class);
$this->expectExceptionMessage('Malformed JWT token');
$token = false;
ApiUtils::validateJwtToken($token, 'foo');
}
/**
* Test validateJwtToken() with a JWT token without header.
*
* @expectedException \Shaarli\Api\Exceptions\ApiAuthorizationException
* @expectedExceptionMessage Malformed JWT token
*/
public function testValidateJwtTokenMalformedEmptyHeader()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiAuthorizationException::class);
$this->expectExceptionMessage('Malformed JWT token');
$token = '.payload.signature';
ApiUtils::validateJwtToken($token, 'foo');
}
/**
* Test validateJwtToken() with a JWT token without payload
*
* @expectedException \Shaarli\Api\Exceptions\ApiAuthorizationException
* @expectedExceptionMessage Malformed JWT token
*/
public function testValidateJwtTokenMalformedEmptyPayload()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiAuthorizationException::class);
$this->expectExceptionMessage('Malformed JWT token');
$token = 'header..signature';
ApiUtils::validateJwtToken($token, 'foo');
}
/**
* Test validateJwtToken() with a JWT token with an empty signature.
*
* @expectedException \Shaarli\Api\Exceptions\ApiAuthorizationException
* @expectedExceptionMessage Invalid JWT signature
*/
public function testValidateJwtTokenInvalidSignatureEmpty()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiAuthorizationException::class);
$this->expectExceptionMessage('Invalid JWT signature');
$token = 'header.payload.';
ApiUtils::validateJwtToken($token, 'foo');
}
/**
* Test validateJwtToken() with a JWT token with an invalid signature.
*
* @expectedException \Shaarli\Api\Exceptions\ApiAuthorizationException
* @expectedExceptionMessage Invalid JWT signature
*/
public function testValidateJwtTokenInvalidSignature()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiAuthorizationException::class);
$this->expectExceptionMessage('Invalid JWT signature');
$token = 'header.payload.nope';
ApiUtils::validateJwtToken($token, 'foo');
}
/**
* Test validateJwtToken() with a JWT token with a signature generated with the wrong API secret.
*
* @expectedException \Shaarli\Api\Exceptions\ApiAuthorizationException
* @expectedExceptionMessage Invalid JWT signature
*/
public function testValidateJwtTokenInvalidSignatureSecret()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiAuthorizationException::class);
$this->expectExceptionMessage('Invalid JWT signature');
ApiUtils::validateJwtToken(self::generateValidJwtToken('foo'), 'bar');
}
/**
* Test validateJwtToken() with a JWT token with a an invalid header (not JSON).
*
* @expectedException \Shaarli\Api\Exceptions\ApiAuthorizationException
* @expectedExceptionMessage Invalid JWT header
*/
public function testValidateJwtTokenInvalidHeader()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiAuthorizationException::class);
$this->expectExceptionMessage('Invalid JWT header');
$token = $this->generateCustomJwtToken('notJSON', '{"JSON":1}', 'secret');
ApiUtils::validateJwtToken($token, 'secret');
}
/**
* Test validateJwtToken() with a JWT token with a an invalid payload (not JSON).
*
* @expectedException \Shaarli\Api\Exceptions\ApiAuthorizationException
* @expectedExceptionMessage Invalid JWT payload
*/
public function testValidateJwtTokenInvalidPayload()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiAuthorizationException::class);
$this->expectExceptionMessage('Invalid JWT payload');
$token = $this->generateCustomJwtToken('{"JSON":1}', 'notJSON', 'secret');
ApiUtils::validateJwtToken($token, 'secret');
}
/**
* Test validateJwtToken() with a JWT token without issued time.
*
* @expectedException \Shaarli\Api\Exceptions\ApiAuthorizationException
* @expectedExceptionMessage Invalid JWT issued time
*/
public function testValidateJwtTokenInvalidTimeEmpty()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiAuthorizationException::class);
$this->expectExceptionMessage('Invalid JWT issued time');
$token = $this->generateCustomJwtToken('{"JSON":1}', '{"JSON":1}', 'secret');
ApiUtils::validateJwtToken($token, 'secret');
}
/**
* Test validateJwtToken() with an expired JWT token.
*
* @expectedException \Shaarli\Api\Exceptions\ApiAuthorizationException
* @expectedExceptionMessage Invalid JWT issued time
*/
public function testValidateJwtTokenInvalidTimeExpired()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiAuthorizationException::class);
$this->expectExceptionMessage('Invalid JWT issued time');
$token = $this->generateCustomJwtToken('{"JSON":1}', '{"iat":' . (time() - 600) . '}', 'secret');
ApiUtils::validateJwtToken($token, 'secret');
}
/**
* Test validateJwtToken() with a JWT token issued in the future.
*
* @expectedException \Shaarli\Api\Exceptions\ApiAuthorizationException
* @expectedExceptionMessage Invalid JWT issued time
*/
public function testValidateJwtTokenInvalidTimeFuture()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiAuthorizationException::class);
$this->expectExceptionMessage('Invalid JWT issued time');
$token = $this->generateCustomJwtToken('{"JSON":1}', '{"iat":' . (time() + 60) . '}', 'secret');
ApiUtils::validateJwtToken($token, 'secret');
}

View file

@ -41,7 +41,7 @@ class HistoryTest extends \PHPUnit\Framework\TestCase
/**
* Before every test, instantiate a new Api with its config, plugins and bookmarks.
*/
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager('tests/utils/config/configJson');
$this->refHistory = new \ReferenceHistory();
@ -57,7 +57,7 @@ class HistoryTest extends \PHPUnit\Framework\TestCase
/**
* After every test, remove the test datastore.
*/
public function tearDown()
protected function tearDown(): void
{
@unlink(self::$testHistory);
}

View file

@ -47,7 +47,7 @@ class InfoTest extends TestCase
/**
* Before every test, instantiate a new Api with its config, plugins and bookmarks.
*/
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager('tests/utils/config/configJson');
$this->conf->set('resource.datastore', self::$testDatastore);
@ -67,7 +67,7 @@ class InfoTest extends TestCase
/**
* After every test, remove the test datastore.
*/
public function tearDown()
protected function tearDown(): void
{
@unlink(self::$testDatastore);
}

View file

@ -56,7 +56,7 @@ class DeleteLinkTest extends \PHPUnit\Framework\TestCase
/**
* Before each test, instantiate a new Api with its config, plugins and bookmarks.
*/
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager('tests/utils/config/configJson');
$this->conf->set('resource.datastore', self::$testDatastore);
@ -78,7 +78,7 @@ class DeleteLinkTest extends \PHPUnit\Framework\TestCase
/**
* After each test, remove the test datastore.
*/
public function tearDown()
protected function tearDown(): void
{
@unlink(self::$testDatastore);
@unlink(self::$testHistory);
@ -113,11 +113,11 @@ class DeleteLinkTest extends \PHPUnit\Framework\TestCase
/**
* Test DELETE link endpoint: reach not existing ID.
*
* @expectedException \Shaarli\Api\Exceptions\ApiLinkNotFoundException
*/
public function testDeleteLink404()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiLinkNotFoundException::class);
$id = -1;
$this->assertFalse($this->bookmarkService->exists($id));
$env = Environment::mock([

View file

@ -55,7 +55,7 @@ class GetLinkIdTest extends \PHPUnit\Framework\TestCase
/**
* Before each test, instantiate a new Api with its config, plugins and bookmarks.
*/
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager('tests/utils/config/configJson');
$this->conf->set('resource.datastore', self::$testDatastore);
@ -74,7 +74,7 @@ class GetLinkIdTest extends \PHPUnit\Framework\TestCase
/**
* After each test, remove the test datastore.
*/
public function tearDown()
protected function tearDown(): void
{
@unlink(self::$testDatastore);
}
@ -120,12 +120,12 @@ class GetLinkIdTest extends \PHPUnit\Framework\TestCase
/**
* Test basic getLink service: get non existent link => ApiLinkNotFoundException.
*
* @expectedException Shaarli\Api\Exceptions\ApiLinkNotFoundException
* @expectedExceptionMessage Link not found
*/
public function testGetLink404()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiLinkNotFoundException::class);
$this->expectExceptionMessage('Link not found');
$env = Environment::mock([
'REQUEST_METHOD' => 'GET',
]);

View file

@ -55,7 +55,7 @@ class GetLinksTest extends \PHPUnit\Framework\TestCase
/**
* Before every test, instantiate a new Api with its config, plugins and bookmarks.
*/
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager('tests/utils/config/configJson');
$this->conf->set('resource.datastore', self::$testDatastore);
@ -74,7 +74,7 @@ class GetLinksTest extends \PHPUnit\Framework\TestCase
/**
* After every test, remove the test datastore.
*/
public function tearDown()
protected function tearDown(): void
{
@unlink(self::$testDatastore);
}

View file

@ -70,7 +70,7 @@ class PostLinkTest extends TestCase
/**
* Before every test, instantiate a new Api with its config, plugins and bookmarks.
*/
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager('tests/utils/config/configJson');
$this->conf->set('resource.datastore', self::$testDatastore);
@ -107,7 +107,7 @@ class PostLinkTest extends TestCase
/**
* After every test, remove the test datastore.
*/
public function tearDown()
protected function tearDown(): void
{
@unlink(self::$testDatastore);
@unlink(self::$testHistory);

View file

@ -62,7 +62,7 @@ class PutLinkTest extends \PHPUnit\Framework\TestCase
/**
* Before every test, instantiate a new Api with its config, plugins and bookmarks.
*/
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager('tests/utils/config/configJson');
$this->conf->set('resource.datastore', self::$testDatastore);
@ -91,7 +91,7 @@ class PutLinkTest extends \PHPUnit\Framework\TestCase
/**
* After every test, remove the test datastore.
*/
public function tearDown()
protected function tearDown(): void
{
@unlink(self::$testDatastore);
@unlink(self::$testHistory);
@ -218,12 +218,12 @@ class PutLinkTest extends \PHPUnit\Framework\TestCase
/**
* Test link update on non existent link => ApiLinkNotFoundException.
*
* @expectedException Shaarli\Api\Exceptions\ApiLinkNotFoundException
* @expectedExceptionMessage Link not found
*/
public function testGetLink404()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiLinkNotFoundException::class);
$this->expectExceptionMessage('Link not found');
$env = Environment::mock([
'REQUEST_METHOD' => 'PUT',
]);

View file

@ -57,7 +57,7 @@ class DeleteTagTest extends \PHPUnit\Framework\TestCase
/**
* Before each test, instantiate a new Api with its config, plugins and bookmarks.
*/
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager('tests/utils/config/configJson');
$this->conf->set('resource.datastore', self::$testDatastore);
@ -79,7 +79,7 @@ class DeleteTagTest extends \PHPUnit\Framework\TestCase
/**
* After each test, remove the test datastore.
*/
public function tearDown()
protected function tearDown(): void
{
@unlink(self::$testDatastore);
@unlink(self::$testHistory);
@ -150,12 +150,12 @@ class DeleteTagTest extends \PHPUnit\Framework\TestCase
/**
* Test DELETE tag endpoint: reach not existing tag.
*
* @expectedException Shaarli\Api\Exceptions\ApiTagNotFoundException
* @expectedExceptionMessage Tag not found
*/
public function testDeleteLink404()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiTagNotFoundException::class);
$this->expectExceptionMessage('Tag not found');
$tagName = 'nopenope';
$tags = $this->bookmarkService->bookmarksCountPerTag();
$this->assertFalse(isset($tags[$tagName]));

View file

@ -53,7 +53,7 @@ class GetTagNameTest extends \PHPUnit\Framework\TestCase
/**
* Before each test, instantiate a new Api with its config, plugins and bookmarks.
*/
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager('tests/utils/config/configJson');
$this->conf->set('resource.datastore', self::$testDatastore);
@ -72,7 +72,7 @@ class GetTagNameTest extends \PHPUnit\Framework\TestCase
/**
* After each test, remove the test datastore.
*/
public function tearDown()
protected function tearDown(): void
{
@unlink(self::$testDatastore);
}
@ -117,12 +117,12 @@ class GetTagNameTest extends \PHPUnit\Framework\TestCase
/**
* Test basic getTag service: get non existent tag => ApiTagNotFoundException.
*
* @expectedException Shaarli\Api\Exceptions\ApiTagNotFoundException
* @expectedExceptionMessage Tag not found
*/
public function testGetTag404()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiTagNotFoundException::class);
$this->expectExceptionMessage('Tag not found');
$env = Environment::mock([
'REQUEST_METHOD' => 'GET',
]);

View file

@ -57,7 +57,7 @@ class GetTagsTest extends \PHPUnit\Framework\TestCase
/**
* Before every test, instantiate a new Api with its config, plugins and bookmarks.
*/
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager('tests/utils/config/configJson');
$this->conf->set('resource.datastore', self::$testDatastore);
@ -78,7 +78,7 @@ class GetTagsTest extends \PHPUnit\Framework\TestCase
/**
* After every test, remove the test datastore.
*/
public function tearDown()
protected function tearDown(): void
{
@unlink(self::$testDatastore);
}

View file

@ -62,7 +62,7 @@ class PutTagTest extends \PHPUnit\Framework\TestCase
/**
* Before every test, instantiate a new Api with its config, plugins and bookmarks.
*/
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager('tests/utils/config/configJson');
$this->conf->set('resource.datastore', self::$testDatastore);
@ -84,7 +84,7 @@ class PutTagTest extends \PHPUnit\Framework\TestCase
/**
* After every test, remove the test datastore.
*/
public function tearDown()
protected function tearDown(): void
{
@unlink(self::$testDatastore);
@unlink(self::$testHistory);
@ -159,12 +159,12 @@ class PutTagTest extends \PHPUnit\Framework\TestCase
/**
* Test tag update with an empty new tag name => ApiBadParametersException
*
* @expectedException Shaarli\Api\Exceptions\ApiBadParametersException
* @expectedExceptionMessage New tag name is required in the request body
*/
public function testPutTagEmpty()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiBadParametersException::class);
$this->expectExceptionMessage('New tag name is required in the request body');
$tagName = 'gnu';
$newName = '';
@ -194,12 +194,12 @@ class PutTagTest extends \PHPUnit\Framework\TestCase
/**
* Test tag update on non existent tag => ApiTagNotFoundException.
*
* @expectedException Shaarli\Api\Exceptions\ApiTagNotFoundException
* @expectedExceptionMessage Tag not found
*/
public function testPutTag404()
{
$this->expectException(\Shaarli\Api\Exceptions\ApiTagNotFoundException::class);
$this->expectExceptionMessage('Tag not found');
$env = Environment::mock([
'REQUEST_METHOD' => 'PUT',
]);

View file

@ -47,22 +47,22 @@ class BookmarkArrayTest extends TestCase
/**
* Test adding a bad entry: wrong type
*
* @expectedException Shaarli\Bookmark\Exception\InvalidBookmarkException
*/
public function testArrayAccessAddBadEntryInstance()
{
$this->expectException(\Shaarli\Bookmark\Exception\InvalidBookmarkException::class);
$array = new BookmarkArray();
$array[] = 'nope';
}
/**
* Test adding a bad entry: no id
*
* @expectedException Shaarli\Bookmark\Exception\InvalidBookmarkException
*/
public function testArrayAccessAddBadEntryNoId()
{
$this->expectException(\Shaarli\Bookmark\Exception\InvalidBookmarkException::class);
$array = new BookmarkArray();
$bookmark = new Bookmark();
$array[] = $bookmark;
@ -70,11 +70,11 @@ class BookmarkArrayTest extends TestCase
/**
* Test adding a bad entry: no url
*
* @expectedException Shaarli\Bookmark\Exception\InvalidBookmarkException
*/
public function testArrayAccessAddBadEntryNoUrl()
{
$this->expectException(\Shaarli\Bookmark\Exception\InvalidBookmarkException::class);
$array = new BookmarkArray();
$bookmark = (new Bookmark())->setId(11);
$array[] = $bookmark;
@ -82,11 +82,11 @@ class BookmarkArrayTest extends TestCase
/**
* Test adding a bad entry: invalid offset
*
* @expectedException Shaarli\Bookmark\Exception\InvalidBookmarkException
*/
public function testArrayAccessAddBadEntryOffset()
{
$this->expectException(\Shaarli\Bookmark\Exception\InvalidBookmarkException::class);
$array = new BookmarkArray();
$bookmark = (new Bookmark())->setId(11);
$bookmark->validate();
@ -95,11 +95,11 @@ class BookmarkArrayTest extends TestCase
/**
* Test adding a bad entry: invalid ID type
*
* @expectedException Shaarli\Bookmark\Exception\InvalidBookmarkException
*/
public function testArrayAccessAddBadEntryIdType()
{
$this->expectException(\Shaarli\Bookmark\Exception\InvalidBookmarkException::class);
$array = new BookmarkArray();
$bookmark = (new Bookmark())->setId('nope');
$bookmark->validate();
@ -108,11 +108,11 @@ class BookmarkArrayTest extends TestCase
/**
* Test adding a bad entry: ID/offset not consistent
*
* @expectedException Shaarli\Bookmark\Exception\InvalidBookmarkException
*/
public function testArrayAccessAddBadEntryIdOffset()
{
$this->expectException(\Shaarli\Bookmark\Exception\InvalidBookmarkException::class);
$array = new BookmarkArray();
$bookmark = (new Bookmark())->setId(11);
$bookmark->validate();

View file

@ -66,7 +66,7 @@ class BookmarkFileServiceTest extends TestCase
*
* Resets test data for each test
*/
protected function setUp()
protected function setUp(): void
{
if (file_exists(self::$testDatastore)) {
unlink(self::$testDatastore);
@ -134,11 +134,11 @@ class BookmarkFileServiceTest extends TestCase
/**
* Test get() method for an undefined bookmark
*
* @expectedException Shaarli\Bookmark\Exception\BookmarkNotFoundException
*/
public function testGetUndefined()
{
$this->expectException(\Shaarli\Bookmark\Exception\BookmarkNotFoundException::class);
$this->privateLinkDB->get(666);
}
@ -230,13 +230,13 @@ class BookmarkFileServiceTest extends TestCase
/**
* Test add() method for a bookmark without any field set and without writing the data store
*
* @expectedExceptionMessage Shaarli\Bookmark\Exception\BookmarkNotFoundException
*/
public function testAddMinimalNoWrite()
{
$this->expectException(\Shaarli\Bookmark\Exception\BookmarkNotFoundException::class);
$bookmark = new Bookmark();
$this->privateLinkDB->add($bookmark);
$this->privateLinkDB->add($bookmark, false);
$bookmark = $this->privateLinkDB->get(43);
$this->assertEquals(43, $bookmark->getId());
@ -249,34 +249,34 @@ class BookmarkFileServiceTest extends TestCase
/**
* Test add() method while logged out
*
* @expectedException \Exception
* @expectedExceptionMessage You're not authorized to alter the datastore
*/
public function testAddLoggedOut()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('You\'re not authorized to alter the datastore');
$this->publicLinkDB->add(new Bookmark());
}
/**
* Test add() method with an entry which is not a bookmark instance
*
* @expectedException \Exception
* @expectedExceptionMessage Provided data is invalid
*/
public function testAddNotABookmark()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('Provided data is invalid');
$this->privateLinkDB->add(['title' => 'hi!']);
}
/**
* Test add() method with a Bookmark already containing an ID
*
* @expectedException \Exception
* @expectedExceptionMessage This bookmarks already exists
*/
public function testAddWithId()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('This bookmarks already exists');
$bookmark = new Bookmark();
$bookmark->setId(43);
$this->privateLinkDB->add($bookmark);
@ -397,44 +397,44 @@ class BookmarkFileServiceTest extends TestCase
/**
* Test set() method while logged out
*
* @expectedException \Exception
* @expectedExceptionMessage You're not authorized to alter the datastore
*/
public function testSetLoggedOut()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('You\'re not authorized to alter the datastore');
$this->publicLinkDB->set(new Bookmark());
}
/**
* Test set() method with an entry which is not a bookmark instance
*
* @expectedException \Exception
* @expectedExceptionMessage Provided data is invalid
*/
public function testSetNotABookmark()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('Provided data is invalid');
$this->privateLinkDB->set(['title' => 'hi!']);
}
/**
* Test set() method with a Bookmark without an ID defined.
*
* @expectedException Shaarli\Bookmark\Exception\BookmarkNotFoundException
*/
public function testSetWithoutId()
{
$this->expectException(\Shaarli\Bookmark\Exception\BookmarkNotFoundException::class);
$bookmark = new Bookmark();
$this->privateLinkDB->set($bookmark);
}
/**
* Test set() method with a Bookmark with an unknow ID
*
* @expectedException Shaarli\Bookmark\Exception\BookmarkNotFoundException
*/
public function testSetWithUnknownId()
{
$this->expectException(\Shaarli\Bookmark\Exception\BookmarkNotFoundException::class);
$bookmark = new Bookmark();
$bookmark->setId(666);
$this->privateLinkDB->set($bookmark);
@ -481,23 +481,23 @@ class BookmarkFileServiceTest extends TestCase
/**
* Test addOrSet() method while logged out
*
* @expectedException \Exception
* @expectedExceptionMessage You're not authorized to alter the datastore
*/
public function testAddOrSetLoggedOut()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('You\'re not authorized to alter the datastore');
$this->publicLinkDB->addOrSet(new Bookmark());
}
/**
* Test addOrSet() method with an entry which is not a bookmark instance
*
* @expectedException \Exception
* @expectedExceptionMessage Provided data is invalid
*/
public function testAddOrSetNotABookmark()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('Provided data is invalid');
$this->privateLinkDB->addOrSet(['title' => 'hi!']);
}
@ -524,11 +524,11 @@ class BookmarkFileServiceTest extends TestCase
/**
* Test remove() method with an existing Bookmark
*
* @expectedException Shaarli\Bookmark\Exception\BookmarkNotFoundException
*/
public function testRemoveExisting()
{
$this->expectException(\Shaarli\Bookmark\Exception\BookmarkNotFoundException::class);
$bookmark = $this->privateLinkDB->get(42);
$this->privateLinkDB->remove($bookmark);
@ -548,34 +548,34 @@ class BookmarkFileServiceTest extends TestCase
/**
* Test remove() method while logged out
*
* @expectedException \Exception
* @expectedExceptionMessage You're not authorized to alter the datastore
*/
public function testRemoveLoggedOut()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('You\'re not authorized to alter the datastore');
$bookmark = $this->privateLinkDB->get(42);
$this->publicLinkDB->remove($bookmark);
}
/**
* Test remove() method with an entry which is not a bookmark instance
*
* @expectedException \Exception
* @expectedExceptionMessage Provided data is invalid
*/
public function testRemoveNotABookmark()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('Provided data is invalid');
$this->privateLinkDB->remove(['title' => 'hi!']);
}
/**
* Test remove() method with a Bookmark with an unknown ID
*
* @expectedException Shaarli\Bookmark\Exception\BookmarkNotFoundException
*/
public function testRemoveWithUnknownId()
{
$this->expectException(\Shaarli\Bookmark\Exception\BookmarkNotFoundException::class);
$bookmark = new Bookmark();
$bookmark->setId(666);
$this->privateLinkDB->remove($bookmark);
@ -635,15 +635,15 @@ class BookmarkFileServiceTest extends TestCase
* to make sure that nothing have been broken in the migration process.
* They mostly cover search/filters. Some of them might be redundant with the previous ones.
*/
/**
* Attempt to instantiate a LinkDB whereas the datastore is not writable
*
* @expectedException Shaarli\Bookmark\Exception\NotWritableDataStoreException
* @expectedExceptionMessageRegExp #Couldn't load data from the data store file "null".*#
*/
public function testConstructDatastoreNotWriteable()
{
$this->expectExceptionMessageRegExp('#Couldn\'t load data from the data store file "null".*#');
$conf = new ConfigManager('tests/utils/config/configJson');
$conf->set('resource.datastore', 'null/store.db');
new BookmarkFileService($conf, $this->history, true);

View file

@ -213,20 +213,22 @@ class BookmarkFilterTest extends TestCase
/**
* Use an invalid date format
* @expectedException Exception
* @expectedExceptionMessageRegExp /Invalid date format/
*/
public function testFilterInvalidDayWithChars()
{
$this->expectExceptionMessageRegExp('/Invalid date format/');
self::$linkFilter->filter(BookmarkFilter::$FILTER_DAY, 'Rainy day, dream away');
}
/**
* Use an invalid date format
* @expectedException Exception
* @expectedExceptionMessageRegExp /Invalid date format/
*/
public function testFilterInvalidDayDigits()
{
$this->expectExceptionMessageRegExp('/Invalid date format/');
self::$linkFilter->filter(BookmarkFilter::$FILTER_DAY, '20');
}
@ -250,11 +252,11 @@ class BookmarkFilterTest extends TestCase
/**
* No link for this hash
*
* @expectedException \Shaarli\Bookmark\Exception\BookmarkNotFoundException
*/
public function testFilterUnknownSmallHash()
{
$this->expectException(\Shaarli\Bookmark\Exception\BookmarkNotFoundException::class);
self::$linkFilter->filter(BookmarkFilter::$FILTER_HASH, 'Iblaah');
}

View file

@ -11,7 +11,7 @@ class ConfigJsonTest extends \PHPUnit\Framework\TestCase
*/
protected $configIO;
public function setUp()
protected function setUp(): void
{
$this->configIO = new ConfigJson();
}
@ -38,12 +38,12 @@ class ConfigJsonTest extends \PHPUnit\Framework\TestCase
/**
* Read a non existent config file -> empty array.
*
* @expectedException \Exception
* @expectedExceptionMessageRegExp /An error occurred while parsing JSON configuration file \([\w\/\.]+\): error code #4/
*/
public function testReadInvalidJson()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessageRegExp(' /An error occurred while parsing JSON configuration file \\([\\w\\/\\.]+\\): error code #4/');
$this->configIO->read('tests/utils/config/configInvalid.json.php');
}
@ -110,22 +110,22 @@ class ConfigJsonTest extends \PHPUnit\Framework\TestCase
/**
* Write to invalid path.
*
* @expectedException \Shaarli\Exceptions\IOException
*/
public function testWriteInvalidArray()
{
$this->expectException(\Shaarli\Exceptions\IOException::class);
$conf = array('conf' => 'value');
@$this->configIO->write(array(), $conf);
}
/**
* Write to invalid path.
*
* @expectedException \Shaarli\Exceptions\IOException
*/
public function testWriteInvalidBlank()
{
$this->expectException(\Shaarli\Exceptions\IOException::class);
$conf = array('conf' => 'value');
@$this->configIO->write('', $conf);
}

View file

@ -14,7 +14,7 @@ class ConfigManagerTest extends \PHPUnit\Framework\TestCase
*/
protected $conf;
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager('tests/utils/config/configJson');
}
@ -95,44 +95,44 @@ class ConfigManagerTest extends \PHPUnit\Framework\TestCase
/**
* Set with an empty key.
*
* @expectedException \Exception
* @expectedExceptionMessageRegExp #^Invalid setting key parameter. String expected, got.*#
*/
public function testSetEmptyKey()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessageRegExp('#^Invalid setting key parameter. String expected, got.*#');
$this->conf->set('', 'stuff');
}
/**
* Set with an array key.
*
* @expectedException \Exception
* @expectedExceptionMessageRegExp #^Invalid setting key parameter. String expected, got.*#
*/
public function testSetArrayKey()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessageRegExp('#^Invalid setting key parameter. String expected, got.*#');
$this->conf->set(array('foo' => 'bar'), 'stuff');
}
/**
* Remove with an empty key.
*
* @expectedException \Exception
* @expectedExceptionMessageRegExp #^Invalid setting key parameter. String expected, got.*#
*/
public function testRmoveEmptyKey()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessageRegExp('#^Invalid setting key parameter. String expected, got.*#');
$this->conf->remove('');
}
/**
* Try to write the config without mandatory parameter (e.g. 'login').
*
* @expectedException Shaarli\Config\Exception\MissingFieldConfigException
*/
public function testWriteMissingParameter()
{
$this->expectException(\Shaarli\Config\Exception\MissingFieldConfigException::class);
$this->conf->setConfigFile('tests/utils/config/configTmp');
$this->assertFalse(file_exists($this->conf->getConfigFileExt()));
$this->conf->reload();

View file

@ -15,7 +15,7 @@ class ConfigPhpTest extends \PHPUnit\Framework\TestCase
*/
protected $configIO;
public function setUp()
protected function setUp(): void
{
$this->configIO = new ConfigPhp();
}

View file

@ -46,11 +46,11 @@ class ConfigPluginTest extends \PHPUnit\Framework\TestCase
/**
* Test save_plugin_config with invalid data.
*
* @expectedException Shaarli\Config\Exception\PluginConfigOrderException
*/
public function testSavePluginConfigInvalid()
{
$this->expectException(\Shaarli\Config\Exception\PluginConfigOrderException::class);
$data = array(
'plugin2' => 0,
'plugin3' => 0,

View file

@ -17,7 +17,7 @@ class CachedPageTest extends \PHPUnit\Framework\TestCase
/**
* Create the cache directory if needed
*/
public static function setUpBeforeClass()
public static function setUpBeforeClass(): void
{
if (!is_dir(self::$testCacheDir)) {
mkdir(self::$testCacheDir);
@ -28,7 +28,7 @@ class CachedPageTest extends \PHPUnit\Framework\TestCase
/**
* Reset the page cache
*/
public function setUp()
protected function setUp(): void
{
if (file_exists(self::$filename)) {
unlink(self::$filename);

View file

@ -25,7 +25,7 @@ class BookmarkDefaultFormatterTest extends TestCase
/**
* Initialize formatter instance.
*/
public function setUp()
protected function setUp(): void
{
copy('tests/utils/config/configJson.json.php', self::$testConf .'.json.php');
$this->conf = new ConfigManager(self::$testConf);

View file

@ -25,7 +25,7 @@ class BookmarkMarkdownFormatterTest extends TestCase
/**
* Initialize formatter instance.
*/
public function setUp()
protected function setUp(): void
{
copy('tests/utils/config/configJson.json.php', self::$testConf .'.json.php');
$this->conf = new ConfigManager(self::$testConf);

View file

@ -25,7 +25,7 @@ class BookmarkRawFormatterTest extends TestCase
/**
* Initialize formatter instance.
*/
public function setUp()
protected function setUp(): void
{
copy('tests/utils/config/configJson.json.php', self::$testConf .'.json.php');
$this->conf = new ConfigManager(self::$testConf);

View file

@ -24,7 +24,7 @@ class FormatterFactoryTest extends TestCase
/**
* Initialize FormatterFactory instance
*/
public function setUp()
protected function setUp(): void
{
copy('tests/utils/config/configJson.json.php', self::$testConf .'.json.php');
$this->conf = new ConfigManager(self::$testConf);

View file

@ -27,7 +27,7 @@ class LanguagesFrTest extends \PHPUnit\Framework\TestCase
/**
* Init: force French
*/
public function setUp()
protected function setUp(): void
{
$this->conf = new ConfigManager(self::$configFile);
$this->conf->set('translation.language', 'fr');
@ -36,7 +36,7 @@ class LanguagesFrTest extends \PHPUnit\Framework\TestCase
/**
* Reset the locale since gettext seems to mess with it, making it too long
*/
public static function tearDownAfterClass()
public static function tearDownAfterClass(): void
{
if (! empty(getenv('UT_LOCALE'))) {
setlocale(LC_ALL, getenv('UT_LOCALE'));

View file

@ -52,7 +52,7 @@ class LegacyLinkDBTest extends \PHPUnit\Framework\TestCase
*
* Resets test data for each test
*/
protected function setUp()
protected function setUp(): void
{
if (file_exists(self::$testDatastore)) {
unlink(self::$testDatastore);
@ -101,10 +101,11 @@ class LegacyLinkDBTest extends \PHPUnit\Framework\TestCase
* Attempt to instantiate a LinkDB whereas the datastore is not writable
*
* @expectedException Shaarli\Exceptions\IOException
* @expectedExceptionMessageRegExp /Error accessing "null"/
*/
public function testConstructDatastoreNotWriteable()
{
$this->expectExceptionMessageRegExp('/Error accessing "null"/');
new LegacyLinkDB('null/store.db', false, false);
}
@ -420,22 +421,22 @@ class LegacyLinkDBTest extends \PHPUnit\Framework\TestCase
/**
* Test filterHash() with an invalid smallhash.
*
* @expectedException \Shaarli\Bookmark\Exception\BookmarkNotFoundException
*/
public function testFilterHashInValid1()
{
$this->expectException(\Shaarli\Bookmark\Exception\BookmarkNotFoundException::class);
$request = 'blabla';
self::$publicLinkDB->filterHash($request);
}
/**
* Test filterHash() with an empty smallhash.
*
* @expectedException \Shaarli\Bookmark\Exception\BookmarkNotFoundException
*/
public function testFilterHashInValid()
{
$this->expectException(\Shaarli\Bookmark\Exception\BookmarkNotFoundException::class);
self::$publicLinkDB->filterHash('');
}

View file

@ -34,7 +34,7 @@ class LegacyLinkFilterTest extends \PHPUnit\Framework\TestCase
/**
* Instantiate linkFilter with ReferenceLinkDB data.
*/
public static function setUpBeforeClass()
public static function setUpBeforeClass(): void
{
self::$refDB = new ReferenceLinkDB(true);
self::$refDB->write(self::$testDatastore);
@ -198,20 +198,22 @@ class LegacyLinkFilterTest extends \PHPUnit\Framework\TestCase
/**
* Use an invalid date format
* @expectedException Exception
* @expectedExceptionMessageRegExp /Invalid date format/
*/
public function testFilterInvalidDayWithChars()
{
$this->expectExceptionMessageRegExp('/Invalid date format/');
self::$linkFilter->filter(LegacyLinkFilter::$FILTER_DAY, 'Rainy day, dream away');
}
/**
* Use an invalid date format
* @expectedException Exception
* @expectedExceptionMessageRegExp /Invalid date format/
*/
public function testFilterInvalidDayDigits()
{
$this->expectExceptionMessageRegExp('/Invalid date format/');
self::$linkFilter->filter(LegacyLinkFilter::$FILTER_DAY, '20');
}
@ -235,11 +237,11 @@ class LegacyLinkFilterTest extends \PHPUnit\Framework\TestCase
/**
* No link for this hash
*
* @expectedException \Shaarli\Bookmark\Exception\BookmarkNotFoundException
*/
public function testFilterUnknownSmallHash()
{
$this->expectException(\Shaarli\Bookmark\Exception\BookmarkNotFoundException::class);
self::$linkFilter->filter(LegacyLinkFilter::$FILTER_HASH, 'Iblaah');
}

View file

@ -40,7 +40,7 @@ class LegacyUpdaterTest extends \PHPUnit\Framework\TestCase
/**
* Executed before each test.
*/
public function setUp()
protected function setUp(): void
{
copy('tests/utils/config/configJson.json.php', self::$configFile .'.json.php');
$this->conf = new ConfigManager(self::$configFile);
@ -82,10 +82,11 @@ class LegacyUpdaterTest extends \PHPUnit\Framework\TestCase
* Test errors in UpdaterUtils::write_updates_file(): empty updates file.
*
* @expectedException Exception
* @expectedExceptionMessageRegExp /Updates file path is not set(.*)/
*/
public function testWriteEmptyUpdatesFile()
{
$this->expectExceptionMessageRegExp('/Updates file path is not set(.*)/');
UpdaterUtils::write_updates_file('', array('test'));
}
@ -93,10 +94,11 @@ class LegacyUpdaterTest extends \PHPUnit\Framework\TestCase
* Test errors in UpdaterUtils::write_updates_file(): not writable updates file.
*
* @expectedException Exception
* @expectedExceptionMessageRegExp /Unable to write(.*)/
*/
public function testWriteUpdatesFileNotWritable()
{
$this->expectExceptionMessageRegExp('/Unable to write(.*)/');
$updatesFile = $this->conf->get('resource.data_dir') . '/updates.txt';
touch($updatesFile);
chmod($updatesFile, 0444);
@ -161,11 +163,11 @@ class LegacyUpdaterTest extends \PHPUnit\Framework\TestCase
/**
* Test Update failed.
*
* @expectedException \Exception
*/
public function testUpdateFailed()
{
$this->expectException(\Exception::class);
$updates = array(
'updateMethodDummy1',
'updateMethodDummy2',
@ -754,7 +756,7 @@ $GLOBALS[\'privateLinkByDefault\'] = true;';
if (isset($_SESSION['warnings'])) {
unset($_SESSION['warnings']);
}
$updater = new LegacyUpdater([], [], $this->conf, true, $_SESSION);
$this->assertTrue($updater->updateMethodWebThumbnailer());
$this->assertFalse($this->conf->exists('thumbnail'));

View file

@ -54,7 +54,7 @@ class BookmarkExportTest extends TestCase
/**
* Instantiate reference data
*/
public static function setUpBeforeClass()
public static function setUpBeforeClass(): void
{
static::$conf = new ConfigManager('tests/utils/config/configJson');
static::$conf->set('resource.datastore', static::$testDatastore);
@ -78,10 +78,11 @@ class BookmarkExportTest extends TestCase
/**
* Attempt to export an invalid link selection
* @expectedException Exception
* @expectedExceptionMessageRegExp /Invalid export selection/
*/
public function testFilterAndFormatInvalid()
{
$this->expectExceptionMessageRegExp('/Invalid export selection/');
$this->netscapeBookmarkUtils->filterAndFormat(
self::$formatter,
'derp',

View file

@ -75,7 +75,7 @@ class BookmarkImportTest extends TestCase
*/
protected static $defaultTimeZone;
public static function setUpBeforeClass()
public static function setUpBeforeClass(): void
{
self::$defaultTimeZone = date_default_timezone_get();
// Timezone without DST for test consistency
@ -85,7 +85,7 @@ class BookmarkImportTest extends TestCase
/**
* Resets test data before each test
*/
protected function setUp()
protected function setUp(): void
{
if (file_exists(self::$testDatastore)) {
unlink(self::$testDatastore);
@ -104,12 +104,12 @@ class BookmarkImportTest extends TestCase
/**
* Delete history file.
*/
public function tearDown()
protected function tearDown(): void
{
@unlink(self::$historyFilePath);
}
public static function tearDownAfterClass()
public static function tearDownAfterClass(): void
{
date_default_timezone_set(self::$defaultTimeZone);
}

View file

@ -14,7 +14,7 @@ class PluginAddlinkTest extends \PHPUnit\Framework\TestCase
/**
* Reset plugin path.
*/
public function setUp()
protected function setUp(): void
{
PluginManager::$PLUGINS_PATH = 'plugins';
}

View file

@ -19,7 +19,7 @@ class PluginDefaultColorsTest extends TestCase
/**
* Reset plugin path
*/
public function setUp()
protected function setUp(): void
{
PluginManager::$PLUGINS_PATH = 'sandbox';
mkdir(PluginManager::$PLUGINS_PATH . '/default_colors/');
@ -32,7 +32,7 @@ class PluginDefaultColorsTest extends TestCase
/**
* Remove sandbox files and folder
*/
public function tearDown()
protected function tearDown(): void
{
if (file_exists('sandbox/default_colors/default_colors.css.template')) {
unlink('sandbox/default_colors/default_colors.css.template');

View file

@ -19,7 +19,7 @@ class PluginPlayvideosTest extends \PHPUnit\Framework\TestCase
/**
* Reset plugin path
*/
public function setUp()
protected function setUp(): void
{
PluginManager::$PLUGINS_PATH = 'plugins';
}

View file

@ -21,7 +21,7 @@ class PluginPubsubhubbubTest extends \PHPUnit\Framework\TestCase
/**
* Reset plugin path
*/
public function setUp()
protected function setUp(): void
{
PluginManager::$PLUGINS_PATH = 'plugins';
}

View file

@ -19,7 +19,7 @@ class PluginQrcodeTest extends \PHPUnit\Framework\TestCase
/**
* Reset plugin path
*/
public function setUp()
protected function setUp(): void
{
PluginManager::$PLUGINS_PATH = 'plugins';
}

View file

@ -15,7 +15,7 @@ class PluginWallabagTest extends \PHPUnit\Framework\TestCase
/**
* Reset plugin path
*/
public function setUp()
protected function setUp(): void
{
PluginManager::$PLUGINS_PATH = 'plugins';
}

View file

@ -14,7 +14,7 @@ class WallabagInstanceTest extends \PHPUnit\Framework\TestCase
/**
* Reset plugin path
*/
public function setUp()
protected function setUp(): void
{
$this->instance = 'http://some.url';
}

View file

@ -29,7 +29,7 @@ class PageCacheManagerTest extends TestCase
/**
* Populate the cache with dummy files
*/
public function setUp()
protected function setUp(): void
{
$this->cacheManager = new PageCacheManager(static::$testCacheDir, true);
@ -48,7 +48,7 @@ class PageCacheManagerTest extends TestCase
/**
* Remove dummycache folder after each tests.
*/
public function tearDown()
protected function tearDown(): void
{
array_map('unlink', glob(self::$testCacheDir . '/*'));
rmdir(self::$testCacheDir);

View file

@ -32,7 +32,7 @@ class BanManagerTest extends TestCase
/**
* Prepare or reset test resources
*/
public function setUp()
protected function setUp(): void
{
if (file_exists($this->banFile)) {
unlink($this->banFile);

View file

@ -63,7 +63,7 @@ class LoginManagerTest extends TestCase
/**
* Prepare or reset test resources
*/
public function setUp()
protected function setUp(): void
{
if (file_exists($this->banFile)) {
unlink($this->banFile);

View file

@ -24,7 +24,7 @@ class SessionManagerTest extends TestCase
/**
* Assign reference data
*/
public static function setUpBeforeClass()
public static function setUpBeforeClass(): void
{
self::$sidHashes = \ReferenceSessionIdHashes::getHashes();
}
@ -32,7 +32,7 @@ class SessionManagerTest extends TestCase
/**
* Initialize or reset test resources
*/
public function setUp()
protected function setUp(): void
{
$this->conf = new \FakeConfigManager([
'credentials.login' => 'johndoe',

View file

@ -42,7 +42,7 @@ class UpdaterTest extends TestCase
/**
* Executed before each test.
*/
public function setUp()
protected function setUp(): void
{
$this->refDB = new \ReferenceLinkDB();
$this->refDB->write(self::$testDatastore);
@ -89,10 +89,11 @@ class UpdaterTest extends TestCase
* Test errors in UpdaterUtils::write_updates_file(): empty updates file.
*
* @expectedException Exception
* @expectedExceptionMessageRegExp /Updates file path is not set(.*)/
*/
public function testWriteEmptyUpdatesFile()
{
$this->expectExceptionMessageRegExp('/Updates file path is not set(.*)/');
UpdaterUtils::write_updates_file('', array('test'));
}
@ -100,10 +101,11 @@ class UpdaterTest extends TestCase
* Test errors in UpdaterUtils::write_updates_file(): not writable updates file.
*
* @expectedException Exception
* @expectedExceptionMessageRegExp /Unable to write(.*)/
*/
public function testWriteUpdatesFileNotWritable()
{
$this->expectExceptionMessageRegExp('/Unable to write(.*)/');
$updatesFile = $this->conf->get('resource.data_dir') . '/updates.txt';
touch($updatesFile);
chmod($updatesFile, 0444);
@ -168,11 +170,11 @@ class UpdaterTest extends TestCase
/**
* Test Update failed.
*
* @expectedException \Exception
*/
public function testUpdateFailed()
{
$this->expectException(\Exception::class);
$updates = array(
'updateMethodDummy1',
'updateMethodDummy2',