| [ Index ] |
PHP Cross Reference of Drupal 6 (gatewave) |
[Summary view] [Print] [Text view]
1 /* 2 * selectable unit tests 3 */ 4 (function($) { 5 // 6 // Selectable Test Helper Functions 7 // 8 9 var defaults = { 10 autoRefresh: true, 11 disabled: false, 12 filter: '*' 13 }; 14 15 var el; 16 17 var drag = function(dx, dy) { 18 var off = el.offset(), pos = { clientX: off.left, clientY: off.top }; 19 el.simulate("mousedown", pos); 20 $(document).simulate("mousemove", pos); 21 pos.clientX += dx; 22 pos.clientY += dy; 23 $(document).simulate("mousemove", pos); 24 $(document).simulate("mouseup", pos); 25 } 26 27 var border = function(el, side) { return parseInt(el.css('border-' + side + '-width')); } 28 29 var margin = function(el, side) { return parseInt(el.css('margin-' + side)); } 30 31 // Selectable Tests 32 module("selectable"); 33 34 test("init", function() { 35 expect(6); 36 37 $("<div></div>").appendTo('body').selectable().remove(); 38 ok(true, '.selectable() called on element'); 39 40 $([]).selectable().remove(); 41 ok(true, '.selectable() called on empty collection'); 42 43 $("<div></div>").selectable().remove(); 44 ok(true, '.selectable() called on disconnected DOMElement'); 45 46 $("<div></div>").selectable().selectable("foo").remove(); 47 ok(true, 'arbitrary method called after init'); 48 49 el = $("<div></div>").selectable() 50 var foo = el.data("foo.selectable"); 51 el.remove(); 52 ok(true, 'arbitrary option getter after init'); 53 54 $("<div></div>").selectable().data("foo.selectable", "bar").remove(); 55 ok(true, 'arbitrary option setter after init'); 56 }); 57 58 test("destroy", function() { 59 expect(6); 60 61 $("<div></div>").appendTo('body').selectable().selectable("destroy").remove(); 62 ok(true, '.selectable("destroy") called on element'); 63 64 $([]).selectable().selectable("destroy").remove(); 65 ok(true, '.selectable("destroy") called on empty collection'); 66 67 $("<div></div>").selectable().selectable("destroy").remove(); 68 ok(true, '.selectable("destroy") called on disconnected DOMElement'); 69 70 $("<div></div>").selectable().selectable("destroy").selectable("foo").remove(); 71 ok(true, 'arbitrary method called after destroy'); 72 73 el = $("<div></div>").selectable(); 74 var foo = el.selectable("destroy").data("foo.selectable"); 75 el.remove(); 76 ok(true, 'arbitrary option getter after destroy'); 77 78 $("<div></div>").selectable().selectable("destroy").data("foo.selectable", "bar").remove(); 79 ok(true, 'arbitrary option setter after destroy'); 80 }); 81 82 test("defaults", function() { 83 el = $('<div></div>').selectable(); 84 $.each(defaults, function(key, val) { 85 var actual = el.data(key + ".selectable"), expected = val; 86 same(actual, expected, key); 87 }); 88 el.remove(); 89 }); 90 91 module("selectable: Options"); 92 93 test("autoRefresh", function() { 94 expect(3); 95 el = $("#selectable1"); 96 var actual, sel = $("*", el), selected = function() { actual += 1 }; 97 98 actual = 0; 99 el = $("#selectable1").selectable({ autoRefresh: false, selected: selected }); 100 sel.hide(); 101 drag(1000, 1000); 102 equals(actual, sel.length); 103 el.selectable("destroy"); 104 105 actual = 0; 106 sel.show(); 107 el = $("#selectable1").selectable({ autoRefresh: true, selected: selected }); 108 sel.hide(); 109 drag(1000, 1000); 110 equals(actual, 0); 111 sel.show(); 112 drag(1000, 1000); 113 equals(actual, sel.length); 114 el.selectable("destroy"); 115 sel.show(); 116 }); 117 118 test("filter", function() { 119 expect(2); 120 el = $("#selectable1"); 121 var actual, sel = $("*", el), selected = function() { actual += 1 }; 122 123 actual = 0; 124 el = $("#selectable1").selectable({ filter: '.special', selected: selected }); 125 drag(1000, 1000); 126 ok(sel.length != 1, "this test assumes more than 1 selectee"); 127 equals(actual, 1); 128 el.selectable("destroy"); 129 }); 130 131 module("selectable: Methods"); 132 133 test("disable", function() { 134 expect(2); 135 var fired = false; 136 137 el = $("#selectable1"); 138 el.selectable({ 139 disabled: false, 140 start: function() { fired = true; } 141 }); 142 el.simulate("drag", 20, 20); 143 equals(fired, true, "start fired"); 144 el.selectable("disable"); 145 fired = false; 146 el.simulate("drag", 20, 20); 147 equals(fired, false, "start fired"); 148 el.selectable("destroy"); 149 }); 150 151 test("enable", function() { 152 expect(2); 153 var fired = false; 154 155 el = $("#selectable1"); 156 el.selectable({ 157 disabled: true, 158 start: function() { fired = true; } 159 }); 160 el.simulate("drag", 20, 20); 161 equals(fired, false, "start fired"); 162 el.selectable("enable"); 163 el.simulate("drag", 20, 20); 164 equals(fired, true, "start fired"); 165 el.selectable("destroy"); 166 }); 167 168 module("selectable: Callbacks"); 169 170 test("start", function() { 171 expect(2); 172 el = $("#selectable1"); 173 el.selectable({ 174 start: function(ev, ui) { 175 ok(true, "drag fired start callback"); 176 equals(this, el[0], "context of callback"); 177 } 178 }); 179 el.simulate("drag", 20, 20); 180 }); 181 182 test("stop", function() { 183 expect(2); 184 el = $("#selectable1"); 185 el.selectable({ 186 start: function(ev, ui) { 187 ok(true, "drag fired stop callback"); 188 equals(this, el[0], "context of callback"); 189 } 190 }); 191 el.simulate("drag", 20, 20); 192 }); 193 194 module("selectable: Tickets"); 195 196 })(jQuery);
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Thu Mar 24 11:18:33 2011 | Cross-referenced by PHPXref 0.7 |