Actions

Source Code of This Project

/test/functional/frontend/newsActionsTest.php

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