},
// Cross-browser xml parsing
- // (xml & tmp used internally)
- parseXML: function( data , xml , tmp ) {
-
- if ( window.DOMParser ) { // Standard
- tmp = new DOMParser();
- xml = tmp.parseFromString( data , "text/xml" );
- } else { // IE
- xml = new ActiveXObject( "Microsoft.XMLDOM" );
- xml.async = "false";
- xml.loadXML( data );
+ parseXML: function( data ) {
+ var xml, tmp;
+ try {
+ if ( window.DOMParser ) { // Standard
+ tmp = new DOMParser();
+ xml = tmp.parseFromString( data , "text/xml" );
+ } else { // IE
+ xml = new ActiveXObject( "Microsoft.XMLDOM" );
+ xml.async = "false";
+ xml.loadXML( data );
+ }
+ } catch( e ) {
+ xml = undefined;
}
-
- tmp = xml.documentElement;
-
- if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) {
+ if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
jQuery.error( "Invalid XML: " + data );
}
-
return xml;
},
f[i] = "baz";
});
equals( "baz", f.foo, "Loop over a function" );
-
+
var stylesheet_count = 0;
jQuery.each(document.styleSheets, function(i){
stylesheet_count++;
}
});
+test("jQuery.parseXML", 4, function(){
+ var xml, tmp;
+ try {
+ xml = jQuery.parseXML( "<p>A <b>well-formed</b> xml string</p>" );
+ tmp = xml.getElementsByTagName( "p" )[ 0 ];
+ ok( !!tmp, "<p> present in document" );
+ tmp = tmp.getElementsByTagName( "b" )[ 0 ];
+ ok( !!tmp, "<b> present in document" );
+ strictEqual( tmp.childNodes[ 0 ].nodeValue, "well-formed", "<b> text is as expected" );
+ } catch (e) {
+ strictEqual( e, undefined, "unexpected error" );
+ }
+ try {
+ xml = jQuery.parseXML( "<p>Not a <<b>well-formed</b> xml string</p>" );
+ ok( false, "invalid xml not detected" );
+ } catch( e ) {
+ strictEqual( e, "Invalid XML: <p>Not a <<b>well-formed</b> xml string</p>", "invalid xml detected" );
+ }
+});
+
test("jQuery.sub() - Static Methods", function(){
expect(18);
var Subclass = jQuery.sub();
test("jQuery.camelCase()", function() {
var tests = {
- "foo-bar": "fooBar",
+ "foo-bar": "fooBar",
"foo-bar-baz": "fooBarBaz"
};