$t->is($folder2->getRelativePath(), 'test_root/test/test-sub/test2/', '->getRelativePath()'); $t->is($folder2->getNode()->getPath('/', true), 'test_root/test/test-sub/test2', 'Folder has right path'); $t->ok($fs->is_dir($folder2->getRelativePath()), 'Folder exists in filesystem'); $t->info('Synchronize folder'); //Create orphaned asset $asset = new lyMediaAsset(); $asset->setFolder($folder); $asset->setFilename(dirname(__FILE__) . '/../data/assets/asseta.png'); $asset->save(); $root->synchronizeWith(dirname(__FILE__) . '/../data/assets/', false); $asset = lyMediaAssetTable::getInstance()->findOneByFilename('asset1.png'); $t->ok(is_object($asset), 'Asset created in root'); $t->is($asset->getPath(), 'test_root/asset1.png', 'Asset has correct path'); $t->ok($fs->is_file('test_root/asset1.png'), 'Asset exists in filesystem'); $t->ok($fs->is_file('test_root/thumbs/small_asset1.png'), 'Small thumbnail exists in filesystem'); $t->ok($fs->is_file('test_root/thumbs/medium_asset1.png'), 'Medium thumbnail exists in filesystem'); $asset = lyMediaAssetTable::getInstance()->findOneByFilename('assetc.png'); $t->ok(is_object($asset), 'Asset created in subfolder'); $t->is($asset->getPath(), 'test_root/test/test-sub/assetc.png', 'Asset has correct path'); $t->ok($fs->is_file('test_root/test/test-sub/assetc.png'), 'Asset exists in filesystem'); $t->ok($fs->is_file('test_root/test/test-sub/thumbs/small_assetc.png'), 'Small thumbnail exists in filesystem'); $t->ok($fs->is_file('test_root/test/test-sub/thumbs/medium_assetc.png'), 'Medium thumbnail exists in filesystem'); $t->ok($fs->is_dir('test_root/test/test-sub/test2'), 'Orphaned folder still exists'); $t->ok($fs->is_file('test_root/test/asseta.png'), 'Orphaned asset still exists'); $t->info('Synchronize folder (remove orphaned folder)'); $root->synchronizeWith(dirname(__FILE__) . '/../data/assets/', false, false, true); $t->ok(!$fs->is_dir('test_root/test/test-sub/test2'), 'Orphaned folder no longer exists'); $t->ok($fs->is_file('test_root/test/asseta.png'), 'Orphaned asset still exists'); $t->info('Synchronize folder (remove orphaned asset)'); $root->synchronizeWith(dirname(__FILE__) . '/../data/assets/', false, true, false); $t->ok(!$fs->is_file('test_root/test/asseta.png'), 'Orphaned asset no longer exists');
<?php /* * This file is part of the lyMediaManagerPlugin package. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ /** * Functional tests * * @package lyMediaManagerPlugin * @subpackage functional tests * @copyright Copyright (C) 2010 Massimo Giagnoni. * @license http://www.symfony-project.org/license MIT * @version SVN: $Id$ */ include dirname(__FILE__) . '/../bootstrap/functional.php'; Doctrine_Core::loadData(dirname(__FILE__) . '/../data/fixtures/fixtures.yml'); $subf1 = lyMediaFolderTable::getInstance()->findOneByName('testsub1'); $subf2 = lyMediaFolderTable::getInstance()->findOneByName('testsub2'); $browser = new lyMediaTestFunctional(new sfBrowser()); $browser->setTester('doctrine', 'sfTesterDoctrine'); $browser->info('1 - Assets list view')->get('/ly_media_asset')->with('request')->begin()->isParameter('module', 'lyMediaAsset')->isParameter('action', 'index')->end()->with('response')->begin()->isStatusCode(200)->checkElement('td.sf_admin_list_td_td_image img[src$="asset1.png"]')->checkElement('td.sf_admin_list_td_td_image img[src$="asset2.png"]')->checkElement('td.sf_admin_list_td_td_image img[src$="asset3.png"]')->end()->info('2 - New folder')->click('li.sf_admin_action_new_folder a')->with('request')->begin()->isParameter('module', 'lyMediaFolder')->isParameter('action', 'new')->end()->with('response')->begin()->isStatusCode(200)->checkForm('lyMediaFolderForm')->end()->info(' 2.1 - Submit empty values')->click('li.sf_admin_action_save input')->with('request')->begin()->isParameter('module', 'lyMediaFolder')->isParameter('action', 'create')->end()->with('form')->begin()->hasErrors(1)->isError('name', 'required')->end()->info(' 2.2 - Submit invalid values')->click('li.sf_admin_action_save input', array('ly_media_folder' => array('name' => 'te/st')))->with('form')->begin()->hasErrors(1)->isError('name', 'invalid')->end()->info(' 2.3 - Submit invalid values (folder exists)')->click('li.sf_admin_action_save input', array('ly_media_folder' => array('name' => 'testsub1')))->with('form')->begin()->hasErrors(1)->hasGlobalError('folder_exists')->end()->info(' 2.4 - Submit valid values')->saveNew('lyMediaFolder', array('ly_media_folder' => array('name' => 'testsub3')))->info(' 2.5 - Check created folder')->with('doctrine')->begin()->check('lyMediaFolder', array('name' => 'testsub3', 'relative_path' => 'media/testsub3/', 'level' => 1))->end()->info('3 - Edit folder name and parent')->saveEdit('lyMediaFolder', array('ly_media_folder' => array('name' => 'testsub1-1', 'parent_id' => $subf1->getId())))->info(' 3.1 - Check edited folder')->with('doctrine')->begin()->check('lyMediaFolder', array('name' => 'testsub1-1', 'relative_path' => 'media/testsub1/testsub1-1/', 'level' => 2))->end()->info(' 3.2 - Go back')->click('li.sf_admin_action_list a')->with('request')->begin()->isParameter('module', 'lyMediaAsset')->isParameter('action', 'index')->end()->with('response')->isStatusCode(200)->info('4 - New asset')->click('li.sf_admin_action_new a')->with('request')->begin()->isParameter('module', 'lyMediaAsset')->isParameter('action', 'new')->end()->with('response')->begin()->isStatusCode(200)->checkForm('lyMediaAssetForm')->end()->info(' 4.1 - Submit empty values')->click('li.sf_admin_action_save input')->with('request')->begin()->isParameter('module', 'lyMediaAsset')->isParameter('action', 'create')->end()->with('form')->begin()->hasErrors(1)->isError('filename', 'required')->end()->info(' 4.2 - Submit valid values')->saveNew('lyMediaAsset', array('ly_media_asset' => array('folder_id' => $subf1->getId(), 'title' => 'test', 'filename' => dirname(__FILE__) . '/../data/assets/asset1.png')))->info(' 4.3 - Check new asset')->with('doctrine')->begin()->check('lyMediaAsset', array('filename' => 'asset1.png', 'title' => 'test', 'type' => 'image/png', 'folder_id' => $subf1->getId()))->end()->info(' 4.4 - Check new asset files'); $asset = lyMediaAssetTable::getInstance()->findOneByTitle('test'); $folder = $asset->getFolderPath(); $file = $asset->getFilename(); $browser->isFile($folder, $file)->info('5 - Rename asset')->saveEdit('lyMediaAsset', array('ly_media_asset' => array('filename' => 'asset1_renamed.png')))->info(' 5.1 - Check renamed asset')->with('doctrine')->begin()->check('lyMediaAsset', array('filename' => 'asset1_renamed.png', 'title' => 'test', 'type' => 'image/png', 'folder_id' => $subf1->getId()))->end()->info(' 5.2 - Check renamed asset files')->info(' 5.2.1 - Old filename must not exist')->isntFile($folder, $file)->info(' 5.2.2 - New filename must exist')->isFile($folder, 'asset1_renamed.png')->info('6 - Move asset')->saveEdit('lyMediaAsset', array('ly_media_asset' => array('folder_id' => $subf2->getId())))->info(' 6.1 - Check moved asset')->with('doctrine')->begin()->check('lyMediaAsset', array('filename' => 'asset1_renamed.png', 'title' => 'test', 'type' => 'image/png', 'folder_id' => $subf2->getId()))->end()->info(' 6.2 - Check moved asset files')->info(' 6.2.1 - File in source folder must not exist')->isntFile($folder, 'asset1_renamed.png')->info(' 6.2.2 - File in destination folder must exist')->isFile($subf2->getRelativePath(), 'asset1_renamed.png')->info('7 - Icons view')->get('/ly_media_asset/icons')->with('request')->begin()->isParameter('module', 'lyMediaAsset')->isParameter('action', 'icons')->end()->with('response')->begin()->isStatusCode(200)->checkElement('#lymedia_folder_path', '/media/')->checkElement('div.lymedia_up', false)->checkElement('div.lymedia_folder', 2)->checkElement('div.lymedia_folder_frame a img[title="testsub1"]')->checkElement('div.lymedia_folder_frame a img[title="testsub2"]')->checkElement('div.lymedia_folder_stats span.folders', '/2 folders/')->checkElement('div.lymedia_folder_stats span.files', '/51 files/')->end()->info('8 - Sorting')->info(' 8.1 - Check default sort (name asc)')->with('response')->begin()->checkElement('.lymedia_asset .lymedia_caption', '/asset1.png/', array('position' => 0))->checkElement('.lymedia_asset .lymedia_caption', '/asset2.png/', array('position' => 1))->checkElement('.lymedia_asset .lymedia_caption', '/asset3.png/', array('position' => 2))->end()->info(' 8.2 - Change sort direction')->click('a[href$="dir=desc"]')->with('request')->begin()->isParameter('module', 'lyMediaAsset')->isParameter('action', 'icons')->isParameter('dir', 'desc')->end()->with('response')->begin()->isStatusCode(200)->checkElement('.lymedia_asset .lymedia_caption', '/zzasset.png/', array('position' => 0))->end()->info(' 8.3 - Change sort field')->click('a[href$="sort=date"]')->with('request')->begin()->isParameter('module', 'lyMediaAsset')->isParameter('action', 'icons')->isParameter('sort', 'date')->end()->with('response')->begin()->isStatusCode(200)->checkElement('.lymedia_asset .lymedia_caption', '/asset5.png/', array('position' => 0))->end()->info(' 8.4 - Change sort direction')->click('a[href$="dir=asc"]')->with('request')->begin()->isParameter('module', 'lyMediaAsset')->isParameter('action', 'icons')->isParameter('dir', 'asc')->end()->with('response')->begin()->isStatusCode(200)->checkElement('.lymedia_asset .lymedia_caption', '/asset3.png/', array('position' => 0))->checkElement('.lymedia_asset .lymedia_caption', '/asset1.png/', array('position' => 1))->checkElement('.lymedia_asset .lymedia_caption', '/zzasset.png/', array('position' => 2))->checkElement('.lymedia_asset .lymedia_caption', '/asset2.png/', array('position' => 3))->end()->info('9 - Paging')->with('response')->begin()->checkElement('div.lymedia_asset', 20)->checkElement('.pagination a.page', 2)->checkElement('.pagination a.page', '!/1/')->checkElement('.pagination a.page', '/2/', array('position' => 0))->checkElement('.pagination a.page', '/3/', array('position' => 1))->end()->info(' 9.1 - Next page')->click('.pagination a.page', array(), array('position' => 1))->with('request')->begin()->isParameter('module', 'lyMediaAsset')->isParameter('action', 'icons')->isParameter('page', '2')->end()->with('response')->begin()->isStatusCode(200)->checkElement('div.lymedia_asset', 20)->checkElement('.pagination a.page', '/1/', array('position' => 0))->checkElement('.pagination a.page', '!/2/')->checkElement('.pagination a.page', '/3/', array('position' => 1))->end()->info(' 9.1.1 - Next page')->click('.pagination a.page', array(), array('position' => 2))->with('request')->begin()->isParameter('module', 'lyMediaAsset')->isParameter('action', 'icons')->isParameter('page', '3')->end()->with('response')->begin()->isStatusCode(200)->checkElement('div.lymedia_asset', 11)->checkElement('.pagination a.page', '/1/', array('position' => 0))->checkElement('.pagination a.page', '/2/', array('position' => 1))->checkElement('.pagination a.page', '!/3/')->end()->info('10 - Navigate first subfolder')->click('a[href$="ly_media_asset/icons/' . $subf1->getId() . '"]')->with('request')->begin()->isParameter('module', 'lyMediaAsset')->isParameter('action', 'icons')->isParameter('folder_id', $subf1->getId())->end();