[BUGFIX] Fix failing PHPUnit-Tests on Windows due to uniqid()-calls 28/35528/2
authorStephan Großberndt <stephan@grossberndt.de>
Tue, 16 Dec 2014 22:42:07 +0000 (23:42 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Tue, 16 Dec 2014 23:13:17 +0000 (00:13 +0100)
If in one test multiple objects are created and their names are created
with uniqid()-calls without params, they fail because they return the
same value.

Using md5(uniqid(microtime(), true)) instead makes object names unique.

Resolves: #63943
Releases: master, 6.2
Change-Id: Ib223d45f04946223c4a8ae9ce68a5c5b24459355
Reviewed-on: http://review.typo3.org/35528
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
typo3/sysext/extbase/Tests/Unit/DomainObject/AbstractEntityTest.php
typo3/sysext/extbase/Tests/Unit/Mvc/Web/Routing/UriBuilderTest.php

index 240ff7a..c98c181 100644 (file)
@@ -75,13 +75,13 @@ class AbstractEntityTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * @test
         */
        public function objectIsNotDirtyAfterCallingMemorizeCleanStateWithOtherDomainObjectsAsProperties() {
-               $domainObjectName = uniqid('DomainObject_');
+               $domainObjectName = 'DomainObject_' . md5(uniqid(microtime(), true));
                $domainObjectNameWithNS = __NAMESPACE__ . '\\' . $domainObjectName;
                eval('namespace ' . __NAMESPACE__ . '; class ' . $domainObjectName . ' extends \\' . \TYPO3\CMS\Extbase\DomainObject\AbstractEntity::class . ' {
                        public $foo;
                        public $bar;
                }');
-               $secondDomainObjectName = uniqid('DomainObject_');
+               $secondDomainObjectName = 'DomainObject_' . md5(uniqid(microtime(), true));
                $secondDomainObjectNameWithNS = __NAMESPACE__ . '\\' . $secondDomainObjectName;
                eval('namespace ' . __NAMESPACE__ . '; class ' . $secondDomainObjectName . ' extends \\' . \TYPO3\CMS\Extbase\DomainObject\AbstractEntity::class . ' {
                        public $foo;
index 36b08cb..bc7b091 100644 (file)
@@ -747,18 +747,18 @@ class UriBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * @test
         */
        public function tansientObjectsAreRecursivelyConverted() {
-               $className = uniqid('FixturesObject_');
+               $className = 'FixturesObject_' . md5(uniqid(microtime(), true));
                $classNameWithNS = __NAMESPACE__ . '\\' . $className;
                eval('namespace ' . __NAMESPACE__ . '; class ' . $className . ' extends \\' . \TYPO3\CMS\Extbase\DomainObject\AbstractValueObject::class . ' { public $name; public $uid; }');
                $mockInnerValueObject2 = new $classNameWithNS();
                $mockInnerValueObject2->name = 'foo';
                $mockInnerValueObject2->uid = 99;
-               $className = uniqid('FixturesObject_');
+               $className = 'FixturesObject_' . md5(uniqid(microtime(), true));
                $classNameWithNS = __NAMESPACE__ . '\\' . $className;
                eval('namespace ' . __NAMESPACE__ . '; class ' . $className . ' extends \\' . \TYPO3\CMS\Extbase\DomainObject\AbstractValueObject::class . ' { public $object; public $uid; }');
                $mockInnerValueObject1 = new $classNameWithNS();
                $mockInnerValueObject1->object = $mockInnerValueObject2;
-               $className = uniqid('FixturesObject_');
+               $className = 'FixturesObject_' . md5(uniqid(microtime(), true));
                $classNameWithNS = __NAMESPACE__ . '\\' . $className;
                eval('namespace ' . __NAMESPACE__ . '; class ' . $className . ' extends \\' . \TYPO3\CMS\Extbase\DomainObject\AbstractValueObject::class . ' { public $object; public $uid; }');
                $mockValueObject = new $classNameWithNS();