aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Resig <jeresig@gmail.com>2010-09-28 08:36:28 -0700
committerJohn Resig <jeresig@gmail.com>2010-09-28 08:36:28 -0700
commit879799fe955f01b85b59fd8a0096d415fc48df03 (patch)
tree1e5764d3c54c73d9bdb41180ce4d87eafa798ec9
parentc7c067723006b0dfbb123c1a36885580a587d091 (diff)
downloadjquery-879799fe955f01b85b59fd8a0096d415fc48df03.tar.gz
jquery-879799fe955f01b85b59fd8a0096d415fc48df03.zip
Make sure that ambiguous val() selection works correctly.
-rw-r--r--test/index.html5
-rw-r--r--test/unit/attributes.js10
-rw-r--r--test/unit/selector.js14
-rw-r--r--test/unit/traversing.js4
4 files changed, 23 insertions, 10 deletions
diff --git a/test/index.html b/test/index.html
index 5650a1d07..d858114b1 100644
--- a/test/index.html
+++ b/test/index.html
@@ -123,6 +123,11 @@
<option selected="selected" disabled="disabled" id="option4d" value="3">3</option>
<option id="option4e">no value</option>
</select>
+ <select name="select5" id="select5">
+ <option id="option5a" value="3">1</option>
+ <option id="option5b" value="2">2</option>
+ <option id="option5c" value="1">3</option>
+ </select>
<object id="object1" codebase="stupid">
<param name="p1" value="x1" />
diff --git a/test/unit/attributes.js b/test/unit/attributes.js
index de7754b8a..a483195a4 100644
--- a/test/unit/attributes.js
+++ b/test/unit/attributes.js
@@ -307,7 +307,7 @@ test("removeAttr(String)", function() {
});
test("val()", function() {
- expect(20);
+ expect(23);
document.getElementById('text1').value = "bla";
equals( jQuery("#text1").val(), "bla", "Check for modified value of input element" );
@@ -342,6 +342,14 @@ test("val()", function() {
jQuery('#select4').attr('disabled', true);
same( jQuery('#select4').val(), ['2', '3'], 'Call val() on disabled multiple="multiple" select' );
+ equals( jQuery('#select5').val(), "3", "Check value on ambiguous select." );
+
+ jQuery('#select5').val(1);
+ equals( jQuery('#select5').val(), "1", "Check value on ambiguous select." );
+
+ jQuery('#select5').val(3);
+ equals( jQuery('#select5').val(), "3", "Check value on ambiguous select." );
+
var checks = jQuery("<input type='checkbox' name='test' value='1'/><input type='checkbox' name='test' value='2'/><input type='checkbox' name='test' value=''/><input type='checkbox' name='test'/>").appendTo("#form");
same( checks.serialize(), "", "Get unchecked values." );
diff --git a/test/unit/selector.js b/test/unit/selector.js
index 97fc68973..af59fa6f6 100644
--- a/test/unit/selector.js
+++ b/test/unit/selector.js
@@ -21,7 +21,7 @@ test("element", function() {
same( jQuery("p", jQuery("div")).get(), q("firstp","ap","sndp","en","sap","first"), "Finding elements with a context." );
same( jQuery("div").find("p").get(), q("firstp","ap","sndp","en","sap","first"), "Finding elements with a context." );
- same( jQuery("#form").find("select").get(), q("select1","select2","select3","select4"), "Finding selects with a context." );
+ same( jQuery("#form").find("select").get(), q("select1","select2","select3","select4","select5"), "Finding selects with a context." );
ok( jQuery("#length").length, '&lt;input name="length"&gt; cannot be found under IE, see #945' );
ok( jQuery("#lengthtest input").length, '&lt;input name="length"&gt; cannot be found under IE, see #945' );
@@ -338,7 +338,7 @@ test("pseudo - :not", function() {
expect(24);
t( "Not", "a.blog:not(.link)", ["mark"] );
- t( "Not - multiple", "#form option:not(:contains(Nothing),#option1b,:selected)", ["option1c", "option1d", "option2b", "option2c", "option3d", "option3e", "option4e"] );
+ t( "Not - multiple", "#form option:not(:contains(Nothing),#option1b,:selected)", ["option1c", "option1d", "option2b", "option2c", "option3d", "option3e", "option4e", "option5b", "option5c"] );
t( "Not - recursive", "#form option:not(:not(:selected))[id^='option3']", [ "option3b", "option3c"] );
t( ":not() failing interior", "p:not(.foo)", ["firstp","ap","sndp","en","sap","first"] );
@@ -359,9 +359,9 @@ test("pseudo - :not", function() {
t( "No element not selector", ".container div:not(.excluded) div", [] );
- t( ":not() Existing attribute", "#form select:not([multiple])", ["select1", "select2"]);
- t( ":not() Equals attribute", "#form select:not([name=select1])", ["select2", "select3", "select4"]);
- t( ":not() Equals quoted attribute", "#form select:not([name='select1'])", ["select2", "select3", "select4"]);
+ t( ":not() Existing attribute", "#form select:not([multiple])", ["select1", "select2", "select5"]);
+ t( ":not() Equals attribute", "#form select:not([name=select1])", ["select2", "select3", "select4","select5"]);
+ t( ":not() Equals quoted attribute", "#form select:not([name='select1'])", ["select2", "select3", "select4", "select5"]);
t( ":not() Multiple Class", "#foo a:not(.blog)", ["yahoo","anchor2"] );
t( ":not() Multiple Class", "#foo a:not(.link)", ["yahoo","anchor2"] );
@@ -427,7 +427,7 @@ test("pseudo - visibility", function() {
test("pseudo - form", function() {
expect(8);
- t( "Form element :input", "#form :input", ["text1", "text2", "radio1", "radio2", "check1", "check2", "hidden1", "hidden2", "name", "search", "button", "area1", "select1", "select2", "select3", "select4"] );
+ t( "Form element :input", "#form :input", ["text1", "text2", "radio1", "radio2", "check1", "check2", "hidden1", "hidden2", "name", "search", "button", "area1", "select1", "select2", "select3", "select4", "select5"] );
t( "Form element :radio", "#form :radio", ["radio1", "radio2"] );
t( "Form element :checkbox", "#form :checkbox", ["check1", "check2"] );
t( "Form element :text", "#form :text:not(#search)", ["text1", "text2", "hidden2", "name"] );
@@ -435,5 +435,5 @@ test("pseudo - form", function() {
t( "Form element :checkbox:checked", "#form :checkbox:checked", ["check1"] );
t( "Form element :radio:checked, :checkbox:checked", "#form :radio:checked, #form :checkbox:checked", ["radio2", "check1"] );
- t( "Selected Option Element", "#form option:selected", ["option1a","option2d","option3b","option3c","option4b","option4c","option4d"] );
+ t( "Selected Option Element", "#form option:selected", ["option1a","option2d","option3b","option3c","option4b","option4c","option4d","option5a"] );
});
diff --git a/test/unit/traversing.js b/test/unit/traversing.js
index 3fd98f674..f5c88e42c 100644
--- a/test/unit/traversing.js
+++ b/test/unit/traversing.js
@@ -157,7 +157,7 @@ test("not(Selector)", function() {
equals( jQuery("#main > p#ap > a").not("#google").length, 2, "not('selector')" );
same( jQuery("p").not(".result").get(), q("firstp", "ap", "sndp", "en", "sap", "first"), "not('.class')" );
same( jQuery("p").not("#ap, #sndp, .result").get(), q("firstp", "en", "sap", "first"), "not('selector, selector')" );
- same( jQuery("#form option").not("option.emptyopt:contains('Nothing'),[selected],[value='1']").get(), q("option1c", "option1d", "option2c", "option3d", "option3e", "option4e" ), "not('complex selector')");
+ same( jQuery("#form option").not("option.emptyopt:contains('Nothing'),[selected],[value='1']").get(), q("option1c", "option1d", "option2c", "option3d", "option3e", "option4e","option5b"), "not('complex selector')");
same( jQuery('#ap *').not('code').get(), q("google", "groups", "anchor1", "mark"), "not('tag selector')" );
same( jQuery('#ap *').not('code, #mark').get(), q("google", "groups", "anchor1"), "not('tag, ID selector')" );
@@ -168,7 +168,7 @@ test("not(Element)", function() {
expect(1);
var selects = jQuery("#form select");
- same( selects.not( selects[1] ).get(), q("select1", "select3", "select4"), "filter out DOM element");
+ same( selects.not( selects[1] ).get(), q("select1", "select3", "select4", "select5"), "filter out DOM element");
});
test("not(Function)", function() {