forked from MirrorHub/synapse
Add working protractor e2e test.
This uses the ignoreSynchronization flag because of the longpoll on the event stream. It would be better to use $interval, but couldn't get that to *reliably* work when testing. I suspect that $interval won't help us here, since there is genuinely an open $http connection, as we're doing a long poll. https://github.com/angular/protractor/issues/49 for more info.
This commit is contained in:
parent
90f5eb1270
commit
95acf63ea3
4 changed files with 26 additions and 8 deletions
|
@ -18,7 +18,7 @@ on. If you do, edit the config to point to that url):
|
|||
Create a file "environment-protractor.js" in this directory and type:
|
||||
module.exports = {
|
||||
seleniumAddress: 'http://localhost:4444/wd/hub',
|
||||
loginUrl: "http://localhost:8008/_matrix/client/#/login",
|
||||
baseUrl: "http://localhost:8008",
|
||||
username: "YOUR_TEST_USERNAME",
|
||||
password: "YOUR_TEST_PASSWORD"
|
||||
}
|
||||
|
@ -26,6 +26,7 @@ on. If you do, edit the config to point to that url):
|
|||
Running e2e tests:
|
||||
protractor protractor.conf.js
|
||||
|
||||
NOTE: This will create a public room on the target home server.
|
||||
|
||||
|
||||
|
||||
|
|
16
webclient/test/e2e/home.spec.js
Normal file
16
webclient/test/e2e/home.spec.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
var env = require("../environment-protractor.js");
|
||||
|
||||
describe("home page", function() {
|
||||
|
||||
beforeEach(function() {
|
||||
ptor = protractor.getInstance();
|
||||
// FIXME we use longpoll on the event stream, and I can't get $interval
|
||||
// playing nicely with it. Patches welcome to fix this.
|
||||
ptor.ignoreSynchronization = true;
|
||||
});
|
||||
|
||||
it("should have a title", function() {
|
||||
browser.get(env.baseUrl);
|
||||
expect(browser.getTitle()).toEqual("[matrix]");
|
||||
});
|
||||
});
|
|
@ -1,6 +0,0 @@
|
|||
describe("user page", function() {
|
||||
it("should have a title", function() {
|
||||
browser.get("http://matrix.org/alpha/#/login");
|
||||
expect(browser.getTitle()).toEqual("[matrix]");
|
||||
});
|
||||
});
|
|
@ -3,9 +3,16 @@ exports.config = {
|
|||
seleniumAddress: env.seleniumAddress,
|
||||
specs: ['e2e/*.spec.js'],
|
||||
onPrepare: function() {
|
||||
browser.driver.get(env.loginUrl);
|
||||
browser.driver.get(env.baseUrl);
|
||||
browser.driver.findElement(by.id("user_id")).sendKeys(env.username);
|
||||
browser.driver.findElement(by.id("password")).sendKeys(env.password);
|
||||
browser.driver.findElement(by.id("login")).click();
|
||||
|
||||
// wait till the login is done, detect via url change
|
||||
browser.driver.wait(function() {
|
||||
return browser.driver.getCurrentUrl().then(function(url) {
|
||||
return !(/login/.test(url))
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue