123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- <?php
- /**
- * HelperCollectionTest file
- *
- * PHP 5
- *
- * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
- * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
- *
- * Licensed under The MIT License
- * Redistributions of files must retain the above copyright notice.
- *
- * @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
- * @link http://book.cakephp.org/2.0/en/development/testing.html CakePHP(tm) Tests
- * @package Cake.Test.Case.View
- * @since CakePHP(tm) v 2.0
- * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
- */
- App::uses('HelperCollection', 'View');
- App::uses('HtmlHelper', 'View/Helper');
- App::uses('View', 'View');
- /**
- * Extended HtmlHelper
- */
- class HtmlAliasHelper extends HtmlHelper {
- }
- class HelperCollectionTest extends CakeTestCase {
- /**
- * setUp
- *
- * @return void
- */
- public function setUp() {
- parent::setUp();
- $this->View = $this->getMock('View', array(), array(null));
- $this->Helpers = new HelperCollection($this->View);
- }
- /**
- * tearDown
- *
- * @return void
- */
- public function tearDown() {
- CakePlugin::unload();
- unset($this->Helpers, $this->View);
- parent::tearDown();
- }
- /**
- * test triggering callbacks on loaded helpers
- *
- * @return void
- */
- public function testLoad() {
- $result = $this->Helpers->load('Html');
- $this->assertInstanceOf('HtmlHelper', $result);
- $this->assertInstanceOf('HtmlHelper', $this->Helpers->Html);
- $result = $this->Helpers->loaded();
- $this->assertEquals(array('Html'), $result, 'loaded() results are wrong.');
- $this->assertTrue($this->Helpers->enabled('Html'));
- }
- /**
- * test lazy loading of helpers
- *
- * @return void
- */
- public function testLazyLoad() {
- $result = $this->Helpers->Html;
- $this->assertInstanceOf('HtmlHelper', $result);
- $result = $this->Helpers->Form;
- $this->assertInstanceOf('FormHelper', $result);
- App::build(array('Plugin' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'Plugin' . DS)));
- $this->View->plugin = 'TestPlugin';
- CakePlugin::load(array('TestPlugin'));
- $result = $this->Helpers->OtherHelper;
- $this->assertInstanceOf('OtherHelperHelper', $result);
- }
- /**
- * test lazy loading of helpers
- *
- * @expectedException MissingHelperException
- * @return void
- */
- public function testLazyLoadException() {
- $this->Helpers->NotAHelper;
- }
- /**
- * Tests loading as an alias
- *
- * @return void
- */
- public function testLoadWithAlias() {
- $result = $this->Helpers->load('Html', array('className' => 'HtmlAlias'));
- $this->assertInstanceOf('HtmlAliasHelper', $result);
- $this->assertInstanceOf('HtmlAliasHelper', $this->Helpers->Html);
- $result = $this->Helpers->loaded();
- $this->assertEquals(array('Html'), $result, 'loaded() results are wrong.');
- $this->assertTrue($this->Helpers->enabled('Html'));
- $result = $this->Helpers->load('Html');
- $this->assertInstanceOf('HtmlAliasHelper', $result);
- App::build(array('Plugin' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'Plugin' . DS)));
- CakePlugin::load(array('TestPlugin'));
- $result = $this->Helpers->load('SomeOther', array('className' => 'TestPlugin.OtherHelper'));
- $this->assertInstanceOf('OtherHelperHelper', $result);
- $this->assertInstanceOf('OtherHelperHelper', $this->Helpers->SomeOther);
- $result = $this->Helpers->loaded();
- $this->assertEquals(array('Html', 'SomeOther'), $result, 'loaded() results are wrong.');
- App::build();
- }
- /**
- * test that the enabled setting disables the helper.
- *
- * @return void
- */
- public function testLoadWithEnabledFalse() {
- $result = $this->Helpers->load('Html', array('enabled' => false));
- $this->assertInstanceOf('HtmlHelper', $result);
- $this->assertInstanceOf('HtmlHelper', $this->Helpers->Html);
- $this->assertFalse($this->Helpers->enabled('Html'), 'Html should be disabled');
- }
- /**
- * test missinghelper exception
- *
- * @expectedException MissingHelperException
- * @return void
- */
- public function testLoadMissingHelper() {
- $this->Helpers->load('ThisHelperShouldAlwaysBeMissing');
- }
- /**
- * test loading a plugin helper.
- *
- * @return void
- */
- public function testLoadPluginHelper() {
- App::build(array(
- 'Plugin' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'Plugin' . DS),
- ));
- CakePlugin::load(array('TestPlugin'));
- $result = $this->Helpers->load('TestPlugin.OtherHelper');
- $this->assertInstanceOf('OtherHelperHelper', $result, 'Helper class is wrong.');
- $this->assertInstanceOf('OtherHelperHelper', $this->Helpers->OtherHelper, 'Class is wrong');
- App::build();
- }
- /**
- * test unload()
- *
- * @return void
- */
- public function testUnload() {
- $this->Helpers->load('Form');
- $this->Helpers->load('Html');
- $result = $this->Helpers->loaded();
- $this->assertEquals(array('Form', 'Html'), $result, 'loaded helpers is wrong');
- $this->Helpers->unload('Html');
- $this->assertNotContains('Html', $this->Helpers->loaded());
- $this->assertContains('Form', $this->Helpers->loaded());
- $result = $this->Helpers->loaded();
- $this->assertEquals(array('Form'), $result, 'loaded helpers is wrong');
- }
- }
|