FuelPHP のコアは、ユニットテストが書かれていない部分があります。オープンソースなので、「無ければ作る」ということで少し書いてみました。
今回書いたのは、ページネーションクラスです。http://docs.fuelphp.com/classes/pagination.html にあるサンプルを参考に作成しました。今のところ prev_link
と next_link
だけです。
<?php /** * Part of the Fuel framework. * * @package Fuel * @version 1.0 * @author Fuel Development Team * @license MIT License * @copyright 2010 - 2012 Fuel Development Team * @link http://fuelphp.com */ namespace FuelCore; /** * Pagination class tests * * @group Core * @group Pagination */ class Test_Pagination extends TestCase { public function setup() { Pagination::set_config(array( 'pagination_url' => 'http://docs.fuelphp.com/', 'uri_segment' => 2, 'total_items' => 10, 'per_page' => 5, )); } /** * first page: previous inactive * */ public function test_previouslink_inactive() { Pagination::set_config(array( 'current_page' => 1, )); $output = Pagination::prev_link('prev'); $expected = ' <span class="previous-inactive">« prev </span>'; $this->assertEquals($expected, $output); } public function test_previouslink_active() { Pagination::set_config(array( 'current_page' => 2, )); $output = Pagination::prev_link('prev'); $expected = '<span class="previous"> <a href="http://docs.fuelphp.com">« prev</a> </span>'; $this->assertEquals($expected, $output); } public function test_nextlink_active() { Pagination::set_config(array( 'current_page' => 1, )); $output = Pagination::next_link('next'); $expected = '<span class="next"> <a href="http://docs.fuelphp.com/2">next »</a> </span>'; $this->assertEquals($expected, $output); } /** * last page: next inactive * */ public function test_nextlink_inactive() { Pagination::set_config(array( 'current_page' => 2, )); $output = Pagination::next_link('next'); $expected = ' <span class="next-inactive">next » </span>'; $this->assertEquals($expected, $output); } }
github で pull request したところ、コアにマージされました。ver1.3 以降の FuelPHP で同梱される予定です。(ユニットテストの追加は、開発ブランチにプルリクエストしてください)
7月22日(日)に FuelPHP 勉強会 大須 vol.2 を開催予定ですが、vol.3 ではユニットテストを取り上げるのも一案かもしれません。