| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- <?php
- /**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category ZendX
- * @package ZendX_JQuery
- * @subpackage View
- * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- * @version $Id$
- */
- require_once "jQueryTestCase.php";
- require_once "ZendX/JQuery/View/Helper/AccordionContainer.php";
- class ZendX_JQuery_View_AccordionContainerTest extends ZendX_JQuery_View_jQueryTestCase
- {
- public function testCallingInViewEnablesJQueryHelper()
- {
- $element = $this->view->accordionContainer();
- $this->assertTrue($this->jquery->isEnabled());
- $this->assertTrue($this->jquery->uiIsEnabled());
- $this->assertTrue($element instanceof ZendX_JQuery_View_Helper_AccordionContainer);
- }
- public function testShouldAppendToJqueryHelper()
- {
- $this->view->accordionContainer()->addPane("elem1", "test1", "test1");
- $element = $this->view->accordionContainer("elem1", array('option' => 'true'), array());
- $jquery = $this->view->jQuery()->__toString();
- $this->assertContains('accordion(', $jquery);
- $this->assertContains('"option":"true"', $jquery);
- }
- public function testShouldReturnEmptyStringIfEmpty()
- {
- $accordion = $this->view->accordionContainer("empty", array(), array());
- $this->assertEquals('', $accordion);
- }
- public function testShouldAllowAddingTabs()
- {
- $accordion = $this->view->accordionContainer()->addPane("container1", "elem1", "Text1")
- ->addPane("container1", "elem2", "Text2")
- ->accordionContainer("container1", array(), array());
- $this->assertEquals(array('$("#container1").accordion({});'), $this->jquery->getOnLoadActions());
- $this->assertContains("elem1", $accordion);
- $this->assertContains("Text1", $accordion);
- $this->assertContains("elem2", $accordion);
- $this->assertContains("Text2", $accordion);
- }
- public function testShouldAllowAddingMultipleTabs()
- {
- $this->view->accordionContainer()->addPane("container1", "elem1", "Text1")
- ->addPane("container2", "elem2", "Text2");
- $accordion = $this->view->accordionContainer("container1", array(), array());
- $accordion2 = $this->view->accordionContainer("container2", array(), array());
- $this->assertEquals(array('$("#container1").accordion({});', '$("#container2").accordion({});'), $this->jquery->getOnLoadActions());
- $this->assertNotContains("elem1", $accordion2);
- $this->assertNotContains("Text1", $accordion2);
- $this->assertContains("elem1", $accordion);
- $this->assertContains("Text1", $accordion);
- $this->assertNotContains("elem2", $accordion);
- $this->assertNotContains("Text2", $accordion);
- $this->assertContains("elem2", $accordion2);
- $this->assertContains("Text2", $accordion2);
- }
- public function testShouldAllowCaptureTabContent()
- {
- $this->view->accordionPane()->captureStart("container1", "elem1");
- echo "Lorem Ipsum!";
- $this->view->accordionPane()->captureEnd("container1");
- $this->view->accordionPane()->captureStart("container1", "elem2", array('contentUrl' => 'foo.html'));
- echo "This is captured and displayed: contentUrl does not exist for Accordion.";
- $this->view->accordionPane()->captureEnd("container1");
- $accordion = $this->view->accordionContainer("container1", array(), array());
- $this->assertEquals(array('$("#container1").accordion({});'), $this->jquery->getOnLoadActions());
- $this->assertContains('elem1', $accordion);
- $this->assertContains('elem2', $accordion);
- $this->assertContains('Lorem Ipsum!', $accordion);
- $this->assertNotContains('href="foo.html"', $accordion);
- $this->assertContains('This is captured and displayed: contentUrl does not exist for Accordion.', $accordion);
- }
- public function testShouldAllowUsingTabPane()
- {
- $this->view->accordionPane("container1", "Lorem Ipsum!", array('title' => 'elem1'));
- $this->view->accordionPane("container1", 'This is captured and displayed: contentUrl does not exist for Accordion.', array('title' => 'elem2', 'contentUrl' => 'foo.html'));
- $accordion = $this->view->accordionContainer("container1", array(), array());
- $this->assertEquals(array('$("#container1").accordion({});'), $this->jquery->getOnLoadActions());
- $this->assertContains('elem1', $accordion);
- $this->assertContains('elem2', $accordion);
- $this->assertContains('Lorem Ipsum!', $accordion);
- $this->assertNotContains('href="foo.html"', $accordion);
- $this->assertContains('This is captured and displayed: contentUrl does not exist for Accordion.', $accordion);
- }
- /**
- * @group ZF-6321
- */
- public function testAccordingHtmlRenderingWithUi15()
- {
- $this->view->jQuery()->setUiVersion("1.5.3");
- $this->view->accordionPane("container1", "foo", array('title' => 'foo'));
- $this->view->accordionPane("container1", 'bar', array('title' => 'bar'));
- $accordion = $this->view->accordionContainer("container1", array(), array());
- $this->assertEquals(
- '<ul id="container1">
- <li class="ui-accordion-group"><a href="#" class="ui-accordion-header">foo</a><div class="ui-accordion-content">foo</div></li>
- <li class="ui-accordion-group"><a href="#" class="ui-accordion-header">bar</a><div class="ui-accordion-content">bar</div></li>
- </ul>
- ',
- $accordion
- );
- }
- /**
- * @group ZF-6321
- */
- public function testAccordingHtmlRenderingWithUi17()
- {
- $this->view->jQuery()->setUiVersion("1.7.0");
- $this->view->accordionPane("container1", "foo", array('title' => 'foo'));
- $this->view->accordionPane("container1", 'bar', array('title' => 'bar'));
- $accordion = $this->view->accordionContainer("container1", array(), array());
- $this->assertEquals(
- '<div id="container1">
- <h3><a href="#">foo</a></h3><div>foo</div>
- <h3><a href="#">bar</a></h3><div>bar</div>
- </div>
- ',
- $accordion
- );
- }
- public function testAccordionSetWrongHtmlTemplate_ThrowsException()
- {
- $this->setExpectedException("ZendX_JQuery_View_Exception");
- $this->view->getHelper('accordionContainer')->setElementHtmlTemplate("foo");
- }
- public function testAccordionSetHtmlTemplate()
- {
- $this->view->getHelper('accordionContainer')->setElementHtmlTemplate("<h3>%s</h3><p>%s</p>");
- $this->view->accordionPane("container1", "foo", array('title' => 'foo'));
- $accordion = $this->view->accordionContainer("container1", array(), array());
- $this->assertEquals(
- '<div id="container1">
- <h3>foo</h3><p>foo</p>
- </div>
- ',
- $accordion
- );
- }
- }
|