mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-04-07 16:40:59 +00:00
fix($location): don't rewrite links to different base paths
links to different base paths should not be left untouched
This commit is contained in:
parent
7c430c5ed0
commit
0a5050eb3c
2 changed files with 85 additions and 0 deletions
|
|
@ -503,6 +503,9 @@ function $LocationProvider(){
|
|||
var href = elm.attr('href');
|
||||
if (!href || isDefined(elm.attr('ng-ext-link')) || elm.attr('target')) return;
|
||||
|
||||
// link to different base path
|
||||
if (href[0] === '/' && href.indexOf(pathPrefix) !== 0) return;
|
||||
|
||||
// remove same domain from full url links (IE7 always returns full hrefs)
|
||||
href = href.replace(absUrlPrefix, '');
|
||||
|
||||
|
|
|
|||
|
|
@ -864,6 +864,88 @@ describe('$location', function() {
|
|||
});
|
||||
|
||||
|
||||
it('should not rewrite when link to different base path when history enabled on new browser',
|
||||
function() {
|
||||
configureService('/other_base/link', true, true);
|
||||
inject(
|
||||
initBrowser(),
|
||||
initLocation(),
|
||||
function($browser) {
|
||||
browserTrigger(link, 'click');
|
||||
expectNoRewrite($browser);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
it('should not rewrite when link to different base path when history enabled on old browser',
|
||||
function() {
|
||||
configureService('/other_base/link', true, false);
|
||||
inject(
|
||||
initBrowser(),
|
||||
initLocation(),
|
||||
function($browser) {
|
||||
browserTrigger(link, 'click');
|
||||
expectNoRewrite($browser);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
it('should not rewrite when link to different base path when history disabled', function() {
|
||||
configureService('/other_base/link', false);
|
||||
inject(
|
||||
initBrowser(),
|
||||
initLocation(),
|
||||
function($browser) {
|
||||
browserTrigger(link, 'click');
|
||||
expectNoRewrite($browser);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
it('should not rewrite when full link to different base path when history enabled on new browser',
|
||||
function() {
|
||||
configureService('http://host.com/other_base/link', true, true);
|
||||
inject(
|
||||
initBrowser(),
|
||||
initLocation(),
|
||||
function($browser) {
|
||||
browserTrigger(link, 'click');
|
||||
expectNoRewrite($browser);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
it('should not rewrite when full link to different base path when history enabled on old browser',
|
||||
function() {
|
||||
configureService('http://host.com/other_base/link', true, false);
|
||||
inject(
|
||||
initBrowser(),
|
||||
initLocation(),
|
||||
function($browser) {
|
||||
browserTrigger(link, 'click');
|
||||
expectNoRewrite($browser);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
it('should not rewrite when full link to different base path when history disabled', function() {
|
||||
configureService('http://host.com/other_base/link', false);
|
||||
inject(
|
||||
initBrowser(),
|
||||
initLocation(),
|
||||
function($browser) {
|
||||
browserTrigger(link, 'click');
|
||||
expectNoRewrite($browser);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
// don't run next tests on IE<9, as browserTrigger does not simulate pressed keys
|
||||
if (!(msie < 9)) {
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue