diff options
| -rw-r--r-- | src/ng/browser.js | 1 | ||||
| -rw-r--r-- | test/ng/browserSpecs.js | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/ng/browser.js b/src/ng/browser.js index 864c972c..39253483 100644 --- a/src/ng/browser.js +++ b/src/ng/browser.js @@ -149,6 +149,7 @@ function Browser(window, document, $log, $sniffer) { self.url = function(url, replace) { // setter if (url) { + if (lastBrowserUrl == url) return; lastBrowserUrl = url; if ($sniffer.history) { if (replace) history.replaceState(null, '', url); diff --git a/test/ng/browserSpecs.js b/test/ng/browserSpecs.js index 55b8167c..3f28c605 100644 --- a/test/ng/browserSpecs.js +++ b/test/ng/browserSpecs.js @@ -468,6 +468,14 @@ describe('browser', function() { fakeWindow.location.href = "http://ff-bug/?single%27quote"; expect(browser.url()).toBe("http://ff-bug/?single'quote"); }); + + it('should not set URL when the URL is already set', function() { + var current = fakeWindow.location.href; + sniffer.history = false; + fakeWindow.location.href = 'dontchange'; + browser.url(current); + expect(fakeWindow.location.href).toBe('dontchange'); + }); }); describe('urlChange', function() { |
