.appendTo( "#qunit-fixture" );
broken( "Attribute equals non-value", "input[name=]" );
- broken( "Attribute equals unquoted non-identifer", "input[name=foo.baz]" );
- broken( "Attribute equals unquoted non-identifer", "input[name=foo[baz]]" );
+ broken( "Attribute equals unquoted non-identifier", "input[name=foo.baz]" );
+ broken( "Attribute equals unquoted non-identifier", "input[name=foo[baz]]" );
broken( "Attribute equals bad string", "input[name=''double-quoted'']" );
broken( "Attribute equals bad string", "input[name='apostrophe'd']" );
} );
} );
QUnit.test( "attributes - special characters", function( assert ) {
- assert.expect( 14 );
+ assert.expect( 16 );
var attrbad;
var div = document.createElement( "div" );
"<input type='hidden' id='attrbad_space' name='foo bar'/>" +
"<input type='hidden' id='attrbad_dot' value='2' name='foo.baz'/>" +
"<input type='hidden' id='attrbad_brackets' value='2' name='foo[baz]'/>" +
+ "<input type='hidden' id='attrbad_leading_digits' name='agent' value='007'/>" +
"<input type='hidden' id='attrbad_injection' data-attr='foo_baz']'/>" +
"<input type='hidden' id='attrbad_quote' data-attr='''/>" +
"<input type='hidden' id='attrbad_backslash' data-attr='\'/>" +
q( "attrbad_injection" ),
"string containing quote and right bracket" );
+ assert.deepEqual( jQuery.find( "input[value=\\30 \\30\\37 ]", null, null, attrbad ),
+ q( "attrbad_leading_digits" ),
+ "identifier containing escaped leading digits with whitespace termination" );
+ assert.deepEqual( jQuery.find( "input[value=\\00003007]", null, null, attrbad ),
+ q( "attrbad_leading_digits" ),
+ "identifier containing escaped leading digits without whitespace termination" );
+
assert.deepEqual( jQuery.find( "input[data-attr='\\'']", null, null, attrbad ),
q( "attrbad_quote" ),
"string containing quote" );