addPlugin(new FlysystemUrlPlugin()); $backend = new AssetStoreTest_SpyStore(); $backend->setFilesystem($filesystem); Injector::inst()->registerService($backend, 'AssetStore'); // Disable legacy Config::inst()->remove(get_class(new FlysystemAssetStore()), 'legacy_filenames'); // Update base url Config::inst()->update('Director', 'alternate_base_url', '/mysite/'); } public function tearDown() { SS_Filesystem::removeFolder(ASSETS_PATH . '/DBFileTest'); parent::tearDown(); } /** * Test that images in a DBFile are rendered properly */ public function testRender() { $obj = new DBFileTest_Object(); // Test image tag $fish = realpath(__DIR__ .'/../model/testimages/test_image_high-quality.jpg'); $this->assertFileExists($fish); $obj->MyFile->setFromLocalFile($fish, 'awesome-fish.jpg'); $this->assertEquals( 'awesome-fish.jpg', trim($obj->MyFile->forTemplate()) ); // Test download tag $obj->MyFile->setFromString('puppies', 'subdir/puppy-document.txt'); $this->assertEquals( '', trim($obj->MyFile->forTemplate()) ); } } /** * @property DBFile $MyFile */ class DBFileTest_Object extends DataObject implements TestOnly { private static $db = array( 'MyFile' => 'DBFile' ); } class DBFileTest_Subclass extends DBFileTest_Object implements TestOnly { private static $db = array( 'AnotherFile' => 'DBFile' ); }