PHP Classes

File: tests/unit/Pagination/Helper/LinkTest.php

Recommend this page to a friend!
  Classes of Haseeb Ahmad Basil   PHP Skeleton Framework   tests/unit/Pagination/Helper/LinkTest.php   Download  
File: tests/unit/Pagination/Helper/LinkTest.php
Role: Example script
Content type: text/plain
Description: Example script
Class: PHP Skeleton Framework
Extensive Web application development framework
Author: By
Last change:
Date: 8 years ago
Size: 5,558 bytes
 

Contents

Class file image Download
<?php

class A_Pagination_Helper_LinkTest extends UnitTestCase
{

    public function
testSeparator()
    {
       
$linkHelper = new A_Pagination_Helper_Link($this->createCore());
       
       
$this->assertEqual($linkHelper->separator(), ' ');
       
$linkHelper->setSeparator('foo');
       
$this->assertEqual($linkHelper->separator(), 'foo');
    }
   
    public function
testFirst()
    {
       
$core = $this->createCore();
       
$linkHelper = new A_Pagination_Helper_Link($core, new MockUrlHelper());
       
       
$this->assertEqual($linkHelper->first('first'), '');
       
$this->assertEqual($linkHelper->first(), '');
       
       
$linkHelper->alwaysShowFirstLast(true);
       
// space at end because default separator is a space
       
$this->assertEqual($linkHelper->first('first'), '<a href="foo">first</a> ');
       
$this->assertEqual($linkHelper->first(), '<a href="foo">1</a> ');
    }
   
    public function
testLast()
    {
       
$core = $this->createCore();
       
$linkHelper = new A_Pagination_Helper_Link($core, new MockUrlHelper());
       
$core->setCurrentPage(8);
       
       
$this->assertEqual($linkHelper->last('last'), '');
       
$this->assertEqual($linkHelper->last(), '');
       
       
$linkHelper->alwaysShowFirstLast(true);
       
// space at end because default separator is a space
       
$this->assertEqual($linkHelper->last('last'), ' <a href="foo">last</a>');
       
$this->assertEqual($linkHelper->last(), ' <a href="foo">8</a>');
    }
   
    public function
testPrevious()
    {
       
$core = $this->createCore();
       
$linkHelper = new A_Pagination_Helper_Link($core, new MockUrlHelper());
       
       
$core->setCurrentPage(1);
       
$this->assertEqual($linkHelper->previous('previous'), '');
       
$this->assertEqual($linkHelper->previous(), '');
       
       
$linkHelper->alwaysShowPreviousNext(true);
       
$this->assertEqual($linkHelper->previous('previous'), '<a href="foo">previous</a> ');
       
$this->assertEqual($linkHelper->previous(), '<a href="foo">1</a> ');
       
       
$core->setCurrentPage(8);
       
$this->assertEqual($linkHelper->previous('previous'), '<a href="foo">previous</a> ');
       
$this->assertEqual($linkHelper->previous(), '<a href="foo">7</a> ');
    }
   
    public function
testNext()
    {
       
$core = $this->createCore();
       
$linkHelper = new A_Pagination_Helper_Link($core, new MockUrlHelper());
       
       
$core->setCurrentPage(8);
       
$this->assertEqual($linkHelper->next('next'), '');
       
$this->assertEqual($linkHelper->next(), '');
       
       
$linkHelper->alwaysShowPreviousNext(true);
       
$this->assertEqual($linkHelper->next('next'), ' <a href="foo">next</a>');
       
$this->assertEqual($linkHelper->next(), ' <a href="foo">8</a>');
       
       
$core->setCurrentPage(1);
       
$this->assertEqual($linkHelper->next('next'), ' <a href="foo">next</a>');
       
$this->assertEqual($linkHelper->next(), ' <a href="foo">2</a>');
    }
   
    public function
testRange()
    {
       
$core = $this->createCore();
       
$linkHelper = new A_Pagination_Helper_Link($core, new MockUrlHelper());
       
       
$core->setCurrentPage(1);
       
$this->assertEqual($linkHelper->range(), '1 <a href="foo">2</a> <a href="foo">3</a> <a href="foo">4</a> <a href="foo">5</a>');
       
       
$core->setCurrentPage(8);
       
$this->assertEqual($linkHelper->range(), '<a href="foo">4</a> <a href="foo">5</a> <a href="foo">6</a> <a href="foo">7</a> 8');
       
       
$core->setCurrentPage(4);
       
$this->assertEqual($linkHelper->range(), '<a href="foo">1</a> <a href="foo">2</a> <a href="foo">3</a> 4 <a href="foo">5</a> <a href="foo">6</a> <a href="foo">7</a> <a href="foo">8</a>');
       
       
$core->setRangeSize(1);
       
$this->assertEqual($linkHelper->range(), '<a href="foo">3</a> 4 <a href="foo">5</a>');
       
       
$core->setRangeSize(0);
       
$this->assertEqual($linkHelper->range(), '4');
    }
   
    public function
testFirstWithTemplateRenderer()
    {
       
$core = $this->createCore();
       
$linkHelper = new A_Pagination_Helper_Link($core, new MockUrlHelper());
       
       
$template = new A_Template_Strreplace(__DIR__ . '/a_template.txt');
       
$linkHelper->setRenderer($template);
       
$linkHelper->alwaysShowFirstLast(true);
       
       
$this->assertEqual($linkHelper->first('baz'), '<a href="foo" class="bar">baz</a> ');
    }
   
    public function
testFirstWithHtmlRenderer()
    {
       
$core = $this->createCore();
       
$linkHelper = new A_Pagination_Helper_Link($core, new MockUrlHelper());
       
       
$core->setCurrentPage(4);
       
$core->setRangeSize(1);
       
       
$tag = new A_Html_A(array('class' => 'foobar'));
       
$linkHelper->setRenderer($tag);
       
       
$this->assertEqual($linkHelper->range(), '<a class="foobar" href="foo">3</a> 4 <a class="foobar" href="foo">5</a>');
    }
   
    public function
testRangeWithHtmlRenderer()
    {
       
$core = $this->createCore();
       
$linkHelper = new A_Pagination_Helper_Link($core, new MockUrlHelper());
       
       
$tag = new A_Html_A(array('class' => 'foobar'));
       
$linkHelper->setRenderer($tag);
       
$linkHelper->alwaysShowFirstLast(true);
       
       
$this->assertEqual($linkHelper->first('baz'), '<a class="foobar" href="foo">baz</a> ');
    }
   
    private function
createCore()
    {
        return new
A_Pagination_Request(new A_Pagination_Adapter_Array(array(
                array(
'id'=>1, 'name'=>'One', 'color'=>'blue'),
                array(
'id'=>2, 'name'=>'Two', 'color'=>'red'),
                array(
'id'=>3, 'name'=>'Three', 'color'=>'green'),
                array(
'id'=>4, 'name'=>'Four', 'color'=>'blue'),
                array(
'id'=>5, 'name'=>'Five', 'color'=>'blue'),
                array(
'id'=>6, 'name'=>'Six', 'color'=>'black'),
                array(
'id'=>7, 'name'=>'Seven', 'color'=>'green'),
                array(
'id'=>8, 'name'=>'Eight', 'color'=>'blue'),
        )),
1);
    }

}

class
MockUrlHelper
{

    public function
render()
    {
        return
'foo';
    }
   
    public function
set(){}

}