aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit
diff options
context:
space:
mode:
authortimmywil <timmywillisn@gmail.com>2011-08-04 15:47:53 -0400
committertimmywil <timmywillisn@gmail.com>2011-08-04 18:16:15 -0400
commitfd4ee2a39752cc40e35fbcb1bfd48634ffe4bfd4 (patch)
tree5d1b9be7cf1ab6bf7c768503e8721fa8c68894f7 /test/unit
parent3cfb134ab41d204a71977c0b4c73640f250c7112 (diff)
downloadjquery-fd4ee2a39752cc40e35fbcb1bfd48634ffe4bfd4.tar.gz
jquery-fd4ee2a39752cc40e35fbcb1bfd48634ffe4bfd4.zip
Make the tabIndex hook first a propHook and add it to attrHooks for back-compat reasons. Fixes #9979.
Diffstat (limited to 'test/unit')
-rw-r--r--test/unit/attributes.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/test/unit/attributes.js b/test/unit/attributes.js
index f3c61b9eb..1a390a4c5 100644
--- a/test/unit/attributes.js
+++ b/test/unit/attributes.js
@@ -527,6 +527,61 @@ test("prop(String, Object)", function() {
jQuery( document ).removeProp("nonexisting");
});
+test("prop('tabindex')", function() {
+ expect(8);
+
+ // elements not natively tabbable
+ equals(jQuery("#listWithTabIndex").prop("tabindex"), 5, "not natively tabbable, with tabindex set to 0");
+ equals(jQuery("#divWithNoTabIndex").prop("tabindex"), undefined, "not natively tabbable, no tabindex set");
+
+ // anchor with href
+ equals(jQuery("#linkWithNoTabIndex").prop("tabindex"), 0, "anchor with href, no tabindex set");
+ equals(jQuery("#linkWithTabIndex").prop("tabindex"), 2, "anchor with href, tabindex set to 2");
+ equals(jQuery("#linkWithNegativeTabIndex").prop("tabindex"), -1, "anchor with href, tabindex set to -1");
+
+ // anchor without href
+ equals(jQuery("#linkWithNoHrefWithNoTabIndex").prop("tabindex"), undefined, "anchor without href, no tabindex set");
+ equals(jQuery("#linkWithNoHrefWithTabIndex").prop("tabindex"), 1, "anchor without href, tabindex set to 2");
+ equals(jQuery("#linkWithNoHrefWithNegativeTabIndex").prop("tabindex"), -1, "anchor without href, no tabindex set");
+});
+
+test("prop('tabindex', value)", function() {
+ expect(9);
+
+ var element = jQuery("#divWithNoTabIndex");
+ equals(element.prop("tabindex"), undefined, "start with no tabindex");
+
+ // set a positive string
+ element.prop("tabindex", "1");
+ equals(element.prop("tabindex"), 1, "set tabindex to 1 (string)");
+
+ // set a zero string
+ element.prop("tabindex", "0");
+ equals(element.prop("tabindex"), 0, "set tabindex to 0 (string)");
+
+ // set a negative string
+ element.prop("tabindex", "-1");
+ equals(element.prop("tabindex"), -1, "set tabindex to -1 (string)");
+
+ // set a positive number
+ element.prop("tabindex", 1);
+ equals(element.prop("tabindex"), 1, "set tabindex to 1 (number)");
+
+ // set a zero number
+ element.prop("tabindex", 0);
+ equals(element.prop("tabindex"), 0, "set tabindex to 0 (number)");
+
+ // set a negative number
+ element.prop("tabindex", -1);
+ equals(element.prop("tabindex"), -1, "set tabindex to -1 (number)");
+
+ element = jQuery("#linkWithTabIndex");
+ equals(element.prop("tabindex"), 2, "start with tabindex 2");
+
+ element.prop("tabindex", -1);
+ equals(element.prop("tabindex"), -1, "set negative tabindex");
+});
+
test("removeProp(String)", function() {
expect(6);
var attributeNode = document.createAttribute("irrelevant"),