<?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()
;