From 4f5b6415800b983cd6962010e3811654eb28a57f Mon Sep 17 00:00:00 2001 From: LeeDr Date: Mon, 21 Dec 2015 17:39:27 -0600 Subject: [PATCH] Rename test:ui to test:browser so will run on Jenkins. Fixes #5750 --- tasks/test.js | 3 ++- test/support/pages/Common.js | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/tasks/test.js b/tasks/test.js index 8d3170d327b2..d17597f1b168 100644 --- a/tasks/test.js +++ b/tasks/test.js @@ -15,7 +15,8 @@ module.exports = function (grunt) { 'karma:dev' ]); - grunt.registerTask('test:ui', [ + // test:ui temporarily renamed + grunt.registerTask('test:browser', [ 'esvm:ui', 'run:testUIServer', 'downloadSelenium', diff --git a/test/support/pages/Common.js b/test/support/pages/Common.js index 009cfa38997d..a0ba90c1e7b0 100644 --- a/test/support/pages/Common.js +++ b/test/support/pages/Common.js @@ -6,12 +6,46 @@ define(function (require) { var testSubjSelector = require('intern/dojo/node!@spalger/test-subj-selector'); var getUrl = require('intern/dojo/node!../../utils/getUrl'); var fs = require('intern/dojo/node!fs'); + var _ = require('intern/dojo/node!lodash'); + var parse = require('intern/dojo/node!url').parse; + var format = require('intern/dojo/node!url').format; var path = require('intern/dojo/node!path'); + function injectTimestampQuery(func, url) { + var formatted = modifyQueryString(url, function (parsed) { + parsed.query._t = Date.now(); + }); + return func.call(this, formatted); + } + + function removeTimestampQuery(func) { + return func.call(this) + .then(function (url) { + return modifyQueryString(url, function (parsed) { + parsed.query = _.omit(parsed.query, '_t'); + }); + }); + } + + function modifyQueryString(url, func) { + var parsed = parse(url, true); + if (parsed.query === null) { + parsed.query = {}; + } + func(parsed); + return format(_.pick(parsed, 'protocol', 'hostname', 'port', 'pathname', 'query', 'hash', 'auth')); + } + function Common(remote) { this.remote = remote; + if (remote.get.wrapper !== injectTimestampQuery) { + this.remote.get = _.wrap(this.remote.get, injectTimestampQuery); + remote.get.wrapper = injectTimestampQuery; + this.remote.getCurrentUrl = _.wrap(this.remote.getCurrentUrl, removeTimestampQuery); + } } + var defaultTimeout = config.timeouts.default; Common.prototype = {