mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Ajax, Manipulation: don't test cross-document manip in Android 2.3
(cherry-picked from 213b9604f3da654e4281eeea56fcb169f88ffd19) Fixes #14796 Closes gh-1572
This commit is contained in:
parent
6738117383
commit
1bd576a3c4
@ -1513,6 +1513,12 @@ module( "ajax", {
|
||||
var parsedXML = jQuery( jQuery.parseXML("<tab title=\"Added\">blibli</tab>") ).find("tab");
|
||||
ajaxXML = jQuery( ajaxXML );
|
||||
try {
|
||||
// Android 2.3 doesn't automatically adopt nodes from foreign documents.
|
||||
// (see the comment in test/manipulation.js)
|
||||
// Support: Android 2.3
|
||||
if ( /android 2\.3/i.test( navigator.userAgent ) ) {
|
||||
parsedXML = jQuery( ajaxXML[ 0 ].adoptNode( parsedXML[ 0 ] ) );
|
||||
}
|
||||
ajaxXML.find("infowindowtab").append( parsedXML );
|
||||
} catch( e ) {
|
||||
strictEqual( e, undefined, "error" );
|
||||
|
@ -410,7 +410,7 @@ test( "XML DOM manipulation (#9960)", function() {
|
||||
|
||||
expect( 5 );
|
||||
|
||||
var
|
||||
var scxml1Adopted,
|
||||
xmlDoc1 = jQuery.parseXML("<scxml xmlns='http://www.w3.org/2005/07/scxml' version='1.0'><state x='100' y='100' initial='actions' id='provisioning'></state><state x='100' y='100' id='error'></state><state x='100' y='100' id='finished' final='true'></state></scxml>"),
|
||||
xmlDoc2 = jQuery.parseXML("<scxml xmlns='http://www.w3.org/2005/07/scxml' version='1.0'><state id='provisioning3'></state></scxml>"),
|
||||
xml1 = jQuery( xmlDoc1 ),
|
||||
@ -419,6 +419,15 @@ test( "XML DOM manipulation (#9960)", function() {
|
||||
scxml2 = jQuery( "scxml", xml2 ),
|
||||
state = scxml2.find("state");
|
||||
|
||||
// Android 2.3 doesn't automatically adopt nodes from foreign documents.
|
||||
// Although technically this is compliant behavior, no other browser
|
||||
// (including newer Android Browsers) behave in this way so do the adopting
|
||||
// just for Android 2.3.
|
||||
// Support: Android 2.3
|
||||
if ( /android 2\.3/i.test( navigator.userAgent ) ) {
|
||||
state = jQuery( xmlDoc1.adoptNode( state[ 0 ] ) );
|
||||
}
|
||||
|
||||
scxml1.append( state );
|
||||
strictEqual( scxml1[0].lastChild, state[0], "append" );
|
||||
|
||||
@ -431,7 +440,13 @@ test( "XML DOM manipulation (#9960)", function() {
|
||||
scxml1.find("#provisioning").before( state );
|
||||
strictEqual( scxml1[0].firstChild, state[0], "before" );
|
||||
|
||||
scxml2.replaceWith( scxml1 );
|
||||
// Support: Android 2.3
|
||||
if ( /android 2\.3/i.test( navigator.userAgent ) ) {
|
||||
scxml1Adopted = jQuery( xmlDoc2.adoptNode( scxml1[ 0 ] ) );
|
||||
scxml2.replaceWith( scxml1Adopted );
|
||||
} else {
|
||||
scxml2.replaceWith( scxml1 );
|
||||
}
|
||||
deepEqual( jQuery( "state", xml2 ).get(), scxml1.find("state").get(), "replaceWith" );
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user