aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Minar2012-04-12 02:15:36 -0700
committerIgor Minar2012-04-12 02:36:03 -0700
commitdf72852f3496d7640bb4f70837338e464b7ed69f (patch)
tree29ec837b702e97938d3ea2d8a225dbb54a93b003
parentc4f6ccb0658cb723c6e9704cf7fcf1bc72b2ae99 (diff)
downloadangular.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.js3
-rw-r--r--src/ngScenario/dsl.js8
-rw-r--r--test/ngScenario/dslSpec.js25
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();