fix(router): respond to hashchange events
Previously if the URL changed in `HashLocation` mode, the router would not pick up the change. This adds a listener in `HashLocationStrategy` for `hashchange` events to fix the problem. Closes #5013
This commit is contained in:
@ -0,0 +1,3 @@
|
||||
library playground.e2e_test.hash_location_spec;
|
||||
|
||||
main() {}
|
@ -0,0 +1,29 @@
|
||||
import {verifyNoBrowserErrors} from 'angular2/src/testing/e2e_util';
|
||||
import {Promise} from 'angular2/src/core/facade/async';
|
||||
|
||||
function waitForElement(selector) {
|
||||
var EC = (<any>protractor).ExpectedConditions;
|
||||
// Waits for the element with id 'abc' to be present on the dom.
|
||||
browser.wait(EC.presenceOf($(selector)), 20000);
|
||||
}
|
||||
|
||||
describe('hash routing example app', function() {
|
||||
afterEach(verifyNoBrowserErrors);
|
||||
|
||||
var URL = 'playground/src/hash_routing/index.html';
|
||||
|
||||
it('should navigate between routes', function() {
|
||||
browser.get(URL + '#/bye');
|
||||
waitForElement('goodbye-cmp');
|
||||
|
||||
element(by.css('#hello-link')).click();
|
||||
waitForElement('hello-cmp');
|
||||
|
||||
expect(element(by.css('hello-cmp')).getText()).toContain('hello');
|
||||
|
||||
browser.navigate().back();
|
||||
waitForElement('goodbye-cmp');
|
||||
|
||||
expect(element(by.css('goodbye-cmp')).getText()).toContain('goodbye');
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user