From e365086ff7c9372517d55dcb3fcbc4dd2f57f91f Mon Sep 17 00:00:00 2001 From: Anton Grebnev Date: Thu, 13 Oct 2011 18:25:04 +0400 Subject: [PATCH] ViewHelpers tested --- tests/view/helpers/BreadcrumbVeiwHelperTest.php | 60 ++++++++++++++++++++ tests/view/helpers/GetViewHelperTest.php | 72 ++++++++++++++++++++++++ tests/view/helpers/HeadViewHelperTest.php | 47 ++++++++++++++++ tests/view/helpers/MsgViewHelperTest.php | 74 +++++++++++++++++++++++++ tests/view/helpers/TitleViewHelperTest.php | 47 ++++++++++++++++ 5 files changed, 300 insertions(+) create mode 100644 tests/view/helpers/BreadcrumbVeiwHelperTest.php create mode 100644 tests/view/helpers/GetViewHelperTest.php create mode 100644 tests/view/helpers/HeadViewHelperTest.php create mode 100644 tests/view/helpers/MsgViewHelperTest.php create mode 100644 tests/view/helpers/TitleViewHelperTest.php diff --git a/tests/view/helpers/BreadcrumbVeiwHelperTest.php b/tests/view/helpers/BreadcrumbVeiwHelperTest.php new file mode 100644 index 0000000..db4351b --- /dev/null +++ b/tests/view/helpers/BreadcrumbVeiwHelperTest.php @@ -0,0 +1,60 @@ + + * @link http://netmonsters.ru + * @package Majestic + * @subpackage UnitTests + * @since 2011-10-11 + * + * Unit tests for PHPView class + */ + +require_once dirname(__FILE__) . '/../../../Registry.php'; +require_once dirname(__FILE__) . '/../../../view/helpers/ViewHelper.php'; +require_once dirname(__FILE__) . '/../../../view/helpers/BreadcrumbViewHelper.php'; + +class BreadcrumbViewHelperTest extends PHPUnit_Framework_TestCase +{ + + public $helper; + + public function setUp() + { + Registry::set('BreadcrumbViewHelper', array()); + $this->helper = new BreadcrumbViewHelper(new PHPView('any')); + } + + public function testTitle() + { + $this->helper->breadcrumb('Guest page', 'guest.php'); + $result = Registry::get('BreadcrumbViewHelper'); + $this->assertSame(array('Guest page' => 'guest.php'), Registry::get('BreadcrumbViewHelper')); + + $this->helper->prepend('Leave message', 'feedback.php'); + $this->assertSame(array('Leave message' => 'feedback.php', 'Guest page' => 'guest.php'), Registry::get('BreadcrumbViewHelper')); + + $this->helper->append('Home page', 'home.php'); + $this->assertSame(array('Leave message' => 'feedback.php', 'Guest page' => 'guest.php', 'Home page' => 'home.php'), Registry::get('BreadcrumbViewHelper')); + } + + public function testToString() + { + $this->helper->prepend('Home page', 'home.php'); + $this->helper->breadcrumb('Guest page', 'guest.php'); + $this->helper->append('Leave message', 'feedback.php'); + $this->assertSame(array('Home page' => 'home.php', 'Guest page' => 'guest.php', 'Leave message'=> 'feedback.php'), Registry::get('BreadcrumbViewHelper')); + + $result = $this->helper->__toString(); + $this->assertSame('Home page > Guest page > Leave message', $result); + + $this->helper->setSeparator('-'); + $result = $this->helper->__toString(); + $this->assertSame('Home page-Guest page-Leave message', $result); + + $this->helper->append('Last page', ''); + $result = $this->helper->__toString(); + $this->assertSame('Home page-Guest page-Leave message-Last page', $result); + + } +} diff --git a/tests/view/helpers/GetViewHelperTest.php b/tests/view/helpers/GetViewHelperTest.php new file mode 100644 index 0000000..523fc72 --- /dev/null +++ b/tests/view/helpers/GetViewHelperTest.php @@ -0,0 +1,72 @@ + + * @link http://netmonsters.ru + * @package Majestic + * @subpackage UnitTests + * @since 2011-10-11 + * + * Unit tests for PHPView class + */ + +require_once dirname(__FILE__) . '/../../../classes/Env.class.php'; +require_once dirname(__FILE__) . '/../../../view/iView.php'; +require_once dirname(__FILE__) . '/../../../view/PHPView.php'; +require_once dirname(__FILE__) . '/../../../view/helpers/ViewHelper.php'; +require_once dirname(__FILE__) . '/../../../view/helpers/GetViewHelper.php'; + +class GetViewHelperTest extends PHPUnit_Framework_TestCase +{ + + public $helper; + + public function setUp() + { + $this->helper = new GetViewHelper(new PHPView('any')); + } + + /** + * @TODO: GetViewHelper: initialize GetViewHelper::$get with empty array() + * @expectedException PHPUnit_Framework_Error + */ + public function testGetWithNull() + { + $this->helper->get(null); + } + + /** + * @TODO: GetViewHelper: check $_GET not null + * @expectedException PHPUnit_Framework_Error + */ + public function testGetEmptyGET() + { + $result = $this->helper->get('param'); + } + + public function testGetWithSingleParam() + { + $_GET['a'] = 'b'; + $result = $this->helper->get(null); + $this->assertEquals('?a=b', $result); + $this->helper = new GetViewHelper(new PHPView('any')); + $_GET['a'] = 'b'; + $_GET['b'] = 'a'; + $result = $this->helper->get(array('a' => 'c')); + $this->assertEquals('?a=c&b=a', $result); + $_GET['a'] = 'b'; + $_GET['b'] = 'a'; + $result = $this->helper->get(array('a')); + $this->assertEquals('?b=a', $result); + } + + public function testGetWithArray() + { + $_GET['a'] = array('one' => 1, 'two' => 2); + $_GET['b'] = 'a'; + $_GET['c'] = array('three' => 'four'); + $result = $this->helper->get(array('b' => 'c', 'c' => array('five' => 'six'))); + $this->assertEquals('?a[one]=1&a[two]=2&b=c&c[five]=six', $result); + } + +} diff --git a/tests/view/helpers/HeadViewHelperTest.php b/tests/view/helpers/HeadViewHelperTest.php new file mode 100644 index 0000000..e75e52a --- /dev/null +++ b/tests/view/helpers/HeadViewHelperTest.php @@ -0,0 +1,47 @@ + + * @link http://netmonsters.ru + * @package Majestic + * @subpackage UnitTests + * @since 2011-10-11 + * + * Unit tests for PHPView class + */ + +require_once dirname(__FILE__) . '/../../../Registry.php'; +require_once dirname(__FILE__) . '/../../../view/helpers/ViewHelper.php'; +require_once dirname(__FILE__) . '/../../../view/helpers/HeadViewHelper.php'; + +class HeadViewHelperTest extends PHPUnit_Framework_TestCase +{ + + public $helper; + + public function setUp() + { + Registry::set('HeadViewHelper', array()); + $this->helper = new HeadViewHelper(null); + } + + public function testHead() + { + $this->helper->head(''); + $result = Registry::get('HeadViewHelper'); + $this->assertSame(array(''), Registry::get('HeadViewHelper')); + + $this->helper->head(''); + $this->assertSame(array('', ''), Registry::get('HeadViewHelper')); + } + + public function testToString() + { + $this->helper->head(''); + $this->helper->head(''); + + $result = $this->helper->__toString(); + + $this->assertSame("\n \n", $result); + } +} diff --git a/tests/view/helpers/MsgViewHelperTest.php b/tests/view/helpers/MsgViewHelperTest.php new file mode 100644 index 0000000..418c2e0 --- /dev/null +++ b/tests/view/helpers/MsgViewHelperTest.php @@ -0,0 +1,74 @@ + + * @link http://netmonsters.ru + * @package Majestic + * @subpackage UnitTests + * @since 2011-10-11 + * + * Unit tests for PHPView class + */ + +require_once dirname(__FILE__) . '/../../../session/Session.php'; +require_once dirname(__FILE__) . '/../../../view/iView.php'; +require_once dirname(__FILE__) . '/../../../view/PHPView.php'; +require_once dirname(__FILE__) . '/../../../view/helpers/ViewHelper.php'; +require_once dirname(__FILE__) . '/../../../view/helpers/MsgViewHelper.php'; + +class MsgViewHelperTest extends PHPUnit_Framework_TestCase +{ + + public $helper; + + public function setUp() + { + Session::del('MsgViewHelper'); + $this->helper = new MsgViewHelper(new PHPView(array('path' => 'any'))); + } + + public function testMsg() + { + $this->helper->msg('new message from test', 'success'); + $this->assertSame(array('message' => 'new message from test', 'type' => 'success'), Session::get('MsgViewHelper')); + + $this->assertSame($this->helper, $this->helper->msg('error message', 'error')); + $this->assertSame(array('message' => 'error message', 'type' => 'error'), Session::get('MsgViewHelper')); + } + + /** + * @expectedException Exception + * @expectedExceptionMessage Unknown message type + */ + public function testWrongType() + { + $this->helper->msg('some message', 'wrong'); + } + + public function testSuccess() + { + $this->helper->success('success message'); + $this->assertSame(array('message' => 'success message', 'type' => 'success'), Session::get('MsgViewHelper')); + } + + public function testError() + { + $this->helper->error('error message'); + $this->assertSame(array('message' => 'error message', 'type' => 'error'), Session::get('MsgViewHelper')); + $this->assertNull(Session::get('test')); + } + + public function testToString() + { + $this->helper->success('yeah'); + $result = $this->helper->__toString(); + $this->assertSame('
yeah
', $result); + } + + public function testToStringEmpty() + { + $result = $this->helper->__toString(); + $this->assertEmpty($result); + } + +} diff --git a/tests/view/helpers/TitleViewHelperTest.php b/tests/view/helpers/TitleViewHelperTest.php new file mode 100644 index 0000000..4f040f3 --- /dev/null +++ b/tests/view/helpers/TitleViewHelperTest.php @@ -0,0 +1,47 @@ + + * @link http://netmonsters.ru + * @package Majestic + * @subpackage UnitTests + * @since 2011-10-11 + * + * Unit tests for PHPView class + */ + +require_once dirname(__FILE__) . '/../../../Registry.php'; +require_once dirname(__FILE__) . '/../../../view/helpers/ViewHelper.php'; +require_once dirname(__FILE__) . '/../../../view/helpers/TitleViewHelper.php'; + +class TitleViewHelperTest extends PHPUnit_Framework_TestCase +{ + + public $helper; + + public function setUp() + { + Registry::set('TitleViewHelper', array()); + $this->helper = new TitleViewHelper('view'); + } + + public function testTitle() + { + $this->helper->title('one'); + $result = Registry::get('TitleViewHelper'); + $this->assertSame(array('one'), Registry::get('TitleViewHelper')); + + $this->helper->title('two'); + $this->assertSame(array('one', 'two'), Registry::get('TitleViewHelper')); + } + + public function testSeparator() + { + $this->helper->title('one'); + $this->helper->title('two'); + + $this->assertSame('one - two', $this->helper->__toString()); + $this->helper->setSeparator('='); + $this->assertSame('one=two', $this->helper->__toString()); + } +}