Add basic set of tests and cgl

This commit is contained in:
Daniel Siepmann 2023-02-16 09:57:36 +01:00
parent 98f2b208d6
commit a35d7502ca
Signed by: Daniel Siepmann
GPG key ID: 33D6629915560EF4
11 changed files with 3158 additions and 9 deletions

13
.php-cs-fixer.dist.php Normal file
View file

@ -0,0 +1,13 @@
<?php
$finder = PhpCsFixer\Finder::create()->in('src', 'tests');
$config = new PhpCsFixer\Config();
return $config->setRules([
'@PSR12' => true,
'strict_param' => true,
'array_syntax' => ['syntax' => 'short'],
])
->setFinder($finder)
;

View file

@ -14,10 +14,16 @@
"DanielSiepmann\\FediverseFeedWrappers\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"DanielSiepmann\\FediverseFeedWrappers\\Tests\\": "tests/"
}
},
"require": {
"php": "8.2.*"
},
"require-dev": {
"phpunit/phpunit": "^10.0"
"phpunit/phpunit": "^10.0",
"friendsofphp/php-cs-fixer": "^3.14"
}
}

1970
composer.lock generated

File diff suppressed because it is too large Load diff

27
phpunit.xml.dist Normal file
View file

@ -0,0 +1,27 @@
<?xml version="1.0"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.0/phpunit.xsd"
backupGlobals="false"
colors="true"
processIsolation="false"
stopOnError="false"
stopOnFailure="false"
stopOnIncomplete="false"
stopOnSkipped="false"
cacheDirectory=".phpunit.cache"
backupStaticProperties="false"
requireCoverageMetadata="false"
>
<testsuites>
<testsuite name="unit">
<directory>tests/Unit/</directory>
</testsuite>
</testsuites>
<coverage>
<include>
<directory suffix=".php">src</directory>
</include>
</coverage>
</phpunit>

View file

@ -6,9 +6,21 @@ let
runtimeInputs = [
pkgs.php82
pkgs.php82Packages.composer
projectTest
];
text = ''
composer install --working-dir="$PROJECT_ROOT"
project-test
'';
};
projectTest = pkgs.writeShellApplication {
name = "project-test";
runtimeInputs = [
pkgs.php82
];
text = ''
./vendor/bin/phpunit
./vendor/bin/php-cs-fixer fix --dry-run --allow-risky=yes
'';
};
projectDeploy = pkgs.writeShellApplication {
@ -53,11 +65,13 @@ in pkgs.mkShell {
pkgs.php82
pkgs.php82Packages.composer
projectInstall
projectTest
projectDeploy
];
shellHook = ''
export PROJECT_ROOT="$(pwd)"
export PATH="$(pwd)/:$PATH"
export PHP_CS_FIXER_IGNORE_ENV=1
'';
}

View file

@ -28,6 +28,14 @@ use DanielSiepmann\FediverseFeedWrappers\WrapperInterface;
class GitHubTypo3 implements WrapperInterface
{
private string $url;
public function __construct(
string $url = 'https://github.com/TYPO3/typo3/commits.atom'
) {
$this->url = $url;
}
/**
* We don't want the full commit messag within each feed item.
*
@ -37,13 +45,10 @@ class GitHubTypo3 implements WrapperInterface
public function handle(): string
{
$content = new DOMDocument();
$content->loadXML(file_get_contents('https://github.com/TYPO3/typo3/commits.atom'));
$content->loadXML(file_get_contents($this->url));
$itemContentElements = $content->getElementsByTagName('content');
foreach ($itemContentElements as $itemContent) {
$itemContent->nodeValue = strip_tags(
strtok($itemContent->textContent, "\n") ?: ''
);
foreach ($content->getElementsByTagName('entry') as $entry) {
$entry->getElementsByTagName('content')[0]->nodeValue = trim($entry->getElementsByTagName('title')[0]->textContent);
}
return $content->saveXML();

View file

@ -49,7 +49,7 @@ class WrapperRegistry
sprintf(
'No wrapper found for "%s", only available: %s.',
$identifier,
implode(array_keys($this->wrappers))
implode(', ', array_keys($this->wrappers))
),
1676531371
);

View file

@ -0,0 +1,274 @@
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xml:lang="en-US">
<id>tag:github.com,2008:/TYPO3/typo3/commits/main</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commits/main"/>
<link type="application/atom+xml" rel="self" href="https://github.com/TYPO3/typo3/commits/main.atom"/>
<title>Recent Commits to typo3:main</title>
<updated>2023-02-15T21:00:05Z</updated>
<entry>
<id>tag:github.com,2008:Grit::Commit/da1469bbba1213494661dd166591f81d2bfbd7b7</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/da1469bbba1213494661dd166591f81d2bfbd7b7"/>
<title>
[BUGFIX] Fix capitalization in recordlist heading
</title>
<updated>2023-02-15T21:00:05Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/2861556?s=30&amp;v=4"/>
<author>
<name>josefglatz</name>
<uri>https://github.com/josefglatz</uri>
</author>
<content type="html">[BUGFIX] Fix capitalization in recordlist heading</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/4936022b6a37dd9daa6f9fffd596caa40b16944b</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/4936022b6a37dd9daa6f9fffd596caa40b16944b"/>
<title>
[BUGFIX] Fix typo for a fe_users language key
</title>
<updated>2023-02-15T16:25:02Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/19343425?s=30&amp;v=4"/>
<author>
<name>nhovratov</name>
<uri>https://github.com/nhovratov</uri>
</author>
<content type="html">[BUGFIX] Fix typo for a fe_users language key</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/6797361e3272171f38afdcc6ef9f3bfc393a02d9</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/6797361e3272171f38afdcc6ef9f3bfc393a02d9"/>
<title>
[BUGFIX] Add type cast for potential mountpoint information
</title>
<updated>2023-02-15T15:59:05Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/1905663?s=30&amp;v=4"/>
<author>
<name>georgringer</name>
<uri>https://github.com/georgringer</uri>
</author>
<content type="html">[BUGFIX] Add type cast for potential mountpoint information</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/2115fe399dea3e8f8d134dcd02f854a5147d9de1</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/2115fe399dea3e8f8d134dcd02f854a5147d9de1"/>
<title>
[BUGFIX] Get the correct next stage for moved elements in workspace
</title>
<updated>2023-02-15T15:58:23Z</updated>
<media:thumbnail height="30" width="30" url="https://1.gravatar.com/avatar/861635eb7fa03a9c060a500e14864d76?d=https%3A%2F%2Fgithub.githubassets.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png&amp;r=g&amp;s=30"/>
<author>
<name/>
<email>typo3@timhorstmann.de</email>
</author>
<content type="html">[BUGFIX] Get the correct next stage for moved elements in workspace</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/953b80055f67d5753d7ef142ace3c49f042209f4</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/953b80055f67d5753d7ef142ace3c49f042209f4"/>
<title>
[BUGFIX] Position sidebar in image cropping correctly on the right
</title>
<updated>2023-02-15T15:41:03Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/4623070?s=30&amp;v=4"/>
<author>
<name>ochorocho</name>
<uri>https://github.com/ochorocho</uri>
</author>
<content type="html">[BUGFIX] Position sidebar in image cropping correctly on the right</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/3b1089c8594d4d1638939b0bb7bb5e67c37e8795</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/3b1089c8594d4d1638939b0bb7bb5e67c37e8795"/>
<title>
[TASK] Refine LiveSearch form behavior
</title>
<updated>2023-02-15T15:09:45Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/1787983?s=30&amp;v=4"/>
<author>
<name>andreasfernandez</name>
<uri>https://github.com/andreasfernandez</uri>
</author>
<content type="html">[TASK] Refine LiveSearch form behavior</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/ec8d82c39732903e07677755116ef70e1c670d6c</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/ec8d82c39732903e07677755116ef70e1c670d6c"/>
<title>
[TASK] Move PageTsBackendLayoutDataProvider namespace
</title>
<updated>2023-02-15T12:31:49Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/2178068?s=30&amp;v=4"/>
<author>
<name>lolli42</name>
<uri>https://github.com/lolli42</uri>
</author>
<content type="html">[TASK] Move PageTsBackendLayoutDataProvider namespace</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/e0ba68e2629383b3174c02d4f246cd675d1af3cf</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/e0ba68e2629383b3174c02d4f246cd675d1af3cf"/>
<title>
[BUGFIX] Handle FormData passed to AjaxRequest API properly
</title>
<updated>2023-02-15T12:06:58Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/1787983?s=30&amp;v=4"/>
<author>
<name>andreasfernandez</name>
<uri>https://github.com/andreasfernandez</uri>
</author>
<content type="html">[BUGFIX] Handle FormData passed to AjaxRequest API properly</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/7e57642c91aacbb1a1ad16895caf1cad1f504156</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/7e57642c91aacbb1a1ad16895caf1cad1f504156"/>
<title>
[TASK] Avoid GU::_GP() in DataHandler
</title>
<updated>2023-02-15T12:05:11Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/2178068?s=30&amp;v=4"/>
<author>
<name>lolli42</name>
<uri>https://github.com/lolli42</uri>
</author>
<content type="html">[TASK] Avoid GU::_GP() in DataHandler</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/51bef53fe5775b0708155921080ccbe66952cc3e</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/51bef53fe5775b0708155921080ccbe66952cc3e"/>
<title>
[TASK] Avoid GU::_GP() in PageTsBackendLayoutDataProvider
</title>
<updated>2023-02-15T11:29:02Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/2178068?s=30&amp;v=4"/>
<author>
<name>lolli42</name>
<uri>https://github.com/lolli42</uri>
</author>
<content type="html">[TASK] Avoid GU::_GP() in PageTsBackendLayoutDataProvider</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/773c4f581b17a96e9cc17436d546385100c72f81</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/773c4f581b17a96e9cc17436d546385100c72f81"/>
<title>
[TASK] Add delete action for usergroup list
</title>
<updated>2023-02-15T10:17:08Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/4623070?s=30&amp;v=4"/>
<author>
<name>ochorocho</name>
<uri>https://github.com/ochorocho</uri>
</author>
<content type="html">[TASK] Add delete action for usergroup list</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/32dc37fe7d61990fb74cc3d559089576439e4c7f</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/32dc37fe7d61990fb74cc3d559089576439e4c7f"/>
<title>
[BUGFIX] Guard ConstantEditor with copy operator in constants
</title>
<updated>2023-02-14T12:13:44Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/1453466?s=30&amp;v=4"/>
<author>
<name>sbuerk</name>
<uri>https://github.com/sbuerk</uri>
</author>
<content type="html">[BUGFIX] Guard ConstantEditor with copy operator in constants</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/c3c61edff0983a99d30d6cbc32ef0b2cb29661cb</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/c3c61edff0983a99d30d6cbc32ef0b2cb29661cb"/>
<title>
[TASK] Deprecate PageRenderer-&gt;enableDebugMode()
</title>
<updated>2023-02-14T11:25:55Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/1925287?s=30&amp;v=4"/>
<author>
<name>maddy2101</name>
<uri>https://github.com/maddy2101</uri>
</author>
<content type="html">[TASK] Deprecate PageRenderer-&gt;enableDebugMode()</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/68d67171c1d9a61e0d056ae849aa0c1db4ba6eda</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/68d67171c1d9a61e0d056ae849aa0c1db4ba6eda"/>
<title>
[TASK] Deprecate the limit parameter for GU::intExplode
</title>
<updated>2023-02-14T10:09:09Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/765746?s=30&amp;v=4"/>
<author>
<name>oliverklee</name>
<uri>https://github.com/oliverklee</uri>
</author>
<content type="html">[TASK] Deprecate the limit parameter for GU::intExplode</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/0a9b218aadbb772e1c37f9ca0b446bd6c1648542</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/0a9b218aadbb772e1c37f9ca0b446bd6c1648542"/>
<title>
[TASK] Refine LiveSearch search demand
</title>
<updated>2023-02-14T08:46:18Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/1787983?s=30&amp;v=4"/>
<author>
<name>andreasfernandez</name>
<uri>https://github.com/andreasfernandez</uri>
</author>
<content type="html">[TASK] Refine LiveSearch search demand</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/26ca6872684ccc469a9e2981cb8cf3bb83134d12</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/26ca6872684ccc469a9e2981cb8cf3bb83134d12"/>
<title>
[BUGFIX] Toolbar link to environment opens in iframe
</title>
<updated>2023-02-13T18:28:45Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/2178068?s=30&amp;v=4"/>
<author>
<name>lolli42</name>
<uri>https://github.com/lolli42</uri>
</author>
<content type="html">[BUGFIX] Toolbar link to environment opens in iframe</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/614e15d76087e775b965c4fb6e5e4ae59692c128</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/614e15d76087e775b965c4fb6e5e4ae59692c128"/>
<title>
[TASK] Make extbase repository generic (phpstan-wise)
</title>
<updated>2023-02-13T18:27:52Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/711459?s=30&amp;v=4"/>
<author>
<name>alexanderschnitzler</name>
<uri>https://github.com/alexanderschnitzler</uri>
</author>
<content type="html">[TASK] Make extbase repository generic (phpstan-wise)</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/f54531dad88addc4639f09b4cc37228524156d0c</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/f54531dad88addc4639f09b4cc37228524156d0c"/>
<title>
[TASK] Eliminate double serialization in ApcuBackend
</title>
<updated>2023-02-13T18:15:26Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/1443144?s=30&amp;v=4"/>
<author>
<name>MaxKellermann</name>
<uri>https://github.com/MaxKellermann</uri>
</author>
<content type="html">[TASK] Eliminate double serialization in ApcuBackend</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/66d3625281f47ef788f8663c0dbd050081d3fe74</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/66d3625281f47ef788f8663c0dbd050081d3fe74"/>
<title>
[BUGFIX] Handle array access in LocalImageProcessor
</title>
<updated>2023-02-13T18:04:14Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/13206455?s=30&amp;v=4"/>
<author>
<name>sypets</name>
<uri>https://github.com/sypets</uri>
</author>
<content type="html">[BUGFIX] Handle array access in LocalImageProcessor</content>
</entry>
</feed>

View file

@ -0,0 +1,690 @@
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xml:lang="en-US">
<id>tag:github.com,2008:/TYPO3/typo3/commits/main</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commits/main"/>
<link type="application/atom+xml" rel="self" href="https://github.com/TYPO3/typo3/commits/main.atom"/>
<title>Recent Commits to typo3:main</title>
<updated>2023-02-15T21:00:05Z</updated>
<entry>
<id>tag:github.com,2008:Grit::Commit/da1469bbba1213494661dd166591f81d2bfbd7b7</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/da1469bbba1213494661dd166591f81d2bfbd7b7"/>
<title>
[BUGFIX] Fix capitalization in recordlist heading
</title>
<updated>2023-02-15T21:00:05Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/2861556?s=30&amp;v=4"/>
<author>
<name>josefglatz</name>
<uri>https://github.com/josefglatz</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[BUGFIX] Fix capitalization in recordlist heading
Resolves: #99968
Releases: main
Change-Id: Ie54a76fadf1000e8506ad512e14caa165c41ca86
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77876
Reviewed-by: Björn Jacob &amp;lt;bjoern.jacob@tritum.de&amp;gt;
Tested-by: Björn Jacob &amp;lt;bjoern.jacob@tritum.de&amp;gt;
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Tested-by: Oliver Bartsch &amp;lt;bo@cedev.de&amp;gt;
Reviewed-by: Oliver Bartsch &amp;lt;bo@cedev.de&amp;gt;
Reviewed-by: Oliver Klee &amp;lt;typo3-coding@oliverklee.de&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/4936022b6a37dd9daa6f9fffd596caa40b16944b</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/4936022b6a37dd9daa6f9fffd596caa40b16944b"/>
<title>
[BUGFIX] Fix typo for a fe_users language key
</title>
<updated>2023-02-15T16:25:02Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/19343425?s=30&amp;v=4"/>
<author>
<name>nhovratov</name>
<uri>https://github.com/nhovratov</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[BUGFIX] Fix typo for a fe_users language key
personelData -&amp;gt; personalData
Resolves: #99964
Releases: main
Change-Id: If59a501b2faef95c4800995fc8ba985bba343134
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77873
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Reviewed-by: Oliver Klee &amp;lt;typo3-coding@oliverklee.de&amp;gt;
Reviewed-by: Oliver Bartsch &amp;lt;bo@cedev.de&amp;gt;
Tested-by: Oliver Bartsch &amp;lt;bo@cedev.de&amp;gt;
Tested-by: Josef Glatz &amp;lt;typo3@josefglatz.at&amp;gt;
Reviewed-by: Josef Glatz &amp;lt;typo3@josefglatz.at&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/6797361e3272171f38afdcc6ef9f3bfc393a02d9</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/6797361e3272171f38afdcc6ef9f3bfc393a02d9"/>
<title>
[BUGFIX] Add type cast for potential mountpoint information
</title>
<updated>2023-02-15T15:59:05Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/1905663?s=30&amp;v=4"/>
<author>
<name>georgringer</name>
<uri>https://github.com/georgringer</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[BUGFIX] Add type cast for potential mountpoint information
Avoid exceptions by adding a type cast to string for the mount point
information. An additional early return avoids additional calls to
`\TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode()`.
Resolves: #99946
Releases: main, 11.5
Change-Id: I18ea15c0f3e2c884e3333e55877e0f6dbe56c859
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77860
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Reviewed-by: Oliver Bartsch &amp;lt;bo@cedev.de&amp;gt;
Tested-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;
Reviewed-by: Jochen &amp;lt;rothjochen@gmail.com&amp;gt;
Tested-by: Oliver Bartsch &amp;lt;bo@cedev.de&amp;gt;
Reviewed-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;
Tested-by: Jochen &amp;lt;rothjochen@gmail.com&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/2115fe399dea3e8f8d134dcd02f854a5147d9de1</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/2115fe399dea3e8f8d134dcd02f854a5147d9de1"/>
<title>
[BUGFIX] Get the correct next stage for moved elements in workspace
</title>
<updated>2023-02-15T15:58:23Z</updated>
<media:thumbnail height="30" width="30" url="https://1.gravatar.com/avatar/861635eb7fa03a9c060a500e14864d76?d=https%3A%2F%2Fgithub.githubassets.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png&amp;r=g&amp;s=30"/>
<author>
<name></name>
<email>typo3@timhorstmann.de</email>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[BUGFIX] Get the correct next stage for moved elements in workspace
The method TYPO3\CMS\Workspaces\Service\StageService-&amp;gt;getNextStageForElementCollection relies on the field t3ver_stage to calculate the next stage for changed elements in a workspace. Without it, it falls back to 0 (zero), meaning the current stage is &amp;quot;Editing&amp;quot;. This fix provides the neccessary field so the next stage can be calculated correct.
Resolves: #98916
Releases: main, 11.5
Change-Id: I3b87c54b24c3cfe5eb2417fc582f3c4a3fb18ffc
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/76525
Tested-by: Josua Vogel &amp;lt;j.vogel97@web.de&amp;gt;
Reviewed-by: Oliver Bartsch &amp;lt;bo@cedev.de&amp;gt;
Tested-by: Oliver Bartsch &amp;lt;bo@cedev.de&amp;gt;
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Tested-by: Benni Mack &amp;lt;benni@typo3.org&amp;gt;
Reviewed-by: Benni Mack &amp;lt;benni@typo3.org&amp;gt;
Reviewed-by: Josua Vogel &amp;lt;j.vogel97@web.de&amp;gt;
Reviewed-by: Georg Ringer &amp;lt;georg.ringer@gmail.com&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/953b80055f67d5753d7ef142ace3c49f042209f4</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/953b80055f67d5753d7ef142ace3c49f042209f4"/>
<title>
[BUGFIX] Position sidebar in image cropping correctly on the right
</title>
<updated>2023-02-15T15:41:03Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/4623070?s=30&amp;v=4"/>
<author>
<name>ochorocho</name>
<uri>https://github.com/ochorocho</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[BUGFIX] Position sidebar in image cropping correctly on the right
Currently, the sidebar containing the cropVariants
is always positioned below.
This has been fixed by adding a missing display flex
to the modal on sm-viewport and up.
On top of that the undefined this.cropBox error
on modal load was fixed by adding a empty JQuery object
on initialization.
Resolves: #99953
Releases: main
Change-Id: I679b188e38add5e06ad8e6334ddc15de01a42e60
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77865
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Tested-by: Oliver Bartsch &amp;lt;bo@cedev.de&amp;gt;
Reviewed-by: Andreas Fernandez &amp;lt;a.fernandez@scripting-base.de&amp;gt;
Tested-by: Andreas Fernandez &amp;lt;a.fernandez@scripting-base.de&amp;gt;
Reviewed-by: Oliver Bartsch &amp;lt;bo@cedev.de&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/3b1089c8594d4d1638939b0bb7bb5e67c37e8795</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/3b1089c8594d4d1638939b0bb7bb5e67c37e8795"/>
<title>
[TASK] Refine LiveSearch form behavior
</title>
<updated>2023-02-15T15:09:45Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/1787983?s=30&amp;v=4"/>
<author>
<name>andreasfernandez</name>
<uri>https://github.com/andreasfernandez</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[TASK] Refine LiveSearch form behavior
The behavior of the LiveSearch form used in the modal window is refined
in several ways.
The most important change is the usage of `SearchDemand` to pre-fill the
search form. This required to add a `form` tag and to rename the
`searchField` field to `query` to align with the `SearchDemand`
requirements. Also, the `q` argument is renamed to `query` as well.
Instead of directly triggering the search at several locations, a form
submit is request. This allows to call `search()` only once and to
provide a `FormData` object, containing all fields and values for the
underlying AJAX request. With this, there is no need to store the values
in properties anymore (`this.searchTerm` and `this.searchProperties`),
which are dropped now.
Resolves: #99954
Releases: main
Change-Id: Ibeb8c45048f8cc6c4801df648a19c0ecf7afb883
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77853
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Tested-by: Frank Nägler &amp;lt;frank.naegler@typo3.com&amp;gt;
Tested-by: Andreas Fernandez &amp;lt;a.fernandez@scripting-base.de&amp;gt;
Reviewed-by: Andreas Fernandez &amp;lt;a.fernandez@scripting-base.de&amp;gt;
Reviewed-by: Frank Nägler &amp;lt;frank.naegler@typo3.com&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/ec8d82c39732903e07677755116ef70e1c670d6c</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/ec8d82c39732903e07677755116ef70e1c670d6c"/>
<title>
[TASK] Move PageTsBackendLayoutDataProvider namespace
</title>
<updated>2023-02-15T12:31:49Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/2178068?s=30&amp;v=4"/>
<author>
<name>lolli42</name>
<uri>https://github.com/lolli42</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[TASK] Move PageTsBackendLayoutDataProvider namespace
Class
\TYPO3\CMS\Backend\Provider\PageTsBackendLayoutDataProvider
is moved to more appropriate
\TYPO3\CMS\Backend\View\BackendLayout\PageTsBackendLayoutDataProvider
Resolves: #99958
Releases: main
Change-Id: I57e329ead23deff4bd3a8c7c68b25c8b6ad79799
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77862
Reviewed-by: Andreas Fernandez &amp;lt;a.fernandez@scripting-base.de&amp;gt;
Tested-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Tested-by: Andreas Fernandez &amp;lt;a.fernandez@scripting-base.de&amp;gt;
Tested-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;
Reviewed-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;
Reviewed-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/e0ba68e2629383b3174c02d4f246cd675d1af3cf</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/e0ba68e2629383b3174c02d4f246cd675d1af3cf"/>
<title>
[BUGFIX] Handle FormData passed to AjaxRequest API properly
</title>
<updated>2023-02-15T12:06:58Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/1787983?s=30&amp;v=4"/>
<author>
<name>andreasfernandez</name>
<uri>https://github.com/andreasfernandez</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[BUGFIX] Handle FormData passed to AjaxRequest API properly
The AjaxRequest API is now able to cope with `FormData` objects passed
as first argument in either `post()`, `put()` or `delete()`.
Previously, a workaround was necessary that submitted
`{body: formData}` as `RequestInit` to fulfill this task. Since this
workaround is not required anymore, usages are adapted accordingly.
Resolves: #99955
Releases: main
Change-Id: I8e04040d262c874e9d51bff58eb1f7c378b05a18
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77861
Reviewed-by: Andreas Fernandez &amp;lt;a.fernandez@scripting-base.de&amp;gt;
Tested-by: Andreas Fernandez &amp;lt;a.fernandez@scripting-base.de&amp;gt;
Reviewed-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Tested-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/7e57642c91aacbb1a1ad16895caf1cad1f504156</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/7e57642c91aacbb1a1ad16895caf1cad1f504156"/>
<title>
[TASK] Avoid GU::_GP() in DataHandler
</title>
<updated>2023-02-15T12:05:11Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/2178068?s=30&amp;v=4"/>
<author>
<name>lolli42</name>
<uri>https://github.com/lolli42</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[TASK] Avoid GU::_GP() in DataHandler
DataHandler should of course *not* have a dependency
to _GET or _POST: All data should be hand over as
&amp;quot;command&amp;quot; and &amp;quot;data&amp;quot; array.
Flex form handling violates this for section container
deletion and sorting by using GeneralUtility::_GP().
The patch changes the logic to carry the &amp;quot;_ACTION&amp;quot;
information within the flex data array. This simplifies
the flex form handling logic a bit, we can get rid
of a recursion along the way.
Resolves: #99952
Releases: main
Change-Id: Ifaa15162d018725fe3ba8ae7b1a05655a0cffb36
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77856
Tested-by: Andreas Fernandez &amp;lt;a.fernandez@scripting-base.de&amp;gt;
Tested-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;
Reviewed-by: Andreas Fernandez &amp;lt;a.fernandez@scripting-base.de&amp;gt;
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Tested-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;
Reviewed-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;
Reviewed-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/51bef53fe5775b0708155921080ccbe66952cc3e</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/51bef53fe5775b0708155921080ccbe66952cc3e"/>
<title>
[TASK] Avoid GU::_GP() in PageTsBackendLayoutDataProvider
</title>
<updated>2023-02-15T11:29:02Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/2178068?s=30&amp;v=4"/>
<author>
<name>lolli42</name>
<uri>https://github.com/lolli42</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[TASK] Avoid GU::_GP() in PageTsBackendLayoutDataProvider
The method using GU::_GP() can get more data
hand over to always have the pageId available
already. Do this and avoid another call to
GeneralUtility::_GP().
Note the entire backend layout handling carries
far too much state, is complex in general and
hard to follow. It should be streamlined and
simplified.
Resolves: #99948
Releases: main
Change-Id: I13a70a234dae0a20256e4a932de891a49531c9af
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77852
Reviewed-by: Andreas Fernandez &amp;lt;a.fernandez@scripting-base.de&amp;gt;
Tested-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Reviewed-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;
Tested-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;
Tested-by: Andreas Fernandez &amp;lt;a.fernandez@scripting-base.de&amp;gt;
Reviewed-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/773c4f581b17a96e9cc17436d546385100c72f81</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/773c4f581b17a96e9cc17436d546385100c72f81"/>
<title>
[TASK] Add delete action for usergroup list
</title>
<updated>2023-02-15T10:17:08Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/4623070?s=30&amp;v=4"/>
<author>
<name>ochorocho</name>
<uri>https://github.com/ochorocho</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[TASK] Add delete action for usergroup list
Currently, the list of usergroups does not
contain a delete button but the user list does.
A delete button was added to have a consistent
ui for user and group listing.
Resolves: #99867
Releases: main
Change-Id: I7e5de8091fb053a182d6c45c73ccb7af69485221
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77772
Reviewed-by: Oliver Bartsch &amp;lt;bo@cedev.de&amp;gt;
Reviewed-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;
Tested-by: Oliver Bartsch &amp;lt;bo@cedev.de&amp;gt;
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Tested-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/32dc37fe7d61990fb74cc3d559089576439e4c7f</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/32dc37fe7d61990fb74cc3d559089576439e4c7f"/>
<title>
[BUGFIX] Guard ConstantEditor with copy operator in constants
</title>
<updated>2023-02-14T12:13:44Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/1453466?s=30&amp;v=4"/>
<author>
<name>sbuerk</name>
<uri>https://github.com/sbuerk</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[BUGFIX] Guard ConstantEditor with copy operator in constants
If copy operator &amp;#39;&amp;lt;&amp;#39; is used in TypoScript constants for a
constant with a constant editor configuration comment, the
&amp;quot;Call to member function getType() on null&amp;quot; exception is
emitted.
Example TypoScript constants:
&amp;gt; # cat=custom/a; type=color; label=Primary Color
&amp;gt; plugin.tx_example.primaryColor = #282E31
&amp;gt;
&amp;gt; # cat=custom/a; type=color; label=Other Color
&amp;gt; plugin.tx_example.otherColor &amp;lt; plugin.tx_example.primaryColor
This may happen when a comment token stream is
handled multiple times without being reset properly.
Resolves: #99906
Related: #97816
Releases: main
Change-Id: I5c15a9bf194f8c24e7306213218e1b801fe7cb72
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77808
Reviewed-by: Oliver Bartsch &amp;lt;bo@cedev.de&amp;gt;
Tested-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Reviewed-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;
Tested-by: Oliver Bartsch &amp;lt;bo@cedev.de&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/c3c61edff0983a99d30d6cbc32ef0b2cb29661cb</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/c3c61edff0983a99d30d6cbc32ef0b2cb29661cb"/>
<title>
[TASK] Deprecate PageRenderer-&gt;enableDebugMode()
</title>
<updated>2023-02-14T11:25:55Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/1925287?s=30&amp;v=4"/>
<author>
<name>maddy2101</name>
<uri>https://github.com/maddy2101</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[TASK] Deprecate PageRenderer-&amp;gt;enableDebugMode()
PageRenderer-&amp;gt;enableDebugMode() is only called in
backend by the core. The properties set by the
method do not have any effect in BE during further
processing.
The method is typically not called in Frontend,
any calls can be moved to the single setters
instead.
The patch deprecates PageRenderer-&amp;gt;enableDebugMode().
Resolves: #99932
Releases: main
Change-Id: Iddef89c9e97f721a7b33ccc838d20f17b03471f4
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77831
Tested-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;
Tested-by: Anja Leichsenring &amp;lt;aleichsenring@ab-softlab.de&amp;gt;
Reviewed-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Tested-by: Georg Ringer &amp;lt;georg.ringer@gmail.com&amp;gt;
Reviewed-by: Anja Leichsenring &amp;lt;aleichsenring@ab-softlab.de&amp;gt;
Reviewed-by: Georg Ringer &amp;lt;georg.ringer@gmail.com&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/68d67171c1d9a61e0d056ae849aa0c1db4ba6eda</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/68d67171c1d9a61e0d056ae849aa0c1db4ba6eda"/>
<title>
[TASK] Deprecate the limit parameter for GU::intExplode
</title>
<updated>2023-02-14T10:09:09Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/765746?s=30&amp;v=4"/>
<author>
<name>oliverklee</name>
<uri>https://github.com/oliverklee</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[TASK] Deprecate the limit parameter for GU::intExplode
Passing a limit to `GU::intExplode` will cause the method to
potentially return a string as the last array element, which
is not documented and directly contradicts the method contract
(which states that an array of integers will be returned).
The deprecated parameter is not used in the Core at all.
Resolves: #99900
Releases: main
Change-Id: Ic175fcef56f78c9bc237850fc7c7b1d31701d6f8
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77806
Tested-by: Nikita Hovratov &amp;lt;nikita.h@live.de&amp;gt;
Reviewed-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Reviewed-by: Nikita Hovratov &amp;lt;nikita.h@live.de&amp;gt;
Reviewed-by: Andreas Fernandez &amp;lt;a.fernandez@scripting-base.de&amp;gt;
Tested-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/0a9b218aadbb772e1c37f9ca0b446bd6c1648542</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/0a9b218aadbb772e1c37f9ca0b446bd6c1648542"/>
<title>
[TASK] Refine LiveSearch search demand
</title>
<updated>2023-02-14T08:46:18Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/1787983?s=30&amp;v=4"/>
<author>
<name>andreasfernandez</name>
<uri>https://github.com/andreasfernandez</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[TASK] Refine LiveSearch search demand
The search demand implementation used by the LiveSearch is refined to be
more flexible. Instead of a hard-coded list of properties, the
constructor now receives a list of `DemandProperty` instances that
accept everything that is backed by the `DemandPropertyName` enum,
allowing to pass only the required properties.
The `SearchDemand` class is immutable by design, it&amp;#39;s API must not
allow modification by 3rd parties. However, there is an internal
`MutableSearchDemand` acting as a helper that allows to add / override
properties. A `SearchDemand` object may be constructed from a request
object, where it&amp;#39;s payload must contain properties from the
aforementioned `DemandPropertyName` enum.
Resolves: #99941
Releases: main
Change-Id: I880855943a67237fa765cd3da94333e8aaa3a2a2
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77842
Reviewed-by: Andreas Fernandez &amp;lt;a.fernandez@scripting-base.de&amp;gt;
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Tested-by: Georg Ringer &amp;lt;georg.ringer@gmail.com&amp;gt;
Reviewed-by: Anja Leichsenring &amp;lt;aleichsenring@ab-softlab.de&amp;gt;
Reviewed-by: Georg Ringer &amp;lt;georg.ringer@gmail.com&amp;gt;
Tested-by: Andreas Fernandez &amp;lt;a.fernandez@scripting-base.de&amp;gt;
Tested-by: Anja Leichsenring &amp;lt;aleichsenring@ab-softlab.de&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/26ca6872684ccc469a9e2981cb8cf3bb83134d12</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/26ca6872684ccc469a9e2981cb8cf3bb83134d12"/>
<title>
[BUGFIX] Toolbar link to environment opens in iframe
</title>
<updated>2023-02-13T18:28:45Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/2178068?s=30&amp;v=4"/>
<author>
<name>lolli42</name>
<uri>https://github.com/lolli42</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[BUGFIX] Toolbar link to environment opens in iframe
Toolbar &amp;gt; SystemInformation has a link to
Environment module that opens without module
menu and toolbar, just the main iframe.
Links from within the top iframe are managed
by JS and need some magic to trigger this
properly.
Resolves: #99854
Releases: main
Change-Id: Ic824e3dc3e409b8f86108654af6b540061de05f0
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77838
Tested-by: Jasmina Ließmann &amp;lt;minapokhalo+typo3@gmail.com&amp;gt;
Reviewed-by: Jasmina Ließmann &amp;lt;minapokhalo+typo3@gmail.com&amp;gt;
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Tested-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;
Reviewed-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/614e15d76087e775b965c4fb6e5e4ae59692c128</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/614e15d76087e775b965c4fb6e5e4ae59692c128"/>
<title>
[TASK] Make extbase repository generic (phpstan-wise)
</title>
<updated>2023-02-13T18:27:52Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/711459?s=30&amp;v=4"/>
<author>
<name>alexanderschnitzler</name>
<uri>https://github.com/alexanderschnitzler</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[TASK] Make extbase repository generic (phpstan-wise)
This patch introduces template tags on the extbase repository
interface, the extbase repository class and the abstract resource
repository class (File, ProcessedFile etc.) to let static code
analyzers and modern IDE&amp;#39;s know what that those repositories are
generic.
This patch also introduces extends tags on actual reposities to
let static code analysis know what kind of object the repository
deals with.
As a byproduct, a few phpdoc params and return types have been
fixed or specified.
Releases: main
Resolves: #99931
Change-Id: I0056e420406fa84693d4104db9d7a9ec362c33d7
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77825
Reviewed-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;
Tested-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;
Reviewed-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Tested-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/f54531dad88addc4639f09b4cc37228524156d0c</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/f54531dad88addc4639f09b4cc37228524156d0c"/>
<title>
[TASK] Eliminate double serialization in ApcuBackend
</title>
<updated>2023-02-13T18:15:26Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/1443144?s=30&amp;v=4"/>
<author>
<name>MaxKellermann</name>
<uri>https://github.com/MaxKellermann</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[TASK] Eliminate double serialization in ApcuBackend
APCu can store arbitrary PHP data; it serializes all
values when they are stored, and it has a pluggable
serializer interface which can use serializers that
are better than serialize(), such as &amp;quot;igbinary&amp;quot;,
see [1] and [2].
By not implementing TransientBackendInterface, the
ApcuBackend forces class VariableFrontend to serialize
all values into a string, but APCu serializes the
string again.
This adds TransientBackendInterface and removes the
is_string() check. Double serialization is eliminated
by this change.
Additionally, the unit tests are turned into
functionals, the backend is declared final, gets
some more type hints and uses the quicker xxh3 hash.
[1] https://www.php.net/manual/en/book.igbinary.php
[2] https://pecl.php.net/package/igbinary
Releases: main
Resolves: #99851
Change-Id: I8663deefd1ffeb249376119287191bcec9ef2420
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77717
Tested-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;
Tested-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;
Reviewed-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Reviewed-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;&lt;/pre&gt;
</content>
</entry>
<entry>
<id>tag:github.com,2008:Grit::Commit/66d3625281f47ef788f8663c0dbd050081d3fe74</id>
<link type="text/html" rel="alternate" href="https://github.com/TYPO3/typo3/commit/66d3625281f47ef788f8663c0dbd050081d3fe74"/>
<title>
[BUGFIX] Handle array access in LocalImageProcessor
</title>
<updated>2023-02-13T18:04:14Z</updated>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/13206455?s=30&amp;v=4"/>
<author>
<name>sypets</name>
<uri>https://github.com/sypets</uri>
</author>
<content type="html">
&lt;pre style=&#39;white-space:pre-wrap;width:81ex&#39;&gt;[BUGFIX] Handle array access in LocalImageProcessor
Handle missing image dimensions (width, height)
without throwing an exception.
In same cases, image dimension may not be able to be
set properly.
Resolves: #99406
Releases: main, 11.5
Change-Id: I81124dcaf29932448a87b69ab5bf6445eeb7469c
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77844
Reviewed-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;
Reviewed-by: Oliver Klee &amp;lt;typo3-coding@oliverklee.de&amp;gt;
Tested-by: core-ci &amp;lt;typo3@b13.com&amp;gt;
Reviewed-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;
Tested-by: Stefan Bürk &amp;lt;stefan@buerk.tech&amp;gt;
Tested-by: Christian Kuhn &amp;lt;lolli@schwarzbu.ch&amp;gt;&lt;/pre&gt;
</content>
</entry>
</feed>

View file

@ -0,0 +1,75 @@
<?php
declare(strict_types=1);
/*
* Copyright (C) 2023 Daniel Siepmann <coding@daniel-siepmann.de>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
namespace DanielSiepmann\FediverseFeedWrappers\Tests\Unit\Wrapper;
use DanielSiepmann\FediverseFeedWrappers\WrapperInterface;
use DanielSiepmann\FediverseFeedWrappers\Wrapper\GitHubTypo3;
use PHPUnit\Framework\TestCase;
/**
* @covers \DanielSiepmann\FediverseFeedWrappers\Wrapper\GitHubTypo3
*/
class GitHubTypo3Test extends TestCase
{
/**
* @test
*/
public function canBeCreated(): void
{
$subject = new GitHubTypo3();
self::assertInstanceOf(
GitHubTypo3::class,
$subject
);
}
/**
* @test
*/
public function isInstanceOfWrapperInterface(): void
{
$subject = new GitHubTypo3();
self::assertInstanceOf(
WrapperInterface::class,
$subject
);
}
/**
* @test
*/
public function returnsAdjustedFeed(): void
{
$subject = new GitHubTypo3(
__DIR__ . '/Fixtures/GitHubTypo3.atom'
);
self::assertStringEqualsFile(
__DIR__ . '/Assertions/GitHubTypo3.atom',
$subject->handle()
);
}
}

View file

@ -0,0 +1,77 @@
<?php
declare(strict_types=1);
/*
* Copyright (C) 2023 Daniel Siepmann <coding@daniel-siepmann.de>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
namespace DanielSiepmann\FediverseFeedWrappers\Tests\Unit;
use DanielSiepmann\FediverseFeedWrappers\WrapperRegistry;
use InvalidArgumentException;
use PHPUnit\Framework\TestCase;
/**
* @covers \DanielSiepmann\FediverseFeedWrappers\WrapperRegistry
*/
class WrapperRegistryTest extends TestCase
{
/**
* @test
*/
public function canBeCreated(): void
{
$subject = new WrapperRegistry([]);
self::assertInstanceOf(
WrapperRegistry::class,
$subject
);
}
/**
* @test
*/
public function throwsExceptionIfRequestedIdentifierIsNotConfigured(): void
{
$subject = new WrapperRegistry([]);
$this->expectException(InvalidArgumentException::class);
$this->expectExceptionCode(1676531371);
$this->expectExceptionMessage('No wrapper found for "Identifier", only available: .');
$subject->get('Identifier');
}
/**
* @test
*/
public function throwsExceptionIfRequestedIdentifierIsNotOfExpectedInterface(): void
{
$subject = new WrapperRegistry([
'Identifier' => 'wrong type',
]);
$this->expectException(InvalidArgumentException::class);
$this->expectExceptionCode(1676531371);
$this->expectExceptionMessage('No wrapper found for "Identifier", only available: Identifier.');
$subject->get('Identifier');
}
}