aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml9
-rw-r--r--Gruntfile.js6
-rw-r--r--docs/config/processors/protractor-generate.js39
-rw-r--r--lib/grunt/utils.js3
-rw-r--r--package.json2
-rw-r--r--protractor-conf.js38
-rw-r--r--protractor-shared-conf.js (renamed from protractor-jquery-conf.js)15
-rw-r--r--protractor-travis-conf.js25
-rwxr-xr-xscripts/travis/build.sh14
9 files changed, 77 insertions, 74 deletions
diff --git a/.travis.yml b/.travis.yml
index d22001fc..bf081458 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,12 +9,9 @@ branches:
env:
matrix:
- JOB=unit
- - JOB=e2e BROWSER=chrome JQVERSION=jqlite
- - JOB=e2e BROWSER=firefox JQVERSION=jqlite
-# - JOB=e2e BROWSER=safari JQVERSION=jqlite
-# - JOB=e2e BROWSER=chrome JQVERSION=jquery
-# - JOB=e2e BROWSER=firefox JQVERSION=jquery
-# - JOB=e2e BROWSER=safari JQVERSION=jquery
+ - JOB=e2e TEST_TARGET=jqlite
+ - JOB=e2e TEST_TARGET=jquery
+ - JOB=e2e TEST_TARGET=doce2e
global:
- SAUCE_USERNAME=angular-ci
- SAUCE_ACCESS_KEY=9b988f434ff8-fbca-8aa4-4ae3-35442987
diff --git a/Gruntfile.js b/Gruntfile.js
index 74ddd1eb..a5a611ec 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -92,7 +92,7 @@ module.exports = function(grunt) {
protractor: {
normal: 'protractor-conf.js',
- jquery: 'protractor-jquery-conf.js',
+ travis: 'protractor-travis-conf.js',
jenkins: 'protractor-jenkins-conf.js'
},
@@ -293,8 +293,8 @@ module.exports = function(grunt) {
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', ['tests:jqlite', 'tests:jquery', 'tests: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:jq-protractor', 'Run the end to end tests against jquery with Protractor and keep a test server running in the background', ['webdriver', 'connect:testserver', 'protractor:jquery']);
- grunt.registerTask('test:ci-protractor', 'Run the end to end tests with Protractor and keep a test server running in the background', ['webdriver', 'connect:testserver', 'protractor:jenkins']);
+ 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']);
grunt.registerTask('test:e2e', 'Alias for test:protractor', ['test:protractor']);
grunt.registerTask('test:promises-aplus',['build:promises-aplus-adapter','shell:promises-aplus-tests']);
diff --git a/docs/config/processors/protractor-generate.js b/docs/config/processors/protractor-generate.js
index 39c79212..100202b4 100644
--- a/docs/config/processors/protractor-generate.js
+++ b/docs/config/processors/protractor-generate.js
@@ -5,6 +5,26 @@ var trimIndentation = require('dgeni/lib/utils/trim-indentation');
var code = require('dgeni/lib/utils/code');
var protractorFolder;
+function createProtractorDoc(example, file, env) {
+ var protractorDoc = {
+ docType: 'e2e-test',
+ id: 'protractorTest' + '-' + example.id,
+ template: 'protractorTests.template.js',
+ outputPath: path.join(protractorFolder, example.id, env + '_test.js'),
+ innerTest: file.fileContents,
+ pathPrefix: '.', // Hold for if we test with full jQuery
+ exampleId: example.id,
+ description: example.doc.id
+ };
+
+ if (env === 'jquery') {
+ protractorDoc.examplePath = example.outputFolder + '/index-jquery.html'
+ } else {
+ protractorDoc.examplePath = example.outputFolder + '/index.html'
+ }
+ return protractorDoc;
+}
+
module.exports = {
name: 'protractor-generate',
description: 'Generate a protractor test file from the e2e tests in the examples',
@@ -23,22 +43,9 @@ module.exports = {
return;
}
- // Create a new file for the test.
- // TODO - at the moment, only jqLite is being used. Will need to generate
- // another doc for jQuery if we want to test against that.
- var protractorDoc = {
- docType: 'e2e-test',
- id: 'protractorTest' + '-' + example.id,
- template: 'protractorTests.template.js',
- outputPath: path.join(protractorFolder, example.id, 'jqlite' + '_test.js'),
- innerTest: file.fileContents,
- pathPrefix: '.', // Hold for if we test with full jQuery
- exampleId: example.id,
- description: example.doc.id,
- examplePath: example.outputFolder + '/index.html'
- };
-
- docs.push(protractorDoc);
+ // Create new files for the tests.
+ docs.push(createProtractorDoc(example, file, 'jquery'));
+ docs.push(createProtractorDoc(example, file, 'jqlite'));
});
});
}
diff --git a/lib/grunt/utils.js b/lib/grunt/utils.js
index 1c356c18..b9affd82 100644
--- a/lib/grunt/utils.js
+++ b/lib/grunt/utils.js
@@ -247,14 +247,15 @@ module.exports = {
var tunnelIdentifier = grunt.option('capabilities.tunnel-identifier');
var sauceBuild = grunt.option('capabilities.build');
var browser = grunt.option('browser');
+ var specs = grunt.option('specs');
var args = ['node_modules/protractor/bin/protractor', config];
if (sauceUser) args.push('--sauceUser=' + sauceUser);
if (sauceKey) args.push('--sauceKey=' + sauceKey);
if (tunnelIdentifier) args.push('--capabilities.tunnel-identifier=' + tunnelIdentifier);
if (sauceBuild) args.push('--capabilities.build=' + sauceBuild);
+ if (specs) args.push('--specs=' + specs);
if (browser) {
args.push('--browser=' + browser);
- args.push('--params.browser=' + browser);
}
diff --git a/package.json b/package.json
index a36fb83f..cf7b9d92 100644
--- a/package.json
+++ b/package.json
@@ -36,7 +36,7 @@
"karma-sauce-launcher": "0.2.0",
"karma-script-launcher": "0.1.0",
"karma-browserstack-launcher": "0.0.7",
- "protractor": "~0.18.0",
+ "protractor": "~0.19.0",
"yaml-js": "~0.0.8",
"rewire": "1.1.3",
"promises-aplus-tests": "~1.3.2",
diff --git a/protractor-conf.js b/protractor-conf.js
index c21ee68f..9c937c84 100644
--- a/protractor-conf.js
+++ b/protractor-conf.js
@@ -1,32 +1,12 @@
-exports.config = {
- allScriptsTimeout: 11000,
+var config = require('./protractor-shared-conf').config;
- specs: [
- 'build/docs/ptore2e/**/*jqlite_test.js',
- 'test/e2e/docsAppE2E.js'
- ],
+config.specs = [
+ 'build/docs/ptore2e/**/*.js',
+ 'test/e2e/docsAppE2E.js'
+];
- capabilities: {
- 'browserName': 'chrome',
- 'name': 'Angular E2E: jqlite'
- },
-
- baseUrl: 'http://localhost:8000/build/docs/',
-
- framework: 'jasmine',
-
- onPrepare: function() {
- // Disable animations so e2e tests run more quickly
- var disableNgAnimate = function() {
- angular.module('disableNgAnimate', []).run(function($animate) {
- $animate.enabled(false);
- });
- };
-
- browser.addMockModule('disableNgAnimate', disableNgAnimate);
- },
-
- jasmineNodeOpts: {
- defaultTimeoutInterval: 30000
- }
+config.capabilities = {
+ browserName: 'chrome',
};
+
+exports.config = config;
diff --git a/protractor-jquery-conf.js b/protractor-shared-conf.js
index 6b93994b..147bb006 100644
--- a/protractor-jquery-conf.js
+++ b/protractor-shared-conf.js
@@ -1,16 +1,6 @@
exports.config = {
allScriptsTimeout: 11000,
- specs: [
- 'build/docs/ptore2e/**/*jquery_test.js',
- 'test/e2e/docsAppE2E.js'
- ],
-
- capabilities: {
- 'browserName': 'chrome',
- 'name': 'Angular E2E: jquery'
- },
-
baseUrl: 'http://localhost:8000/build/docs/',
framework: 'jasmine',
@@ -24,6 +14,11 @@ exports.config = {
};
browser.addMockModule('disableNgAnimate', disableNgAnimate);
+
+ // Store the name of the browser that's currently being used.
+ browser.getCapabilities().then(function(caps) {
+ browser.params.browser = caps.get('browserName');
+ });
},
jasmineNodeOpts: {
diff --git a/protractor-travis-conf.js b/protractor-travis-conf.js
new file mode 100644
index 00000000..d2d6c21f
--- /dev/null
+++ b/protractor-travis-conf.js
@@ -0,0 +1,25 @@
+var config = require('./protractor-shared-conf').config;
+
+config.sauceUser = process.env.SAUCE_USERNAME;
+config.sauceKey = process.env.SAUCE_ACCESS_KEY;
+
+config.multiCapabilities = [{
+ 'browserName': 'chrome',
+ 'name': 'Angular E2E',
+ 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER,
+ 'build': process.env.TRAVIS_BUILD_NUMBER
+}, {
+ 'browserName': 'firefox',
+ 'name': 'Angular E2E',
+ 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER,
+ 'build': process.env.TRAVIS_BUILD_NUMBER
+}, {
+ browserName: 'safari',
+ 'platform': 'OS X 10.9',
+ 'version': '7',
+ 'name': 'Angular E2E',
+ 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER,
+ 'build': process.env.TRAVIS_BUILD_NUMBER
+}];
+
+exports.config = config;
diff --git a/scripts/travis/build.sh b/scripts/travis/build.sh
index 9a0d268f..34422648 100755
--- a/scripts/travis/build.sh
+++ b/scripts/travis/build.sh
@@ -10,15 +10,13 @@ if [ $JOB = "unit" ]; then
grunt test:promises-aplus
grunt test:unit --browsers SL_Chrome,SL_Safari,SL_Firefox,SL_IE_8,SL_IE_9,SL_IE_10,SL_IE_11 --reporters dots
elif [ $JOB = "e2e" ]; then
- export GRUNT_TARGET="test:protractor"
- if [ $JQVERSION = "jquery" ]; then
- GRUNT_TARGET="test:jq-protractor"
+ export TARGET_SPECS="build/docs/ptore2e/**/*jqlite_test.js"
+ if [ $TEST_TARGET = "jquery" ]; then
+ TARGET_SPECS="build/docs/ptore2e/**/*jquery_test.js"
+ elif [ $TEST_TARGET = "doce2e" ]; then
+ TARGET_SPECS="test/e2e/docsAppE2E.js"
fi
- grunt $GRUNT_TARGET --sauceUser $SAUCE_USERNAME \
- --sauceKey $SAUCE_ACCESS_KEY \
- --capabilities.tunnel-identifier=$TRAVIS_JOB_NUMBER \
- --capabilities.build=$TRAVIS_BUILD_NUMBER \
- --browser=$BROWSER
+ grunt test:travis-protractor --specs "$TARGET_SPECS"
else
echo "Unknown job type. Please set JOB=unit or JOB=e2e-*."
fi