Skip to content
Snippets Groups Projects
Commit 95acf63e authored by Kegan Dougal's avatar Kegan Dougal
Browse files

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.
parent 90f5eb12
No related branches found
No related tags found
No related merge requests found
......@@ -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.
......
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]");
});
});
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))
});
});
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment