Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / vendor / symfony / config / Tests / Resource / ClassExistenceResourceTest.php
index 87f470aaf7651bf641089febfef59198bf99894f..010b6561a23579b39301ac08390393cf7214653b 100644 (file)
@@ -13,6 +13,8 @@ namespace Symfony\Component\Config\Tests\Resource;
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Config\Resource\ClassExistenceResource;
+use Symfony\Component\Config\Tests\Fixtures\Resource\ConditionalClass;
+use Symfony\Component\Config\Tests\Fixtures\BadParent;
 
 class ClassExistenceResourceTest extends TestCase
 {
@@ -52,4 +54,47 @@ EOF
 
         $this->assertTrue($res->isFresh(time()));
     }
+
+    public function testExistsKo()
+    {
+        spl_autoload_register($autoloader = function ($class) use (&$loadedClass) { $loadedClass = $class; });
+
+        try {
+            $res = new ClassExistenceResource('MissingFooClass');
+            $this->assertTrue($res->isFresh(0));
+
+            $this->assertSame('MissingFooClass', $loadedClass);
+
+            $loadedClass = 123;
+
+            $res = new ClassExistenceResource('MissingFooClass', false);
+
+            $this->assertSame(123, $loadedClass);
+        } finally {
+            spl_autoload_unregister($autoloader);
+        }
+    }
+
+    public function testBadParentWithTimestamp()
+    {
+        $res = new ClassExistenceResource(BadParent::class, false);
+        $this->assertTrue($res->isFresh(time()));
+    }
+
+    /**
+     * @expectedException \ReflectionException
+     * @expectedExceptionMessage Class Symfony\Component\Config\Tests\Fixtures\MissingParent not found
+     */
+    public function testBadParentWithNoTimestamp()
+    {
+        $res = new ClassExistenceResource(BadParent::class, false);
+        $res->isFresh(0);
+    }
+
+    public function testConditionalClass()
+    {
+        $res = new ClassExistenceResource(ConditionalClass::class, false);
+
+        $this->assertFalse($res->isFresh(0));
+    }
 }