Mercurial > hg > Members > shoshi > webvirt
comparison cake/tests/cases/libs/view/helpers/mootools_engine.test.php @ 0:261e66bd5a0c
hg init
author | Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 24 Jul 2011 21:08:31 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:261e66bd5a0c |
---|---|
1 <?php | |
2 /** | |
3 * MooEngineTestCase | |
4 * | |
5 * | |
6 * | |
7 * PHP versions 4 and 5 | |
8 * | |
9 * CakePHP : Rapid Development Framework <http://www.cakephp.org/> | |
10 * Copyright 2006-2010, Cake Software Foundation, Inc. | |
11 * 1785 E. Sahara Avenue, Suite 490-204 | |
12 * Las Vegas, Nevada 89104 | |
13 * | |
14 * Licensed under The MIT License | |
15 * Redistributions of files must retain the above copyright notice. | |
16 * | |
17 * @copyright Copyright 2006-2010, Cake Software Foundation, Inc. | |
18 * @link http://cakephp.org CakePHP Project | |
19 * @package cake.tests | |
20 * @subpackage cake.tests.cases.views.helpers | |
21 * @license MIT License (http://www.opensource.org/licenses/mit-license.php) | |
22 */ | |
23 App::import('Helper', array('Html', 'Js', 'MootoolsEngine')); | |
24 | |
25 class MooEngineHelperTestCase extends CakeTestCase { | |
26 /** | |
27 * startTest | |
28 * | |
29 * @return void | |
30 */ | |
31 function startTest() { | |
32 $this->Moo =& new MootoolsEngineHelper(); | |
33 } | |
34 /** | |
35 * end test | |
36 * | |
37 * @return void | |
38 */ | |
39 function endTest() { | |
40 unset($this->Moo); | |
41 } | |
42 /** | |
43 * test selector method | |
44 * | |
45 * @return void | |
46 */ | |
47 function testSelector() { | |
48 $result = $this->Moo->get('#content'); | |
49 $this->assertEqual($result, $this->Moo); | |
50 $this->assertEqual($this->Moo->selection, '$("content")'); | |
51 | |
52 $result = $this->Moo->get('a .remove'); | |
53 $this->assertEqual($result, $this->Moo); | |
54 $this->assertEqual($this->Moo->selection, '$$("a .remove")'); | |
55 | |
56 $result = $this->Moo->get('document'); | |
57 $this->assertEqual($result, $this->Moo); | |
58 $this->assertEqual($this->Moo->selection, "$(document)"); | |
59 | |
60 $result = $this->Moo->get('window'); | |
61 $this->assertEqual($result, $this->Moo); | |
62 $this->assertEqual($this->Moo->selection, "$(window)"); | |
63 | |
64 $result = $this->Moo->get('ul'); | |
65 $this->assertEqual($result, $this->Moo); | |
66 $this->assertEqual($this->Moo->selection, '$$("ul")'); | |
67 | |
68 $result = $this->Moo->get('#some_long-id.class'); | |
69 $this->assertEqual($result, $this->Moo); | |
70 $this->assertEqual($this->Moo->selection, '$$("#some_long-id.class")'); | |
71 } | |
72 /** | |
73 * test event binding | |
74 * | |
75 * @return void | |
76 */ | |
77 function testEvent() { | |
78 $this->Moo->get('#myLink'); | |
79 $result = $this->Moo->event('click', 'doClick', array('wrap' => false)); | |
80 $expected = '$("myLink").addEvent("click", doClick);'; | |
81 $this->assertEqual($result, $expected); | |
82 | |
83 $result = $this->Moo->event('click', 'this.setStyle("display", "");', array('stop' => false)); | |
84 $expected = '$("myLink").addEvent("click", function (event) {this.setStyle("display", "");});'; | |
85 $this->assertEqual($result, $expected); | |
86 | |
87 $result = $this->Moo->event('click', 'this.setStyle("display", "none");'); | |
88 $expected = "\$(\"myLink\").addEvent(\"click\", function (event) {event.stop();\nthis.setStyle(\"display\", \"none\");});"; | |
89 $this->assertEqual($result, $expected); | |
90 } | |
91 /** | |
92 * test dom ready event creation | |
93 * | |
94 * @return void | |
95 */ | |
96 function testDomReady() { | |
97 $result = $this->Moo->domReady('foo.name = "bar";'); | |
98 $expected = 'window.addEvent("domready", function (event) {foo.name = "bar";});'; | |
99 $this->assertEqual($result, $expected); | |
100 } | |
101 /** | |
102 * test Each method | |
103 * | |
104 * @return void | |
105 */ | |
106 function testEach() { | |
107 $this->Moo->get('#foo'); | |
108 $result = $this->Moo->each('item.setStyle("display", "none");'); | |
109 $expected = '$("foo").each(function (item, index) {item.setStyle("display", "none");});'; | |
110 $this->assertEqual($result, $expected); | |
111 } | |
112 /** | |
113 * test Effect generation | |
114 * | |
115 * @return void | |
116 */ | |
117 function testEffect() { | |
118 $this->Moo->get('#foo'); | |
119 $result = $this->Moo->effect('show'); | |
120 $expected = '$("foo").setStyle("display", "");'; | |
121 $this->assertEqual($result, $expected); | |
122 | |
123 $result = $this->Moo->effect('hide'); | |
124 $expected = '$("foo").setStyle("display", "none");'; | |
125 $this->assertEqual($result, $expected); | |
126 | |
127 $result = $this->Moo->effect('fadeIn'); | |
128 $expected = '$("foo").fade("in");'; | |
129 $this->assertEqual($result, $expected); | |
130 | |
131 $result = $this->Moo->effect('fadeOut'); | |
132 $expected = '$("foo").fade("out");'; | |
133 $this->assertEqual($result, $expected); | |
134 | |
135 $result = $this->Moo->effect('slideIn'); | |
136 $expected = '$("foo").slide("in");'; | |
137 $this->assertEqual($result, $expected); | |
138 | |
139 $result = $this->Moo->effect('slideOut'); | |
140 $expected = '$("foo").slide("out");'; | |
141 $this->assertEqual($result, $expected); | |
142 | |
143 $result = $this->Moo->effect('slideOut', array('speed' => 'fast')); | |
144 $expected = '$("foo").set("slide", {duration:"short"}).slide("out");'; | |
145 $this->assertEqual($result, $expected); | |
146 | |
147 $result = $this->Moo->effect('slideOut', array('speed' => 'slow')); | |
148 $expected = '$("foo").set("slide", {duration:"long"}).slide("out");'; | |
149 $this->assertEqual($result, $expected); | |
150 } | |
151 /** | |
152 * Test Request Generation | |
153 * | |
154 * @return void | |
155 */ | |
156 function testRequest() { | |
157 $result = $this->Moo->request(array('controller' => 'posts', 'action' => 'view', 1)); | |
158 $expected = 'var jsRequest = new Request({url:"\\/posts\\/view\\/1"}).send();'; | |
159 $this->assertEqual($result, $expected); | |
160 | |
161 $result = $this->Moo->request('/posts/view/1', array('update' => 'content')); | |
162 $expected = 'var jsRequest = new Request.HTML({update:"content", url:"\\/posts\\/view\\/1"}).send();'; | |
163 $this->assertEqual($result, $expected); | |
164 | |
165 $result = $this->Moo->request('/people/edit/1', array( | |
166 'method' => 'post', | |
167 'complete' => 'doSuccess', | |
168 'error' => 'handleError', | |
169 'type' => 'json', | |
170 'data' => array('name' => 'jim', 'height' => '185cm'), | |
171 'wrapCallbacks' => false | |
172 )); | |
173 $expected = 'var jsRequest = new Request.JSON({method:"post", onComplete:doSuccess, onFailure:handleError, url:"\\/people\\/edit\\/1"}).send({"name":"jim","height":"185cm"});'; | |
174 $this->assertEqual($result, $expected); | |
175 | |
176 $result = $this->Moo->request('/people/edit/1', array( | |
177 'method' => 'post', | |
178 'complete' => 'doSuccess', | |
179 'update' => '#update-zone', | |
180 'wrapCallbacks' => false | |
181 )); | |
182 $expected = 'var jsRequest = new Request.HTML({method:"post", onComplete:doSuccess, update:"update-zone", url:"\\/people\\/edit\\/1"}).send();'; | |
183 $this->assertEqual($result, $expected); | |
184 | |
185 $result = $this->Moo->request('/people/edit/1', array( | |
186 'method' => 'post', | |
187 'complete' => 'doComplete', | |
188 'success' => 'doSuccess', | |
189 'error' => 'doFailure', | |
190 'before' => 'doBefore', | |
191 'update' => 'update-zone', | |
192 'wrapCallbacks' => false | |
193 )); | |
194 $expected = 'var jsRequest = new Request.HTML({method:"post", onComplete:doComplete, onFailure:doFailure, onRequest:doBefore, onSuccess:doSuccess, update:"update-zone", url:"\\/people\\/edit\\/1"}).send();'; | |
195 $this->assertEqual($result, $expected); | |
196 | |
197 $result = $this->Moo->request('/people/edit/1', array( | |
198 'method' => 'post', | |
199 'complete' => 'doComplete', | |
200 'success' => 'doSuccess', | |
201 'error' => 'doFailure', | |
202 'before' => 'doBefore', | |
203 'update' => 'update-zone', | |
204 'dataExpression' => true, | |
205 'data' => '$("foo").toQueryString()', | |
206 'wrapCallbacks' => false | |
207 )); | |
208 $expected = 'var jsRequest = new Request.HTML({method:"post", onComplete:doComplete, onFailure:doFailure, onRequest:doBefore, onSuccess:doSuccess, update:"update-zone", url:"\\/people\\/edit\\/1"}).send($("foo").toQueryString());'; | |
209 $this->assertEqual($result, $expected); | |
210 | |
211 $result = $this->Moo->request('/people/edit/1', array( | |
212 'method' => 'post', | |
213 'before' => 'doBefore', | |
214 'success' => 'doSuccess', | |
215 'complete' => 'doComplete', | |
216 'update' => '#update-zone', | |
217 )); | |
218 $expected = 'var jsRequest = new Request.HTML({method:"post", onComplete:function () {doComplete}, onRequest:function () {doBefore}, onSuccess:function (responseText, responseXML) {doSuccess}, update:"update-zone", url:"\\/people\\/edit\\/1"}).send();'; | |
219 $this->assertEqual($result, $expected); | |
220 } | |
221 /** | |
222 * test sortable list generation | |
223 * | |
224 * @return void | |
225 */ | |
226 function testSortable() { | |
227 $this->Moo->get('#myList'); | |
228 $result = $this->Moo->sortable(array( | |
229 'distance' => 5, | |
230 'containment' => 'parent', | |
231 'start' => 'onStart', | |
232 'complete' => 'onStop', | |
233 'sort' => 'onSort', | |
234 'wrapCallbacks' => false | |
235 )); | |
236 $expected = 'var jsSortable = new Sortables($("myList"), {constrain:"parent", onComplete:onStop, onSort:onSort, onStart:onStart, snap:5});'; | |
237 $this->assertEqual($result, $expected); | |
238 } | |
239 /** | |
240 * test drag() method | |
241 * | |
242 * @return void | |
243 */ | |
244 function testDrag() { | |
245 $this->Moo->get('#drag-me'); | |
246 $result = $this->Moo->drag(array( | |
247 'start' => 'onStart', | |
248 'drag' => 'onDrag', | |
249 'stop' => 'onStop', | |
250 'snapGrid' => array(10,10), | |
251 'wrapCallbacks' => false | |
252 )); | |
253 $expected = '$("drag-me").makeDraggable({onComplete:onStop, onDrag:onDrag, onStart:onStart, snap:[10,10]});'; | |
254 $this->assertEqual($result, $expected); | |
255 } | |
256 /** | |
257 * test drop() method | |
258 * | |
259 * @return void | |
260 */ | |
261 function testDrop() { | |
262 $this->expectError(); | |
263 $this->Moo->get('#drop-me'); | |
264 $this->Moo->drop(array( | |
265 'drop' => 'onDrop', | |
266 'leave' => 'onLeave', | |
267 'hover' => 'onHover', | |
268 )); | |
269 | |
270 $result = $this->Moo->drop(array( | |
271 'drop' => 'onDrop', | |
272 'leave' => 'onLeave', | |
273 'hover' => 'onHover', | |
274 'drag' => '#my-drag', | |
275 'wrapCallbacks' => false | |
276 )); | |
277 $expected = '$("my-drag").makeDraggable({droppables:$("drop-me"), onDrop:onDrop, onEnter:onHover, onLeave:onLeave});'; | |
278 $this->assertEqual($result, $expected); | |
279 $this->assertEqual($this->Moo->selection, '$("drop-me")'); | |
280 | |
281 $result = $this->Moo->drop(array( | |
282 'drop' => 'onDrop', | |
283 'leave' => 'onLeave', | |
284 'hover' => 'onHover', | |
285 'drag' => '#my-drag', | |
286 )); | |
287 $expected = '$("my-drag").makeDraggable({droppables:$("drop-me"), onDrop:function (element, droppable, event) {onDrop}, onEnter:function (element, droppable) {onHover}, onLeave:function (element, droppable) {onLeave}});'; | |
288 $this->assertEqual($result, $expected); | |
289 } | |
290 /** | |
291 * test slider generation | |
292 * | |
293 * @return void | |
294 */ | |
295 function testSlider() { | |
296 $this->Moo->get('#slider'); | |
297 $result = $this->Moo->slider(array( | |
298 'handle' => '#my-handle', | |
299 'complete' => 'onComplete', | |
300 'change' => 'onChange', | |
301 'direction' => 'horizontal', | |
302 'wrapCallbacks' => false | |
303 )); | |
304 $expected = 'var jsSlider = new Slider($("slider"), $("my-handle"), {mode:"horizontal", onChange:onChange, onComplete:onComplete});'; | |
305 $this->assertEqual($result, $expected); | |
306 $this->assertEqual($this->Moo->selection, '$("slider")'); | |
307 | |
308 $this->Moo->get('#slider'); | |
309 $result = $this->Moo->slider(array( | |
310 'handle' => '#my-handle', | |
311 'complete' => 'onComplete', | |
312 'change' => 'onChange', | |
313 'direction' => 'horizontal', | |
314 'min' => 10, | |
315 'max' => 40, | |
316 'wrapCallbacks' => false | |
317 )); | |
318 $expected = 'var jsSlider = new Slider($("slider"), $("my-handle"), {mode:"horizontal", onChange:onChange, onComplete:onComplete, range:[10,40]});'; | |
319 $this->assertEqual($result, $expected); | |
320 | |
321 $this->Moo->get('#slider'); | |
322 $result = $this->Moo->slider(array( | |
323 'handle' => '#my-handle', | |
324 'complete' => 'complete;', | |
325 'change' => 'change;', | |
326 'direction' => 'horizontal', | |
327 )); | |
328 $expected = 'var jsSlider = new Slider($("slider"), $("my-handle"), {mode:"horizontal", onChange:function (step) {change;}, onComplete:function (event) {complete;}});'; | |
329 $this->assertEqual($result, $expected); | |
330 } | |
331 /** | |
332 * test the serializeForm implementation. | |
333 * | |
334 * @return void | |
335 */ | |
336 function testSerializeForm() { | |
337 $this->Moo->get('#element'); | |
338 $result = $this->Moo->serializeForm(array('isForm' => true)); | |
339 $expected = '$("element").toQueryString();'; | |
340 $this->assertEqual($result, $expected); | |
341 | |
342 $result = $this->Moo->serializeForm(array('isForm' => true, 'inline' => true)); | |
343 $expected = '$("element").toQueryString()'; | |
344 $this->assertEqual($result, $expected); | |
345 | |
346 $result = $this->Moo->serializeForm(array('isForm' => false)); | |
347 $expected = '$($("element").form).toQueryString();'; | |
348 $this->assertEqual($result, $expected); | |
349 | |
350 $result = $this->Moo->serializeForm(array('isForm' => false, 'inline' => true)); | |
351 $expected = '$($("element").form).toQueryString()'; | |
352 $this->assertEqual($result, $expected); | |
353 } | |
354 } |