diff --git a/assets/javascripts/spec/vendor/jasmine.js b/assets/javascripts/spec/vendor/jasmine.js index 79d1d4f4..d95a902a 100644 --- a/assets/javascripts/spec/vendor/jasmine.js +++ b/assets/javascripts/spec/vendor/jasmine.js @@ -712,8 +712,36 @@ jasmine.Env = function() { this.updateInterval = jasmine.DEFAULT_UPDATE_INTERVAL; this.defaultTimeoutInterval = jasmine.DEFAULT_TIMEOUT_INTERVAL; this.lastUpdate = 0; - this.specFilter = function() { - return true; + + function focusedSpecName() { + var specName; + + (function memoizeFocusedSpec() { + if (specName) { + return; + } + + var paramMap = []; + var params = window.cachedSearch.substring(1).split('&'); + + for (var i = 0; i < params.length; i++) { + var p = params[i].split('='); + paramMap[decodeURIComponent(p[0])] = decodeURIComponent(p[1]); + } + + specName = paramMap.spec; + })(); + + if(specName) + specName = specName.replace(/%20/g, ' '); + + return specName; + } + + this.specFilter = function(spec) { + if(!focusedSpecName()) return true; + + return spec.getFullName().indexOf(focusedSpecName()) === 0; }; this.nextSpecId_ = 0; diff --git a/public/javascripts/specs/vendor.js b/public/javascripts/specs/vendor.js index a8b56b56..4cd6aab9 100644 --- a/public/javascripts/specs/vendor.js +++ b/public/javascripts/specs/vendor.js @@ -712,8 +712,36 @@ jasmine.Env = function() { this.updateInterval = jasmine.DEFAULT_UPDATE_INTERVAL; this.defaultTimeoutInterval = jasmine.DEFAULT_TIMEOUT_INTERVAL; this.lastUpdate = 0; - this.specFilter = function() { - return true; + + function focusedSpecName() { + var specName; + + (function memoizeFocusedSpec() { + if (specName) { + return; + } + + var paramMap = []; + var params = window.cachedSearch.substring(1).split('&'); + + for (var i = 0; i < params.length; i++) { + var p = params[i].split('='); + paramMap[decodeURIComponent(p[0])] = decodeURIComponent(p[1]); + } + + specName = paramMap.spec; + })(); + + if(specName) + specName = specName.replace(/%20/g, ' '); + + return specName; + } + + this.specFilter = function(spec) { + if(!focusedSpecName()) return true; + + return spec.getFullName().indexOf(focusedSpecName()) === 0; }; this.nextSpecId_ = 0; diff --git a/public/spec.html b/public/spec.html index 9c3cf218..aef94d21 100644 --- a/public/spec.html +++ b/public/spec.html @@ -13,6 +13,7 @@