mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Let subproject tests use their own test fixture. Closes gh-867.
This commit is contained in:
parent
f70a696598
commit
3016872220
@ -7,6 +7,80 @@ jQuery.noConflict();
|
|||||||
// We remove Sizzle's globalization in jQuery
|
// We remove Sizzle's globalization in jQuery
|
||||||
var Sizzle = Sizzle || jQuery.find;
|
var Sizzle = Sizzle || jQuery.find;
|
||||||
|
|
||||||
|
// Allow subprojects to test against their own fixtures
|
||||||
|
var qunitModule = QUnit.module;
|
||||||
|
function testSubproject( label, url, risTests ) {
|
||||||
|
module( "Subproject: " + label );
|
||||||
|
|
||||||
|
module = QUnit.module = function( name ) {
|
||||||
|
return qunitModule.apply( this, [ label + ": " + name ].concat( [].slice.call( arguments, 1 ) ) );
|
||||||
|
};
|
||||||
|
|
||||||
|
test( "Copy test fixture", function() {
|
||||||
|
expect(3);
|
||||||
|
|
||||||
|
// Don't let subproject tests jump the gun
|
||||||
|
QUnit.config.reorder = false;
|
||||||
|
|
||||||
|
stop();
|
||||||
|
jQuery.ajax( url, {
|
||||||
|
dataType: "html",
|
||||||
|
error: function( jqXHR, status ) {
|
||||||
|
ok( false, "Retrieved test page: " + status );
|
||||||
|
},
|
||||||
|
success: function( data ) {
|
||||||
|
var page, fixture, fixtureHTML,
|
||||||
|
oldFixture = jQuery("#qunit-fixture");
|
||||||
|
|
||||||
|
ok( data, "Retrieved test page" );
|
||||||
|
try {
|
||||||
|
page = jQuery( jQuery.parseHTML(
|
||||||
|
data.replace( /(<\/?)(?:html|head)\b/g, "$1div" ),
|
||||||
|
document,
|
||||||
|
true
|
||||||
|
) );
|
||||||
|
|
||||||
|
// Get the fixture, including content outside of #qunit-fixture
|
||||||
|
fixture = page.find("[id='qunit-fixture']");
|
||||||
|
fixtureHTML = fixture.html();
|
||||||
|
fixture.empty();
|
||||||
|
while ( fixture.length && !fixture.prevAll("[id^='qunit-']").length ) {
|
||||||
|
fixture = fixture.parent();
|
||||||
|
}
|
||||||
|
fixture = fixture.add( fixture.nextAll() );
|
||||||
|
ok( fixture.html(), "Found test fixture" );
|
||||||
|
|
||||||
|
// Replace the current fixture, again including content outside of #qunit-fixture
|
||||||
|
while ( oldFixture.length && !oldFixture.prevAll("[id^='qunit-']").length ) {
|
||||||
|
oldFixture = oldFixture.parent();
|
||||||
|
}
|
||||||
|
oldFixture.nextAll().remove();
|
||||||
|
oldFixture.replaceWith( fixture );
|
||||||
|
|
||||||
|
// WARNING: UNDOCUMENTED INTERFACE
|
||||||
|
QUnit.config.fixture = fixtureHTML;
|
||||||
|
QUnit.reset();
|
||||||
|
equal( jQuery("#qunit-fixture").html(), fixtureHTML, "Copied test fixture" );
|
||||||
|
|
||||||
|
// Include subproject tests
|
||||||
|
page.find("script[src]").add( page.filter("script[src]") ).filter(function() {
|
||||||
|
var src = jQuery( this ).attr("src");
|
||||||
|
if ( risTests.test( src ) ) {
|
||||||
|
this.src = url + src;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}).appendTo("head:first");
|
||||||
|
} catch ( x ) {
|
||||||
|
ok( false, "Failed to copy test fixture: " + ( x.message || x ) );
|
||||||
|
}
|
||||||
|
},
|
||||||
|
complete: function() {
|
||||||
|
start();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* QUnit hooks
|
* QUnit hooks
|
||||||
*/
|
*/
|
||||||
|
@ -40,8 +40,6 @@
|
|||||||
<script src="unit/queue.js"></script>
|
<script src="unit/queue.js"></script>
|
||||||
<script src="unit/attributes.js"></script>
|
<script src="unit/attributes.js"></script>
|
||||||
<script src="unit/event.js"></script>
|
<script src="unit/event.js"></script>
|
||||||
<script src="../src/sizzle/test/unit/selector.js"></script>
|
|
||||||
<script src="../src/sizzle/test/unit/utilities.js"></script>
|
|
||||||
<script src="unit/selector.js"></script>
|
<script src="unit/selector.js"></script>
|
||||||
<script src="unit/traversing.js"></script>
|
<script src="unit/traversing.js"></script>
|
||||||
<script src="unit/manipulation.js"></script>
|
<script src="unit/manipulation.js"></script>
|
||||||
@ -54,6 +52,11 @@
|
|||||||
<script src="unit/deprecated.js"></script>
|
<script src="unit/deprecated.js"></script>
|
||||||
<script src="unit/exports.js"></script>
|
<script src="unit/exports.js"></script>
|
||||||
|
|
||||||
|
<!-- Subproject tests must be last because they replace our test fixture -->
|
||||||
|
<script>
|
||||||
|
testSubproject( "Sizzle", "../src/sizzle/test/", /^unit\/.*\.js$/ );
|
||||||
|
</script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// html5shiv, enabling HTML5 elements to be used with jQuery
|
// html5shiv, enabling HTML5 elements to be used with jQuery
|
||||||
( "abbr article aside audio bdi canvas data details figcaption figure footer header hgroup " +
|
( "abbr article aside audio bdi canvas data details figcaption figure footer header hgroup " +
|
||||||
|
Loading…
Reference in New Issue
Block a user