diff options
| author | Igor Minar | 2012-04-12 02:15:36 -0700 |
|---|---|---|
| committer | Igor Minar | 2012-04-12 02:36:03 -0700 |
| commit | df72852f3496d7640bb4f70837338e464b7ed69f (patch) | |
| tree | 29ec837b702e97938d3ea2d8a225dbb54a93b003 | |
| parent | c4f6ccb0658cb723c6e9704cf7fcf1bc72b2ae99 (diff) | |
| download | angular.js-df72852f3496d7640bb4f70837338e464b7ed69f.tar.bz2 | |
fix(e2eRunner): $browser.location should delegate to apps $location
previously it would create a new instance which wasn't configured as the one in the app,
which resulted in incorrect values being returned in html5 mode with base url set
| -rw-r--r-- | src/ngScenario/Application.js | 3 | ||||
| -rw-r--r-- | src/ngScenario/dsl.js | 8 | ||||
| -rw-r--r-- | test/ngScenario/dslSpec.js | 25 |
3 files changed, 13 insertions, 23 deletions
diff --git a/src/ngScenario/Application.js b/src/ngScenario/Application.js index d3a70569..1fdf3eb8 100644 --- a/src/ngScenario/Application.js +++ b/src/ngScenario/Application.js @@ -91,8 +91,7 @@ angular.scenario.Application.prototype.executeAction = function(action) { return action.call(this, $window, _jQuery($window.document)); } angularInit($window.document, function(element) { - element = $window.angular.element(element); - var $injector = element.inheritedData('$injector'); + var $injector = $window.angular.element(element).injector(); $injector.invoke(function($browser){ $browser.notifyWhenNoOutstandingRequests(function() { action.call(self, $window, _jQuery($window.document)); diff --git a/src/ngScenario/dsl.js b/src/ngScenario/dsl.js index 7ca33a26..6f3a3c73 100644 --- a/src/ngScenario/dsl.js +++ b/src/ngScenario/dsl.js @@ -103,25 +103,25 @@ angular.scenario.dsl('browser', function() { api.url = function() { return this.addFutureAction('$location.url()', function($window, $document, done) { - done(null, $window.angular.injector(['ng']).get('$location').url()); + done(null, $window.angular.element($window.document).injector().get('$location').url()); }); }; api.path = function() { return this.addFutureAction('$location.path()', function($window, $document, done) { - done(null, $window.angular.injector(['ng']).get('$location').path()); + done(null, $window.angular.element($window.document).injector().get('$location').path()); }); }; api.search = function() { return this.addFutureAction('$location.search()', function($window, $document, done) { - done(null, $window.angular.injector(['ng']).get('$location').search()); + done(null, $window.angular.element($window.document).injector().get('$location').search()); }); }; api.hash = function() { return this.addFutureAction('$location.hash()', function($window, $document, done) { - done(null, $window.angular.injector(['ng']).get('$location').hash()); + done(null, $window.angular.element($window.document).injector().get('$location').hash()); }); }; diff --git a/test/ngScenario/dslSpec.js b/test/ngScenario/dslSpec.js index fee5c3b5..eef8c907 100644 --- a/test/ngScenario/dslSpec.js +++ b/test/ngScenario/dslSpec.js @@ -168,23 +168,14 @@ describe("angular.scenario.dsl", function() { }); describe('location', function() { - beforeEach(function() { - $window.angular.injector = function() { - return { - get: function(serviceId) { - if (serviceId == '$location') { - return { - url: function() {return '/path?search=a#hhh';}, - path: function() {return '/path';}, - search: function() {return {search: 'a'};}, - hash: function() {return 'hhh';} - }; - } - throw new Error('unknown service id ' + serviceId); - } - }; - }; - }); + beforeEach(inject(function($injector) { + angular.extend($injector.get('$location'), { + url: function() {return '/path?search=a#hhh';}, + path: function() {return '/path';}, + search: function() {return {search: 'a'};}, + hash: function() {return 'hhh';} + }); + })); it('should return full url', function() { $root.dsl.browser().location().url(); |
