Unverified Commit 3d277c11 authored by Ray Schamp's avatar Ray Schamp Committed by GitHub

Merge pull request #1626 from jwzimmer/issue/add-signing-out

Issue/add signing out
parents d3719d07 2813218d
...@@ -18,6 +18,10 @@ const clickText = (text) => { ...@@ -18,6 +18,10 @@ const clickText = (text) => {
return clickXpath(`//*[contains(text(), '${text}')]`); return clickXpath(`//*[contains(text(), '${text}')]`);
}; };
const findText = (text) => {
return driver.wait(until.elementLocated(By.xpath(`//*[contains(text(), '${text}')]`), 5 * 1000));
};
const clickButton = (text) => { const clickButton = (text) => {
return clickXpath(`//button[contains(text(), '${text}')]`); return clickXpath(`//button[contains(text(), '${text}')]`);
}; };
...@@ -57,6 +61,7 @@ module.exports = { ...@@ -57,6 +61,7 @@ module.exports = {
clickXpath, clickXpath,
findByXpath, findByXpath,
clickText, clickText,
findText,
clickButton, clickButton,
findByCss, findByCss,
getLogs getLogs
......
/*
* Tests from:
*
* https://github.com/LLK/scratchr2/wiki/Smoke-Testing-Test-Cases
*
*/
const {
clickText,
findByXpath,
findText,
clickXpath,
clickButton,
driver
} = require('../../helpers/selenium-helpers.js');
var username = process.env.SMOKE_USERNAME;
var password = process.env.SMOKE_PASSWORD;
var tap = require('tap');
const test = tap.test;
var rootUrl = process.env.ROOT_URL || 'https://scratch.ly';
var url = rootUrl + '/discuss';
tap.plan(2);
tap.tearDown(function () {
driver.quit();
});
tap.beforeEach(function () {
return driver.get(url);
});
test('Sign in to Scratch using scratchr2 navbar', t => {
clickText('Sign in')
.then(() => findByXpath('//input[@id="login_dropdown_username"]'))
.then((element) => element.sendKeys(username))
.then(() => findByXpath('//input[@name="password"]'))
.then((element) => element.sendKeys(password))
.then(() => clickButton('Sign in'))
.then(() => findByXpath('//li[contains(@class, "logged-in-user")'
+ 'and contains(@class, "dropdown")]/span'))
.then((element) => element.getText('span'))
.then((text) => t.match(text.toLowerCase(), username.substring(0,10).toLowerCase(),
'first part of username should be displayed in navbar'))
.then(() => t.end());
});
test('Sign out of Scratch using scratchr2 navbar', t => {
clickXpath('//span[contains(@class, "user-name")'
+ ' and contains(@class, "dropdown-toggle")]/img[@class="user-icon"]')
.then(() => clickXpath('//input[@value="Sign out"]'))
.then(() => findText('Sign in'))
.then((element) => t.ok(element, 'Sign in reappeared on the page after signing out'))
.then(() => t.end());
});
/* /*
* Tests signing in according to smoke-tests at: * Tests from:
* *
* https://github.com/LLK/scratchr2/wiki/Smoke-Testing-Test-Cases * https://github.com/LLK/scratchr2/wiki/Smoke-Testing-Test-Cases
* *
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
const { const {
clickText, clickText,
findText,
findByXpath, findByXpath,
clickXpath, clickXpath,
driver driver
...@@ -20,7 +21,7 @@ const test = tap.test; ...@@ -20,7 +21,7 @@ const test = tap.test;
var rootUrl = process.env.ROOT_URL || 'https://scratch.ly'; var rootUrl = process.env.ROOT_URL || 'https://scratch.ly';
tap.plan(1); tap.plan(2);
tap.tearDown(function () { tap.tearDown(function () {
driver.quit(); driver.quit();
...@@ -44,3 +45,14 @@ test('Sign in to Scratch using scratch-www navbar', t => { ...@@ -44,3 +45,14 @@ test('Sign in to Scratch using scratch-www navbar', t => {
'first part of username should be displayed in navbar')) 'first part of username should be displayed in navbar'))
.then(() => t.end()); .then(() => t.end());
}); });
test('Sign out of Scratch using scratch-www navbar', t => {
clickXpath('//a[@class="user-info"]')
.then(() => clickText('Sign out'))
.then(() => findText('Sign in'))
.then((element) => t.ok(element, 'Sign in reappeared on the page after signing out'))
.then(() => t.end());
});
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment