summary refs log tree commit diff
path: root/webclient/test/protractor.conf.js
diff options
context:
space:
mode:
authorKegan Dougal <kegan@matrix.org>2014-09-22 16:50:12 +0100
committerKegan Dougal <kegan@matrix.org>2014-09-22 16:50:12 +0100
commit95acf63ea38eae6762fb8c7d3ac672661f711dfd (patch)
tree8b7c71d8e3bcbd66c029c4458eb5a28d35333fd7 /webclient/test/protractor.conf.js
parentSet required environment variables for e2e testing. (diff)
downloadsynapse-95acf63ea38eae6762fb8c7d3ac672661f711dfd.tar.xz
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.
Diffstat (limited to 'webclient/test/protractor.conf.js')
-rw-r--r--webclient/test/protractor.conf.js9
1 files changed, 8 insertions, 1 deletions
diff --git a/webclient/test/protractor.conf.js b/webclient/test/protractor.conf.js
index 720096b390..76ae7b712b 100644
--- a/webclient/test/protractor.conf.js
+++ b/webclient/test/protractor.conf.js
@@ -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))
+            });
+        });
     }
 }