Standing on the Shoulder of Linus

Home / 2012 / 7月 / 02 / FuelPHP のユニットテストを書いた&コアにマージ

FuelPHP のユニットテストを書いた&コアにマージ

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">&laquo; 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">&laquo; 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 &raquo;</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 &raquo; </span>';
		$this->assertEquals($expected, $output);
	}

}

github で pull request したところ、コアにマージされました。ver1.3 以降の FuelPHP で同梱される予定です。(ユニットテストの追加は、開発ブランチにプルリクエストしてください)

7月22日(日)に FuelPHP 勉強会 大須 vol.2 を開催予定ですが、vol.3 ではユニットテストを取り上げるのも一案かもしれません。

関連

Posted in fuelphp | Tagged コミュニティ, ユニットテスト
← OpenStreetMap ワークショップ in 名古屋 #1& CENTRAL MIXER WordCamp Tokyo 2012が開催されます →

アーカイブ

人気の投稿とページ

  • キンドル本を印刷する(PDFに変換する)方法
  • 名古屋駅から国際センターまでの道のり(徒歩)
  • AGPL ライセンス(GPLとは似ているが違いもある)
  • 6年使ったイーモバイル(Y!mobile)を解約手続。店頭でSIM返却
  • JP-Secure SiteGuard WP Pluginは不正ログイン防止に役立つか

プロフィール

水野史土:月70万PVホームページ制作会社のレスキューワーク株式会社で、PHPソフトウェアのサポートを行っている。concrete5コミュニティリーダー、Novius OSコアコード貢献者でもある。 詳しくは管理者詳細参照。
大好評WordPress書籍「WordPressユーザーのためのPHP入門 はじめから、ていねいに。」サポートページ

Copyright © 2015 Standing on the Shoulder of Linus.