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

/test/unit/searchTest.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.
 */

/**
 * 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()));