<?php

$app = "frontend";
include dirname(__FILE__) . '/../../../../test/bootstrap/functional.php';
include $configuration->getSymfonyLibDir() . '/vendor/lime/lime.php';
$folderProvider = new sfAssetsFolderProvider();
$assetProvider = new sfAssetsProvider();
$databaseManager = new sfDatabaseManager($configuration);
$con = Propel::getConnection();
$con->beginTransaction();
try {
    // prepare test environment
    $folderProvider->doDeleteAll();
    $assetProvider->doDeleteAll();
    sfConfig::set('app_sfAssetsLibrary_upload_dir', 'medias');
    $root = new sfAssetFolder();
    $root->setName(sfConfig::get('app_sfAssetsLibrary_upload_dir'));
    $folderProvider->createRoot($root);
    $root->save();
    $rootId = $root->getId();
    // run the test
    $t = new lime_test(10, new lime_output_color());
    $t->diag('sfAssetFolder::getName()');
    # $sfAssetFolder is /root/Test_Directory
    $sfAssetFolder = new sfAssetFolder();
    $sfAssetFolder->setName('Test_Directory');
    $sfAssetFolder->insertAsFirstChildOf($root);
    $sfAssetFolder->save();
    $t->is($sfAssetFolder->getName(), 'Test_Directory', 'getName() returns the folder name');
    $t->diag('sfAssetFolder::getRelativePath()');
    $t->is($sfAssetFolder->getRelativePath(), $root->getRelativePath() . '/' . $sfAssetFolder->getName(), 'getRelativePath() returns the folder relative path, including its own name');
<?php

$app = "frontend";
include dirname(__FILE__) . '/../../../../test/bootstrap/functional.php';
include $configuration->getSymfonyLibDir() . '/vendor/lime/lime.php';
$folderProvider = new sfAssetsFolderProvider();
$assetProvider = new sfAssetsProvider();
$databaseManager = new sfDatabaseManager($configuration);
$con = Propel::getConnection();
$con->beginTransaction();
try {
    // prepare test environment
    $folderProvider->doDeleteAll();
    $assetProvider->doDeleteAll();
    sfConfig::set('app_sfAssetsLibrary_upload_dir', 'medias');
    $f = new sfAssetFolder();
    $f->setName(sfConfig::get('app_sfAssetsLibrary_upload_dir'));
    $folderProvider->createRoot($f);
    $f->save();
    // run the test
    $t = new lime_test(13, new lime_output_color());
    $t->diag('sfAssetFolderPeer');
    $sfAssetFolder = $folderProvider->retrieveByPath(sfConfig::get('app_sfAssetsLibrary_upload_dir', 'media'));
    $t->ok($sfAssetFolder->isRoot(), 'retrieveByPath() retrieves root from app_sfAssetsLibrary_upload_dir string');
    $sfAssetFolder = $folderProvider->retrieveByPath();
    $t->ok($sfAssetFolder->isRoot(), 'retrieveByPath() retrieves root from empty string');
    $sfAssetFolder = $folderProvider->createFromPath(sfConfig::get('app_sfAssetsLibrary_upload_dir', 'media') . '/simple');
    $t->isa_ok($sfAssetFolder, 'sfAssetFolder', 'createFromPath() creates a sfAssetFolder from simple string');
    $t->isa_ok($sfAssetFolder->retrieveParent(), 'sfAssetFolder', 'createFromPath() from simple string has a parent');
    $t->ok($sfAssetFolder->retrieveParent()->isRoot(), 'createFromPath() creates a root child from simple string');
    $sfAssetFolder2 = $folderProvider->createFromPath(sfConfig::get('app_sfAssetsLibrary_upload_dir', 'media') . '/simple/subfolder');
<?php

$app = "frontend";
include dirname(__FILE__) . '/../../../../test/bootstrap/functional.php';
include $configuration->getSymfonyLibDir() . '/vendor/lime/lime.php';
$folderProvider = new sfAssetsFolderProvider();
$assetProvider = new sfAssetsProvider();
$databaseManager = new sfDatabaseManager($configuration);
$con = Propel::getConnection();
$con->beginTransaction();
try {
    // prepare test environment
    $folderProvider->doDeleteAll();
    $assetProvider->doDeleteAll();
    sfConfig::set('app_sfAssetsLibrary_upload_dir', 'medias');
    $root = new sfAssetFolder();
    $root->setName(sfConfig::get('app_sfAssetsLibrary_upload_dir'));
    $folderProvider->createRoot($root);
    $root->save();
    // run the tests
    $t = new lime_test(23, new lime_output_color());
    $t->diag('sfAsset');
    $sfAsset = new sfAsset();
    $sfAsset->setsfAssetFolder($root);
    $t->isa_ok($sfAsset->getsfAssetFolder(), 'sfAssetFolder', 'sfAsset can have root as folder');
    $sfAsset->setFilename('filename.jpg');
    $t->diag('sfAsset::getRelativePath()');
    $t->is($sfAsset->getRelativePath(), sfConfig::get('app_sfAssetsLibrary_upload_dir') . DIRECTORY_SEPARATOR . 'filename.jpg', 'getRelativePath() returns the path relative to the media directory');
    $t->diag('sfAsset::getFullPath()');
    $t->is($sfAsset->getFullPath(), sfConfig::get('sf_web_dir') . DIRECTORY_SEPARATOR . sfConfig::get('app_sfAssetsLibrary_upload_dir') . DIRECTORY_SEPARATOR . 'filename.jpg', 'getFullPath() returns the complete asset path on the disk');
    $t->is($sfAsset->getFullPath('small'), sfConfig::get('sf_web_dir') . DIRECTORY_SEPARATOR . sfConfig::get('app_sfAssetsLibrary_upload_dir') . DIRECTORY_SEPARATOR . 'thumbnail/small_filename.jpg', 'getFullPath(\'small\') returns the complete small thumbnail path on the disk');
<?php

$app = "frontend";
include dirname(__FILE__) . '/../../../../test/bootstrap/functional.php';
include $configuration->getSymfonyLibDir() . '/vendor/lime/lime.php';
$folderProvider = new sfAssetsFolderProvider();
$assetProvider = new sfAssetsProvider();
$databaseManager = new sfDatabaseManager($configuration);
$con = Propel::getConnection();
$con->beginTransaction();
try {
    // prepare test environment
    $folderProvider->doDeleteAll();
    $assetProvider->doDeleteAll();
    sfConfig::set('app_sfAssetsLibrary_upload_dir', 'medias');
    $f = new sfAssetFolder();
    $f->setName(sfConfig::get('app_sfAssetsLibrary_upload_dir'));
    sfAssetFolderPeer::createRoot($f);
    $f->save();
    $t = new lime_test(5, new lime_output_color());
    $t->diag('sfAssetPeer');
    $t->is($assetProvider->retrieveFromUrl(sfAssetFolderPeer::retrieveRoot()->getRelativePath() . '/filename.jpg'), null, '$assetProvider->retrieveFromUrl() returns null when a URL is not found');
    $t->is($assetProvider->exists(sfAssetFolderPeer::retrieveRoot()->getId(), 'filename.jpg'), false, '$assetProvider->exists() returns false when an asset is not found');
    $sfAsset = new sfAsset();
    $sfAsset->setsfAssetFolder(sfAssetFolderPeer::retrieveRoot());
    $sfAsset->setFilename('filename.jpg');
    $sfAsset->save($con);
    $t->is($assetProvider->retrieveFromUrl(sfAssetFolderPeer::retrieveRoot()->getRelativePath() . '/filename.jpg')->getId(), $sfAsset->getId(), '$assetProvider->retrieveFromUrl() finds an asset from its URL');
    $t->is($assetProvider->retrieveFromUrl($sfAsset->getUrl())->getId(), $sfAsset->getId(), '$assetProvider->retrieveFromUrl() finds an asset from the result of `getUrl()`');
    $t->is($assetProvider->exists(sfAssetFolderPeer::retrieveRoot()->getId(), 'filename.jpg'), true, '$assetProvider->exists() returns true when an asset is found');
} catch (Exception $e) {