<?php
/*
* This file is part of the pwp package.
* (c) 2009-2010 Victor Rad' <victor.v.rad[at]gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
/**
* Functional test of the news section of site
*/
include(dirname(__FILE__).'/../../bootstrap/functional.php');
$browser = new sfTestFunctional(new sfBrowser());
// fetch data from DB for test
$newsProvider = DFactory::get('NewsProviders')->getTable()->find(1);
$latestNews = DFactory::get('News')->getBuilder()->getQuery()
->orderBy('n.created_at DESC')
->limit(1)
->where('news_providers_id = ?', $newsProvider->getId())
->fetchOne();
$earliestNews = DFactory::get('News')->getBuilder()->getQuery()
->orderBy('n.created_at ASC')
->limit(1)
->where('news_providers_id = ?', $newsProvider->getId())
->fetchOne();
$dateRange = $earliestNews->getDate().sfConfig::get('app_news_date_range_separate').$latestNews->getDate();
// do test
$browser->
info('Check index')->
call('/news', 'GET', array())->
with('request')->begin()->
isParameter('module', 'news')->
isParameter('action', 'index')->
end()->
with('response')->begin()->
isStatusCode(200)->
checkElement('.scrollable .items .box', sfConfig::get('app_news_per_page'))->
end()->
info('Check pager')->
with('response')->begin()->
contains('2')->
click('2', array('page' => '2'))->
end()->
with('request')->begin()->
isParameter('module', 'news')->
isParameter('action', 'index')->
end()->
with('response')->begin()->
isStatusCode(200)->
checkElement('.scrollable .items .box', sfConfig::get('app_news_per_page'))->
end()->
info('Check filter')->
call('/news', 'POST', array (
'news' =>
array (
'date_range' => $dateRange,
'news_providers' => $newsProvider->getName(),
),
))->
with('request')->begin()->
isParameter('module', 'news')->
isParameter('action', 'index')->
end()->
with('response')->begin()->
isRedirected(1)->
isStatusCode(302)->
end()->
followRedirect()->
with('request')->begin()->
isParameter('module', 'news')->
isParameter('action', 'index')->
isParameter('date_range', $dateRange)->
isParameter('news_providers', $newsProvider->getName())->
end()->
with('response')->begin()->
isStatusCode(200)->
checkElement('.scrollable .items .box', sfConfig::get('app_news_per_page'))->
end()
;
<?php
/*
* This file is part of the pwp package.
* (c) 2009-2010 Victor Rad' <victor.v.rad[at]gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
/**
* Unit test of the search system
*/
// prepare data
require_once dirname(__FILE__).'/../bootstrap/unit.php';
new sfDatabaseManager($configuration);
$t = new lime_test(1, new lime_output_color());
$testStr = 'PWPUnitTestOfTheSearchSystem';
// save News record
$news = DFactory::get('News')->getRecord();
$news->news_providers_id = 1;
$news->title = 'Title: '.$testStr;
$news->description = 'Description: '.$testStr;
$news->hash = md5('Hash: '.$testStr);
$news->link = 'Link: '.$testStr;
$news->created_at = date('Y-m-d H:i:s');
$news->save();
// do search
$search = new Search_Composite(new Search_News());
$foundIds = $search->find($testStr);
// test found
$t->is($news->getId(), $foundIds[0][0]);
// test of delete news
$news->delete();
// search after deleted
$search = new Search_Composite(new Search_News());
$foundIds = $search->find($testStr);
$t->is($foundIds, array(array()));