root/public/javascripts/scriptaculous/test/unit/dragdrop_test.html @ 11

Revision 1, 5.0 kB (checked in by falcon, 17 years ago)

Version one -> initial work from the laptop.

Line 
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 &amp; 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>
Note: See TracBrowser for help on using the browser.