Skip to content
This repository has been archived by the owner on Apr 12, 2024. It is now read-only.

Commit

Permalink
fix(e2eRunner): $browser.location should delegate to apps $location
Browse files Browse the repository at this point in the history
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
  • Loading branch information
IgorMinar committed Apr 12, 2012
1 parent c4f6ccb commit df72852
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 23 deletions.
3 changes: 1 addition & 2 deletions src/ngScenario/Application.js
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand Down
8 changes: 4 additions & 4 deletions src/ngScenario/dsl.js
Original file line number Diff line number Diff line change
Expand Up @@ -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());
});
};

Expand Down
25 changes: 8 additions & 17 deletions test/ngScenario/dslSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down

0 comments on commit df72852

Please sign in to comment.