|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
|
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|
4 <head> |
|
5 <title>script.aculo.us Unit test file</title> |
|
6 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> |
|
7 <script src="../../lib/prototype.js" type="text/javascript"></script> |
|
8 <script src="../../src/scriptaculous.js" type="text/javascript"></script> |
|
9 <script src="../../src/unittest.js" type="text/javascript"></script> |
|
10 <link rel="stylesheet" href="../test.css" type="text/css" /> |
|
11 <style type="text/css" media="screen"> |
|
12 /* <![CDATA[ */ |
|
13 #div_absolute_test { position: absolute } |
|
14 /* ]]> */ |
|
15 </style> |
|
16 |
|
17 </head> |
|
18 <body> |
|
19 <h1>script.aculo.us Unit test file</h1> |
|
20 <p> |
|
21 Test of drag & drop functions in dragdrop.js |
|
22 </p> |
|
23 |
|
24 <!-- Log output --> |
|
25 <div id="testlog"> </div> |
|
26 |
|
27 <p id="p_test">p_test</p> |
|
28 <p id="p_test2">p_test2</p> |
|
29 <p id="p_test3">p_test3</p> |
|
30 <img id="img_test" src="icon.png" alt="img_text"/> |
|
31 <div id="droppable_test">droppable_test</div> |
|
32 |
|
33 <div id="div_test">div_test</div> |
|
34 <div id="div_absolute_test">div_absolute_test</div> |
|
35 <div id="div_absolute_inline_test" style="position:absolute">div_absolute_inline_test</div> |
|
36 |
|
37 <div id="droppable_container"> |
|
38 <div id="d1">droppable_test</div> |
|
39 <div id="d2">droppable_test</div> |
|
40 </div> |
|
41 |
|
42 <div id="droppable_container_2"> |
|
43 <div id="d3">droppable_test</div> |
|
44 </div> |
|
45 |
|
46 <!-- Tests follow --> |
|
47 <script type="text/javascript" language="javascript" charset="utf-8"> |
|
48 // <![CDATA[ |
|
49 |
|
50 new Test.Unit.Runner({ |
|
51 |
|
52 testDraggableBasics: function() { with(this) { |
|
53 var d = new Draggable('p_test'); |
|
54 assertInstanceOf(Draggable, d); |
|
55 }}, |
|
56 |
|
57 testDraggableStartEffect: function() { with(this) { |
|
58 var d = new Draggable('p_test2'); |
|
59 assert(d.options.starteffect, 'There should be a default start effect.'); |
|
60 d = new Draggable('p_test3', { endeffect: Prototype.EmptyFunction }); |
|
61 assert(undefined === d.options.startEffect, 'There should be no default start effect.'); |
|
62 }}, |
|
63 |
|
64 testAutoPositioning: function() { with(this) { |
|
65 assertEqual('static', Element.getStyle('div_test','position')); |
|
66 new Draggable('div_test'); |
|
67 new Draggable('div_absolute_test'); |
|
68 new Draggable('div_absolute_inline_test'); |
|
69 assertEqual('relative', Element.getStyle('div_test','position')); |
|
70 assertEqual('absolute', Element.getStyle('div_absolute_test','position')); |
|
71 assertEqual('absolute', Element.getStyle('div_absolute_inline_test','position')); |
|
72 }}, |
|
73 |
|
74 testDroppbalesBasics: function() { with(this) { |
|
75 assertEqual(0, Droppables.drops.length); |
|
76 assertEqual('static', Element.getStyle('droppable_test','position')); |
|
77 |
|
78 Droppables.add('droppable_test'); |
|
79 assertEqual(1, Droppables.drops.length); |
|
80 assertEqual('relative', Element.getStyle('droppable_test','position')); |
|
81 |
|
82 Droppables.remove('droppable_test'); |
|
83 assertEqual(0, Droppables.drops.length); |
|
84 |
|
85 // accept option should take strings or array of strings |
|
86 Droppables.add('droppable_test',{accept:'document'}); |
|
87 assertEqual(['document'].inspect(), Droppables.drops[0].accept.inspect()); |
|
88 Droppables.remove('droppable_test'); |
|
89 |
|
90 Droppables.add('droppable_test',{accept:['document','image']}); |
|
91 assertEqual(['document','image'].inspect(), Droppables.drops[0].accept.inspect()); |
|
92 Droppables.remove('droppable_test'); |
|
93 }}, |
|
94 |
|
95 testDroppableContainment: function() { with(this) { |
|
96 // Droppable containers should be cached |
|
97 Droppables.add('droppable_test', { |
|
98 containment:'droppable_container' }); |
|
99 assertEqual(1, Droppables.drops[0]._containers.length); |
|
100 assertEqual($('droppable_container'), Droppables.drops[0]._containers[0]); |
|
101 assert(Droppables.isContained($('d1'), Droppables.drops[0])); |
|
102 assert(Droppables.isContained($('d2'), Droppables.drops[0])); |
|
103 assert(!Droppables.isContained($('d3'), Droppables.drops[0])); |
|
104 Droppables.remove('droppable_test'); |
|
105 |
|
106 Droppables.add('droppable_test', { |
|
107 containment:['droppable_container','droppable_container_2'] }); |
|
108 assertEqual(2, Droppables.drops[0]._containers.length); |
|
109 assertEqual($('droppable_container'), Droppables.drops[0]._containers[0]); |
|
110 assertEqual($('droppable_container_2'), Droppables.drops[0]._containers[1]); |
|
111 assert(Droppables.isContained($('d1'), Droppables.drops[0])); |
|
112 assert(Droppables.isContained($('d2'), Droppables.drops[0])); |
|
113 assert(Droppables.isContained($('d3'), Droppables.drops[0])); |
|
114 Droppables.remove('droppable_test'); |
|
115 }}, |
|
116 |
|
117 testDroppablesIsAffected: function() { with(this) { |
|
118 Droppables.add('droppable_test'); |
|
119 |
|
120 Position.prepare(); |
|
121 assert(!Droppables.isAffected([-10, -10], null, Droppables.drops[0])); |
|
122 |
|
123 var p = Position.page($('droppable_test')); |
|
124 assert(Droppables.isAffected(p, null, Droppables.drops[0])); |
|
125 }} |
|
126 |
|
127 }, "testlog"); |
|
128 // ]]> |
|
129 </script> |
|
130 </body> |
|
131 </html> |