| [ Index ] |
PHP Cross Reference of Drupal 6 (gatewave) |
[Summary view] [Print] [Text view]
1 /* 2 * slider unit tests 3 */ 4 (function($) { 5 // 6 // Selectable Test Helper Functions 7 // 8 9 var defaults = { 10 animate: false, 11 axis: "???", 12 handle: ".ui-slider-handle", 13 handles: "???", 14 disabled: false, 15 max: 100, 16 min: 0, 17 range: false, 18 startValue: "???", 19 stepping: "???", 20 steps: 0 21 }; 22 23 var keyCodes = { 24 leftArrow: 37, 25 upArrow: 38, 26 rightArrow: 39, 27 downArrow: 40 28 }; 29 30 $.each(keyCodes, function(key, val) { 31 $.fn[key] = function() { 32 return this.simulate("keydown", { keyCode: val }); 33 } 34 }); 35 36 function assertChange(stepping, start, result, action) { 37 return function() { 38 expect(1); 39 var slider = $("#slider3").slider({ 40 stepping: stepping, 41 startValue: start, 42 min: 0, 43 max: 1000, 44 change: function(event, ui) { 45 equals(ui.value, result, "changed to " + ui.value); 46 } 47 }); 48 action.apply(slider); 49 } 50 } 51 52 // Slider Tests 53 module("slider"); 54 55 test("init", function() { 56 expect(6); 57 58 $("<div></div>").appendTo('body').slider().remove(); 59 ok(true, '.slider() called on element'); 60 61 $([]).slider().remove(); 62 ok(true, '.slider() called on empty collection'); 63 64 $('<div></div>').slider().remove(); 65 ok(true, '.slider() called on disconnected DOMElement'); 66 67 $('<div></div>').slider().slider("foo").remove(); 68 ok(true, 'arbitrary method called after init'); 69 70 el = $('<div></div>').slider(); 71 var foo = el.data("foo.slider"); 72 el.remove(); 73 ok(true, 'arbitrary option getter after init'); 74 75 $('<div></div>').slider().data("foo.slider", "bar").remove(); 76 ok(true, 'arbitrary option setter after init'); 77 }); 78 79 test("destroy", function() { 80 expect(6); 81 82 $("<div></div>").appendTo('body').slider().slider("destroy").remove(); 83 ok(true, '.slider("destroy") called on element'); 84 85 $([]).slider().slider("destroy").remove(); 86 ok(true, '.slider("destroy") called on empty collection'); 87 88 $('<div></div>').slider().slider("destroy").remove(); 89 ok(true, '.slider("destroy") called on disconnected DOMElement'); 90 91 $('<div></div>').slider().slider("destroy").slider("foo").remove(); 92 ok(true, 'arbitrary method called after destroy'); 93 94 el = $('<div></div>').slider(); 95 var foo = el.slider("destroy").data("foo.slider"); 96 el.remove(); 97 ok(true, 'arbitrary option getter after destroy'); 98 99 $('<div></div>').slider().slider("destroy").data("foo.slider", "bar").remove(); 100 ok(true, 'arbitrary option setter after destroy'); 101 }); 102 103 test("defaults", function() { 104 el = $('<div></div>').slider(); 105 $.each(defaults, function(key, val) { 106 var actual = el.data(key + ".slider"), expected = val; 107 same(actual, expected, key); 108 }); 109 el.remove(); 110 }); 111 112 module("slider: single handle"); 113 114 test("change one step via keydown", assertChange(1, undefined, 1, function() { 115 this.find("a").rightArrow(); 116 })) 117 test("change - 10 steps via keydown", assertChange(10, 20, 10, function() { 118 this.find("a").leftArrow(); 119 })) 120 test("change +10 steps via keydown", assertChange(10, 20, 30, function() { 121 this.find("a").rightArrow(); 122 })) 123 124 test("moveTo, absolute value", assertChange(1, 1, 10, function() { 125 this.slider("moveTo", 10); 126 })) 127 128 test("moveTo, absolute value as string", assertChange(1, 1, 10, function() { 129 this.slider("moveTo", "10"); 130 })) 131 132 test("moveTo, absolute value, below min", assertChange(1, 1, 0, function() { 133 this.slider("moveTo", -10); 134 })) 135 136 test("moveTo, relative positive value", assertChange(1, 1, 11, function() { 137 this.slider("moveTo", "+=10"); 138 })) 139 140 test("moveTo, relative positive value, above max", assertChange(1, 10, 1000, function() { 141 this.slider("moveTo", "+=2000"); 142 })) 143 144 test("moveTo, relative negative value", assertChange(1, 20, 10, function() { 145 this.slider("moveTo", "-=10"); 146 })) 147 148 test("options update min/max", function() { 149 expect(2); 150 var slider = $("#slider3").slider({ 151 stepping: 1, 152 startValue: 1 153 }); 154 slider.slider("moveTo", "-=10"); 155 equals(slider.slider("value"), 0); 156 slider.data("min.slider", -10); 157 slider.slider("moveTo", "-=20"); 158 equals(slider.slider("value"), -10); 159 }) 160 161 module("slider: setup and teardown"); 162 163 test("destroy and recreate", function() { 164 expect(3) 165 var slider = $("#slider3").slider(); 166 slider.slider("moveTo", "+=20"); 167 equals(slider.slider("value"), 20); 168 slider.slider("destroy"); 169 170 slider.slider("moveTo", "+=30"); 171 ok(true, "nothing happens after slider is destroyed"); 172 173 slider.slider().slider("moveTo", "30"); 174 175 equals(Math.round(slider.slider("value")), 30); 176 }) 177 178 test("handle creation", function() { 179 var slider = $("#slider1"); 180 equals(slider.children().size(), 0); 181 slider.slider({ 182 handles: [ 183 { start: 0 }, 184 { start: 10 } 185 ] 186 }); 187 equals(slider.children().size(), 2); 188 var instance = $.data(slider[0], "slider") 189 equals(instance.handle.length, 2); 190 ok(instance.handle.jquery, "handle must be a jquery object") 191 }) 192 193 })(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 |