From 2c67ca02926d120446005031dbcc759dce13d494 Mon Sep 17 00:00:00 2001 From: liabru Date: Tue, 10 Nov 2015 20:01:22 +0000 Subject: [PATCH] replace browserstack tunnel with ngrok --- gulpfile.js | 81 ++++++++++++++++++++++--------------- package.json | 1 + test/conf/cloud-all.conf.js | 4 +- test/conf/cloud.conf.js | 4 +- test/conf/local.conf.js | 3 +- 5 files changed, 52 insertions(+), 41 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 23f5a79..b13eb76 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -15,7 +15,7 @@ var replace = require('gulp-replace'); var webdriver = require('gulp-webdriver'); var webserver = require('gulp-webserver'); var selenium = require('selenium-standalone'); -var browserStack = require('gulp-browserstack'); +var ngrok = require('ngrok'); var staticTransform = require('connect-static-transform'); var privateConfig = require('./test/conf/private.conf.js').config; var pkg = require('./package.json'); @@ -129,48 +129,63 @@ gulp.task('test', ['lint', 'serve', 'selenium'], function(done) { done(error || err); }; + gulp.src('test/conf/local.conf.js') - .pipe(webdriver()) + .pipe(webdriver({ + baseUrl: 'http://localhost:8000' + })) .on('error', function(err) { error = err; }) .on('finish', finish); }); gulp.task('test:cloud', ['lint', 'serve'], function(done) { - gulp.src('test/conf/cloud.conf.js') - .pipe(browserStack.startTunnel({ - key: privateConfig.key, - hosts: [{ - name: 'localhost', - port: 8000, - sslFlag: 0 - }] - })) - .pipe(webdriver()) - .pipe(browserStack.stopTunnel()) - .on('finish', function(err) { - if (server) { - try { - server.emit('kill'); - } catch(e) {} - console.log('Web server stopped'); - } - done(err); + ngrok.connect({ + authtoken: null, + port: 8000 + }, function (err, url) { + gutil.log('Tunnel started', url); + gulp.src('test/conf/cloud.conf.js') + .pipe(webdriver({ + baseUrl: url + })) + .on('finish', function(err) { + if (server) { + try { + server.emit('kill'); + } catch(e) {} + ngrok.disconnect(); + ngrok.kill(); + gutil.log('Tunnel stopped'); + gutil.log('Web server stopped'); + } + done(err); + }); }); }); gulp.task('test:cloud:all', ['lint', 'serve'], function(done) { - return gulp - .src('test/conf/cloud-all.conf.js') - .pipe(browserStack.startTunnel({ - key: privateConfig.key, - hosts: [{ - name: 'localhost', - port: 8000, - sslFlag: 0 - }] - })) - .pipe(webdriver()) - .pipe(browserStack.stopTunnel()); + ngrok.connect({ + authtoken: null, + port: 8000 + }, function (err, url) { + gutil.log('Tunnel started', url); + gulp.src('test/conf/cloud-all.conf.js') + .pipe(webdriver({ + baseUrl: url + })) + .on('finish', function(err) { + if (server) { + try { + server.emit('kill'); + } catch(e) {} + ngrok.disconnect(); + ngrok.kill(); + gutil.log('Tunnel stopped'); + gutil.log('Web server stopped'); + } + done(err); + }); + }); }); var banner = [ diff --git a/package.json b/package.json index dd26089..c50588d 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "gulp-webdriver": "^1.0.1", "gulp-webserver": "^0.9.1", "jasmine": "^2.3.2", + "ngrok": "^0.1.99", "run-sequence": "^1.1.4", "selenium-standalone": "^4.7.0", "webdriverio": "^3.2.5" diff --git a/test/conf/cloud-all.conf.js b/test/conf/cloud-all.conf.js index cd58ae8..e1c2216 100644 --- a/test/conf/cloud-all.conf.js +++ b/test/conf/cloud-all.conf.js @@ -1,6 +1,6 @@ var privateConfig = require('./private.conf.js').config; -var testUrl = 'http://localhost:8000/test/page/test.html', +var testUrl = '/test/page/test.html', viewports = [[1280, 1024], [640, 480], [320, 640]]; var capabilities = [ @@ -145,9 +145,7 @@ var capabilities = [ for (var i = 0; i < capabilities.length; i += 1) { var capability = capabilities[i]; - capability['browserstack.local'] = true; capability['browserstack.debug'] = true; - capability['initialBrowserUrl'] = testUrl; capability['urls'] = capability['urls'] || [testUrl]; if (!capability['deviceOrientation']) { diff --git a/test/conf/cloud.conf.js b/test/conf/cloud.conf.js index 91d94d3..6bf4699 100644 --- a/test/conf/cloud.conf.js +++ b/test/conf/cloud.conf.js @@ -1,6 +1,6 @@ var privateConfig = require('./private.conf.js').config; -var testUrl = 'http://localhost:8000/test/page/test.html', +var testUrl = '/test/page/test.html', viewports = [[1280, 1024], [640, 480], [320, 640]]; var capabilities = [ @@ -39,9 +39,7 @@ var capabilities = [ for (var i = 0; i < capabilities.length; i += 1) { var capability = capabilities[i]; - capability['browserstack.local'] = true; capability['browserstack.debug'] = true; - capability['initialBrowserUrl'] = testUrl; capability['urls'] = capability['urls'] || [testUrl]; if (!capability['deviceOrientation']) { diff --git a/test/conf/local.conf.js b/test/conf/local.conf.js index 6ca9580..d6c5352 100644 --- a/test/conf/local.conf.js +++ b/test/conf/local.conf.js @@ -1,4 +1,4 @@ -var testUrl = 'http://localhost:8000/test/page/test.html', +var testUrl = '/test/page/test.html', viewports = [[1280, 1024], [640, 480], [320, 640]]; var capabilities = [ @@ -21,7 +21,6 @@ var capabilities = [ for (var i = 0; i < capabilities.length; i += 1) { var capability = capabilities[i]; - capability['initialBrowserUrl'] = testUrl; capability['urls'] = capability['urls'] || [testUrl]; capability['viewports'] = capability['viewports'] || viewports; }