Source of file DBFileTest.php
Size: 3,186 Bytes - Last Modified: 2021-12-23T10:27:40+00:00
/var/www/docs.ssmods.com/process/src/tests/php/Storage/DBFileTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | <?php namespace SilverStripe\Assets\Tests\Storage; use Silverstripe\Assets\Dev\TestAssetStore; use SilverStripe\Assets\Storage\AssetStore; use SilverStripe\Control\Director; use SilverStripe\Dev\SapphireTest; use SilverStripe\ORM\ValidationException; /** * @skipUpgrade */ class DBFileTest extends SapphireTest { protected static $extra_dataobjects = [ DBFileTest\TestObject::class, DBFileTest\Subclass::class, ]; protected $usesDatabase = true; protected function setUp(): void { parent::setUp(); // Set backend TestAssetStore::activate('DBFileTest'); Director::config()->update('alternate_base_url', '/mysite/'); } protected function tearDown(): void { TestAssetStore::reset(); parent::tearDown(); } /** * Test that images in a DBFile are rendered properly */ public function testRender() { $obj = new DBFileTest\TestObject(); // Test image tag $fish = realpath(__DIR__ .'/../ImageTest/test-image-high-quality.jpg'); $this->assertFileExists($fish); $obj->MyFile->setFromLocalFile($fish, 'awesome-fish.jpg'); $this->assertEquals( '<img width="300" height="300" alt="awesome-fish.jpg" src="/mysite/assets/a870de278b/awesome-fish.jpg" loading="lazy" />', trim($obj->MyFile->forTemplate()) ); // Test download tag $obj->MyFile->setFromString('puppies', 'subdir/puppy-document.txt'); $this->assertStringContainsString( '<a href="/mysite/assets/subdir/2a17a9cb4b/puppy-document.txt" title="puppy-document.txt" download="puppy-document.txt">', trim($obj->MyFile->forTemplate()) ); } public function testValidation() { $obj = new DBFileTest\ImageOnly(); // Test from image $fish = realpath(__DIR__ .'/../ImageTest/test-image-high-quality.jpg'); $this->assertFileExists($fish); $obj->MyFile->setFromLocalFile($fish, 'awesome-fish.jpg'); // This should fail $this->expectException(ValidationException::class); $obj->MyFile->setFromString('puppies', 'subdir/puppy-document.txt'); } public function testPermission() { $obj = new DBFileTest\TestObject(); // Test from image $fish = realpath(__DIR__ .'/../ImageTest/test-image-high-quality.jpg'); $this->assertFileExists($fish); $obj->MyFile->setFromLocalFile( $fish, 'private/awesome-fish.jpg', null, null, [ 'visibility' => AssetStore::VISIBILITY_PROTECTED ] ); // Test various file permissions work on DBFile $this->assertFalse($obj->MyFile->canViewFile()); $obj->MyFile->getURL(); $this->assertTrue($obj->MyFile->canViewFile()); $obj->MyFile->revokeFile(); $this->assertFalse($obj->MyFile->canViewFile()); $obj->MyFile->getURL(false); $this->assertFalse($obj->MyFile->canViewFile()); $obj->MyFile->grantFile(); $this->assertTrue($obj->MyFile->canViewFile()); } } |