]> source.dussan.org Git - jquery.git/commitdiff
Attributes: ignore option value mismatch on untrimmed unicode whitespace
authorTimmy Willison <timmywillisn@gmail.com>
Thu, 17 Mar 2016 17:03:39 +0000 (13:03 -0400)
committerTimmy Willison <timmywillisn@gmail.com>
Thu, 17 Mar 2016 17:03:39 +0000 (13:03 -0400)
test/unit/attributes.js

index 2fe5fe00a1032e6afbe49988657319fb3450758b..def62cb4a201c88bda0d7fa436a873121cfe213f 100644 (file)
@@ -1120,7 +1120,8 @@ QUnit.test( "select.val(space characters) (gh-2978)", function( assert ) {
                        "\\u00a0": "\u00a0",
                        "\\u1680": "\u1680"
                },
-               html = "";
+               html = "",
+               runicode = /^\\u/;
        jQuery.each( spaces, function( key, obj ) {
                var value = obj.html || obj;
                html += "<option value='attr" + value + "'></option>";
@@ -1151,9 +1152,15 @@ QUnit.test( "select.val(space characters) (gh-2978)", function( assert ) {
                $select.html( html );
 
                $select.val( "text" );
-               assert.equal( $select.val(), "text", "Value with space character at beginning or end is stripped (" + key + ") selected (text)" );
 
-               if ( /^\\u/.test( key ) ) {
+               // IE6-8 doesn't trim the option values
+               if ( runicode.test( key ) && /msie [678]\.0/i.test( window.navigator.userAgent ) ) {
+                       assert.ok( true, "IE6-8 doesn't trim the option values" );
+               } else {
+                       assert.equal( $select.val(), "text", "Value with space character at beginning or end is stripped (" + key + ") selected (text)" );
+               }
+
+               if ( runicode.test( key ) ) {
                        $select.val( "te" + val + "xt" );
                        assert.equal( $select.val(), "te" + val + "xt", "Value with non-space whitespace character (" + key + ") in the middle selected (text)" );
                } else {