Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 53 additions & 23 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,29 @@ module.exports = function( grunt ) {
const gzip = require( "gzip-js" );
const isTravis = process.env.TRAVIS;

const karmaFilesExceptJQuery = [
"dist/jquery-migrate.min.js",
"test/data/compareVersions.js",

"test/testinit.js",
"test/migrate.js",
"test/core.js",
"test/ajax.js",
"test/attributes.js",
"test/css.js",
"test/data.js",
"test/deferred.js",
"test/effects.js",
"test/event.js",
"test/manipulation.js",
"test/offset.js",
"test/serialize.js",
"test/traversing.js",

{ pattern: "dist/jquery-migrate.js", included: false, served: true },
{ pattern: "test/**/*.@(js|css|jpg|html|xml)", included: false, served: true }
];

// Project configuration.
grunt.initConfig( {
pkg: grunt.file.readJSON( "package.json" ),
Expand All @@ -24,17 +47,27 @@ module.exports = function( grunt ) {
tests: {
jquery: [
"dev+git",
"min+git.min"
"min+git.min",
"dev+git.slim",
"min+git.slim.min"
],
"jquery-3": [
"dev+3.x-git",
"min+3.x-git.min",
"dev+3.x-git.slim",
"min+3.x-git.slim.min",
"dev+3.5.0",
"dev+3.5.0.slim",
"dev+3.4.1",
"dev+3.4.1.slim",
"dev+3.3.1",
"dev+3.3.1.slim",
"dev+3.2.1",
"dev+3.2.1.slim",
"dev+3.1.1",
"dev+3.0.0"
"dev+3.1.1.slim",
"dev+3.0.0",
"dev+3.0.0.slim"
]
},
banners: {
Expand Down Expand Up @@ -123,26 +156,7 @@ module.exports = function( grunt ) {
frameworks: [ "qunit" ],
files: [
"https://code.jquery.com/jquery-3.x-git.min.js",
"dist/jquery-migrate.min.js",
"test/data/compareVersions.js",

"test/testinit.js",
"test/migrate.js",
"test/core.js",
"test/ajax.js",
"test/attributes.js",
"test/css.js",
"test/data.js",
"test/deferred.js",
"test/effects.js",
"test/event.js",
"test/manipulation.js",
"test/offset.js",
"test/serialize.js",
"test/traversing.js",

{ pattern: "dist/jquery-migrate.js", included: false, served: true },
{ pattern: "test/**/*.@(js|css|jpg|html|xml)", included: false, served: true }
...karmaFilesExceptJQuery
],
client: {
clearContext: false,
Expand All @@ -163,6 +177,19 @@ module.exports = function( grunt ) {
browsers: [ isTravis ? "ChromeHeadlessNoSandbox" : "ChromeHeadless" ]
},

"jquery-slim": {

// The Chrome sandbox doesn't work on Travis.
browsers: [ isTravis ? "ChromeHeadlessNoSandbox" : "ChromeHeadless" ],

options: {
files: [
"https://code.jquery.com/jquery-3.x-git.slim.min.js",
...karmaFilesExceptJQuery
]
}
},

// To debug tests with Karma:
// 1. Run 'grunt karma:chrome-debug' or 'grunt karma:firefox-debug'
// (any karma subtask that has singleRun=false)
Expand Down Expand Up @@ -191,7 +218,10 @@ module.exports = function( grunt ) {
grunt.loadTasks( "build/tasks" );

// Just an alias
grunt.registerTask( "test", [ "karma:main" ] );
grunt.registerTask( "test", [
"karma:main",
"karma:jquery-slim"
] );

grunt.registerTask( "lint", [

Expand Down
6 changes: 6 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
"karma-firefox-launcher": "1.1.0",
"karma-qunit": "3.1.2",
"load-grunt-tasks": "5.0.0",
"native-promise-only": "0.8.1",
"qunit": "2.9.2",
"rollup": "2.7.6",
"testswarm": "1.1.0"
Expand Down
5 changes: 5 additions & 0 deletions src/jquery/ajax.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import { migrateWarnFunc } from "../main.js";

// Support jQuery slim which excludes the ajax module
if ( jQuery.ajax ) {

var oldAjax = jQuery.ajax;

jQuery.ajax = function( ) {
Expand All @@ -17,3 +20,5 @@ jQuery.ajax = function( ) {

return jQXHR;
};

}
5 changes: 5 additions & 0 deletions src/jquery/deferred.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import { migrateWarn } from "../main.js";

// Support jQuery slim which excludes the deferred module in jQuery 4.0+
if ( jQuery.Deferred ) {

var oldDeferred = jQuery.Deferred,
tuples = [

Expand Down Expand Up @@ -57,3 +60,5 @@ jQuery.Deferred = function( func ) {

// Preserve handler of uncaught exceptions in promise chains
jQuery.Deferred.exceptionHook = oldDeferred.exceptionHook;

}
5 changes: 5 additions & 0 deletions src/jquery/effects.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import { migrateWarn } from "../main.js";

// Support jQuery slim which excludes the effects module
if ( jQuery.fx ) {

var intervalValue, intervalMsg,
oldTweenRun = jQuery.Tween.prototype.run,
linearEasing = function( pct ) {
Expand Down Expand Up @@ -40,3 +43,5 @@ if ( window.requestAnimationFrame ) {
}
} );
}

}
7 changes: 7 additions & 0 deletions src/jquery/serialize.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { migrateWarn } from "../main.js";

// Support jQuery slim which excludes the ajax module
// The jQuery.param patch is about respecting `jQuery.ajaxSettings.traditional`
// so it doesn't make sense for the slim build.
if ( jQuery.ajax ) {

var oldParam = jQuery.param;

jQuery.param = function( data, traditional ) {
Expand All @@ -13,3 +18,5 @@ jQuery.param = function( data, traditional ) {

return oldParam.call( this, data, traditional );
};

}
5 changes: 5 additions & 0 deletions test/ajax.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
// Support jQuery slim which excludes the ajax module
if ( jQuery.ajax ) {

QUnit.module( "ajax" );

QUnit.test( "jQuery.ajax() deprecations on jqXHR", function( assert ) {
Expand All @@ -23,3 +26,5 @@ QUnit.test( "jQuery.ajax() deprecations on jqXHR", function( assert ) {
} );

} );

}
4 changes: 4 additions & 0 deletions test/deferred.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// Support jQuery slim which excludes the deferred module in jQuery 4.0+
if ( jQuery.Deferred ) {

QUnit.module( "deferred" );

Expand Down Expand Up @@ -155,3 +157,5 @@ QUnit.test( "[PIPE ONLY] jQuery.Deferred.pipe - context", function( assert ) {
done.pop().call();
} );
} );

}
5 changes: 5 additions & 0 deletions test/effects.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
// Support jQuery slim which excludes the effects module
if ( jQuery.fx ) {

QUnit.module( "effects" );

QUnit.test( "jQuery.easing", function( assert ) {
Expand Down Expand Up @@ -83,3 +86,5 @@ QUnit.test( "jQuery.fx.interval - user change", function( assert ) {

jQuery.fx.interval = oldInterval;
} );

}
10 changes: 7 additions & 3 deletions test/event-lateload.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
<head>
<meta charset="utf-8">
<title>jQuery Migrate late load event binding test</title>
<script src="../node_modules/native-promise-only/lib/npo.src.js"></script>

<!-- Load a jQuery and jquery-migrate plugin file based on URL -->
<script src="testinit.js"></script>
Expand All @@ -15,14 +16,17 @@
TestManager.loadProject( "jquery-migrate", "dev", true );
</script>
<script>
var loaded = jQuery.Deferred();
var resolve,
loaded = new Promise( function ( _resolve ) {
resolve = _resolve;
} );

// No warning here, document isn't yet loaded
jQuery( window ).on( "load", function() {
loaded.resolve();
resolve();
});

jQuery.when( jQuery.ready, loaded ).then( function() {
Promise.all( [ jQuery.ready, loaded ] ).then( function() {

// This .on() call should warn
jQuery( window ).on( "load", jQuery.noop );
Expand Down
22 changes: 12 additions & 10 deletions test/event.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ QUnit.test( "error() event method", function( assert ) {
} );

QUnit.test( "load() and unload() event methods", function( assert ) {
assert.expect( 5 );
assert.expect( jQuery.ajax ? 5 : 4 );

expectWarning( assert, "jQuery.fn.load()", function() {
jQuery( "<img />" )
Expand All @@ -41,15 +41,17 @@ QUnit.test( "load() and unload() event methods", function( assert ) {
.remove();
} );

expectNoWarning( assert, "ajax load", function() {
var start = assert.async();
jQuery( "<div id=load138></div>" )
.appendTo( "#qunit-fixture" )
.load( "not-found.file", function() {
jQuery( "#load138" ).remove();
start();
} );
} );
if ( jQuery.ajax ) {
expectNoWarning( assert, "ajax load", function() {
var start = assert.async();
jQuery( "<div id=load138></div>" )
.appendTo( "#qunit-fixture" )
.load( "not-found.file", function() {
jQuery( "#load138" ).remove();
start();
} );
} );
}
} );

QUnit.test( ".bind() and .unbind()", function( assert ) {
Expand Down
7 changes: 7 additions & 0 deletions test/serialize.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@

QUnit.module( "serialize" );

// Support jQuery slim which excludes the ajax module
// The jQuery.param patch is about respecting `jQuery.ajaxSettings.traditional`
// so it doesn't make sense for the slim build.
if ( jQuery.ajax ) {

QUnit.test( "jQuery.param( x, traditional)", function( assert ) {
assert.expect( 12 );

Expand Down Expand Up @@ -49,3 +54,5 @@ QUnit.test( "jQuery.param( x, traditional)", function( assert ) {

jQuery.ajaxSettings.traditional = savedTraditional;
} );

}
7 changes: 5 additions & 2 deletions test/testinit.js
Original file line number Diff line number Diff line change
Expand Up @@ -157,11 +157,14 @@ TestManager = {
TestManager.init( {
"jquery": {
urlTag: "jquery",
choices: "dev,min,git,git.min,3.x-git,3.x-git.min,3.5.0,3.4.1,3.3.1,3.2.1,3.1.1,3.0.0"
choices: "dev,min,git,git.min,git.slim,git.slim.min," +
"3.x-git,3.x-git.min,3.x-git.slim,3.x-git.slim.min," +
"3.5.0,3.5.0.slim,3.4.1,3.4.1.slim," +
"3.3.1,3.3.1.slim,3.2.1,3.2.1.slim,3.1.1,3.1.1.slim,3.0.0,3.0.0.slim"
},
"jquery-migrate": {
urlTag: "plugin",
choices: "dev,min,raw,git,3.0.1,3.0.0"
choices: "dev,min,raw,git,3.2.0,3.1.0,3.0.1,3.0.0"
}
} );

Expand Down