Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
2b22bbd
commit 160a301
Showing
6 changed files
with
142 additions
and
156 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,171 +1,151 @@ | ||
/* | ||
* spinner_core.js | ||
*/ | ||
(function( $ ) { | ||
|
||
var simulateKeyDownUp = function(el, kCode, shift) { | ||
el.simulate("keydown",{keyCode:kCode, shiftKey: shift || false }) | ||
.simulate("keyup",{keyCode:kCode, shiftKey: shift || false }); | ||
}; | ||
module( "spinner: core" ); | ||
|
||
(function($) { | ||
|
||
// Spinner Tests | ||
module("spinner: core"); | ||
|
||
test("destroy", function() { | ||
// TODO: move to spinner_methods | ||
test( "destroy", function() { | ||
expect( 1 ); | ||
// TODO: is this cheat still needed? | ||
// cheat a bit to get IE6 to pass | ||
$("#spin").val(0); | ||
var beforeHtml = $("#spin").parent().html(); | ||
var afterHtml = $("#spin").spinner().spinner("destroy").parent().html(); | ||
equal( afterHtml, beforeHtml, "before/after html should be the same" ); | ||
$( "#spin" ).val( 0 ); | ||
domEqual( "#spin", function() { | ||
$( "#spin" ).spinner().spinner( "destroy" ); | ||
}); | ||
}); | ||
|
||
test("keydown UP on input, increases value not greater than max", function() { | ||
var el = $("#spin").spinner({ | ||
max:100, | ||
value:50, | ||
step:10 | ||
test( "keydown UP on input, increases value not greater than max", function() { | ||
expect( 5 ); | ||
var element = $( "#spin" ).spinner({ | ||
max: 100, | ||
value: 70, | ||
step: 10 | ||
}); | ||
|
||
simulateKeyDownUp(el, $.ui.keyCode.UP); | ||
equals(el.val(), 60); | ||
|
||
for (i = 0; i<11; i++) { | ||
simulateKeyDownUp(el, $.ui.keyCode.UP); | ||
} | ||
equals(el.val(), 100); | ||
|
||
el.spinner("value", 50); | ||
simulateKeyDownUp(el, $.ui.keyCode.UP); | ||
equals(el.val(), 60); | ||
|
||
spinner_simulateKeyDownUp( element, $.ui.keyCode.UP ); | ||
equals( element.val(), 80 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.UP ); | ||
equals( element.val(), 90 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.UP ); | ||
equals( element.val(), 100 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.UP ); | ||
equals( element.val(), 100 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.UP ); | ||
equals( element.val(), 100 ); | ||
}); | ||
|
||
test("keydown DOWN on input, decreases value not less than min", function() { | ||
var el = $("#spin").spinner({ | ||
min:-100, | ||
value:50, | ||
step:10 | ||
test( "keydown DOWN on input, decreases value not less than min", function() { | ||
expect( 5 ); | ||
var element = $( "#spin" ).spinner({ | ||
min: 20, | ||
value: 50, | ||
step: 10 | ||
}); | ||
|
||
simulateKeyDownUp(el, $.ui.keyCode.DOWN); | ||
equals(el.val(), 40); | ||
|
||
for (i = 0; i<21; i++) { | ||
simulateKeyDownUp(el, $.ui.keyCode.DOWN); | ||
} | ||
equals(el.val(), -100); | ||
|
||
el.spinner("value", 50); | ||
simulateKeyDownUp(el, $.ui.keyCode.DOWN); | ||
equals(el.val(), 40); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN ); | ||
equals( element.val(), 40 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN ); | ||
equals( element.val(), 30 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN ); | ||
equals( element.val(), 20 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN ); | ||
equals( element.val(), 20 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.DOWN ); | ||
equals( element.val(), 20 ); | ||
}); | ||
|
||
test("keydown PGUP on input, increases value not greater than max", function() { | ||
var el = $("#spin").spinner({ | ||
max: 500, | ||
value: 0, | ||
step: 10 | ||
test( "keydown PGUP on input, increases value not greater than max", function() { | ||
expect( 5 ); | ||
var element = $( "#spin" ).spinner({ | ||
max: 100, | ||
value: 70, | ||
page: 10 | ||
}); | ||
|
||
simulateKeyDownUp(el, $.ui.keyCode.PAGE_UP); | ||
equal(el.val(), 100); | ||
|
||
for (i = 0; i<5; i++) { | ||
simulateKeyDownUp(el, $.ui.keyCode.PAGE_UP); | ||
} | ||
equal(el.val(), 500); | ||
|
||
el.spinner("value", 0); | ||
simulateKeyDownUp(el, $.ui.keyCode.PAGE_UP); | ||
equals(el.val(), 100); | ||
|
||
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP ); | ||
equals( element.val(), 80 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP ); | ||
equals( element.val(), 90 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP ); | ||
equals( element.val(), 100 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP ); | ||
equals( element.val(), 100 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP ); | ||
equals( element.val(), 100 ); | ||
}); | ||
|
||
test("keydown PGDN on input, decreases value not less than min", function() { | ||
var el = $("#spin").spinner({ | ||
min:-500, | ||
value:0, | ||
step:10 | ||
test( "keydown PGDN on input, decreases value not less than min", function() { | ||
expect( 5 ); | ||
var element = $( "#spin" ).spinner({ | ||
min: 20, | ||
value: 50, | ||
page: 10 | ||
}); | ||
|
||
simulateKeyDownUp(el, $.ui.keyCode.PAGE_DOWN); | ||
equals(el.val(), -100); | ||
|
||
for (i = 0; i<5; i++) { | ||
simulateKeyDownUp(el, $.ui.keyCode.PAGE_DOWN); | ||
} | ||
equals(el.val(), -500); | ||
|
||
el.spinner("value", 0); | ||
simulateKeyDownUp(el, $.ui.keyCode.PAGE_DOWN); | ||
equals(el.val(), -100); | ||
|
||
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN ); | ||
equals( element.val(), 40 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN ); | ||
equals( element.val(), 30 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN ); | ||
equals( element.val(), 20 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN ); | ||
equals( element.val(), 20 ); | ||
spinner_simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN ); | ||
equals( element.val(), 20 ); | ||
}); | ||
|
||
test("mouse click on buttons", function() { | ||
var el = $("#spin").spinner(), | ||
test( "mouse click on buttons", function() { | ||
expect( 2 ); | ||
var element = $( "#spin" ).spinner(), | ||
val = 0; | ||
|
||
$(".ui-spinner-up").trigger("mousedown").trigger("mouseup"); | ||
equals(el.val(), ++val, "mouse click to up"); | ||
|
||
$(".ui-spinner-down").trigger("mousedown").trigger("mouseup"); | ||
equals(el.val(), --val, "mouse click to down"); | ||
|
||
el.spinner("value", 50); | ||
$(".ui-spinner-up").trigger("mousedown").trigger("mouseup"); | ||
equals(el.val(), 51); | ||
|
||
el.spinner("value", 50); | ||
$(".ui-spinner-down").trigger("mousedown").trigger("mouseup"); | ||
equals(el.val(), 49); | ||
|
||
$( ".ui-spinner-up" ).trigger( "mousedown" ).trigger( "mouseup" ); | ||
equals( element.val(), ++val, "mouse click on up" ); | ||
|
||
$( ".ui-spinner-down" ).trigger( "mousedown" ).trigger( "mouseup" ); | ||
equals( element.val(), --val, "mouse click on down"); | ||
}); | ||
|
||
test("mouse wheel on input", function() { | ||
expect(4); | ||
stop(); | ||
|
||
var el = $("#spin").spinner(); | ||
equal(el.val(), 0); | ||
el.trigger("mousewheel", 1); | ||
equal(el.val(), 1); | ||
|
||
// mousewheel handler uses a timeout, need to accomodate that | ||
setTimeout(function() { | ||
el.trigger("mousewheel", -1); | ||
equal(el.val(), 0); | ||
|
||
setTimeout(function() { | ||
el.trigger("mousewheel", -1); | ||
equal(el.val(), -1); | ||
start(); | ||
}, 100); | ||
}, 100); | ||
|
||
test( "mouse wheel on input", function() { | ||
expect( 4 ); | ||
|
||
var element = $( "#spin" ).spinner(); | ||
equal( element.val(), 0 ); | ||
element.trigger( "mousewheel", 1 ); | ||
equal( element.val(), 1 ); | ||
|
||
element.trigger( "mousewheel", -1 ); | ||
equal( element.val(), 0 ); | ||
|
||
element.trigger( "mousewheel", -1 ); | ||
equal(element.val(), -1 ); | ||
}); | ||
|
||
test("reading HTML5 attributes", function() { | ||
var el = $('<input id="spinner" type="number" min="-100" max="100" value="5" step="2">').spinner(); | ||
equals(el.spinner('option', 'value'), 5, 'value'); | ||
equals(el.spinner('option', 'max'), 100, 'max'); | ||
equals(el.spinner('option', 'min'), -100, 'min'); | ||
equals(el.spinner('option', 'step'), 2, 'step'); | ||
test( "reading HTML5 attributes", function() { | ||
expect( 4 ); | ||
var element = $( "<input id='spinner' type='number' min='-100' max='100' value='5' step='2'>" ).spinner(); | ||
equals( element.spinner( "option", "value" ), 5, "value" ); | ||
equals( element.spinner( "option", "max" ), 100, "max" ); | ||
equals( element.spinner( "option", "min" ), -100, "min" ); | ||
equals( element.spinner( "option", "step" ), 2, "step" ); | ||
}); | ||
|
||
test("ARIA attributes", function() { | ||
var el = $('#spin').spinner({ min: -5, max: 5, value: 2 });; | ||
|
||
equals(el.attr('role'), 'spinbutton', 'role'); | ||
equals(el.attr('aria-valuemin'), -5, 'aria-valuemin'); | ||
equals(el.attr('aria-valuemax'), 5, 'aria-valuemax'); | ||
equals(el.attr('aria-valuenow'), 2, 'aria-valuenow'); | ||
|
||
el.spinner('stepUp'); | ||
|
||
equals(el.attr('aria-valuenow'), 3, 'stepUp 1 step changes aria-valuenow'); | ||
|
||
el.spinner('option', { min: -10, max: 10 }); | ||
|
||
equals(el.attr('aria-valuemin'), -10, 'min option changed aria-valuemin changes'); | ||
equals(el.attr('aria-valuemax'), 10, 'max option changed aria-valuemax changes'); | ||
test( "ARIA attributes", function() { | ||
expect( 7 ); | ||
var element = $( "#spin" ).spinner({ min: -5, max: 5, value: 2 }); | ||
|
||
equals( element.attr( "role" ), "spinbutton", "role" ); | ||
equals( element.attr( "aria-valuemin" ), -5, "aria-valuemin" ); | ||
equals( element.attr( "aria-valuemax" ), 5, "aria-valuemax" ); | ||
equals( element.attr( "aria-valuenow" ), 2, "aria-valuenow" ); | ||
|
||
element.spinner( "stepUp" ); | ||
|
||
equals( element.attr( "aria-valuenow" ), 3, "stepUp 1 step changes aria-valuenow" ); | ||
|
||
element.spinner( "option", { min: -10, max: 10 } ); | ||
|
||
equals( element.attr( "aria-valuemin" ), -10, "min option changed aria-valuemin changes" ); | ||
equals( element.attr( "aria-valuemax" ), 10, "max option changed aria-valuemax changes" ); | ||
}); | ||
|
||
})(jQuery); | ||
})( jQuery ); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
var spinner_simulateKeyDownUp = function( element, keyCode, shift ) { | ||
element | ||
.simulate( "keydown", { keyCode: keyCode, shiftKey: shift || false } ) | ||
.simulate( "keyup", { keyCode: keyCode, shiftKey: shift || false } ); | ||
}; |