From 5b2f6fa91fb06e874b98fc9fda25cd86a2ff2c1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Go=C5=82=C4=99biowski?= Date: Sun, 13 Mar 2016 23:22:13 +0100 Subject: [PATCH] tests(jQuery): test on both oldest & latest supported jQuery version --- .travis.yml | 1 + Gruntfile.js | 7 +++++-- angularFiles.js | 9 +++++++++ bower.json | 3 ++- docs/bower.json | 2 +- docs/content/tutorial/step_07.ngdoc | 2 +- docs/content/tutorial/step_11.ngdoc | 2 +- docs/content/tutorial/step_12.ngdoc | 4 ++-- karma-jquery-2.1.conf.js | 18 ++++++++++++++++++ scripts/travis/build.sh | 4 ++-- 10 files changed, 42 insertions(+), 10 deletions(-) create mode 100644 karma-jquery-2.1.conf.js diff --git a/.travis.yml b/.travis.yml index 9ee4ad333..11f5733d6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,6 +19,7 @@ env: - JOB=unit BROWSER_PROVIDER=saucelabs - JOB=docs-e2e BROWSER_PROVIDER=saucelabs - JOB=e2e TEST_TARGET=jqlite BROWSER_PROVIDER=saucelabs + - JOB=e2e TEST_TARGET=jquery-2.1 BROWSER_PROVIDER=saucelabs - JOB=e2e TEST_TARGET=jquery BROWSER_PROVIDER=saucelabs global: - CXX=g++-4.8 # node 4 likes the G++ v4.8 compiler diff --git a/Gruntfile.js b/Gruntfile.js index 86139b9d0..b63ab7a10 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -79,6 +79,7 @@ module.exports = function(grunt) { tests: { jqlite: 'karma-jqlite.conf.js', jquery: 'karma-jquery.conf.js', + 'jquery-2.1': 'karma-jquery-2.1.conf.js', docs: 'karma-docs.conf.js', modules: 'karma-modules.conf.js' }, @@ -87,6 +88,7 @@ module.exports = function(grunt) { autotest: { jqlite: 'karma-jqlite.conf.js', jquery: 'karma-jquery.conf.js', + 'jquery-2.1': 'karma-jquery-2.1.conf.js', modules: 'karma-modules.conf.js', docs: 'karma-docs.conf.js' }, @@ -344,10 +346,11 @@ module.exports = function(grunt) { //alias tasks grunt.registerTask('test', 'Run unit, docs and e2e tests with Karma', ['jshint', 'jscs', 'package', 'test:unit', 'test:promises-aplus', 'tests:docs', 'test:protractor']); grunt.registerTask('test:jqlite', 'Run the unit tests with Karma' , ['tests:jqlite']); - grunt.registerTask('test:jquery', 'Run the jQuery unit tests with Karma', ['tests:jquery']); + grunt.registerTask('test:jquery', 'Run the jQuery (latest) unit tests with Karma', ['tests:jquery']); + grunt.registerTask('test:jquery-2.1', 'Run the jQuery 2.1 unit tests with Karma', ['tests:jquery-2.1']); grunt.registerTask('test:modules', 'Run the Karma module tests with Karma', ['build', 'tests:modules']); grunt.registerTask('test:docs', 'Run the doc-page tests with Karma', ['package', 'tests:docs']); - grunt.registerTask('test:unit', 'Run unit, jQuery and Karma module tests with Karma', ['test:jqlite', 'test:jquery', 'test:modules']); + grunt.registerTask('test:unit', 'Run unit, jQuery and Karma module tests with Karma', ['test:jqlite', 'test:jquery', 'test:jquery-2.1', 'test:modules']); grunt.registerTask('test:protractor', 'Run the end to end tests with Protractor and keep a test server running in the background', ['webdriver', 'connect:testserver', 'protractor:normal']); grunt.registerTask('test:travis-protractor', 'Run the end to end tests with Protractor for Travis CI builds', ['connect:testserver', 'protractor:travis']); grunt.registerTask('test:ci-protractor', 'Run the end to end tests with Protractor for Jenkins CI builds', ['webdriver', 'connect:testserver', 'protractor:jenkins']); diff --git a/angularFiles.js b/angularFiles.js index 3f6b6c9cc..9017da6fc 100755 --- a/angularFiles.js +++ b/angularFiles.js @@ -227,6 +227,15 @@ var angularFiles = { '@angularTest' ], + 'karmaJqueryOld': [ + 'bower_components/jquery-2.1/dist/jquery.js', + 'test/jquery_alias.js', + '@angularSrc', + '@angularSrcModules', + '@angularScenario', + '@angularTest' + ], + 'karmaJqueryExclude': [ 'src/angular-bootstrap.js', 'src/ngScenario/angular-bootstrap.js', diff --git a/bower.json b/bower.json index ec7cfbbad..2493e6f89 100644 --- a/bower.json +++ b/bower.json @@ -2,7 +2,8 @@ "name": "AngularJS", "license": "MIT", "devDependencies": { - "jquery": "2.1.1", + "jquery": "2.2.1", + "jquery-2.1": "jquery#2.1.4", "closure-compiler": "https://dl.google.com/closure-compiler/compiler-20140814.zip", "ng-closure-runner": "https://raw.github.com/angular/ng-closure-runner/v0.2.3/assets/ng-closure-runner.zip" } diff --git a/docs/bower.json b/docs/bower.json index d5a6a99b1..dc07141a7 100644 --- a/docs/bower.json +++ b/docs/bower.json @@ -1,7 +1,7 @@ { "name": "AngularJS-docs-app", "dependencies": { - "jquery": "2.1.1", + "jquery": "2.2.1", "lunr.js": "0.5.12", "open-sans-fontface": "1.0.4", "google-code-prettify": "1.0.1", diff --git a/docs/content/tutorial/step_07.ngdoc b/docs/content/tutorial/step_07.ngdoc index 8f9b654e0..d001388a9 100644 --- a/docs/content/tutorial/step_07.ngdoc +++ b/docs/content/tutorial/step_07.ngdoc @@ -35,7 +35,7 @@ We are using [Bower][bower] to install client-side dependencies. This step upda "dependencies": { "angular": "1.4.x", "angular-mocks": "1.4.x", - "jquery": "~2.1.1", + "jquery": "~2.2.1", "bootstrap": "~3.1.1", "angular-route": "1.4.x" } diff --git a/docs/content/tutorial/step_11.ngdoc b/docs/content/tutorial/step_11.ngdoc index 946a7185e..7259dd297 100644 --- a/docs/content/tutorial/step_11.ngdoc +++ b/docs/content/tutorial/step_11.ngdoc @@ -34,7 +34,7 @@ We are using [Bower][bower] to install client side dependencies. This step upda "dependencies": { "angular": "1.4.x", "angular-mocks": "1.4.x", - "jquery": "~2.1.1", + "jquery": "~2.2.1", "bootstrap": "~3.1.1", "angular-route": "1.4.x", "angular-resource": "1.4.x" diff --git a/docs/content/tutorial/step_12.ngdoc b/docs/content/tutorial/step_12.ngdoc index 79b3233b7..51d804d33 100644 --- a/docs/content/tutorial/step_12.ngdoc +++ b/docs/content/tutorial/step_12.ngdoc @@ -38,7 +38,7 @@ We are using [Bower][bower] to install client side dependencies. This step upda "dependencies": { "angular": "1.4.x", "angular-mocks": "1.4.x", - "jquery": "~2.1.1", + "jquery": "~2.2.1", "bootstrap": "~3.1.1", "angular-route": "1.4.x", "angular-resource": "1.4.x", @@ -49,7 +49,7 @@ We are using [Bower][bower] to install client side dependencies. This step upda * `"angular-animate": "1.4.x"` tells bower to install a version of the angular-animate component that is compatible with version 1.4.x. -* `"jquery": "~2.1.1"` tells bower to install the 2.1.1 version of jQuery. Note that this is not an +* `"jquery": "~2.2.1"` tells bower to install the 2.2.1 version of jQuery. Note that this is not an Angular library, it is the standard jQuery library. We can use bower to install a wide range of 3rd party libraries. diff --git a/karma-jquery-2.1.conf.js b/karma-jquery-2.1.conf.js new file mode 100644 index 000000000..7ea14d91d --- /dev/null +++ b/karma-jquery-2.1.conf.js @@ -0,0 +1,18 @@ +'use strict'; + +var angularFiles = require('./angularFiles'); +var sharedConfig = require('./karma-shared.conf'); + +module.exports = function(config) { + sharedConfig(config, {testName: 'AngularJS: jQuery', logFile: 'karma-jquery.log'}); + + config.set({ + files: angularFiles.mergeFilesFor('karmaJqueryOld'), + exclude: angularFiles.mergeFilesFor('karmaJqueryExclude'), + + junitReporter: { + outputFile: 'test_out/jquery.xml', + suite: 'jQuery' + } + }); +}; diff --git a/scripts/travis/build.sh b/scripts/travis/build.sh index 0dbaa6bbe..343737520 100755 --- a/scripts/travis/build.sh +++ b/scripts/travis/build.sh @@ -20,12 +20,12 @@ elif [ $JOB = "unit" ]; then elif [ $JOB = "docs-e2e" ]; then grunt test:travis-protractor --specs "docs/app/e2e/**/*.scenario.js" elif [ $JOB = "e2e" ]; then - if [ $TEST_TARGET = "jquery" ]; then + if [[ $TEST_TARGET == jquery* ]]; then export USE_JQUERY=1 fi export TARGET_SPECS="build/docs/ptore2e/**/default_test.js" - if [ $TEST_TARGET = "jquery" ]; then + if [[ $TEST_TARGET == jquery* ]]; then TARGET_SPECS="build/docs/ptore2e/**/jquery_test.js" fi