diff options
author | Chih-Hsuan Yen <[email protected]> | 2022-07-02 22:01:51 +0800 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2022-07-12 22:23:48 +0300 |
commit | 4b6161892000cb2b8392dce92a9cf2cabdf2d20e (patch) | |
tree | 5cad602010e4d13e1a48d6b922d4768c0893ac8b /vendor/chillerlan/php-qrcode/tests/Output/QRMarkupTest.php | |
parent | d9861038bcc3cb2f38c7153bdca7d5ab89597afa (diff) |
Update php-qrcode and php-settings-container for PHP 8.1
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
Diffstat (limited to 'vendor/chillerlan/php-qrcode/tests/Output/QRMarkupTest.php')
-rw-r--r-- | vendor/chillerlan/php-qrcode/tests/Output/QRMarkupTest.php | 64 |
1 files changed, 22 insertions, 42 deletions
diff --git a/vendor/chillerlan/php-qrcode/tests/Output/QRMarkupTest.php b/vendor/chillerlan/php-qrcode/tests/Output/QRMarkupTest.php index 24fdc3ce6..cc18077d5 100644 --- a/vendor/chillerlan/php-qrcode/tests/Output/QRMarkupTest.php +++ b/vendor/chillerlan/php-qrcode/tests/Output/QRMarkupTest.php @@ -12,13 +12,27 @@ namespace chillerlan\QRCodeTest\Output; -use chillerlan\QRCode\{QRCode, Output\QRMarkup}; +use chillerlan\QRCode\{QRCode, QROptions}; +use chillerlan\QRCode\Output\{QROutputInterface, QRMarkup}; +/** + * Tests the QRMarkup output module + */ class QRMarkupTest extends QROutputTestAbstract{ - protected $FQCN = QRMarkup::class; + /** + * @inheritDoc + * @internal + */ + protected function getOutputInterface(QROptions $options):QROutputInterface{ + return new QRMarkup($options, $this->matrix); + } - public function types(){ + /** + * @inheritDoc + * @internal + */ + public function types():array{ return [ 'html' => [QRCode::OUTPUT_MARKUP_HTML], 'svg' => [QRCode::OUTPUT_MARKUP_SVG], @@ -26,43 +40,9 @@ class QRMarkupTest extends QROutputTestAbstract{ } /** - * @dataProvider types - * @param $type - */ - public function testMarkupOutputFile($type){ - $this->options->outputType = $type; - $this->options->cachefile = $this::cachefile.$type; - $this->setOutputInterface(); - $data = $this->outputInterface->dump(); - - $this->assertSame($data, file_get_contents($this->options->cachefile)); - } - - /** - * @dataProvider types - * @param $type + * @inheritDoc */ - public function testMarkupOutput($type){ - $this->options->imageBase64 = false; - $this->options->outputType = $type; - $this->setOutputInterface(); - - $expected = explode($this->options->eol, file_get_contents($this::cachefile.$type)); - // cut off the doctype & head - array_shift($expected); - - if($type === QRCode::OUTPUT_MARKUP_HTML){ - // cut off the </body> tag - array_pop($expected); - } - - $expected = implode($this->options->eol, $expected); - - $this->assertSame(trim($expected), trim($this->outputInterface->dump())); - } - - public function testSetModuleValues(){ - + public function testSetModuleValues():void{ $this->options->imageBase64 = false; $this->options->moduleValues = [ // data @@ -70,10 +50,10 @@ class QRMarkupTest extends QROutputTestAbstract{ 4 => '#ECF9BE', ]; - $this->setOutputInterface(); + $this->outputInterface = $this->getOutputInterface($this->options); $data = $this->outputInterface->dump(); - $this->assertStringContainsString('#4A6000', $data); - $this->assertStringContainsString('#ECF9BE', $data); + $this::assertStringContainsString('#4A6000', $data); + $this::assertStringContainsString('#ECF9BE', $data); } } |