[BUGFIX] Rename directory for deprecated unit tests 17/55317/5
authorAndreas Fernandez <a.fernandez@scripting-base.de>
Wed, 10 Jan 2018 09:04:56 +0000 (10:04 +0100)
committerAndreas Fernandez <a.fernandez@scripting-base.de>
Fri, 12 Jan 2018 07:23:01 +0000 (08:23 +0100)
The directory name for deprecated unit tests are named "Unit_Deprecated" for EXT:core and EXT:form,
which is wrong, the tests don't get executed. This patch fixes the names
to "UnitDeprecated".

Resolves: #83525
Releases: master
Change-Id: I2f6f3a70ae4514e58bc885416821cf2aa3340297
Reviewed-on: https://review.typo3.org/55317
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
23 files changed:
typo3/sysext/core/Tests/UnitDeprecated/Compatibility/PublicPropertyDeprecationTraitTest.php [new file with mode: 0644]
typo3/sysext/core/Tests/UnitDeprecated/Html/RteHtmlParserTest.php [new file with mode: 0644]
typo3/sysext/core/Tests/UnitDeprecated/Utility/ClientUtilityTest.php [new file with mode: 0644]
typo3/sysext/core/Tests/UnitDeprecated/Utility/ExtensionManagementUtilityTest.php [new file with mode: 0644]
typo3/sysext/core/Tests/Unit_Deprecated/Compatibility/PublicPropertyDeprecationTraitTest.php [deleted file]
typo3/sysext/core/Tests/Unit_Deprecated/Html/RteHtmlParserTest.php [deleted file]
typo3/sysext/core/Tests/Unit_Deprecated/Utility/ClientUtilityTest.php [deleted file]
typo3/sysext/core/Tests/Unit_Deprecated/Utility/ExtensionManagementUtilityTest.php [deleted file]
typo3/sysext/form/Classes/Mvc/Configuration/ConfigurationManager.php
typo3/sysext/form/Tests/Unit/Mvc/Configuration/ConfigurationManagerTest.php
typo3/sysext/form/Tests/Unit/Mvc/Configuration/Fixtures/Header.yaml [deleted file]
typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/ConfigurationManagerTest.php [new file with mode: 0644]
typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/Fixtures/File1.yaml [new file with mode: 0644]
typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/Fixtures/File2.yaml [new file with mode: 0644]
typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/Fixtures/File3.yaml [new file with mode: 0644]
typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/Fixtures/File4.yaml [new file with mode: 0644]
typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/Fixtures/Header.yaml [new file with mode: 0644]
typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/ConfigurationManagerTest.php [deleted file]
typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/Fixtures/File1.yaml [deleted file]
typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/Fixtures/File2.yaml [deleted file]
typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/Fixtures/File3.yaml [deleted file]
typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/Fixtures/File4.yaml [deleted file]
typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/Fixtures/Header.yaml [deleted file]

diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Compatibility/PublicPropertyDeprecationTraitTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Compatibility/PublicPropertyDeprecationTraitTest.php
new file mode 100644 (file)
index 0000000..4ccd792
--- /dev/null
@@ -0,0 +1,143 @@
+<?php
+declare(strict_types=1);
+namespace TYPO3\CMS\Core\Tests\Unit\Compatibility;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+
+use TYPO3\CMS\Core\Compatibility\PublicPropertyDeprecationTrait;
+use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
+
+class PublicPropertyDeprecationTraitTest extends UnitTestCase
+{
+    /**
+     * @var object Test fixture (anonymous class)
+     * @see PublicAccessDeprecationTraitTest::setUp()
+     */
+    protected $fixture;
+
+    /**
+     * Setup
+     *
+     * Creating the test fixture, an anonymous class with different kinds
+     * of properties to test access for.
+     */
+    protected function setUp()
+    {
+        $this->fixture = new class {
+            use PublicPropertyDeprecationTrait;
+            private $deprecatedPublicProperties = [
+                'taggedProperty' => 'taggedProperty is deprecated',
+                'unsetTaggedProperty' => 'unsetTaggedProperty is deprecated'
+            ];
+
+            public $publicProperty = 'publicProperty';
+
+            public $unsetPublicProperty;
+
+            /**
+             * @deprecatedPublic
+             */
+            protected $taggedProperty = 'taggedProperty';
+
+            /**
+             * @deprecatedPublic
+             */
+            protected $unsetTaggedProperty;
+
+            protected $untaggedProperty = 'untaggedProperty';
+        };
+    }
+
+    /**
+     * @return array [[$expected, $property],]
+     */
+    public function issetDataProvider(): array
+    {
+        return [
+            'public property' => [true, 'publicProperty'],
+            'unset public property' => [false, 'unsetPublicProperty'],
+            'tagged property' => [true, 'taggedProperty'],
+            'unset tagged property' => [false, 'unsetTaggedProperty'],
+            'untagged property' => [false, 'untaggedProperty'],
+            'unknown property' => [false, 'unknownProperty'],
+        ];
+    }
+
+    /**
+     * @dataProvider issetDataProvider
+     * @test
+     * @param bool $expected
+     * @param string $property
+     */
+    public function issetWorksAsExpected(bool $expected, string $property)
+    {
+        $this->assertSame($expected, isset($this->fixture->$property));
+    }
+
+    /**
+     * @test
+     */
+    public function unknownPropertyCanBeHandledAsUsual()
+    {
+        // Uses __isset()
+        $this->assertFalse(isset($this->fixture->unknownProperty));
+        // Uses __set()
+        $this->fixture->unknownProperty = 23;
+        // Don't uses __isset()
+        $this->assertTrue(isset($this->fixture->unknownProperty));
+        // Don't uses __get()
+        $this->assertSame(23, $this->fixture->unknownProperty);
+        // Don't uses __unset()
+        unset($this->fixture->unknownProperty);
+        // Uses __isset()
+        $this->assertFalse(isset($this->fixture->unknownProperty));
+    }
+
+    /**
+     * @test
+     */
+    public function publicPropertyCanBeHandledAsUsual()
+    {
+        $this->assertFalse(isset($this->fixture->unsetPublicProperty));
+        $this->fixture->unsetPublicProperty = 23;
+        $this->assertTrue(isset($this->fixture->unsetPublicProperty));
+        $this->assertSame(23, $this->fixture->unsetPublicProperty);
+        unset($this->fixture->unsetPublicProperty);
+        $this->assertFalse(isset($this->fixture->unsetPublicProperty));
+    }
+
+    /**
+     * @test
+     */
+    public function taggedPropertyCanBeHandledLikePublicProperty()
+    {
+        $this->assertFalse(isset($this->fixture->unsetTaggedProperty));
+        $this->fixture->unsetTaggedProperty = 23;
+        $this->assertTrue(isset($this->fixture->unsetTaggedProperty));
+        $this->assertSame(23, $this->fixture->unsetTaggedProperty);
+        unset($this->fixture->unsetTaggedProperty);
+        $this->assertFalse(isset($this->fixture->unsetTaggedProperty));
+    }
+
+    /**
+     * @return array [[$property],]
+     */
+    public function invalidPropertiesDataProvider(): array
+    {
+        return [
+            'untagged' => ['untaggedProperty'],
+            'unknown' => ['unknownProperty'],
+        ];
+    }
+}
diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Html/RteHtmlParserTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Html/RteHtmlParserTest.php
new file mode 100644 (file)
index 0000000..1a03661
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+namespace TYPO3\CMS\Core\Tests\Unit_Deprecated\Html;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+
+/**
+ * Testcase for \TYPO3\CMS\Core\Html\RteHtmlParser
+ */
+class RteHtmlParserTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
+{
+    /**
+     * @var \TYPO3\CMS\Core\Html\RteHtmlParser
+     */
+    protected $subject = null;
+
+    protected function setUp()
+    {
+        $this->subject = new \TYPO3\CMS\Core\Html\RteHtmlParser();
+        $this->subject->procOptions = [
+            'allowTagsOutside' => 'hr, address',
+            'overruleMode' => 'default'
+        ];
+    }
+
+    /**
+     * Data provider for linkWithAtSignCorrectlyTransformedOnWayToRTE
+     */
+    public static function linkWithAtSignCorrectlyTransformedOnWayToRTEProvider()
+    {
+        return [
+            'external url with @ sign' => [
+                '<link http://www.example.org/at@sign>link text</link>',
+                '<p><a href="http://www.example.org/at@sign">link text</a></p>'
+            ],
+            'email address with @ sign' => [
+                '<link name@example.org - mail "Opens window for sending email">link text</link>',
+                '<p><a href="mailto:name@example.org" class="mail" title="Opens window for sending email">link text</a></p>'
+            ]
+        ];
+    }
+
+    /**
+     * @test
+     * @dataProvider linkWithAtSignCorrectlyTransformedOnWayToRTEProvider
+     */
+    public function linkWithAtSignCorrectlyTransformedOnWayToRTE($content, $expectedResult)
+    {
+        $thisConfig = ['proc.' => $this->subject->procOptions];
+        $this->assertEquals($expectedResult, $this->subject->RTE_transform($content, [], 'rte', $thisConfig));
+    }
+}
diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Utility/ClientUtilityTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Utility/ClientUtilityTest.php
new file mode 100644 (file)
index 0000000..e437686
--- /dev/null
@@ -0,0 +1,478 @@
+<?php
+namespace TYPO3\CMS\Core\Tests\Unit\Utility;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+
+/**
+ * Testcase for the \TYPO3\CMS\Core\Utility\ClientUtility class.
+ */
+class ClientUtilityTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
+{
+    //////////////////////////////////////////////////////////
+    // Utility Functions
+    //////////////////////////////////////////////////////////
+    /**
+     * Compares array of UA strings with expected result array of browser/version pair
+     *
+     * @param array $browserStrings array with userAgent strings
+     * @param array $expectedMembers array with expected browser/version for given userAgent strings
+     */
+    private function analyzeUserAgentStrings($browserStrings, $expectedMembers)
+    {
+        $actual = $expected = [];
+        foreach ($browserStrings as $browserString) {
+            $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($browserString);
+            $expected[] = $expectedMembers;
+            $actual[] = [
+                'browser' => $infoArray['browser'],
+                'version' => array_shift(explode('.', $infoArray['version']))
+            ];
+        }
+        $this->assertSame($expected, $actual);
+    }
+
+    //////////////////////////////////////////////////////////
+    // Tests concerning getBrowserInfo
+    //////////////////////////////////////////////////////////
+    /**
+     * @test
+     */
+    public function checkBrowserInfoIE6()
+    {
+        $browserStrings = [
+            'Mozilla/4.0 (compatible; MSIE 6.1; Windows XP; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
+            'Mozilla/4.0 (compatible; MSIE 6.1; Windows XP)',
+            'Mozilla/4.0 (compatible; MSIE 6.01; Windows NT 6.0)',
+            'Mozilla/5.0 (Windows; U; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)',
+            'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)',
+            'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4325)',
+            'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)',
+            'Mozilla/45.0 (compatible; MSIE 6.0; Windows NT 5.1)',
+            'Mozilla/4.08 (compatible; MSIE 6.0; Windows NT 5.1)',
+            'Mozilla/4.01 (compatible; MSIE 6.0; Windows NT 5.1)',
+            'Mozilla/4.0 (X11; MSIE 6.0; i686; .NET CLR 1.1.4322; .NET CLR 2.0.50727; FDM)',
+            'Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 6.0)',
+            'Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 5.2)',
+            'Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 5.0)',
+            'Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)',
+            'Mozilla/4.0 (MSIE 6.0; Windows NT 5.1)',
+            'Mozilla/4.0 (MSIE 6.0; Windows NT 5.0)',
+            'Mozilla/4.0 (compatible;MSIE 6.0;Windows 98;Q312461)',
+            'Mozilla/4.0 (Compatible; Windows NT 5.1; MSIE 6.0) (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
+            'Mozilla/4.0 (compatible; U; MSIE 6.0; Windows NT 5.1)',
+            'Mozilla/4.0 (compatible; MSIE 6,0; Windows NT 5,1; SV1; Alexa Toolbar)'
+        ];
+        $expectedMembers = [
+            'browser' => 'msie',
+            'version' => '6'
+        ];
+        $this->analyzeUserAgentStrings($browserStrings, $expectedMembers);
+    }
+
+    /**
+     * @test
+     */
+    public function checkBrowserInfoIE7()
+    {
+        $browserStrings = [
+            'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)',
+            'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; el-GR)',
+            'Mozilla/5.0 (MSIE 7.0; Macintosh; U; SunOS; X11; gu; SV1; InfoPath.2; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)',
+            'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; c .NET CLR 3.0.04506; .NET CLR 3.5.30707; InfoPath.1; el-GR)',
+            'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; c .NET CLR 3.0.04506; .NET CLR 3.5.30707; InfoPath.1; el-GR)',
+            'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0; fr-FR)',
+            'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0; en-US)',
+            'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.2; WOW64; .NET CLR 2.0.50727)',
+            'Mozilla/4.79 [en] (compatible; MSIE 7.0; Windows NT 5.0; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)',
+            'Mozilla/4.0 (Windows; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)',
+            'Mozilla/4.0 (Mozilla/4.0; MSIE 7.0; Windows NT 5.1; FDM; SV1; .NET CLR 3.0.04506.30)',
+            'Mozilla/4.0 (Mozilla/4.0; MSIE 7.0; Windows NT 5.1; FDM; SV1)',
+            'Mozilla/4.0 (compatible;MSIE 7.0;Windows NT 6.0)',
+            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)',
+            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0;)',
+            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; YPC 3.2.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.30729; .NET CLR 3.0.30618)',
+            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; YPC 3.2.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)',
+            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; Media Center PC 5.0; .NET CLR 2.0.50727)',
+            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 3.0.04506)',
+            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET CLR 1.1.4322)',
+            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; Trident/7.0; .NET4.0E; .NET4.0C)',
+            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/5.0)',
+        ];
+        $expectedMembers = [
+            'browser' => 'msie',
+            'version' => '7'
+        ];
+        $this->analyzeUserAgentStrings($browserStrings, $expectedMembers);
+    }
+
+    /**
+     * @test
+     */
+    public function checkBrowserInfoIE8()
+    {
+        $browserStrings = [
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.2; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; Media Center PC 6.0; InfoPath.2; MS-RTC LM 8)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.2)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Zune 3.0)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; msn OptimizedIE8;ZHCN)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MS-RTC LM 8)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; Zune 4.0)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; OfficeLiveConnector.1.4; OfficeLivePatch.1.3; yie8)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; Zune 3.0; MS-RTC LM 8)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; MS-RTC LM 8; Zune 4.0)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; MS-RTC LM 8)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; FDM; OfficeLiveConnector.1.4; OfficeLivePatch.1.3; .NET CLR 1.1.4322)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; FDM)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 4.0.20402; MS-RTC LM 8)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 1.1.4322; InfoPath.2; MS-RTC LM 8)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 1.1.4322; InfoPath.2)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.3; .NET CLR 4.0.20506)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; MRA 5.5 (build 02842); SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2)',
+            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30729)'
+        ];
+        $expectedMembers = [
+            'browser' => 'msie',
+            'version' => '8'
+        ];
+        $this->analyzeUserAgentStrings($browserStrings, $expectedMembers);
+    }
+
+    /**
+     * @test
+     */
+    public function checkBrowserInfoIE9()
+    {
+        $browserStrings = [
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',
+        ];
+        $expectedMembers = [
+            'browser' => 'msie',
+            'version' => '9'
+        ];
+        $this->analyzeUserAgentStrings($browserStrings, $expectedMembers);
+    }
+
+    /**
+     * @test
+     */
+    public function checkBrowserInfoIE10()
+    {
+        $browserStrings = [
+            'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)',
+        ];
+        $expectedMembers = [
+            'browser' => 'msie',
+            'version' => '10'
+        ];
+        $this->analyzeUserAgentStrings($browserStrings, $expectedMembers);
+    }
+
+    /**
+     * @test
+     */
+    public function checkBrowserInfoIE11()
+    {
+        $browserStrings = [
+            'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko',
+            'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; .NET4.0E; .NET4.0C; rv:11.0) like Gecko',
+        ];
+        $expectedMembers = [
+            'browser' => 'msie',
+            'version' => '11'
+        ];
+        $this->analyzeUserAgentStrings($browserStrings, $expectedMembers);
+    }
+
+    /**
+     * @test
+     */
+    public function checkGeckoVersion()
+    {
+        $userAgentString = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertEquals('1.9.2.3', $infoArray['all']['gecko']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindows8()
+    {
+        $userAgentString = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('win8', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindows8rev1()
+    {
+        $userAgentString = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.3; Trident/6.0)';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('win8', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindows7()
+    {
+        $userAgentString = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('win7', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindowsVista()
+    {
+        $userAgentString = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('winVista', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindowsXp()
+    {
+        $userAgentString = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('winXP', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindows2k()
+    {
+        $userAgentString = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; SV1)';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('win2k', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindows2kServicePack1()
+    {
+        $userAgentString = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.01; SV1)';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('win2k', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindowsNt()
+    {
+        $userAgentString = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 4.0)';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('winNT', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfIpad()
+    {
+        $userAgentString = 'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7W367a Safari/531.21.10';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('iOS', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfIphone()
+    {
+        $userAgentString = 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('iOS', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfIpod()
+    {
+        $userAgentString = 'Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Geckto) Version/3.0 Mobile/3A101a Safari/419.3';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('iOS', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfMacOsX()
+    {
+        $userAgentString = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-us) AppleWebKit/534.15+ (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('mac', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfLinux()
+    {
+        $userAgentString = 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('linux', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfSolaris()
+    {
+        $userAgentString = 'Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.9.1.9) Gecko/20100525 Firefox/3.5.9';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('unix_sun', $infoArray['all_systems']);
+    }
+
+    /**
+     * Provide various user agent strings for android devices
+     *
+     * @static
+     * @return array List of user agents
+     */
+    public static function androidUserAgentsProvider()
+    {
+        $agents = [
+            'defaultBrowser' => [
+                'agent' => 'Mozilla/5.0 (Linux; U; Android 2.3; en-US; sdk Build/GRH55) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'
+            ],
+            'operaMini' => [
+                'agent' => 'Opera/9.80 (Android; Opera Mini/6.0.24556/24.816; U; en) Presto/2.5.25 Version/10.54'
+            ]
+        ];
+        return $agents;
+    }
+
+    /**
+     * @test
+     * @dataProvider androidUserAgentsProvider
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfAndroid($userAgentString)
+    {
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('android', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfOpenbsd()
+    {
+        $userAgentString = 'Links (1.00pre20; OpenBSD 4.8 i386; 80x25)';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('unix_bsd', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfNetbsd()
+    {
+        $userAgentString = 'Links (2.2; NetBSD 5.1 amd64; 80x25)';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('unix_bsd', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfFreebsd()
+    {
+        $userAgentString = 'Mozilla/5.0 (X11; U; FreeBSD amd64; c) AppleWebKit/531.2+ (KHTML, like Gecko) Safari 531.2+ Epiphany/230.2';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('unix_bsd', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfChromeOs()
+    {
+        $userAgentString = 'Mozilla/5.0 (X11; U; CrOS i686  9.10.0; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.253.0 Safari 532.5';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertContains('chrome', $infoArray['all_systems']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectBrowserValueForUserAgentStringOfSafari()
+    {
+        $userAgentString = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertSame('safari', $infoArray['browser']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectBrowserValueForUserAgentStringOfFirefox()
+    {
+        $userAgentString = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0b8) Gecko/20100101 Firefox/4.0b8';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertSame('firefox', $infoArray['browser']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectBrowserValueForUserAgentStringOfOpera()
+    {
+        $userAgentString = 'Opera/9.80 (X11; FreeBSD 8.1-RELEASE amd64; U; en) Presto/2.2.15 Version/10.10';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertSame('opera', $infoArray['browser']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectBrowserValueForUserAgentStringOfMobileSafariOnAndroid()
+    {
+        $userAgentString = 'Mozilla/5.0 (Linux; U; Android WildPuzzleROM v8.0.7 froyo 2.2; de-de; HTC Wildfire Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertSame('safari', $infoArray['browser']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectBrowserValueForUserAgentStringOfMobileSafariOnIphone()
+    {
+        $userAgentString = 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertSame('safari', $infoArray['browser']);
+    }
+
+    /**
+     * @test
+     */
+    public function getBrowserInfoReturnsCorrectBrowserValueForUserAgentStringOfKonqueror()
+    {
+        $userAgentString = 'Mozilla/5.0 (compatible; Konqueror/4.4; FreeBSD) KHTML/4.4.5 (like Gecko)';
+        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
+        $this->assertSame('konqueror', $infoArray['browser']);
+    }
+}
diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Utility/ExtensionManagementUtilityTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Utility/ExtensionManagementUtilityTest.php
new file mode 100644 (file)
index 0000000..73b2838
--- /dev/null
@@ -0,0 +1,277 @@
+<?php
+namespace TYPO3\CMS\Core\Tests\Unit\Utility;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+
+use TYPO3\CMS\Core\Cache\CacheManager;
+use TYPO3\CMS\Core\Compatibility\LoadedExtensionsArray;
+use TYPO3\CMS\Core\Package\Package;
+use TYPO3\CMS\Core\Package\PackageManager;
+use TYPO3\CMS\Core\Tests\Unit\Utility\AccessibleProxies\ExtensionManagementUtilityAccessibleProxy;
+use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+
+/**
+ * Test case
+ */
+class ExtensionManagementUtilityTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
+{
+    /**
+     * @var array A backup of registered singleton instances
+     */
+    protected $singletonInstances = [];
+
+    /**
+     * @var \TYPO3\CMS\Core\Package\PackageManager
+     */
+    protected $backUpPackageManager;
+
+    protected function setUp()
+    {
+        $this->singletonInstances = GeneralUtility::getSingletonInstances();
+        $this->backUpPackageManager = ExtensionManagementUtilityAccessibleProxy::getPackageManager();
+        $this->singletonInstances = GeneralUtility::getSingletonInstances();
+    }
+
+    protected function tearDown()
+    {
+        ExtensionManagementUtility::clearExtensionKeyMap();
+        ExtensionManagementUtilityAccessibleProxy::setPackageManager($this->backUpPackageManager);
+        ExtensionManagementUtilityAccessibleProxy::setCacheManager(null);
+        $GLOBALS['TYPO3_LOADED_EXT'] = new LoadedExtensionsArray($this->backUpPackageManager);
+        GeneralUtility::resetSingletonInstances($this->singletonInstances);
+        parent::tearDown();
+    }
+
+    /**
+     * @param string $packageKey
+     * @param array $packageMethods
+     * @return PackageManager|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected function createMockPackageManagerWithMockPackage($packageKey, $packageMethods = ['getPackagePath', 'getPackageKey'])
+    {
+        $packagePath = PATH_site . 'typo3temp/var/tests/' . $packageKey . '/';
+        GeneralUtility::mkdir_deep($packagePath);
+        $this->testFilesToDelete[] = $packagePath;
+        $package = $this->getMockBuilder(Package::class)
+                ->disableOriginalConstructor()
+                ->setMethods($packageMethods)
+                ->getMock();
+        $packageManager = $this->getMockBuilder(PackageManager::class)
+            ->setMethods(['isPackageActive', 'getPackage', 'getActivePackages'])
+            ->getMock();
+        $package->expects($this->any())
+                ->method('getPackagePath')
+                ->will($this->returnValue($packagePath));
+        $package->expects($this->any())
+                ->method('getPackageKey')
+                ->will($this->returnValue($packageKey));
+        $packageManager->expects($this->any())
+                ->method('isPackageActive')
+                ->will($this->returnValueMap([
+                    [null, false],
+                    [$packageKey, true]
+                ]));
+        $packageManager->expects($this->any())
+                ->method('getPackage')
+                ->with($this->equalTo($packageKey))
+                ->will($this->returnValue($package));
+        $packageManager->expects($this->any())
+                ->method('getActivePackages')
+                ->will($this->returnValue([$packageKey => $package]));
+        return $packageManager;
+    }
+
+    ///////////////////////////////
+    // Tests concerning isLoaded
+    ///////////////////////////////
+    /**
+     * @test
+     */
+    public function isLoadedReturnsFalseIfExtensionIsNotLoadedAndExitIsDisabled()
+    {
+        $this->assertFalse(ExtensionManagementUtility::isLoaded($this->getUniqueId('foobar'), false));
+    }
+
+    ///////////////////////////////
+    // Tests concerning extPath
+    ///////////////////////////////
+    /**
+     * @test
+     */
+    public function extPathThrowsExceptionIfExtensionIsNotLoaded()
+    {
+        $this->expectException(\BadFunctionCallException::class);
+        $this->expectExceptionCode(1365429656);
+
+        $packageName = $this->getUniqueId('foo');
+        /** @var PackageManager|\PHPUnit_Framework_MockObject_MockObject $packageManager */
+        $packageManager = $this->getMockBuilder(PackageManager::class)
+            ->setMethods(['isPackageActive'])
+            ->getMock();
+        $packageManager->expects($this->once())
+                ->method('isPackageActive')
+                ->with($this->equalTo($packageName))
+                ->will($this->returnValue(false));
+        ExtensionManagementUtility::setPackageManager($packageManager);
+        ExtensionManagementUtility::extPath($packageName);
+    }
+
+    /**
+     * @test
+     */
+    public function extPathAppendsScriptNameToPath()
+    {
+        $package = $this->getMockBuilder(Package::class)
+                ->disableOriginalConstructor()
+                ->setMethods(['getPackagePath'])
+                ->getMock();
+        /** @var PackageManager|\PHPUnit_Framework_MockObject_MockObject $packageManager */
+        $packageManager = $this->getMockBuilder(PackageManager::class)
+            ->setMethods(['isPackageActive', 'getPackage'])
+            ->getMock();
+        $package->expects($this->once())
+                ->method('getPackagePath')
+                ->will($this->returnValue(PATH_site . 'foo/'));
+        $packageManager->expects($this->once())
+                ->method('isPackageActive')
+                ->with($this->equalTo('foo'))
+                ->will($this->returnValue(true));
+        $packageManager->expects($this->once())
+                ->method('getPackage')
+                ->with('foo')
+                ->will($this->returnValue($package));
+        ExtensionManagementUtility::setPackageManager($packageManager);
+        $this->assertSame(PATH_site . 'foo/bar.txt', ExtensionManagementUtility::extPath('foo', 'bar.txt'));
+    }
+
+    //////////////////////
+    // Utility functions
+    //////////////////////
+    /**
+     * Generates a basic TCA for a given table.
+     *
+     * @param string $table name of the table, must not be empty
+     * @return array generated TCA for the given table, will not be empty
+     */
+    private function generateTCAForTable($table)
+    {
+        $tca = [];
+        $tca[$table] = [];
+        $tca[$table]['columns'] = [
+            'fieldA' => [],
+            'fieldC' => []
+        ];
+        $tca[$table]['types'] = [
+            'typeA' => ['showitem' => 'fieldA, fieldB, fieldC;labelC, --palette--;;paletteC, fieldC1, fieldD, fieldD1'],
+            'typeB' => ['showitem' => 'fieldA, fieldB, fieldC;labelC, --palette--;;paletteC, fieldC1, fieldD, fieldD1'],
+            'typeC' => ['showitem' => 'fieldC;;paletteD']
+        ];
+        $tca[$table]['palettes'] = [
+            'paletteA' => ['showitem' => 'fieldX, fieldX1, fieldY'],
+            'paletteB' => ['showitem' => 'fieldX, fieldX1, fieldY'],
+            'paletteC' => ['showitem' => 'fieldX, fieldX1, fieldY'],
+            'paletteD' => ['showitem' => 'fieldX, fieldX1, fieldY']
+        ];
+        return $tca;
+    }
+
+    /////////////////////////////////////////////
+    // Tests concerning getExtensionKeyByPrefix
+    /////////////////////////////////////////////
+    /**
+     * @test
+     * @see ExtensionManagementUtility::getExtensionKeyByPrefix
+     */
+    public function getExtensionKeyByPrefixForLoadedExtensionWithUnderscoresReturnsExtensionKey()
+    {
+        ExtensionManagementUtility::clearExtensionKeyMap();
+        $uniqueSuffix = $this->getUniqueId('test');
+        $extensionKey = 'tt_news' . $uniqueSuffix;
+        $extensionPrefix = 'tx_ttnews' . $uniqueSuffix;
+        $package = $this->getMockBuilder(Package::class)
+                ->disableOriginalConstructor()
+                ->setMethods(['getPackageKey'])
+                ->getMock();
+        $package->expects($this->exactly(2))
+                ->method('getPackageKey')
+                ->will($this->returnValue($extensionKey));
+        /** @var PackageManager|\PHPUnit_Framework_MockObject_MockObject $packageManager */
+        $packageManager = $this->getMockBuilder(PackageManager::class)
+            ->setMethods(['getActivePackages'])
+            ->getMock();
+        $packageManager->expects($this->once())
+                ->method('getActivePackages')
+                ->will($this->returnValue([$extensionKey => $package]));
+        ExtensionManagementUtility::setPackageManager($packageManager);
+        $this->assertEquals($extensionKey, ExtensionManagementUtility::getExtensionKeyByPrefix($extensionPrefix));
+    }
+
+    /**
+     * @test
+     * @see ExtensionManagementUtility::getExtensionKeyByPrefix
+     */
+    public function getExtensionKeyByPrefixForLoadedExtensionWithoutUnderscoresReturnsExtensionKey()
+    {
+        ExtensionManagementUtility::clearExtensionKeyMap();
+        $uniqueSuffix = $this->getUniqueId('test');
+        $extensionKey = 'kickstarter' . $uniqueSuffix;
+        $extensionPrefix = 'tx_kickstarter' . $uniqueSuffix;
+        $package = $this->getMockBuilder(Package::class)
+                ->disableOriginalConstructor()
+                ->setMethods(['getPackageKey'])
+                ->getMock();
+        $package->expects($this->exactly(2))
+                ->method('getPackageKey')
+                ->will($this->returnValue($extensionKey));
+        /** @var PackageManager|\PHPUnit_Framework_MockObject_MockObject $packageManager */
+        $packageManager = $this->getMockBuilder(PackageManager::class)
+            ->setMethods(['getActivePackages'])
+            ->getMock();
+        $packageManager->expects($this->once())
+                ->method('getActivePackages')
+                ->will($this->returnValue([$extensionKey => $package]));
+        ExtensionManagementUtility::setPackageManager($packageManager);
+        $this->assertEquals($extensionKey, ExtensionManagementUtility::getExtensionKeyByPrefix($extensionPrefix));
+    }
+
+    /**
+     * @test
+     * @see ExtensionManagementUtility::getExtensionKeyByPrefix
+     */
+    public function getExtensionKeyByPrefixForNotLoadedExtensionReturnsFalse()
+    {
+        ExtensionManagementUtility::clearExtensionKeyMap();
+        $uniqueSuffix = $this->getUniqueId('test');
+        $extensionPrefix = 'tx_unloadedextension' . $uniqueSuffix;
+        $this->assertFalse(ExtensionManagementUtility::getExtensionKeyByPrefix($extensionPrefix));
+    }
+
+    /////////////////////////////////////////
+    // Tests concerning removeCacheFiles
+    /////////////////////////////////////////
+    /**
+     * @test
+     */
+    public function removeCacheFilesFlushesSystemCaches()
+    {
+        /** @var CacheManager|\PHPUnit_Framework_MockObject_MockObject $mockCacheManager */
+        $mockCacheManager = $this->getMockBuilder(CacheManager::class)
+            ->setMethods(['flushCachesInGroup'])
+            ->getMock();
+        $mockCacheManager->expects($this->once())->method('flushCachesInGroup')->with('system');
+        ExtensionManagementUtilityAccessibleProxy::setCacheManager($mockCacheManager);
+        ExtensionManagementUtility::removeCacheFiles();
+    }
+}
diff --git a/typo3/sysext/core/Tests/Unit_Deprecated/Compatibility/PublicPropertyDeprecationTraitTest.php b/typo3/sysext/core/Tests/Unit_Deprecated/Compatibility/PublicPropertyDeprecationTraitTest.php
deleted file mode 100644 (file)
index 4ccd792..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-<?php
-declare(strict_types=1);
-namespace TYPO3\CMS\Core\Tests\Unit\Compatibility;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-use TYPO3\CMS\Core\Compatibility\PublicPropertyDeprecationTrait;
-use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
-
-class PublicPropertyDeprecationTraitTest extends UnitTestCase
-{
-    /**
-     * @var object Test fixture (anonymous class)
-     * @see PublicAccessDeprecationTraitTest::setUp()
-     */
-    protected $fixture;
-
-    /**
-     * Setup
-     *
-     * Creating the test fixture, an anonymous class with different kinds
-     * of properties to test access for.
-     */
-    protected function setUp()
-    {
-        $this->fixture = new class {
-            use PublicPropertyDeprecationTrait;
-            private $deprecatedPublicProperties = [
-                'taggedProperty' => 'taggedProperty is deprecated',
-                'unsetTaggedProperty' => 'unsetTaggedProperty is deprecated'
-            ];
-
-            public $publicProperty = 'publicProperty';
-
-            public $unsetPublicProperty;
-
-            /**
-             * @deprecatedPublic
-             */
-            protected $taggedProperty = 'taggedProperty';
-
-            /**
-             * @deprecatedPublic
-             */
-            protected $unsetTaggedProperty;
-
-            protected $untaggedProperty = 'untaggedProperty';
-        };
-    }
-
-    /**
-     * @return array [[$expected, $property],]
-     */
-    public function issetDataProvider(): array
-    {
-        return [
-            'public property' => [true, 'publicProperty'],
-            'unset public property' => [false, 'unsetPublicProperty'],
-            'tagged property' => [true, 'taggedProperty'],
-            'unset tagged property' => [false, 'unsetTaggedProperty'],
-            'untagged property' => [false, 'untaggedProperty'],
-            'unknown property' => [false, 'unknownProperty'],
-        ];
-    }
-
-    /**
-     * @dataProvider issetDataProvider
-     * @test
-     * @param bool $expected
-     * @param string $property
-     */
-    public function issetWorksAsExpected(bool $expected, string $property)
-    {
-        $this->assertSame($expected, isset($this->fixture->$property));
-    }
-
-    /**
-     * @test
-     */
-    public function unknownPropertyCanBeHandledAsUsual()
-    {
-        // Uses __isset()
-        $this->assertFalse(isset($this->fixture->unknownProperty));
-        // Uses __set()
-        $this->fixture->unknownProperty = 23;
-        // Don't uses __isset()
-        $this->assertTrue(isset($this->fixture->unknownProperty));
-        // Don't uses __get()
-        $this->assertSame(23, $this->fixture->unknownProperty);
-        // Don't uses __unset()
-        unset($this->fixture->unknownProperty);
-        // Uses __isset()
-        $this->assertFalse(isset($this->fixture->unknownProperty));
-    }
-
-    /**
-     * @test
-     */
-    public function publicPropertyCanBeHandledAsUsual()
-    {
-        $this->assertFalse(isset($this->fixture->unsetPublicProperty));
-        $this->fixture->unsetPublicProperty = 23;
-        $this->assertTrue(isset($this->fixture->unsetPublicProperty));
-        $this->assertSame(23, $this->fixture->unsetPublicProperty);
-        unset($this->fixture->unsetPublicProperty);
-        $this->assertFalse(isset($this->fixture->unsetPublicProperty));
-    }
-
-    /**
-     * @test
-     */
-    public function taggedPropertyCanBeHandledLikePublicProperty()
-    {
-        $this->assertFalse(isset($this->fixture->unsetTaggedProperty));
-        $this->fixture->unsetTaggedProperty = 23;
-        $this->assertTrue(isset($this->fixture->unsetTaggedProperty));
-        $this->assertSame(23, $this->fixture->unsetTaggedProperty);
-        unset($this->fixture->unsetTaggedProperty);
-        $this->assertFalse(isset($this->fixture->unsetTaggedProperty));
-    }
-
-    /**
-     * @return array [[$property],]
-     */
-    public function invalidPropertiesDataProvider(): array
-    {
-        return [
-            'untagged' => ['untaggedProperty'],
-            'unknown' => ['unknownProperty'],
-        ];
-    }
-}
diff --git a/typo3/sysext/core/Tests/Unit_Deprecated/Html/RteHtmlParserTest.php b/typo3/sysext/core/Tests/Unit_Deprecated/Html/RteHtmlParserTest.php
deleted file mode 100644 (file)
index 1a03661..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-namespace TYPO3\CMS\Core\Tests\Unit_Deprecated\Html;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-/**
- * Testcase for \TYPO3\CMS\Core\Html\RteHtmlParser
- */
-class RteHtmlParserTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
-{
-    /**
-     * @var \TYPO3\CMS\Core\Html\RteHtmlParser
-     */
-    protected $subject = null;
-
-    protected function setUp()
-    {
-        $this->subject = new \TYPO3\CMS\Core\Html\RteHtmlParser();
-        $this->subject->procOptions = [
-            'allowTagsOutside' => 'hr, address',
-            'overruleMode' => 'default'
-        ];
-    }
-
-    /**
-     * Data provider for linkWithAtSignCorrectlyTransformedOnWayToRTE
-     */
-    public static function linkWithAtSignCorrectlyTransformedOnWayToRTEProvider()
-    {
-        return [
-            'external url with @ sign' => [
-                '<link http://www.example.org/at@sign>link text</link>',
-                '<p><a href="http://www.example.org/at@sign">link text</a></p>'
-            ],
-            'email address with @ sign' => [
-                '<link name@example.org - mail "Opens window for sending email">link text</link>',
-                '<p><a href="mailto:name@example.org" class="mail" title="Opens window for sending email">link text</a></p>'
-            ]
-        ];
-    }
-
-    /**
-     * @test
-     * @dataProvider linkWithAtSignCorrectlyTransformedOnWayToRTEProvider
-     */
-    public function linkWithAtSignCorrectlyTransformedOnWayToRTE($content, $expectedResult)
-    {
-        $thisConfig = ['proc.' => $this->subject->procOptions];
-        $this->assertEquals($expectedResult, $this->subject->RTE_transform($content, [], 'rte', $thisConfig));
-    }
-}
diff --git a/typo3/sysext/core/Tests/Unit_Deprecated/Utility/ClientUtilityTest.php b/typo3/sysext/core/Tests/Unit_Deprecated/Utility/ClientUtilityTest.php
deleted file mode 100644 (file)
index e437686..0000000
+++ /dev/null
@@ -1,478 +0,0 @@
-<?php
-namespace TYPO3\CMS\Core\Tests\Unit\Utility;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-/**
- * Testcase for the \TYPO3\CMS\Core\Utility\ClientUtility class.
- */
-class ClientUtilityTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
-{
-    //////////////////////////////////////////////////////////
-    // Utility Functions
-    //////////////////////////////////////////////////////////
-    /**
-     * Compares array of UA strings with expected result array of browser/version pair
-     *
-     * @param array $browserStrings array with userAgent strings
-     * @param array $expectedMembers array with expected browser/version for given userAgent strings
-     */
-    private function analyzeUserAgentStrings($browserStrings, $expectedMembers)
-    {
-        $actual = $expected = [];
-        foreach ($browserStrings as $browserString) {
-            $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($browserString);
-            $expected[] = $expectedMembers;
-            $actual[] = [
-                'browser' => $infoArray['browser'],
-                'version' => array_shift(explode('.', $infoArray['version']))
-            ];
-        }
-        $this->assertSame($expected, $actual);
-    }
-
-    //////////////////////////////////////////////////////////
-    // Tests concerning getBrowserInfo
-    //////////////////////////////////////////////////////////
-    /**
-     * @test
-     */
-    public function checkBrowserInfoIE6()
-    {
-        $browserStrings = [
-            'Mozilla/4.0 (compatible; MSIE 6.1; Windows XP; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
-            'Mozilla/4.0 (compatible; MSIE 6.1; Windows XP)',
-            'Mozilla/4.0 (compatible; MSIE 6.01; Windows NT 6.0)',
-            'Mozilla/5.0 (Windows; U; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)',
-            'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)',
-            'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4325)',
-            'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)',
-            'Mozilla/45.0 (compatible; MSIE 6.0; Windows NT 5.1)',
-            'Mozilla/4.08 (compatible; MSIE 6.0; Windows NT 5.1)',
-            'Mozilla/4.01 (compatible; MSIE 6.0; Windows NT 5.1)',
-            'Mozilla/4.0 (X11; MSIE 6.0; i686; .NET CLR 1.1.4322; .NET CLR 2.0.50727; FDM)',
-            'Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 6.0)',
-            'Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 5.2)',
-            'Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 5.0)',
-            'Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)',
-            'Mozilla/4.0 (MSIE 6.0; Windows NT 5.1)',
-            'Mozilla/4.0 (MSIE 6.0; Windows NT 5.0)',
-            'Mozilla/4.0 (compatible;MSIE 6.0;Windows 98;Q312461)',
-            'Mozilla/4.0 (Compatible; Windows NT 5.1; MSIE 6.0) (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
-            'Mozilla/4.0 (compatible; U; MSIE 6.0; Windows NT 5.1)',
-            'Mozilla/4.0 (compatible; MSIE 6,0; Windows NT 5,1; SV1; Alexa Toolbar)'
-        ];
-        $expectedMembers = [
-            'browser' => 'msie',
-            'version' => '6'
-        ];
-        $this->analyzeUserAgentStrings($browserStrings, $expectedMembers);
-    }
-
-    /**
-     * @test
-     */
-    public function checkBrowserInfoIE7()
-    {
-        $browserStrings = [
-            'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)',
-            'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; el-GR)',
-            'Mozilla/5.0 (MSIE 7.0; Macintosh; U; SunOS; X11; gu; SV1; InfoPath.2; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)',
-            'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; c .NET CLR 3.0.04506; .NET CLR 3.5.30707; InfoPath.1; el-GR)',
-            'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; c .NET CLR 3.0.04506; .NET CLR 3.5.30707; InfoPath.1; el-GR)',
-            'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0; fr-FR)',
-            'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0; en-US)',
-            'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.2; WOW64; .NET CLR 2.0.50727)',
-            'Mozilla/4.79 [en] (compatible; MSIE 7.0; Windows NT 5.0; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)',
-            'Mozilla/4.0 (Windows; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)',
-            'Mozilla/4.0 (Mozilla/4.0; MSIE 7.0; Windows NT 5.1; FDM; SV1; .NET CLR 3.0.04506.30)',
-            'Mozilla/4.0 (Mozilla/4.0; MSIE 7.0; Windows NT 5.1; FDM; SV1)',
-            'Mozilla/4.0 (compatible;MSIE 7.0;Windows NT 6.0)',
-            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)',
-            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0;)',
-            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; YPC 3.2.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.30729; .NET CLR 3.0.30618)',
-            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; YPC 3.2.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)',
-            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; Media Center PC 5.0; .NET CLR 2.0.50727)',
-            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 3.0.04506)',
-            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET CLR 1.1.4322)',
-            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; Trident/7.0; .NET4.0E; .NET4.0C)',
-            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/5.0)',
-        ];
-        $expectedMembers = [
-            'browser' => 'msie',
-            'version' => '7'
-        ];
-        $this->analyzeUserAgentStrings($browserStrings, $expectedMembers);
-    }
-
-    /**
-     * @test
-     */
-    public function checkBrowserInfoIE8()
-    {
-        $browserStrings = [
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.2; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; Media Center PC 6.0; InfoPath.2; MS-RTC LM 8)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.2)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Zune 3.0)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; msn OptimizedIE8;ZHCN)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MS-RTC LM 8)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; Zune 4.0)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; OfficeLiveConnector.1.4; OfficeLivePatch.1.3; yie8)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; Zune 3.0; MS-RTC LM 8)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; MS-RTC LM 8; Zune 4.0)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; MS-RTC LM 8)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; FDM; OfficeLiveConnector.1.4; OfficeLivePatch.1.3; .NET CLR 1.1.4322)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; FDM)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 4.0.20402; MS-RTC LM 8)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 1.1.4322; InfoPath.2; MS-RTC LM 8)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 1.1.4322; InfoPath.2)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.3; .NET CLR 4.0.20506)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; MRA 5.5 (build 02842); SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2)',
-            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30729)'
-        ];
-        $expectedMembers = [
-            'browser' => 'msie',
-            'version' => '8'
-        ];
-        $this->analyzeUserAgentStrings($browserStrings, $expectedMembers);
-    }
-
-    /**
-     * @test
-     */
-    public function checkBrowserInfoIE9()
-    {
-        $browserStrings = [
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',
-        ];
-        $expectedMembers = [
-            'browser' => 'msie',
-            'version' => '9'
-        ];
-        $this->analyzeUserAgentStrings($browserStrings, $expectedMembers);
-    }
-
-    /**
-     * @test
-     */
-    public function checkBrowserInfoIE10()
-    {
-        $browserStrings = [
-            'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)',
-        ];
-        $expectedMembers = [
-            'browser' => 'msie',
-            'version' => '10'
-        ];
-        $this->analyzeUserAgentStrings($browserStrings, $expectedMembers);
-    }
-
-    /**
-     * @test
-     */
-    public function checkBrowserInfoIE11()
-    {
-        $browserStrings = [
-            'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko',
-            'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; .NET4.0E; .NET4.0C; rv:11.0) like Gecko',
-        ];
-        $expectedMembers = [
-            'browser' => 'msie',
-            'version' => '11'
-        ];
-        $this->analyzeUserAgentStrings($browserStrings, $expectedMembers);
-    }
-
-    /**
-     * @test
-     */
-    public function checkGeckoVersion()
-    {
-        $userAgentString = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertEquals('1.9.2.3', $infoArray['all']['gecko']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindows8()
-    {
-        $userAgentString = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('win8', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindows8rev1()
-    {
-        $userAgentString = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.3; Trident/6.0)';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('win8', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindows7()
-    {
-        $userAgentString = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('win7', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindowsVista()
-    {
-        $userAgentString = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('winVista', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindowsXp()
-    {
-        $userAgentString = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('winXP', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindows2k()
-    {
-        $userAgentString = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; SV1)';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('win2k', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindows2kServicePack1()
-    {
-        $userAgentString = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.01; SV1)';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('win2k', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfWindowsNt()
-    {
-        $userAgentString = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 4.0)';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('winNT', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfIpad()
-    {
-        $userAgentString = 'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7W367a Safari/531.21.10';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('iOS', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfIphone()
-    {
-        $userAgentString = 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('iOS', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfIpod()
-    {
-        $userAgentString = 'Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Geckto) Version/3.0 Mobile/3A101a Safari/419.3';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('iOS', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfMacOsX()
-    {
-        $userAgentString = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-us) AppleWebKit/534.15+ (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('mac', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfLinux()
-    {
-        $userAgentString = 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('linux', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfSolaris()
-    {
-        $userAgentString = 'Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.9.1.9) Gecko/20100525 Firefox/3.5.9';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('unix_sun', $infoArray['all_systems']);
-    }
-
-    /**
-     * Provide various user agent strings for android devices
-     *
-     * @static
-     * @return array List of user agents
-     */
-    public static function androidUserAgentsProvider()
-    {
-        $agents = [
-            'defaultBrowser' => [
-                'agent' => 'Mozilla/5.0 (Linux; U; Android 2.3; en-US; sdk Build/GRH55) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'
-            ],
-            'operaMini' => [
-                'agent' => 'Opera/9.80 (Android; Opera Mini/6.0.24556/24.816; U; en) Presto/2.5.25 Version/10.54'
-            ]
-        ];
-        return $agents;
-    }
-
-    /**
-     * @test
-     * @dataProvider androidUserAgentsProvider
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfAndroid($userAgentString)
-    {
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('android', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfOpenbsd()
-    {
-        $userAgentString = 'Links (1.00pre20; OpenBSD 4.8 i386; 80x25)';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('unix_bsd', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfNetbsd()
-    {
-        $userAgentString = 'Links (2.2; NetBSD 5.1 amd64; 80x25)';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('unix_bsd', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfFreebsd()
-    {
-        $userAgentString = 'Mozilla/5.0 (X11; U; FreeBSD amd64; c) AppleWebKit/531.2+ (KHTML, like Gecko) Safari 531.2+ Epiphany/230.2';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('unix_bsd', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectSystemValueForUserAgentStringOfChromeOs()
-    {
-        $userAgentString = 'Mozilla/5.0 (X11; U; CrOS i686  9.10.0; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.253.0 Safari 532.5';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertContains('chrome', $infoArray['all_systems']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectBrowserValueForUserAgentStringOfSafari()
-    {
-        $userAgentString = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertSame('safari', $infoArray['browser']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectBrowserValueForUserAgentStringOfFirefox()
-    {
-        $userAgentString = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0b8) Gecko/20100101 Firefox/4.0b8';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertSame('firefox', $infoArray['browser']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectBrowserValueForUserAgentStringOfOpera()
-    {
-        $userAgentString = 'Opera/9.80 (X11; FreeBSD 8.1-RELEASE amd64; U; en) Presto/2.2.15 Version/10.10';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertSame('opera', $infoArray['browser']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectBrowserValueForUserAgentStringOfMobileSafariOnAndroid()
-    {
-        $userAgentString = 'Mozilla/5.0 (Linux; U; Android WildPuzzleROM v8.0.7 froyo 2.2; de-de; HTC Wildfire Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertSame('safari', $infoArray['browser']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectBrowserValueForUserAgentStringOfMobileSafariOnIphone()
-    {
-        $userAgentString = 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertSame('safari', $infoArray['browser']);
-    }
-
-    /**
-     * @test
-     */
-    public function getBrowserInfoReturnsCorrectBrowserValueForUserAgentStringOfKonqueror()
-    {
-        $userAgentString = 'Mozilla/5.0 (compatible; Konqueror/4.4; FreeBSD) KHTML/4.4.5 (like Gecko)';
-        $infoArray = \TYPO3\CMS\Core\Utility\ClientUtility::getBrowserInfo($userAgentString);
-        $this->assertSame('konqueror', $infoArray['browser']);
-    }
-}
diff --git a/typo3/sysext/core/Tests/Unit_Deprecated/Utility/ExtensionManagementUtilityTest.php b/typo3/sysext/core/Tests/Unit_Deprecated/Utility/ExtensionManagementUtilityTest.php
deleted file mode 100644 (file)
index 73b2838..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-<?php
-namespace TYPO3\CMS\Core\Tests\Unit\Utility;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-use TYPO3\CMS\Core\Cache\CacheManager;
-use TYPO3\CMS\Core\Compatibility\LoadedExtensionsArray;
-use TYPO3\CMS\Core\Package\Package;
-use TYPO3\CMS\Core\Package\PackageManager;
-use TYPO3\CMS\Core\Tests\Unit\Utility\AccessibleProxies\ExtensionManagementUtilityAccessibleProxy;
-use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
-use TYPO3\CMS\Core\Utility\GeneralUtility;
-
-/**
- * Test case
- */
-class ExtensionManagementUtilityTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
-{
-    /**
-     * @var array A backup of registered singleton instances
-     */
-    protected $singletonInstances = [];
-
-    /**
-     * @var \TYPO3\CMS\Core\Package\PackageManager
-     */
-    protected $backUpPackageManager;
-
-    protected function setUp()
-    {
-        $this->singletonInstances = GeneralUtility::getSingletonInstances();
-        $this->backUpPackageManager = ExtensionManagementUtilityAccessibleProxy::getPackageManager();
-        $this->singletonInstances = GeneralUtility::getSingletonInstances();
-    }
-
-    protected function tearDown()
-    {
-        ExtensionManagementUtility::clearExtensionKeyMap();
-        ExtensionManagementUtilityAccessibleProxy::setPackageManager($this->backUpPackageManager);
-        ExtensionManagementUtilityAccessibleProxy::setCacheManager(null);
-        $GLOBALS['TYPO3_LOADED_EXT'] = new LoadedExtensionsArray($this->backUpPackageManager);
-        GeneralUtility::resetSingletonInstances($this->singletonInstances);
-        parent::tearDown();
-    }
-
-    /**
-     * @param string $packageKey
-     * @param array $packageMethods
-     * @return PackageManager|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected function createMockPackageManagerWithMockPackage($packageKey, $packageMethods = ['getPackagePath', 'getPackageKey'])
-    {
-        $packagePath = PATH_site . 'typo3temp/var/tests/' . $packageKey . '/';
-        GeneralUtility::mkdir_deep($packagePath);
-        $this->testFilesToDelete[] = $packagePath;
-        $package = $this->getMockBuilder(Package::class)
-                ->disableOriginalConstructor()
-                ->setMethods($packageMethods)
-                ->getMock();
-        $packageManager = $this->getMockBuilder(PackageManager::class)
-            ->setMethods(['isPackageActive', 'getPackage', 'getActivePackages'])
-            ->getMock();
-        $package->expects($this->any())
-                ->method('getPackagePath')
-                ->will($this->returnValue($packagePath));
-        $package->expects($this->any())
-                ->method('getPackageKey')
-                ->will($this->returnValue($packageKey));
-        $packageManager->expects($this->any())
-                ->method('isPackageActive')
-                ->will($this->returnValueMap([
-                    [null, false],
-                    [$packageKey, true]
-                ]));
-        $packageManager->expects($this->any())
-                ->method('getPackage')
-                ->with($this->equalTo($packageKey))
-                ->will($this->returnValue($package));
-        $packageManager->expects($this->any())
-                ->method('getActivePackages')
-                ->will($this->returnValue([$packageKey => $package]));
-        return $packageManager;
-    }
-
-    ///////////////////////////////
-    // Tests concerning isLoaded
-    ///////////////////////////////
-    /**
-     * @test
-     */
-    public function isLoadedReturnsFalseIfExtensionIsNotLoadedAndExitIsDisabled()
-    {
-        $this->assertFalse(ExtensionManagementUtility::isLoaded($this->getUniqueId('foobar'), false));
-    }
-
-    ///////////////////////////////
-    // Tests concerning extPath
-    ///////////////////////////////
-    /**
-     * @test
-     */
-    public function extPathThrowsExceptionIfExtensionIsNotLoaded()
-    {
-        $this->expectException(\BadFunctionCallException::class);
-        $this->expectExceptionCode(1365429656);
-
-        $packageName = $this->getUniqueId('foo');
-        /** @var PackageManager|\PHPUnit_Framework_MockObject_MockObject $packageManager */
-        $packageManager = $this->getMockBuilder(PackageManager::class)
-            ->setMethods(['isPackageActive'])
-            ->getMock();
-        $packageManager->expects($this->once())
-                ->method('isPackageActive')
-                ->with($this->equalTo($packageName))
-                ->will($this->returnValue(false));
-        ExtensionManagementUtility::setPackageManager($packageManager);
-        ExtensionManagementUtility::extPath($packageName);
-    }
-
-    /**
-     * @test
-     */
-    public function extPathAppendsScriptNameToPath()
-    {
-        $package = $this->getMockBuilder(Package::class)
-                ->disableOriginalConstructor()
-                ->setMethods(['getPackagePath'])
-                ->getMock();
-        /** @var PackageManager|\PHPUnit_Framework_MockObject_MockObject $packageManager */
-        $packageManager = $this->getMockBuilder(PackageManager::class)
-            ->setMethods(['isPackageActive', 'getPackage'])
-            ->getMock();
-        $package->expects($this->once())
-                ->method('getPackagePath')
-                ->will($this->returnValue(PATH_site . 'foo/'));
-        $packageManager->expects($this->once())
-                ->method('isPackageActive')
-                ->with($this->equalTo('foo'))
-                ->will($this->returnValue(true));
-        $packageManager->expects($this->once())
-                ->method('getPackage')
-                ->with('foo')
-                ->will($this->returnValue($package));
-        ExtensionManagementUtility::setPackageManager($packageManager);
-        $this->assertSame(PATH_site . 'foo/bar.txt', ExtensionManagementUtility::extPath('foo', 'bar.txt'));
-    }
-
-    //////////////////////
-    // Utility functions
-    //////////////////////
-    /**
-     * Generates a basic TCA for a given table.
-     *
-     * @param string $table name of the table, must not be empty
-     * @return array generated TCA for the given table, will not be empty
-     */
-    private function generateTCAForTable($table)
-    {
-        $tca = [];
-        $tca[$table] = [];
-        $tca[$table]['columns'] = [
-            'fieldA' => [],
-            'fieldC' => []
-        ];
-        $tca[$table]['types'] = [
-            'typeA' => ['showitem' => 'fieldA, fieldB, fieldC;labelC, --palette--;;paletteC, fieldC1, fieldD, fieldD1'],
-            'typeB' => ['showitem' => 'fieldA, fieldB, fieldC;labelC, --palette--;;paletteC, fieldC1, fieldD, fieldD1'],
-            'typeC' => ['showitem' => 'fieldC;;paletteD']
-        ];
-        $tca[$table]['palettes'] = [
-            'paletteA' => ['showitem' => 'fieldX, fieldX1, fieldY'],
-            'paletteB' => ['showitem' => 'fieldX, fieldX1, fieldY'],
-            'paletteC' => ['showitem' => 'fieldX, fieldX1, fieldY'],
-            'paletteD' => ['showitem' => 'fieldX, fieldX1, fieldY']
-        ];
-        return $tca;
-    }
-
-    /////////////////////////////////////////////
-    // Tests concerning getExtensionKeyByPrefix
-    /////////////////////////////////////////////
-    /**
-     * @test
-     * @see ExtensionManagementUtility::getExtensionKeyByPrefix
-     */
-    public function getExtensionKeyByPrefixForLoadedExtensionWithUnderscoresReturnsExtensionKey()
-    {
-        ExtensionManagementUtility::clearExtensionKeyMap();
-        $uniqueSuffix = $this->getUniqueId('test');
-        $extensionKey = 'tt_news' . $uniqueSuffix;
-        $extensionPrefix = 'tx_ttnews' . $uniqueSuffix;
-        $package = $this->getMockBuilder(Package::class)
-                ->disableOriginalConstructor()
-                ->setMethods(['getPackageKey'])
-                ->getMock();
-        $package->expects($this->exactly(2))
-                ->method('getPackageKey')
-                ->will($this->returnValue($extensionKey));
-        /** @var PackageManager|\PHPUnit_Framework_MockObject_MockObject $packageManager */
-        $packageManager = $this->getMockBuilder(PackageManager::class)
-            ->setMethods(['getActivePackages'])
-            ->getMock();
-        $packageManager->expects($this->once())
-                ->method('getActivePackages')
-                ->will($this->returnValue([$extensionKey => $package]));
-        ExtensionManagementUtility::setPackageManager($packageManager);
-        $this->assertEquals($extensionKey, ExtensionManagementUtility::getExtensionKeyByPrefix($extensionPrefix));
-    }
-
-    /**
-     * @test
-     * @see ExtensionManagementUtility::getExtensionKeyByPrefix
-     */
-    public function getExtensionKeyByPrefixForLoadedExtensionWithoutUnderscoresReturnsExtensionKey()
-    {
-        ExtensionManagementUtility::clearExtensionKeyMap();
-        $uniqueSuffix = $this->getUniqueId('test');
-        $extensionKey = 'kickstarter' . $uniqueSuffix;
-        $extensionPrefix = 'tx_kickstarter' . $uniqueSuffix;
-        $package = $this->getMockBuilder(Package::class)
-                ->disableOriginalConstructor()
-                ->setMethods(['getPackageKey'])
-                ->getMock();
-        $package->expects($this->exactly(2))
-                ->method('getPackageKey')
-                ->will($this->returnValue($extensionKey));
-        /** @var PackageManager|\PHPUnit_Framework_MockObject_MockObject $packageManager */
-        $packageManager = $this->getMockBuilder(PackageManager::class)
-            ->setMethods(['getActivePackages'])
-            ->getMock();
-        $packageManager->expects($this->once())
-                ->method('getActivePackages')
-                ->will($this->returnValue([$extensionKey => $package]));
-        ExtensionManagementUtility::setPackageManager($packageManager);
-        $this->assertEquals($extensionKey, ExtensionManagementUtility::getExtensionKeyByPrefix($extensionPrefix));
-    }
-
-    /**
-     * @test
-     * @see ExtensionManagementUtility::getExtensionKeyByPrefix
-     */
-    public function getExtensionKeyByPrefixForNotLoadedExtensionReturnsFalse()
-    {
-        ExtensionManagementUtility::clearExtensionKeyMap();
-        $uniqueSuffix = $this->getUniqueId('test');
-        $extensionPrefix = 'tx_unloadedextension' . $uniqueSuffix;
-        $this->assertFalse(ExtensionManagementUtility::getExtensionKeyByPrefix($extensionPrefix));
-    }
-
-    /////////////////////////////////////////
-    // Tests concerning removeCacheFiles
-    /////////////////////////////////////////
-    /**
-     * @test
-     */
-    public function removeCacheFilesFlushesSystemCaches()
-    {
-        /** @var CacheManager|\PHPUnit_Framework_MockObject_MockObject $mockCacheManager */
-        $mockCacheManager = $this->getMockBuilder(CacheManager::class)
-            ->setMethods(['flushCachesInGroup'])
-            ->getMock();
-        $mockCacheManager->expects($this->once())->method('flushCachesInGroup')->with('system');
-        ExtensionManagementUtilityAccessibleProxy::setCacheManager($mockCacheManager);
-        ExtensionManagementUtility::removeCacheFiles();
-    }
-}
index d523697..4c1aab9 100644 (file)
@@ -100,9 +100,9 @@ class ConfigurationManager extends ExtbaseConfigurationManager implements Config
             return $this->overrideConfigurationByTypoScript($yamlSettings, $extensionName);
         }
 
+        $configuration = $this->objectManager->get(Configuration::class)
+            ->setMergeLists(false);
         if (isset($typoscriptSettings['configurationFile'])) {
-            $configuration = $this->objectManager->get(Configuration::class)
-                ->setMergeLists(false);
             $yamlSettings = $this->objectManager->get(FalYamlFileLoader::class, $configuration)
                 ->load($typoscriptSettings['configurationFile']);
         } elseif (isset($typoscriptSettings['yamlConfigurations'])) {
@@ -110,7 +110,8 @@ class ConfigurationManager extends ExtbaseConfigurationManager implements Config
             $yamlContent = $this->generateYamlFromLegacyYamlConfigurations(
                 $typoscriptSettings['yamlConfigurations']
             );
-            $yamlSettings = $this->objectManager->get(YamlFileLoader::class)
+
+            $yamlSettings = $this->objectManager->get(YamlFileLoader::class, $configuration)
                 ->loadFromContent($yamlContent);
         } else {
             throw new NoConfigurationFoundException(
index d901191..5f21422 100644 (file)
@@ -92,11 +92,17 @@ class ConfigurationManagerTest extends \TYPO3\TestingFramework\Core\Unit\UnitTes
             ->method('getTypoScriptSettings')
             ->willReturn([]);
 
-        $objectMangerProphecy = $this->prophesize(ObjectManager::class);
-        $objectMangerProphecy
+        $objectManagerProphecy = $this->prophesize(ObjectManager::class);
+        $objectManagerProphecy
             ->get(FalYamlFileLoader::class)
             ->willReturn(new FalYamlFileLoader);
-        $mockConfigurationManager->_set('objectManager', $objectMangerProphecy->reveal());
+
+        $configuration = new Configuration();
+        $objectManagerProphecy
+            ->get(Configuration::class)
+            ->willReturn($configuration);
+
+        $mockConfigurationManager->_set('objectManager', $objectManagerProphecy->reveal());
 
         $input = 'form';
         $expected = [];
diff --git a/typo3/sysext/form/Tests/Unit/Mvc/Configuration/Fixtures/Header.yaml b/typo3/sysext/form/Tests/Unit/Mvc/Configuration/Fixtures/Header.yaml
deleted file mode 100644 (file)
index ab19ab6..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# Header 1
-# Header 2
-
-yaml
-
-# Comment
\ No newline at end of file
diff --git a/typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/ConfigurationManagerTest.php b/typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/ConfigurationManagerTest.php
new file mode 100644 (file)
index 0000000..5582780
--- /dev/null
@@ -0,0 +1,142 @@
+<?php
+namespace TYPO3\CMS\Form\Tests\Unit\Mvc\Configuration;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+
+use Prophecy\Argument;
+use TYPO3\CMS\Core\Configuration\Loader\YamlFileLoader;
+use TYPO3\CMS\Core\Configuration\Loader\YamlFileLoader\Configuration;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Extbase\Object\ObjectManager;
+use TYPO3\CMS\Form\Mvc\Configuration\ConfigurationManager;
+use TYPO3\CMS\Form\Mvc\Configuration\InheritancesResolverService;
+
+/**
+ * Test case
+ */
+class ConfigurationManagerTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
+{
+
+    /**
+     * @var array A backup of registered singleton instances
+     */
+    protected $singletonInstances = [];
+
+    /**
+     * Set up
+     */
+    public function setUp()
+    {
+        $this->singletonInstances = GeneralUtility::getSingletonInstances();
+    }
+
+    /**
+     * Tear down
+     */
+    public function tearDown()
+    {
+        GeneralUtility::resetSingletonInstances($this->singletonInstances);
+        parent::tearDown();
+    }
+
+    /**
+     * @test
+     */
+    public function getConfigurationFromYamlFile()
+    {
+        $mockConfigurationManager = $this->getAccessibleMock(ConfigurationManager::class, [
+            'getYamlSettingsFromCache',
+            'setYamlSettingsIntoCache',
+            'getTypoScriptSettings',
+            'overrideConfigurationByTypoScript',
+        ], [], '', false);
+
+        $objectManagerProphecy = $this->prophesize(ObjectManager::class);
+        GeneralUtility::setSingletonInstance(ObjectManager::class, $objectManagerProphecy->reveal());
+
+        $configuration = new Configuration();
+        $objectManagerProphecy
+            ->get(Configuration::class)
+            ->willReturn($configuration);
+
+        $objectManagerProphecy
+            ->get(YamlFileLoader::class, Argument::type(Configuration::class))
+            ->willReturn(new YamlFileLoader($configuration));
+
+        $objectManagerProphecy
+            ->get(InheritancesResolverService::class)
+            ->willReturn(new InheritancesResolverService);
+
+        $mockConfigurationManager->_set('objectManager', $objectManagerProphecy->reveal());
+
+        $mockConfigurationManager
+            ->expects($this->any())
+            ->method('getYamlSettingsFromCache')
+            ->willReturn([]);
+
+        $mockConfigurationManager
+            ->expects($this->any())
+            ->method('getTypoScriptSettings')
+            ->willReturn([
+                'yamlConfigurations' => [
+                    10 => 'EXT:form/Tests/Unit/Mvc/Configuration/Fixtures/File1.yaml'
+                ]
+            ]);
+
+        $mockConfigurationManager
+            ->expects($this->any())
+            ->method('setYamlSettingsIntoCache')
+            ->willReturn(null);
+
+        $mockConfigurationManager
+            ->expects($this->any())
+            ->method('overrideConfigurationByTypoScript')
+            ->willReturnArgument(0);
+
+        $input = 'form';
+        $expected = [
+            'config' => [
+                'value9' => 'File 3',
+                'value10' => 'File 4',
+                'value8' => 'File 3',
+                'value1' => 'File 1',
+                'value4' => 'File 1',
+                'value5' => 'File 1',
+                'value7' => 'File 2',
+                'value11' => [
+                    'key1' => 'File 1',
+                    'key2' => 'File 1',
+                ],
+                'value12' => [
+                    'key1' => 'File 2',
+                ],
+                'value3' => 'File 1',
+            ],
+            'mixins' => [
+                'value11Mixin' => [
+                    'key1' => 'File 1',
+                    'key2' => 'File 1',
+                ],
+                'value12Mixin1' => [
+                    'key1' => 'File 2',
+                ],
+                'value12Mixin2' => [
+                    'key2' => 'File 2',
+                ],
+            ],
+        ];
+
+        $this->assertSame($expected, $mockConfigurationManager->_call('getConfigurationFromYamlFile', 'form'));
+    }
+}
diff --git a/typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/Fixtures/File1.yaml b/typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/Fixtures/File1.yaml
new file mode 100644 (file)
index 0000000..112c691
--- /dev/null
@@ -0,0 +1,21 @@
+imports:
+  - { resource: "EXT:form/Tests/Unit/Mvc/Configuration/Fixtures/File2.yaml" }
+  - { resource: "EXT:form/Tests/Unit/Mvc/Configuration/Fixtures/File3.yaml" }
+
+TYPO3:
+  CMS:
+    Form:
+      config:
+        value1: File 1
+        value2: null
+        value3: File 1
+        value4: File 1
+        value5: File 1
+        value6: null
+        value12:
+          __inheritances:
+            20: null
+      mixins:
+        value11Mixin:
+          key1: File 1
+          key2: File 1
diff --git a/typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/Fixtures/File2.yaml b/typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/Fixtures/File2.yaml
new file mode 100644 (file)
index 0000000..4b5a563
--- /dev/null
@@ -0,0 +1,27 @@
+TYPO3:
+  CMS:
+    Form:
+      config:
+        value1: File2 (should be overridden by File1)
+        value2: File2 (should be removed by File1)
+        value4:
+          key1: File2 (the whole array should be overridden by File1)
+        value5: File2 (should be an array through File1)
+        value6:
+          key1: File2 (the whole array should be removed by File1)
+        value7: File 2
+        value11:
+          __inheritances:
+            10: 'TYPO3.CMS.Form.mixins.value11Mixin'
+        value12:
+          __inheritances:
+            10: 'TYPO3.CMS.Form.mixins.value12Mixin1'
+            20: 'TYPO3.CMS.Form.mixins.value12Mixin2'
+      mixins:
+        value11Mixin:
+          key1: File 2 (should be overridden by File1)
+          key2: File 2
+        value12Mixin1:
+          key1: File 2
+        value12Mixin2:
+          key2: File 2
diff --git a/typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/Fixtures/File3.yaml b/typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/Fixtures/File3.yaml
new file mode 100644 (file)
index 0000000..7dc85f8
--- /dev/null
@@ -0,0 +1,9 @@
+imports:
+  - { resource: "EXT:form/Tests/Unit/Mvc/Configuration/Fixtures/File4.yaml" }
+
+TYPO3:
+  CMS:
+    Form:
+      config:
+        value8: File 3
+        value9: File 3
diff --git a/typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/Fixtures/File4.yaml b/typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/Fixtures/File4.yaml
new file mode 100644 (file)
index 0000000..ace3064
--- /dev/null
@@ -0,0 +1,6 @@
+TYPO3:
+  CMS:
+    Form:
+      config:
+        value9: File 4 (should be overridden by File3)
+        value10: File 4
\ No newline at end of file
diff --git a/typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/Fixtures/Header.yaml b/typo3/sysext/form/Tests/UnitDeprecated/Mvc/Configuration/Fixtures/Header.yaml
new file mode 100644 (file)
index 0000000..ab19ab6
--- /dev/null
@@ -0,0 +1,6 @@
+# Header 1
+# Header 2
+
+yaml
+
+# Comment
\ No newline at end of file
diff --git a/typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/ConfigurationManagerTest.php b/typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/ConfigurationManagerTest.php
deleted file mode 100644 (file)
index e4307b8..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-namespace TYPO3\CMS\Form\Tests\Unit\Mvc\Configuration;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-use TYPO3\CMS\Core\Configuration\Loader\FalYamlFileLoader;
-use TYPO3\CMS\Core\Utility\GeneralUtility;
-use TYPO3\CMS\Extbase\Object\ObjectManager;
-use TYPO3\CMS\Form\Mvc\Configuration\ConfigurationManager;
-use TYPO3\CMS\Form\Mvc\Configuration\InheritancesResolverService;
-
-/**
- * Test case
- */
-class ConfigurationManagerTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
-{
-
-    /**
-     * @var array A backup of registered singleton instances
-     */
-    protected $singletonInstances = [];
-
-    /**
-     * Set up
-     */
-    public function setUp()
-    {
-        $this->singletonInstances = GeneralUtility::getSingletonInstances();
-    }
-
-    /**
-     * Tear down
-     */
-    public function tearDown()
-    {
-        GeneralUtility::resetSingletonInstances($this->singletonInstances);
-        parent::tearDown();
-    }
-
-    /**
-     * @test
-     */
-    public function getConfigurationFromYamlFile()
-    {
-        $mockConfigurationManager = $this->getAccessibleMock(ConfigurationManager::class, [
-            'getYamlSettingsFromCache',
-            'setYamlSettingsIntoCache',
-            'getTypoScriptSettings',
-            'overrideConfigurationByTypoScript',
-        ], [], '', false);
-
-        $objectMangerProphecy = $this->prophesize(ObjectManager::class);
-        GeneralUtility::setSingletonInstance(ObjectManager::class, $objectMangerProphecy->reveal());
-
-        $objectMangerProphecy
-            ->get(FalYamlFileLoader::class)
-            ->willReturn(new FalYamlFileLoader);
-
-        $objectMangerProphecy
-            ->get(InheritancesResolverService::class)
-            ->willReturn(new InheritancesResolverService);
-
-        $mockConfigurationManager->_set('objectManager', $objectMangerProphecy->reveal());
-
-        $mockConfigurationManager
-            ->expects($this->any())
-            ->method('getYamlSettingsFromCache')
-            ->willReturn([]);
-
-        $mockConfigurationManager
-            ->expects($this->any())
-            ->method('getTypoScriptSettings')
-            ->willReturn([
-                'yamlConfigurations' => [
-                    10 => 'EXT:form/Tests/Unit/Mvc/Configuration/Fixtures/Header.yaml',
-                    20 => 'EXT:form/Tests/Unit/Mvc/Configuration/Fixtures/File1.yaml'
-                ]
-            ]);
-
-        $mockConfigurationManager
-            ->expects($this->any())
-            ->method('setYamlSettingsIntoCache')
-            ->willReturn(null);
-
-        $mockConfigurationManager
-            ->expects($this->any())
-            ->method('overrideConfigurationByTypoScript')
-            ->willReturnArgument(0);
-
-        $input = 'form';
-        $expected = [
-            'config' => [
-                'value9' => 'File 3',
-                'value10' => 'File 4',
-                'value8' => 'File 3',
-                'value1' => 'File 1',
-                'value4' => 'File 1',
-                'value5' => 'File 1',
-                'value7' => 'File 2',
-                'value11' => [
-                    'key1' => 'File 1',
-                    'key2' => 'File 1',
-                ],
-                'value12' => [
-                    'key1' => 'File 2',
-                ],
-                'value3' => 'File 1',
-            ],
-            'mixins' => [
-                'value11Mixin' => [
-                    'key1' => 'File 1',
-                    'key2' => 'File 1',
-                ],
-                'value12Mixin1' => [
-                    'key1' => 'File 2',
-                ],
-                'value12Mixin2' => [
-                    'key2' => 'File 2',
-                ],
-            ],
-        ];
-
-        $this->assertSame($expected, $mockConfigurationManager->_call('getConfigurationFromYamlFile', 'form'));
-    }
-}
diff --git a/typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/Fixtures/File1.yaml b/typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/Fixtures/File1.yaml
deleted file mode 100644 (file)
index 112c691..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-imports:
-  - { resource: "EXT:form/Tests/Unit/Mvc/Configuration/Fixtures/File2.yaml" }
-  - { resource: "EXT:form/Tests/Unit/Mvc/Configuration/Fixtures/File3.yaml" }
-
-TYPO3:
-  CMS:
-    Form:
-      config:
-        value1: File 1
-        value2: null
-        value3: File 1
-        value4: File 1
-        value5: File 1
-        value6: null
-        value12:
-          __inheritances:
-            20: null
-      mixins:
-        value11Mixin:
-          key1: File 1
-          key2: File 1
diff --git a/typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/Fixtures/File2.yaml b/typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/Fixtures/File2.yaml
deleted file mode 100644 (file)
index 4b5a563..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-TYPO3:
-  CMS:
-    Form:
-      config:
-        value1: File2 (should be overridden by File1)
-        value2: File2 (should be removed by File1)
-        value4:
-          key1: File2 (the whole array should be overridden by File1)
-        value5: File2 (should be an array through File1)
-        value6:
-          key1: File2 (the whole array should be removed by File1)
-        value7: File 2
-        value11:
-          __inheritances:
-            10: 'TYPO3.CMS.Form.mixins.value11Mixin'
-        value12:
-          __inheritances:
-            10: 'TYPO3.CMS.Form.mixins.value12Mixin1'
-            20: 'TYPO3.CMS.Form.mixins.value12Mixin2'
-      mixins:
-        value11Mixin:
-          key1: File 2 (should be overridden by File1)
-          key2: File 2
-        value12Mixin1:
-          key1: File 2
-        value12Mixin2:
-          key2: File 2
diff --git a/typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/Fixtures/File3.yaml b/typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/Fixtures/File3.yaml
deleted file mode 100644 (file)
index 7dc85f8..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-imports:
-  - { resource: "EXT:form/Tests/Unit/Mvc/Configuration/Fixtures/File4.yaml" }
-
-TYPO3:
-  CMS:
-    Form:
-      config:
-        value8: File 3
-        value9: File 3
diff --git a/typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/Fixtures/File4.yaml b/typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/Fixtures/File4.yaml
deleted file mode 100644 (file)
index ace3064..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-TYPO3:
-  CMS:
-    Form:
-      config:
-        value9: File 4 (should be overridden by File3)
-        value10: File 4
\ No newline at end of file
diff --git a/typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/Fixtures/Header.yaml b/typo3/sysext/form/Tests/Unit_Deprecated/Mvc/Configuration/Fixtures/Header.yaml
deleted file mode 100644 (file)
index ab19ab6..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# Header 1
-# Header 2
-
-yaml
-
-# Comment
\ No newline at end of file