aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/spinner/spinner_methods.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/spinner/spinner_methods.js')
-rw-r--r--tests/unit/spinner/spinner_methods.js155
1 files changed, 155 insertions, 0 deletions
diff --git a/tests/unit/spinner/spinner_methods.js b/tests/unit/spinner/spinner_methods.js
new file mode 100644
index 000000000..fb58edbdf
--- /dev/null
+++ b/tests/unit/spinner/spinner_methods.js
@@ -0,0 +1,155 @@
+/*
+ * spinner_methods.js
+ */
+(function($) {
+
+module("spinner: methods");
+
+test("disable", function() {
+ var el = $("#spin").spinner({ disabled: false }),
+ val = el.val(),
+ wrapper = $("#spin").spinner("widget");
+
+ ok(!wrapper.hasClass("ui-spinner-disabled"), "before: wrapper does not have ui-spinner-disabled class");
+ ok(!el.is(':disabled'), "before: input does not have disabled attribute");
+
+ el.spinner("disable");
+ ok(wrapper.hasClass("ui-spinner-disabled"), "after: wrapper has ui-spinner-disabled class");
+ ok(el.is(':disabled'), "after: input has disabled attribute");
+
+ simulateKeyDownUp(el, $.ui.keyCode.UP);
+ equals(val, el.val(), "keyboard - value does not change on key UP");
+
+ simulateKeyDownUp(el, $.ui.keyCode.DOWN);
+ equals(val, el.val(), "keyboard - value does not change on key DOWN");
+
+ simulateKeyDownUp(el, $.ui.keyCode.PAGE_UP);
+ equals(val, el.val(), "keyboard - value does not change on key PGUP");
+
+ simulateKeyDownUp(el, $.ui.keyCode.PAGE_DOWN);
+ equals(val, el.val(), "keyboard - value does not change on key PGDN");
+
+ wrapper.find(":ui-button").first().trigger('mousedown').trigger('mouseup');
+ equals(val, el.val(), "mouse - value does not change on clicking up button");
+
+ wrapper.find(":ui-button").last().trigger('mousedown').trigger('mouseup');
+ equals(val, el.val(), "mouse - value does not change on clicking down button");
+
+ el.spinner('stepUp', 6);
+ equals(6, el.val(), "script - stepUp 6 steps changes value");
+
+ el.spinner('stepDown');
+ equals(5, el.val(), "script - stepDown 1 step changes value");
+
+ el.spinner('pageUp');
+ equals(15, el.val(), "script - pageUp 1 page changes value");
+
+ el.spinner('pageDown');
+ equals(5, el.val(), "script - pageDown 1 page changes value");
+
+});
+
+test("enable", function() {
+ var el = $("#spin").spinner({ disabled: true })
+ val = el.val(),
+ wrapper = el.spinner("widget");
+
+ ok(wrapper.hasClass("ui-spinner-disabled"), "before: wrapper has ui-spinner-disabled class");
+ ok(el.is(':disabled'), "before: input has disabled attribute");
+
+ el.spinner("enable");
+
+ ok(!wrapper.hasClass(".ui-spinner-disabled"), "after: wrapper does not have ui-spinner-disabled class");
+ ok(!el.is(':disabled'), "after: input does not have disabled attribute");
+});
+
+test("pageDown", function() {
+ var el = $('#spin').spinner({
+ step: 2,
+ value: 0,
+ min: -100
+ });
+
+ el.spinner('pageDown');
+ equals(el.val(), -20, "pageDown 1 page");
+
+ el.spinner('pageDown', 3);
+ equals(el.val(), -80, "pageDown 3 pages");
+
+ el.val(-91).spinner('pageDown');
+ equals(el.val(), -100, "value close to min and pageDown 1 page");
+
+ el.spinner('pageDown', 10);
+ equals(el.val(), -100, "value at min and pageDown 10 pages");
+});
+
+test("pageUp", function() {
+ var el = $('#spin').spinner({
+ step: 2,
+ value: 0,
+ max: 100
+ });
+
+ el.spinner('pageUp');
+ equals(el.val(), 20, "pageUp 1 page");
+
+ el.spinner('pageUp', 3);
+ equals(el.val(), 80, "pageUp 3 pages");
+
+ el.val(91).spinner('pageUp');
+ equals(el.val(), 100, "value close to max and pageUp 1 page");
+
+ el.spinner('pageUp', 10);
+ equals(el.val(), 100, "value at max and pageUp 10 pages");
+
+});
+
+test("stepDown", function() {
+ expect(4);
+
+ el = $('#spin').spinner({ step: 2, page: 5, value: 0, min: -15 });
+
+ el.spinner('stepDown')
+ equals(el.val(), -2, "stepDown 1 step");
+
+ el.spinner('stepDown', 5)
+ equals(el.val(), -12, "stepDown 5 steps");
+
+ el.spinner('stepDown', 3);
+ equals(el.val(), -15, "close to min and stepDown 3 steps");
+
+ el.spinner('stepDown');
+ equals(el.val(), -15, "at min and stepDown 1 step");
+});
+
+test("stepUp", function() {
+ expect(4);
+
+ el = $('#spin').spinner({ step: 2, page: 5, value: 0, max: 15 });
+
+ el.spinner('stepUp')
+ equals(el.val(), 2, "stepUp 1 steps");
+
+ el.spinner('stepUp', 5)
+ equals(el.val(), 12, "stepUp 5 steps");
+
+ el.spinner('stepUp', 3);
+ equals(el.val(), 15, "close to min and stepUp 3 steps");
+
+ el.spinner('stepUp');
+ equals(el.val(), 15, "at min and stepUp 1 step");
+
+});
+
+test("value", function() {
+ expect(2);
+
+ el = $('#spin').spinner({ value: 0 });
+
+ el.spinner('value', 10);
+ equals(el.val(), 10, "change value via value method");
+
+ equals(10, el.spinner('value'), "get value via value method");
+});
+
+})(jQuery);