Merge pull request #39 from matrix-org/travis/fix-consent

Fix the registration process to handle m.login.terms auth
This commit is contained in:
Bruno Windels 2018-11-05 08:11:02 +00:00 committed by GitHub
commit daa962442a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 6 additions and 61 deletions

View file

@ -17,7 +17,6 @@ limitations under the License.
const {range} = require('./util'); const {range} = require('./util');
const signup = require('./usecases/signup'); const signup = require('./usecases/signup');
const acceptServerNoticesInviteAndConsent = require('./usecases/server-notices-consent');
const roomDirectoryScenarios = require('./scenarios/directory'); const roomDirectoryScenarios = require('./scenarios/directory');
const lazyLoadingScenarios = require('./scenarios/lazy-loading'); const lazyLoadingScenarios = require('./scenarios/lazy-loading');
const e2eEncryptionScenarios = require('./scenarios/e2e-encryption'); const e2eEncryptionScenarios = require('./scenarios/e2e-encryption');
@ -26,7 +25,6 @@ module.exports = async function scenario(createSession, restCreator, runningOnTr
async function createUser(username) { async function createUser(username) {
const session = await createSession(username); const session = await createSession(username);
await signup(session, session.username, 'testtest', session.hsUrl); await signup(session, session.username, 'testtest', session.hsUrl);
await acceptServerNoticesInviteAndConsent(session);
return session; return session;
} }

View file

@ -1,27 +0,0 @@
/*
Copyright 2018 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
const assert = require('assert');
module.exports = async function acceptTerms(session) {
const reviewTermsButton = await session.waitAndQuery('.mx_QuestionDialog button.mx_Dialog_primary');
const termsPagePromise = session.waitForNewPage();
await reviewTermsButton.click();
const termsPage = await termsPagePromise;
const acceptButton = await termsPage.$('input[type=submit]');
await acceptButton.click();
await session.delay(1000); //TODO yuck, timers
}

View file

@ -1,31 +0,0 @@
/*
Copyright 2018 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
const assert = require('assert');
const acceptInvite = require("./accept-invite")
module.exports = async function acceptServerNoticesInviteAndConsent(session) {
await acceptInvite(session, "Server Notices");
session.log.step(`accepts terms & conditions`);
const consentLink = await session.waitAndQuery(".mx_EventTile_body a");
const termsPagePromise = session.waitForNewPage();
await consentLink.click();
const termsPage = await termsPagePromise;
const acceptButton = await termsPage.$('input[type=submit]');
await acceptButton.click();
await session.delay(1000); //TODO yuck, timers
await termsPage.close();
session.log.done();
}

View file

@ -14,7 +14,6 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
const acceptTerms = require('./consent');
const assert = require('assert'); const assert = require('assert');
module.exports = async function signup(session, username, password, homeserver) { module.exports = async function signup(session, username, password, homeserver) {
@ -59,6 +58,12 @@ module.exports = async function signup(session, username, password, homeserver)
//confirm dialog saying you cant log back in without e-mail //confirm dialog saying you cant log back in without e-mail
const continueButton = await session.waitAndQuery('.mx_QuestionDialog button.mx_Dialog_primary'); const continueButton = await session.waitAndQuery('.mx_QuestionDialog button.mx_Dialog_primary');
await continueButton.click(); await continueButton.click();
//find the privacy policy checkbox and check it
//this should automatically move ahead with registration
const policyCheckbox = await session.waitAndQuery('.mx_Login_box input[type="checkbox"]');
await policyCheckbox.click();
//wait for registration to finish so the hash gets set //wait for registration to finish so the hash gets set
//onhashchange better? //onhashchange better?
await session.delay(2000); await session.delay(2000);