cakephp2-php8/cake/tests/cases/libs/view/helpers/jquery_engine.test.php
mark_story 72866966b0 Updating parseOptions to allow safeKeys that do not need to be escaped
Useful for handling function callbacks in options arrays.
2009-03-15 12:26:12 -04:00

154 lines
No EOL
4.4 KiB
PHP

<?php
/**
* JqueryEngineTestCase
*
*
*
* PHP versions 4 and 5
*
* CakePHP : Rapid Development Framework <http://www.cakephp.org/>
* Copyright 2006-2008, Cake Software Foundation, Inc.
* 1785 E. Sahara Avenue, Suite 490-204
* Las Vegas, Nevada 89104
*
* Licensed under The MIT License
* Redistributions of files must retain the above copyright notice.
*
* @filesource
* @copyright Copyright 2006-2008, Cake Software Foundation, Inc.
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project
* @package cake.tests
* @subpackage cake.tests.cases.views.helpers
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
*/
App::import('Helper', array('Html', 'Js', 'JqueryEngine'));
class JqueryEngineHelperTestCase extends CakeTestCase {
/**
* startTest
*
* @return void
**/
function startTest() {
$this->Jquery =& new JqueryEngineHelper();
}
/**
* end test
*
* @return void
**/
function endTest() {
unset($this->Jquery);
}
/**
* test selector method
*
* @return void
**/
function testSelector() {
$result = $this->Jquery->get('#content');
$this->assertEqual($result, $this->Jquery);
$this->assertEqual($this->Jquery->selection, "$('#content')");
$result = $this->Jquery->get('document');
$this->assertEqual($result, $this->Jquery);
$this->assertEqual($this->Jquery->selection, "$(document)");
$result = $this->Jquery->get('window');
$this->assertEqual($result, $this->Jquery);
$this->assertEqual($this->Jquery->selection, "$(window)");
$result = $this->Jquery->get('ul');
$this->assertEqual($result, $this->Jquery);
$this->assertEqual($this->Jquery->selection, "$('ul')");
}
/**
* test event binding
*
* @return void
**/
function testEvent() {
$result = $this->Jquery->get('#myLink')->event('click', 'doClick', array('wrap' => false));
$expected = "$('#myLink').bind('click', doClick);";
$this->assertEqual($result, $expected);
$result = $this->Jquery->get('#myLink')->event('click', '$(this).show();', array('stop' => false));
$expected = "$('#myLink').bind('click', function (event) {\$(this).show();});";
$this->assertEqual($result, $expected);
$result = $this->Jquery->get('#myLink')->event('click', '$(this).hide();');
$expected = "\$('#myLink').bind('click', function (event) {\$(this).hide();\nreturn false;});";
$this->assertEqual($result, $expected);
}
/**
* test dom ready event creation
*
* @return void
**/
function testDomReady() {
$result = $this->Jquery->domReady('foo.name = "bar";');
$expected = "\$(document).bind('ready', function (event) {foo.name = \"bar\";});";
$this->assertEqual($result, $expected);
}
/**
* test Each method
*
* @return void
**/
function testEach() {
$result = $this->Jquery->get('#foo')->each('$(this).hide();');
$expected = "\$('#foo').each(function () {\$(this).hide();});";
$this->assertEqual($result, $expected);
}
/**
* test Effect generation
*
* @return void
**/
function testEffect() {
$result = $this->Jquery->get('#foo')->effect('show');
$expected = "\$('#foo').show();";
$this->assertEqual($result, $expected);
$result = $this->Jquery->effect('hide');
$expected = "\$('#foo').hide();";
$this->assertEqual($result, $expected);
$result = $this->Jquery->effect('hide', array('speed' => 'fast'));
$expected = "\$('#foo').hide(\"fast\");";
$this->assertEqual($result, $expected);
$result = $this->Jquery->effect('fadeIn');
$expected = "\$('#foo').fadeIn();";
$this->assertEqual($result, $expected);
$result = $this->Jquery->effect('fadeOut');
$expected = "\$('#foo').fadeOut();";
$this->assertEqual($result, $expected);
$result = $this->Jquery->effect('toggle');
$expected = "\$('#foo').toggle();";
$this->assertEqual($result, $expected);
}
/**
* Test Request Generation
*
* @return void
**/
function testRequest() {
$result = $this->Jquery->request(array('controller' => 'posts', 'action' => 'view', 1));
$expected = '$.ajax({url:"/posts/view/1"});';
$this->assertEqual($result, $expected);
$result = $this->Jquery->request('/people/edit/1', array(
'method' => 'post',
'complete' => 'doSuccess',
'error' => 'handleError',
'type' => 'json',
'data' => array('name' => 'jim', 'height' => '185cm')
));
$expected = '$.ajax({url:"/people/edit/1", method:"post", success:doSuccess, error:handleError, dataType:"json", data:"name=jim&height=185cm"});';
$this->assertEqual($result, $expected);
}
}
?>