diff --git a/lib/middleware/source_files.js b/lib/middleware/source_files.js index fc5a12086..4f395756f 100644 --- a/lib/middleware/source_files.js +++ b/lib/middleware/source_files.js @@ -1,11 +1,9 @@ -/** - * Source Files middleware is responsible for serving all the source files under the test. - */ - var from = require('core-js/library/fn/array/from') var querystring = require('querystring') var common = require('./common') var _ = require('../helper')._ +var logger = require('../logger') +var log = logger.create('middlware:source-files') // Files is a Set var findByPath = function (files, path) { @@ -14,9 +12,8 @@ var findByPath = function (files, path) { }) } -var createSourceFilesMiddleware = function (filesPromise, serveFile, - /* config.basePath */ basePath, - /* config.urlRoot */ urlRoot) { +// Source Files middleware is responsible for serving all the source files under the test. +var createSourceFilesMiddleware = function (filesPromise, serveFile, basePath, urlRoot) { return function (request, response, next) { var requestedFilePath = querystring.unescape(request.url) .replace(urlRoot, '/') @@ -26,6 +23,9 @@ var createSourceFilesMiddleware = function (filesPromise, serveFile, request.pause() + log.debug('Requesting %s', request.url, urlRoot) + log.debug('Fetching %s', requestedFilePath) + return filesPromise.then(function (files) { // TODO(vojta): change served to be a map rather then an array var file = findByPath(files.served, requestedFilePath) @@ -49,7 +49,9 @@ var createSourceFilesMiddleware = function (filesPromise, serveFile, } } -createSourceFilesMiddleware.$inject = ['filesPromise', 'serveFile', 'config.basePath'] +createSourceFilesMiddleware.$inject = [ + 'filesPromise', 'serveFile', 'config.basePath', 'config.urlRoot' +] // PUBLIC API exports.create = createSourceFilesMiddleware diff --git a/test/e2e/proxy.feature b/test/e2e/proxy.feature index 48872cf34..1a77b7700 100644 --- a/test/e2e/proxy.feature +++ b/test/e2e/proxy.feature @@ -22,3 +22,24 @@ Feature: Proxying . PhantomJS """ + + Scenario: URLRoot + Given a configuration with: + """ + files = ['proxy/*.js']; + browsers = ['PhantomJS']; + plugins = [ + 'karma-jasmine', + 'karma-phantomjs-launcher' + ]; + urlRoot = '/__karma__'; + proxies = { + '/foo.js': '/base/proxy/foo.js' + } + """ + When I start Karma + Then it passes with: + """ + . + PhantomJS + """