From deea3cec699b43fb730705859edbfa83bcacac00 Mon Sep 17 00:00:00 2001 From: Martin Schoeler Date: Mon, 20 Feb 2017 15:26:02 -0300 Subject: [PATCH] added a better way to open the flextab --- .../end-to-end/ui/04-main-elements-render.js | 34 ++++----- tests/end-to-end/ui/09-channel.js | 44 +++++------- tests/end-to-end/ui/10-user-preferences.js | 4 -- tests/pageobjects/flex-tab.page.js | 69 +++++++++++++++++++ 4 files changed, 104 insertions(+), 47 deletions(-) diff --git a/tests/end-to-end/ui/04-main-elements-render.js b/tests/end-to-end/ui/04-main-elements-render.js index 2f114801645..b23a127e042 100644 --- a/tests/end-to-end/ui/04-main-elements-render.js +++ b/tests/end-to-end/ui/04-main-elements-render.js @@ -224,11 +224,11 @@ describe('Main Elements Render', function() { }); describe('Room Info Tab', () => { before(()=> { - flexTab.channelTab.click(); + flexTab.operateFlexTab('info', true); }); after(()=> { - flexTab.channelTab.click(); + flexTab.operateFlexTab('info', false); }); it('should show the room info button', () => { @@ -249,11 +249,11 @@ describe('Main Elements Render', function() { describe('Search Tab', () => { before(()=> { - flexTab.searchTab.click(); + flexTab.operateFlexTab('search', true); }); after(()=> { - flexTab.searchTab.click(); + flexTab.operateFlexTab('search', false); }); it('should show the message search button', () => { @@ -267,18 +267,20 @@ describe('Main Elements Render', function() { describe('Members Tab', () => { before(()=> { - flexTab.membersTab.click(); + flexTab.operateFlexTab('members', true); }); after(()=> { - flexTab.membersTab.click(); + flexTab.operateFlexTab('members', false); }); it('should show the members tab button', () => { + flexTab.membersTab.waitForVisible(5000); flexTab.membersTab.isVisible().should.be.true; }); it('should show the members content', () => { + flexTab.membersTabContent.waitForVisible(5000); flexTab.membersTabContent.isVisible().should.be.true; }); @@ -289,11 +291,11 @@ describe('Main Elements Render', function() { describe('Notifications Tab', () => { before(()=> { - flexTab.notificationsTab.click(); + flexTab.operateFlexTab('notifications', true); }); after(()=> { - flexTab.notificationsTab.click(); + flexTab.operateFlexTab('notifications', false); }); it('should show the notifications button', () => { @@ -307,11 +309,11 @@ describe('Main Elements Render', function() { describe('Files Tab', () => { before(()=> { - flexTab.filesTab.click(); + flexTab.operateFlexTab('files', true); }); after(()=> { - flexTab.filesTab.click(); + flexTab.operateFlexTab('files', false); }); it('should show the files button', () => { @@ -325,11 +327,11 @@ describe('Main Elements Render', function() { describe('Mentions Tab', () => { before(()=> { - flexTab.mentionsTab.click(); + flexTab.operateFlexTab('mentions', true); }); after(()=> { - flexTab.mentionsTab.click(); + flexTab.operateFlexTab('mentions', false); }); it('should show the mentions button', () => { @@ -343,11 +345,11 @@ describe('Main Elements Render', function() { describe('Starred Messages Tab', () => { before(()=> { - flexTab.starredTab.click(); + flexTab.operateFlexTab('starred', true); }); after(()=> { - flexTab.starredTab.click(); + flexTab.operateFlexTab('starred', false); }); it('should show the starred messages button', () => { @@ -361,11 +363,11 @@ describe('Main Elements Render', function() { describe('Pinned Messages Tab', () => { before(()=> { - flexTab.pinnedTab.click(); + flexTab.operateFlexTab('pinned', true); }); after(()=> { - flexTab.pinnedTab.click(); + flexTab.operateFlexTab('pinned', false); }); it('should show the pinned button', () => { diff --git a/tests/end-to-end/ui/09-channel.js b/tests/end-to-end/ui/09-channel.js index 9a2eaf3c43b..23e724f4b7c 100644 --- a/tests/end-to-end/ui/09-channel.js +++ b/tests/end-to-end/ui/09-channel.js @@ -126,8 +126,7 @@ describe('channel', ()=> { Global.dismissToast(); Global.toastAlert.waitForVisible(5000, true); } - flexTab.membersTab.waitForVisible(); - flexTab.membersTab.click(); + flexTab.operateFlexTab('members', true); }); after(()=> { @@ -135,8 +134,8 @@ describe('channel', ()=> { Global.dismissToast(); Global.toastAlert.waitForVisible(5000, true); } - flexTab.membersTab.waitForVisible(); - flexTab.membersTab.click(); + flexTab.operateFlexTab('members', false); + }); it('add people to the room', () => { @@ -152,8 +151,8 @@ describe('channel', ()=> { Global.dismissToast(); Global.toastAlert.waitForVisible(5000, true); } - flexTab.channelTab.waitForVisible(); - flexTab.channelTab.click(); + flexTab.operateFlexTab('info', true); + }); after(()=> { @@ -161,7 +160,7 @@ describe('channel', ()=> { Global.dismissToast(); Global.toastAlert.waitForVisible(5000, true); } - flexTab.channelTab.waitForVisible(5000); + flexTab.operateFlexTab('info', false); }); it('should show the old name', ()=> { @@ -191,8 +190,7 @@ describe('channel', ()=> { describe('Channel topic edit', ()=> { before(()=> { - flexTab.channelTab.waitForVisible(); - flexTab.channelTab.click(); + flexTab.operateFlexTab('info', true); }); after(()=> { @@ -200,8 +198,7 @@ describe('channel', ()=> { Global.dismissToast(); Global.toastAlert.waitForVisible(5000, true); } - flexTab.channelTab.waitForVisible(); - flexTab.channelTab.click(); + flexTab.operateFlexTab('info', false); }); it('click the edit topic', ()=> { @@ -225,8 +222,7 @@ describe('channel', ()=> { describe('Channel description edit', ()=> { before(()=> { - flexTab.channelTab.waitForVisible(); - flexTab.channelTab.click(); + flexTab.operateFlexTab('info', true); }); after(()=> { @@ -234,8 +230,7 @@ describe('channel', ()=> { Global.dismissToast(); Global.toastAlert.waitForVisible(5000, true); } - flexTab.channelTab.waitForVisible(); - flexTab.channelTab.click(); + flexTab.operateFlexTab('info', false); }); it('click the edit description', ()=> { @@ -261,13 +256,11 @@ describe('channel', ()=> { describe('Members tab usage', () => { describe('User muted', () => { before(()=> { - flexTab.membersTab.waitForVisible(5000); - flexTab.membersTab.click(); + flexTab.operateFlexTab('members', true); }); after(()=> { - flexTab.membersTab.waitForVisible(); - flexTab.membersTab.click(); + flexTab.operateFlexTab('members', false); }); it('mute rocket cat', ()=> { @@ -281,8 +274,7 @@ describe('channel', ()=> { Global.dismissToast(); Global.toastAlert.waitForVisible(5000, true); } - flexTab.membersTab.waitForVisible(); - flexTab.membersTab.click(); + flexTab.operateFlexTab('members', true); }); after(()=> { @@ -290,8 +282,7 @@ describe('channel', ()=> { Global.dismissToast(); Global.toastAlert.waitForVisible(5000, true); } - flexTab.membersTab.waitForVisible(); - flexTab.membersTab.click(); + flexTab.operateFlexTab('members', false); }); it('sets rocket cat as owner', ()=> { @@ -320,8 +311,8 @@ describe('channel', ()=> { Global.dismissToast(); Global.toastAlert.waitForVisible(5000, true); } - flexTab.membersTab.waitForVisible(); - flexTab.membersTab.click(); + flexTab.operateFlexTab('members', true); + }); after(()=> { @@ -329,8 +320,7 @@ describe('channel', ()=> { Global.dismissToast(); Global.toastAlert.waitForVisible(5000, true); } - flexTab.membersTab.waitForVisible(); - flexTab.membersTab.click(); + flexTab.operateFlexTab('members', false); }); it('sets rocket cat as moderator', ()=> { diff --git a/tests/end-to-end/ui/10-user-preferences.js b/tests/end-to-end/ui/10-user-preferences.js index a4488277efb..0c050f680b4 100644 --- a/tests/end-to-end/ui/10-user-preferences.js +++ b/tests/end-to-end/ui/10-user-preferences.js @@ -130,9 +130,5 @@ describe('user preferences', ()=> { flexTab.memberRealName.waitForVisible(5000); flexTab.memberRealName.getText().should.equal('EditedRealName'+username); }); - - it('close the flexTab', () => { - flexTab.membersTab.click(); - }); }); }); diff --git a/tests/pageobjects/flex-tab.page.js b/tests/pageobjects/flex-tab.page.js index 068adaa0403..83c1982652c 100644 --- a/tests/pageobjects/flex-tab.page.js +++ b/tests/pageobjects/flex-tab.page.js @@ -14,6 +14,7 @@ class FlexTab extends Page { get startAudioCall() { return browser.element('.start-audio-call'); } get showAll() { return browser.element('.see-all'); } get membersUserInfo() { return browser.element('.flex-tab-container .info'); } + get avatarImage() { return browser.element('.flex-tab-container .avatar-image'); } get channelTab() { return browser.element('.flex-tab-bar .tab-button:not(.hidden) .icon-info-circled'); } get channelSettings() { return browser.element('.channel-settings'); } @@ -107,6 +108,74 @@ class FlexTab extends Page { browser.click('.-autocomplete-item'); } + operateFlexTab(desiredTab, desiredState) { + //desiredState true=open false=closed + switch (desiredTab) { + case 'info': + if ((!this.channelSettings.isVisible() && desiredState) || (this.channelSettings.isVisible() && !desiredState)) { + this.channelTab.waitForVisible(5000); + this.channelTab.click(); + this.channelSettings.waitForVisible(5000, !desiredState); + } + break; + + case 'search': + if ((!this.messageSearchBar.isVisible() && desiredState) || (this.messageSearchBar.isVisible() && !desiredState)) { + this.searchTab.waitForVisible(5000); + this.searchTab.click(); + this.messageSearchBar.waitForVisible(5000, !desiredState); + } + break; + + case 'members': + if ((!this.avatarImage.isVisible() && desiredState) || (this.userSearchBar.isVisible() && !desiredState)) { + this.membersTab.waitForVisible(5000); + this.membersTab.click(); + this.avatarImage.waitForVisible(5000, !desiredState); + } + break; + + case 'notifications': + if ((!this.notificationsSettings.isVisible() && desiredState) || (this.notificationsSettings.isVisible() && !desiredState)) { + this.notificationsTab.waitForVisible(5000); + this.notificationsTab.click(); + this.notificationsSettings.waitForVisible(5000, !desiredState); + } + break; + case 'files': + if ((!this.filesTabContent.isVisible() && desiredState) || (this.filesTabContent.isVisible() && !desiredState)) { + this.filesTab.waitForVisible(5000); + this.filesTab.click(); + this.filesTabContent.waitForVisible(5000, !desiredState); + } + break; + + case 'mentions': + if ((!this.mentionsTabContent.isVisible() && desiredState) || (this.mentionsTabContent.isVisible() && !desiredState)) { + this.mentionsTab.waitForVisible(5000); + this.mentionsTab.click(); + this.mentionsTabContent.waitForVisible(5000, !desiredState); + } + break; + + case 'starred': + if ((!this.starredTabContent.isVisible() && desiredState) || (this.starredTabContent.isVisible() && !desiredState)) { + this.starredTab.waitForVisible(5000); + this.starredTab.click(); + this.starredTabContent.waitForVisible(5000, !desiredState); + } + break; + + case 'pinned': + if ((!this.pinnedTabContent.isVisible() && desiredState) || (this.pinnedTabContent.isVisible() && !desiredState)) { + this.pinnedTab.waitForVisible(5000); + this.pinnedTab.click(); + this.pinnedTabContent.waitForVisible(5000, !desiredState); + } + break; + } + } + removePeopleFromChannel(user) { const userEl = this.getUserEl(user); userEl.waitForVisible();