4b61618920
By running the following command after updating composer.json ``` composer update chillerlan/php-qrcode chillerlan/php-settings-container ``` This change fixes a deprecation warning from Preferences -> Personal data / Authentication -> Authenticator (OTP). ``` Return type of chillerlan\Settings\SettingsContainerAbstract::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice 1. vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php(19): ttrss_error_handler(Return type of chillerlan\Settings\SettingsContainerAbstract::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice, vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php) 2. vendor/composer/ClassLoader.php(571): include(/usr/share/webapps/tt-rss/vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php) 3. vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile(/usr/share/webapps/tt-rss/vendor/composer/../chillerlan/php-settings-container/src/SettingsContainerAbstract.php) 4. vendor/chillerlan/php-qrcode/src/QROptions.php(59): loadClass(chillerlan\Settings\SettingsContainerAbstract) 5. vendor/composer/ClassLoader.php(571): include(/usr/share/webapps/tt-rss/vendor/chillerlan/php-qrcode/src/QROptions.php) 6. vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile(/usr/share/webapps/tt-rss/vendor/composer/../chillerlan/php-qrcode/src/QROptions.php) 7. vendor/chillerlan/php-qrcode/src/QRCode.php(113): loadClass(chillerlan\QRCode\QROptions) 8. classes/pref/prefs.php(958): __construct() 9. classes/pref/prefs.php(469): _get_otp_qrcode_img() 10. classes/pref/prefs.php(541): index_auth_2fa() 11. backend.php(136): index_auth() ``` The issue is fixed in php-settings-container 2.1.1 [1] Here I use the latest php-qrcode version for another PHP 8.1 fix [2]. [1] https://github.com/chillerlan/php-settings-container/commit/68bc5019c8b38956c83906431ef879668366b036#diff-359c7f7a6d32d9935951e1b0742eb116fb654f4a932c8d40328bb5dcab2fa111L162 [2] https://github.com/chillerlan/php-qrcode/issues/97
62 lines
1.5 KiB
PHP
62 lines
1.5 KiB
PHP
<?php
|
|
/**
|
|
* Class NumberTest
|
|
*
|
|
* @filesource NumberTest.php
|
|
* @created 24.11.2017
|
|
* @package chillerlan\QRCodeTest\Data
|
|
* @author Smiley <smiley@chillerlan.net>
|
|
* @copyright 2017 Smiley
|
|
* @license MIT
|
|
*/
|
|
|
|
namespace chillerlan\QRCodeTest\Data;
|
|
|
|
use chillerlan\QRCode\QROptions;
|
|
use chillerlan\QRCode\Data\{Number, QRCodeDataException, QRDataInterface};
|
|
|
|
/**
|
|
* Tests the Number class
|
|
*/
|
|
final class NumberTest extends DatainterfaceTestAbstract{
|
|
|
|
/** @internal */
|
|
protected string $testdata = '0123456789';
|
|
|
|
/** @internal */
|
|
protected array $expected = [
|
|
16, 40, 12, 86, 106, 105, 0, 236,
|
|
17, 236, 17, 236, 17, 236, 17, 236,
|
|
17, 236, 17, 236, 17, 236, 17, 236,
|
|
17, 236, 17, 236, 17, 236, 17, 236,
|
|
17, 236, 17, 236, 17, 236, 17, 236,
|
|
17, 236, 17, 236, 17, 236, 17, 236,
|
|
17, 236, 17, 236, 17, 236, 17, 236,
|
|
17, 236, 17, 236, 17, 236, 17, 236,
|
|
17, 236, 17, 236, 17, 236, 17, 236,
|
|
17, 236, 17, 236, 17, 236, 17, 236,
|
|
201, 141, 102, 116, 238, 162, 239, 230,
|
|
222, 37, 79, 192, 42, 109, 188, 72,
|
|
89, 63, 168, 151
|
|
];
|
|
|
|
/**
|
|
* @inheritDoc
|
|
* @internal
|
|
*/
|
|
protected function getDataInterfaceInstance(QROptions $options):QRDataInterface{
|
|
return new Number($options);
|
|
}
|
|
|
|
/**
|
|
* Tests if an exception is thrown when an invalid character is encountered
|
|
*/
|
|
public function testGetCharCodeException():void{
|
|
$this->expectException(QRCodeDataException::class);
|
|
$this->expectExceptionMessage('illegal char: "#" [35]');
|
|
|
|
$this->dataInterface->setData('#');
|
|
}
|
|
|
|
}
|