summaryrefslogtreecommitdiff
path: root/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/View/Helper/JqueryEngineHelperTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/View/Helper/JqueryEngineHelperTest.php')
-rw-r--r--poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/View/Helper/JqueryEngineHelperTest.php373
1 files changed, 373 insertions, 0 deletions
diff --git a/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/View/Helper/JqueryEngineHelperTest.php b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/View/Helper/JqueryEngineHelperTest.php
new file mode 100644
index 0000000..4823f1e
--- /dev/null
+++ b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/View/Helper/JqueryEngineHelperTest.php
@@ -0,0 +1,373 @@
+<?php
+/**
+ * JqueryEngineTestCase
+ *
+ * PHP 5
+ *
+ * CakePHP(tm) Tests <http://book.cakephp.org/2.0/en/development/testing.html>
+ * 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.
+ * @link http://cakephp.org CakePHP Project
+ * @package Cake.Test.Case.View.Helper
+ * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
+ */
+
+App::uses('HtmlHelper', 'View/Helper');
+App::uses('JsHelper', 'View/Helper');
+App::uses('JqueryEngineHelper', 'View/Helper');
+App::uses('View', 'View');
+
+class JqueryEngineHelperTest extends CakeTestCase {
+
+/**
+ * setUp
+ *
+ * @return void
+ */
+ public function setUp() {
+ parent::setUp();
+ $controller = null;
+ $this->View = $this->getMock('View', array('addScript'), array(&$controller));
+ $this->Jquery = new JqueryEngineHelper($this->View);
+ }
+
+/**
+ * tearDown
+ *
+ * @return void
+ */
+ public function tearDown() {
+ parent::tearDown();
+ unset($this->Jquery);
+ }
+
+/**
+ * test selector method
+ *
+ * @return void
+ */
+ public function testSelector() {
+ $result = $this->Jquery->get('#content');
+ $this->assertEquals($this->Jquery, $result);
+ $this->assertEquals($this->Jquery->selection, '$("#content")');
+
+ $result = $this->Jquery->get('document');
+ $this->assertEquals($this->Jquery, $result);
+ $this->assertEquals($this->Jquery->selection, '$(document)');
+
+ $result = $this->Jquery->get('window');
+ $this->assertEquals($this->Jquery, $result);
+ $this->assertEquals($this->Jquery->selection, '$(window)');
+
+ $result = $this->Jquery->get('ul');
+ $this->assertEquals($this->Jquery, $result);
+ $this->assertEquals($this->Jquery->selection, '$("ul")');
+ }
+
+/**
+ * test event binding
+ *
+ * @return void
+ */
+ public function testEvent() {
+ $this->Jquery->get('#myLink');
+ $result = $this->Jquery->event('click', 'doClick', array('wrap' => false));
+ $expected = '$("#myLink").bind("click", doClick);';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->event('click', '$(this).show();', array('stop' => false));
+ $expected = '$("#myLink").bind("click", function (event) {$(this).show();});';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->event('click', '$(this).hide();');
+ $expected = '$("#myLink").bind("click", function (event) {$(this).hide();' . "\n" . 'return false;});';
+ $this->assertEquals($expected, $result);
+ }
+
+/**
+ * test dom ready event creation
+ *
+ * @return void
+ */
+ public function testDomReady() {
+ $result = $this->Jquery->domReady('foo.name = "bar";');
+ $expected = '$(document).ready(function () {foo.name = "bar";});';
+ $this->assertEquals($expected, $result);
+ }
+
+/**
+ * test Each method
+ *
+ * @return void
+ */
+ public function testEach() {
+ $this->Jquery->get('#foo');
+ $result = $this->Jquery->each('$(this).hide();');
+ $expected = '$("#foo").each(function () {$(this).hide();});';
+ $this->assertEquals($expected, $result);
+ }
+
+/**
+ * test Effect generation
+ *
+ * @return void
+ */
+ public function testEffect() {
+ $this->Jquery->get('#foo');
+ $result = $this->Jquery->effect('show');
+ $expected = '$("#foo").show();';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->effect('hide');
+ $expected = '$("#foo").hide();';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->effect('hide', array('speed' => 'fast'));
+ $expected = '$("#foo").hide("fast");';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->effect('fadeIn');
+ $expected = '$("#foo").fadeIn();';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->effect('fadeOut');
+ $expected = '$("#foo").fadeOut();';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->effect('slideIn');
+ $expected = '$("#foo").slideDown();';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->effect('slideOut');
+ $expected = '$("#foo").slideUp();';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->effect('slideDown');
+ $expected = '$("#foo").slideDown();';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->effect('slideUp');
+ $expected = '$("#foo").slideUp();';
+ $this->assertEquals($expected, $result);
+ }
+
+/**
+ * Test Request Generation
+ *
+ * @return void
+ */
+ public function testRequest() {
+ $result = $this->Jquery->request(array('controller' => 'posts', 'action' => 'view', 1));
+ $expected = '$.ajax({url:"\\/posts\\/view\\/1"});';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->request(array('controller' => 'posts', 'action' => 'view', 1), array(
+ 'update' => '#content'
+ ));
+ $expected = '$.ajax({dataType:"html", success:function (data, textStatus) {$("#content").html(data);}, url:"\/posts\/view\/1"});';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->request('/people/edit/1', array(
+ 'method' => 'post',
+ 'before' => 'doBefore',
+ 'complete' => 'doComplete',
+ 'success' => 'doSuccess',
+ 'error' => 'handleError',
+ 'type' => 'json',
+ 'data' => array('name' => 'jim', 'height' => '185cm'),
+ 'wrapCallbacks' => false
+ ));
+ $expected = '$.ajax({beforeSend:doBefore, complete:doComplete, data:"name=jim&height=185cm", dataType:"json", error:handleError, success:doSuccess, type:"post", url:"\\/people\\/edit\\/1"});';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->request('/people/edit/1', array(
+ 'update' => '#updated',
+ 'success' => 'doFoo',
+ 'method' => 'post',
+ 'wrapCallbacks' => false
+ ));
+ $expected = '$.ajax({dataType:"html", success:function (data, textStatus) {doFoo$("#updated").html(data);}, type:"post", url:"\\/people\\/edit\\/1"});';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->request('/people/edit/1', array(
+ 'update' => '#updated',
+ 'success' => 'doFoo',
+ 'method' => 'post',
+ 'dataExpression' => true,
+ 'data' => '$("#someId").serialize()',
+ 'wrapCallbacks' => false
+ ));
+ $expected = '$.ajax({data:$("#someId").serialize(), dataType:"html", success:function (data, textStatus) {doFoo$("#updated").html(data);}, type:"post", url:"\\/people\\/edit\\/1"});';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->request('/people/edit/1', array(
+ 'success' => 'doFoo',
+ 'before' => 'doBefore',
+ 'method' => 'post',
+ 'dataExpression' => true,
+ 'data' => '$("#someId").serialize()',
+ ));
+ $expected = '$.ajax({beforeSend:function (XMLHttpRequest) {doBefore}, data:$("#someId").serialize(), success:function (data, textStatus) {doFoo}, type:"post", url:"\\/people\\/edit\\/1"});';
+ $this->assertEquals($expected, $result);
+ }
+
+/**
+ * test that alternate jQuery object values work for request()
+ *
+ * @return void
+ */
+ public function testRequestWithAlternateJqueryObject() {
+ $this->Jquery->jQueryObject = '$j';
+
+ $result = $this->Jquery->request('/people/edit/1', array(
+ 'update' => '#updated',
+ 'success' => 'doFoo',
+ 'method' => 'post',
+ 'dataExpression' => true,
+ 'data' => '$j("#someId").serialize()',
+ 'wrapCallbacks' => false
+ ));
+ $expected = '$j.ajax({data:$j("#someId").serialize(), dataType:"html", success:function (data, textStatus) {doFoo$j("#updated").html(data);}, type:"post", url:"\\/people\\/edit\\/1"});';
+ $this->assertEquals($expected, $result);
+ }
+
+/**
+ * test sortable list generation
+ *
+ * @return void
+ */
+ public function testSortable() {
+ $this->Jquery->get('#myList');
+ $result = $this->Jquery->sortable(array(
+ 'distance' => 5,
+ 'containment' => 'parent',
+ 'start' => 'onStart',
+ 'complete' => 'onStop',
+ 'sort' => 'onSort',
+ 'wrapCallbacks' => false
+ ));
+ $expected = '$("#myList").sortable({containment:"parent", distance:5, sort:onSort, start:onStart, stop:onStop});';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->sortable(array(
+ 'distance' => 5,
+ 'containment' => 'parent',
+ 'start' => 'onStart',
+ 'complete' => 'onStop',
+ 'sort' => 'onSort',
+ ));
+ $expected = '$("#myList").sortable({containment:"parent", distance:5, sort:function (event, ui) {onSort}, start:function (event, ui) {onStart}, stop:function (event, ui) {onStop}});';
+ $this->assertEquals($expected, $result);
+ }
+
+/**
+ * test drag() method
+ *
+ * @return void
+ */
+ public function testDrag() {
+ $this->Jquery->get('#element');
+ $result = $this->Jquery->drag(array(
+ 'container' => '#content',
+ 'start' => 'onStart',
+ 'drag' => 'onDrag',
+ 'stop' => 'onStop',
+ 'snapGrid' => array(10, 10),
+ 'wrapCallbacks' => false
+ ));
+ $expected = '$("#element").draggable({containment:"#content", drag:onDrag, grid:[10,10], start:onStart, stop:onStop});';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->drag(array(
+ 'container' => '#content',
+ 'start' => 'onStart',
+ 'drag' => 'onDrag',
+ 'stop' => 'onStop',
+ 'snapGrid' => array(10, 10),
+ ));
+ $expected = '$("#element").draggable({containment:"#content", drag:function (event, ui) {onDrag}, grid:[10,10], start:function (event, ui) {onStart}, stop:function (event, ui) {onStop}});';
+ $this->assertEquals($expected, $result);
+ }
+
+/**
+ * test drop() method
+ *
+ * @return void
+ */
+ public function testDrop() {
+ $this->Jquery->get('#element');
+ $result = $this->Jquery->drop(array(
+ 'accept' => '.items',
+ 'hover' => 'onHover',
+ 'leave' => 'onExit',
+ 'drop' => 'onDrop',
+ 'wrapCallbacks' => false
+ ));
+ $expected = '$("#element").droppable({accept:".items", drop:onDrop, out:onExit, over:onHover});';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->drop(array(
+ 'accept' => '.items',
+ 'hover' => 'onHover',
+ 'leave' => 'onExit',
+ 'drop' => 'onDrop',
+ ));
+ $expected = '$("#element").droppable({accept:".items", drop:function (event, ui) {onDrop}, out:function (event, ui) {onExit}, over:function (event, ui) {onHover}});';
+ $this->assertEquals($expected, $result);
+ }
+
+/**
+ * test slider generation
+ *
+ * @return void
+ */
+ public function testSlider() {
+ $this->Jquery->get('#element');
+ $result = $this->Jquery->slider(array(
+ 'complete' => 'onComplete',
+ 'change' => 'onChange',
+ 'min' => 0,
+ 'max' => 10,
+ 'value' => 2,
+ 'direction' => 'vertical',
+ 'wrapCallbacks' => false
+ ));
+ $expected = '$("#element").slider({change:onChange, max:10, min:0, orientation:"vertical", stop:onComplete, value:2});';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->slider(array(
+ 'complete' => 'onComplete',
+ 'change' => 'onChange',
+ 'min' => 0,
+ 'max' => 10,
+ 'value' => 2,
+ 'direction' => 'vertical',
+ ));
+ $expected = '$("#element").slider({change:function (event, ui) {onChange}, max:10, min:0, orientation:"vertical", stop:function (event, ui) {onComplete}, value:2});';
+ $this->assertEquals($expected, $result);
+ }
+
+/**
+ * test the serializeForm method
+ *
+ * @return void
+ */
+ public function testSerializeForm() {
+ $this->Jquery->get('#element');
+ $result = $this->Jquery->serializeForm(array('isForm' => false));
+ $expected = '$("#element").closest("form").serialize();';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->serializeForm(array('isForm' => true));
+ $expected = '$("#element").serialize();';
+ $this->assertEquals($expected, $result);
+
+ $result = $this->Jquery->serializeForm(array('isForm' => false, 'inline' => true));
+ $expected = '$("#element").closest("form").serialize()';
+ $this->assertEquals($expected, $result);
+ }
+}