From 93ee6636d367af81f38e37b8e9ba4209f3503a77 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Fri, 31 Jul 2015 14:16:19 +0200 Subject: [PATCH] user profile e2e tests --- e2e/full/user-profile/change-password.e2e.js | 54 +++++++++ .../user-profile/edit-user-profile.e2e.js | 93 ++++++++++++++++ .../user-profile/email-notification.e2e.js | 41 +++++++ e2e/full/user-profile/feedback.e2e.js | 31 ++++++ e2e/full/user-profile/user-profile.e2e.js | 105 ++++++++++++++++++ e2e/upload-image-test.png | Bin 0 -> 10357 bytes e2e/utils/common.js | 25 ++++- e2e/utils/notifications.js | 2 +- 8 files changed, 349 insertions(+), 2 deletions(-) create mode 100644 e2e/full/user-profile/change-password.e2e.js create mode 100644 e2e/full/user-profile/edit-user-profile.e2e.js create mode 100644 e2e/full/user-profile/email-notification.e2e.js create mode 100644 e2e/full/user-profile/feedback.e2e.js create mode 100644 e2e/full/user-profile/user-profile.e2e.js create mode 100644 e2e/upload-image-test.png diff --git a/e2e/full/user-profile/change-password.e2e.js b/e2e/full/user-profile/change-password.e2e.js new file mode 100644 index 00000000..5c2d41a6 --- /dev/null +++ b/e2e/full/user-profile/change-password.e2e.js @@ -0,0 +1,54 @@ +var utils = require('../../utils'); + +var chai = require('chai'); +var chaiAsPromised = require('chai-as-promised'); + +chai.use(chaiAsPromised); +var expect = chai.expect; + +describe('change password', function() { + before(async function(){ + browser.get('http://localhost:9001/user-settings/user-change-password'); + + await utils.common.waitLoader(); + + utils.common.takeScreenshot('edit-user-profile', 'change-password'); + }); + + it('retype different', async function() { + await $('#current-password').sendKeys('123123'); + await $('#new-password').sendKeys('123456'); + await $('#retype-password').sendKeys('000'); + + $('button[type="submit"]').click(); + + expect(utils.notifications.error.open()).to.be.eventually.equal(true); + }); + + it('incorrect current password', async function() { + await $('#current-password').sendKeys('aaaa'); + await $('#new-password').sendKeys('123456'); + await $('#retype-password').sendKeys('123456'); + + $('button[type="submit"]').click(); + + expect(utils.notifications.error.open()).to.be.eventually.equal(true); + }); + + it('change password', async function() { + await $('#current-password').sendKeys('123123'); + await $('#new-password').sendKeys('aaabbb'); + await $('#retype-password').sendKeys('aaabbb'); + + $('button[type="submit"]').click(); + + expect(utils.notifications.success.open()).to.be.eventually.equal(true); + + //restore + await $('#current-password').sendKeys('aaabbb'); + await $('#new-password').sendKeys('123123'); + await $('#retype-password').sendKeys('123123'); + + $('button[type="submit"]').click(); + }); +}); diff --git a/e2e/full/user-profile/edit-user-profile.e2e.js b/e2e/full/user-profile/edit-user-profile.e2e.js new file mode 100644 index 00000000..1c85bee9 --- /dev/null +++ b/e2e/full/user-profile/edit-user-profile.e2e.js @@ -0,0 +1,93 @@ +var utils = require('../../utils'); + +var chai = require('chai'); +var chaiAsPromised = require('chai-as-promised'); + +chai.use(chaiAsPromised); +var expect = chai.expect; + +describe('edit user profile', function() { + before(async function(){ + browser.get('http://localhost:9001/user-settings/user-profile'); + + await utils.common.waitLoader(); + + utils.common.takeScreenshot('edit-user-profile', 'edit-user-profile'); + }); + + it('edit fullname', async function() { + $('#full-name').clear().sendKeys('admin-' + Date.now()); + + $('button[type="submit"]').click(); + + expect(utils.notifications.success.open()).to.be.eventually.equal(true); + + // debounce :( + await browser.sleep(2000); + }); + + it('update email', async function() { + let email = $('#email'); + + await email.clear().sendKeys('admin+1@admin.com'); + + $('button[type="submit"]').click(); + + let lb = $('.lightbox-generic-success'); + + await utils.lightbox.open(lb); + + lb.$('.button-green').click(); + + await utils.lightbox.close(lb); + }); + + it('edit avatar', async function() { + let inputFile = $('#avatar-field'); + + let imageContainer = $('.image-container'); + + let htmlChanges = await utils.common.outerHtmlChanges(imageContainer); + + await utils.common.uploadFile(inputFile, './upload-image-test.png'); + + await htmlChanges(); + + let avatar = imageContainer.$('.avatar'); + + let src = await avatar.getAttribute('src'); + + expect(src).to.contains('upload-image-test.png'); + }); + + it('edit lenguage', async function() { + // english + $('#lang option:nth-child(4)').click(); + $('button[type="submit"]').click(); + + await utils.notifications.success.open(); + + //debounce + browser.sleep(2000); + + let pageTitle = await $('h1 span').getText(); + let lang = $('#lang option:nth-child(2)').click(); + + $('button[type="submit"]').click(); + + await utils.notifications.success.open(); + + let newPageTitle = await $('h1 span').getText(); + + expect(newPageTitle).to.be.not.equal(pageTitle); + + //debounce + browser.sleep(2000); + + // revert english + $('#lang option:nth-child(4)').click(); + $('button[type="submit"]').click(); + + await utils.notifications.success.open(); + }); +}); diff --git a/e2e/full/user-profile/email-notification.e2e.js b/e2e/full/user-profile/email-notification.e2e.js new file mode 100644 index 00000000..d565a580 --- /dev/null +++ b/e2e/full/user-profile/email-notification.e2e.js @@ -0,0 +1,41 @@ +var utils = require('../../utils'); + +var chai = require('chai'); +var chaiAsPromised = require('chai-as-promised'); + +chai.use(chaiAsPromised); +var expect = chai.expect; + +describe.only('email notification', function() { + before(async function(){ + browser.get('http://localhost:9001/user-settings/mail-notifications'); + + await utils.common.waitLoader(); + + utils.common.takeScreenshot('edit-user-profile', 'mail-notifications'); + }); + + it('change project notification to all', async function() { + let row = $$('.policy-table-row').get(1); + + row.$$('label').get(0).click(); + + expect(utils.notifications.success.open()).to.be.eventually.equal(true); + }); + + it('change project notification to no', async function() { + let row = $$('.policy-table-row').get(1); + + row.$$('label').get(2).click(); + + expect(utils.notifications.success.open()).to.be.eventually.equal(true); + }); + + it('change project notification to only', async function() { + let row = $$('.policy-table-row').get(1); + + row.$$('label').get(1).click(); + + expect(utils.notifications.success.open()).to.be.eventually.equal(true); + }); +}); diff --git a/e2e/full/user-profile/feedback.e2e.js b/e2e/full/user-profile/feedback.e2e.js new file mode 100644 index 00000000..a838ded0 --- /dev/null +++ b/e2e/full/user-profile/feedback.e2e.js @@ -0,0 +1,31 @@ +var utils = require('../../utils'); + +var chai = require('chai'); +var chaiAsPromised = require('chai-as-promised'); + +chai.use(chaiAsPromised); +var expect = chai.expect; + +describe('feedback', function() { + before(async function(){ + browser.get('http://localhost:9001/user-settings/mail-notifications'); + + await utils.common.waitLoader(); + + utils.common.takeScreenshot('edit-user-profile', 'mail-notifications'); + }); + + it('change project notification to all', async function() { + await utils.common.topMenuOption(4); + + let feedbackLightbox = $('div[tg-lb-feedback]'); + + await utils.lightbox.open(feedbackLightbox); + + await feedbackLightbox.$('textarea').sendKeys('test test test'); + + feedbackLightbox.$('button[type=submit]').click(); + + expect(utils.notifications.success.open()).to.be.eventually.equal(true); + }); +}); diff --git a/e2e/full/user-profile/user-profile.e2e.js b/e2e/full/user-profile/user-profile.e2e.js new file mode 100644 index 00000000..8ae0d4f7 --- /dev/null +++ b/e2e/full/user-profile/user-profile.e2e.js @@ -0,0 +1,105 @@ +var utils = require('../../utils'); + +var chai = require('chai'); +var chaiAsPromised = require('chai-as-promised'); + +chai.use(chaiAsPromised); +var expect = chai.expect; + +describe('user profile', function() { + describe('current user', function() { + before(async function(){ + browser.get('http://localhost:9001/profile'); + + await utils.common.waitLoader(); + + utils.common.takeScreenshot('user-profile', 'current-user-activity'); + }); + + it('activity tab pagination', async function() { + let startTotal = await $$('div[tg-user-timeline-item]').count(); + + await browser.executeScript('window.scrollTo(0,document.body.scrollHeight)'); + await browser.waitForAngular(); + + let endTotal = await $$('div[tg-user-timeline-item]').count(); + + let hasMoreItems = startTotal < endTotal; + + expect(hasMoreItems).to.be.equal(true); + }); + + it('conctacts tab', async function() { + $$('.tab').get(1).click(); + + browser.waitForAngular(); + + utils.common.takeScreenshot('user-profile', 'current-user-contacts'); + + let contactsCount = await $$('.profile-contact-single').count(); + + expect(contactsCount).to.be.above(0); + }); + + it('edit profile hover', async function() { + let userImage = $('.profile-image-wrapper'); + + await browser.actions().mouseMove(userImage).perform(); + + let profileEdition = userImage.$('.profile-edition'); + + await utils.common.waitTransitionTime(profileEdition); + + utils.common.takeScreenshot('user-profile', 'image-hover'); + + expect(profileEdition.isDisplayed()).to.be.eventually.true; + }); + }); + + describe('other user', function() { + before(async function(){ + browser.get('http://localhost:9001/profile/user7'); + + await utils.common.waitLoader(); + + utils.common.takeScreenshot('user-profile', 'other-user-activity'); + }); + + it('activity tab pagination', async function() { + let startTotal = await $$('div[tg-user-timeline-item]').count(); + + await browser.executeScript('window.scrollTo(0,document.body.scrollHeight)'); + await browser.waitForAngular(); + + let endTotal = await $$('div[tg-user-timeline-item]').count(); + + let hasMoreItems = startTotal < endTotal; + + expect(hasMoreItems).to.be.equal(true); + }); + + it('projects tab', async function() { + $$('.tab').get(1).click(); + + browser.waitForAngular(); + + utils.common.takeScreenshot('user-profile', 'other-user-projects'); + + let projectsCount = await $$('.project-list-single').count(); + + expect(projectsCount).to.be.above(0); + }); + + it('conctacts tab', async function() { + $$('.tab').get(2).click(); + + browser.waitForAngular(); + + utils.common.takeScreenshot('user-profile', 'other-user-contacts'); + + let contactsCount = await $$('.profile-contact-single').count(); + + expect(contactsCount).to.be.above(0); + }); + }); +}); diff --git a/e2e/upload-image-test.png b/e2e/upload-image-test.png new file mode 100644 index 0000000000000000000000000000000000000000..1ddfe333f058d6a386f43d7550c708716b840dc8 GIT binary patch literal 10357 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 literal 0 HcmV?d00001 diff --git a/e2e/utils/common.js b/e2e/utils/common.js index c75f3995..b95366a1 100644 --- a/e2e/utils/common.js +++ b/e2e/utils/common.js @@ -2,6 +2,7 @@ var common = module.exports; var fs = require('fs'); var uuid = require('node-uuid'); +var path = require('path'); common.hasClass = async function (element, cls) { let classes = await element.getAttribute('class'); @@ -158,10 +159,12 @@ common.waitTransitionTime = async function(el) { } let transition = await el.getCssValue('transition-duration'); + let transitionDelay = await el.getCssValue('transition-delay'); let time = parseFloat(transition.replace('s', '')) * 1000; + let timeDelay = parseFloat(transitionDelay.replace('s', '')) * 1000; - return browser.sleep(time); + return browser.sleep(time + timeDelay); }; common.waitRequestAnimationFrame = function() { @@ -254,6 +257,26 @@ common.goToFirstIssue = async function() { await common.waitLoader(); }; +common.uploadFile = async function(inputFile, filePath) { + let toggleInput = function() { + $(arguments[0]).toggle(); + }; + + let absolutePath = path.resolve(process.cwd(), 'e2e', filePath); + + await browser.executeScript(toggleInput, inputFile.getWebElement()); + await inputFile.sendKeys(absolutePath); + await browser.executeScript(toggleInput, inputFile.getWebElement()); +}; + +common.topMenuOption = async function(option) { + let menu = $('div[tg-dropdown-user]'); + + await browser.actions().mouseMove(menu).perform(); + + return menu.$$('li').get(option).click(); +}; + common.goToBacklog = async function() { await common.link($('#nav-backlog a')); diff --git a/e2e/utils/notifications.js b/e2e/utils/notifications.js index 75483bd6..fd671260 100644 --- a/e2e/utils/notifications.js +++ b/e2e/utils/notifications.js @@ -1,4 +1,4 @@ -var common = require('./common') +var common = require('./common'); var notifications = module.exports;