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