Skip to content
Permalink
Browse files

No ticket: Hide the testing-support jQuery from tests

  • Loading branch information
gibson042 committed Sep 3, 2013
1 parent f66d53c commit 0c185209233f4c15e57c6a24e8f81b27dd26db59
Showing with 41 additions and 32 deletions.
  1. +2 −0 test/.jshintrc
  2. +7 −6 test/data/testinit.js
  3. +26 −22 test/data/testrunner.js
  4. +1 −1 test/unit/attributes.js
  5. +4 −3 test/unit/core.js
  6. +1 −0 test/unit/event.js
@@ -38,6 +38,7 @@
"ajaxTest": false,
"testIframe": false,
"testIframeWithCallback": false,
"iframeCallback": true,
"createDashboardXML": false,
"createXMLFragment": false,
"moduleTeardown": false,
@@ -54,6 +55,7 @@
"Globals": true,
"hasPHP": true,
"isLocal": true,
"supportjQuery": true,
"originaljQuery": true,
"$": true,
"original$": true,
@@ -1,17 +1,17 @@
/*jshint multistr:true, quotmark:false */

var fireNative,
originaljQuery = this.jQuery || "jQuery",
original$ = this.$ || "$",
var fireNative, originaljQuery, original$,
supportjQuery = this.jQuery,
// see RFC 2606
externalHost = "example.com";

this.hasPHP = true;
this.isLocal = window.location.protocol === "file:";

// For testing .noConflict()
this.jQuery = originaljQuery;
this.$ = original$;
// Setup global variables before loading jQuery for testing .noConflict()
supportjQuery.noConflict( true );
originaljQuery = this.jQuery = undefined;
original$ = this.$ = "replaced";

/**
* Returns an array of elements with the given IDs
@@ -253,3 +253,4 @@ this.testIframeWithCallback = function( title, fileName, func ) {
).appendTo( "body" );
});
};
this.iframeCallback = undefined;
@@ -1,19 +1,21 @@
/**
* Allow the test suite to run with other libs or jQuery's.
*/
jQuery.noConflict();
if ( typeof jQuery !== "undefined" ) {
/**
* Allow the test suite to run with other libs or jQuery's.
*/
jQuery.noConflict();

// Expose Sizzle for Sizzle's selector tests
// We remove Sizzle's globalization in jQuery
this.Sizzle = this.Sizzle || jQuery.find;
}

// For checking globals pollution despite auto-created globals in various environments
jQuery.each( [ jQuery.expando, "getInterface", "Packages", "java", "netscape" ], function( i, name ) {
supportjQuery.each( [ jQuery.expando, "getInterface", "Packages", "java", "netscape" ], function( i, name ) {
window[ name ] = window[ name ];
});

// Expose Sizzle for Sizzle's selector tests
// We remove Sizzle's globalization in jQuery
var Sizzle = Sizzle || jQuery.find,

// Allow subprojects to test against their own fixtures
qunitModule = QUnit.module,
var qunitModule = QUnit.module,
qunitTest = QUnit.test;

/**
@@ -53,7 +55,7 @@ this.testSubproject = function( label, url, risTests, complete ) {

// Find test function and wrap to require subproject fixture
for ( ; i >= 0; i-- ) {
if ( originaljQuery.isFunction( args[i] ) ) {
if ( supportjQuery.isFunction( args[i] ) ) {
args[i] = requireFixture( args[i] );
break;
}
@@ -64,15 +66,15 @@ this.testSubproject = function( label, url, risTests, complete ) {

// Load tests and fixture from subproject
// Test order matters, so we must be synchronous and throw an error on load failure
originaljQuery.ajax( url, {
supportjQuery.ajax( url, {
async: false,
dataType: "html",
error: function( jqXHR, status ) {
throw new Error( "Could not load: " + url + " (" + status + ")" );
},
success: function( data, status, jqXHR ) {
var sources = [],
page = originaljQuery.parseHTML(
page = supportjQuery.parseHTML(
// replace html/head with dummy elements so they are represented in the DOM
( data || "" ).replace( /<\/?((!DOCTYPE|html|head)\b.*?)>/gi, "[$1]" ),
document,
@@ -82,11 +84,11 @@ this.testSubproject = function( label, url, risTests, complete ) {
if ( !page || !page.length ) {
this.error( jqXHR, "no data" );
}
page = originaljQuery( page );
page = supportjQuery( page );

// Include subproject tests
page.filter("script[src]").add( page.find("script[src]") ).map(function() {
var src = originaljQuery( this ).attr("src");
var src = supportjQuery( this ).attr("src");
if ( risTests.test( src ) ) {
sources.push( src );
}
@@ -123,7 +125,7 @@ this.testSubproject = function( label, url, risTests, complete ) {
}

// Replace the current fixture, including content outside of #qunit-fixture
var oldFixture = originaljQuery("#qunit-fixture");
var oldFixture = supportjQuery("#qunit-fixture");
while ( oldFixture.length && !oldFixture.prevAll("[id='qunit']").length ) {
oldFixture = oldFixture.parent();
}
@@ -133,7 +135,7 @@ this.testSubproject = function( label, url, risTests, complete ) {
// WARNING: UNDOCUMENTED INTERFACE
QUnit.config.fixture = fixtureHTML;
QUnit.reset();
if ( originaljQuery("#qunit-fixture").html() !== fixtureHTML ) {
if ( supportjQuery("#qunit-fixture").html() !== fixtureHTML ) {
ok( false, "Copied subproject fixture" );
return;
}
@@ -153,15 +155,15 @@ this.Globals = (function() {
return {
register: function( name ) {
globals[ name ] = true;
jQuery.globalEval( "var " + name + " = undefined;" );
supportjQuery.globalEval( "var " + name + " = undefined;" );
},
cleanup: function() {
var name,
current = globals;
globals = {};
for ( name in current ) {
jQuery.globalEval( "try { " +
"delete " + ( jQuery.support.deleteExpando ? "window['" + name + "']" : name ) +
supportjQuery.globalEval( "try { " +
"delete " + ( supportjQuery.support.deleteExpando ? "window['" + name + "']" : name ) +
"; } catch( x ) {}" );
}
}
@@ -223,7 +225,7 @@ this.Globals = (function() {
if ( elems.jquery && elems.toArray ) {
elems = elems.toArray();
}
if ( !jQuery.isArray( elems ) ) {
if ( !supportjQuery.isArray( elems ) ) {
elems = [ elems ];
}

@@ -341,14 +343,16 @@ this.Globals = (function() {

QUnit.done(function() {
// Remove our own fixtures outside #qunit-fixture
jQuery("#qunit ~ *").remove();
supportjQuery("#qunit ~ *").remove();
});

// jQuery-specific QUnit.reset
QUnit.reset = function() {

// Ensure jQuery events and data on the fixture are properly removed
jQuery("#qunit-fixture").empty();
// ...even if the jQuery under test has a broken .empty()
supportjQuery("#qunit-fixture").empty();

// Reset internal jQuery state
jQuery.event.global = {};
@@ -96,7 +96,7 @@ test( "attr(String)", function() {
jQuery("<a id='tAnchor6' href='#5' />").appendTo("#qunit-fixture");
equal( jQuery("#tAnchor5").prop("href"), jQuery("#tAnchor6").prop("href"), "Check for absolute href prop on an anchor" );

$("<script type='jquery/test' src='#5' id='scriptSrc'></script>").appendTo("#qunit-fixture");
jQuery("<script type='jquery/test' src='#5' id='scriptSrc'></script>").appendTo("#qunit-fixture");
equal( jQuery("#tAnchor5").prop("href"), jQuery("#scriptSrc").prop("src"), "Check for absolute src prop on a script" );

// list attribute is readonly by default in browsers that support it
@@ -351,8 +351,9 @@ asyncTest("isPlainObject", function() {
ok( pass, "Does not throw exceptions on host objects" );

// Objects from other windows should be matched
window.iframeCallback = function( otherObject, detail ) {
window.iframeCallback = undefined;
Globals.register("iframeDone");
window.iframeDone = function( otherObject, detail ) {
window.iframeDone = undefined;
iframe.parentNode.removeChild( iframe );
ok( jQuery.isPlainObject(new otherObject()), "new otherObject" + ( detail ? " - " + detail : "" ) );
start();
@@ -362,7 +363,7 @@ asyncTest("isPlainObject", function() {
iframe = jQuery("#qunit-fixture")[0].appendChild( document.createElement("iframe") );
doc = iframe.contentDocument || iframe.contentWindow.document;
doc.open();
doc.write("<body onload='window.parent.iframeCallback(Object);'>");
doc.write("<body onload='window.parent.iframeDone(Object);'>");
doc.close();
} catch(e) {
window.iframeDone( Object, "iframes not supported" );
@@ -2380,6 +2380,7 @@ test("focus-blur order (#12868)", function() {
// Run handlers without native method on an input
order = 1;
$radio.triggerHandler( "focus" );
$text.off();
start();
}, 50 );
}, 50 );

0 comments on commit 0c18520

Please sign in to comment.
You can’t perform that action at this time.