From d677fbdd3564b9047ffa3317afd86c410f6d60cc Mon Sep 17 00:00:00 2001 From: DenisPrivistirescu Date: Tue, 21 Aug 2018 13:41:39 +0300 Subject: [PATCH] [ACA-1679] Add remaining tests for page titles (#566) * add tests for Page titles e2e --- e2e/components/header/header.ts | 14 +++++- e2e/configs.ts | 6 +++ e2e/suites/application/page-titles.test.ts | 50 +++++++++++++++++++++- 3 files changed, 68 insertions(+), 2 deletions(-) diff --git a/e2e/components/header/header.ts b/e2e/components/header/header.ts index fa1c9bcdf..be2fba9c7 100755 --- a/e2e/components/header/header.ts +++ b/e2e/components/header/header.ts @@ -26,17 +26,29 @@ import { ElementFinder, by } from 'protractor'; import { Component } from '../component'; import { UserInfo } from './user-info'; +import { protractor } from 'protractor'; export class Header extends Component { private locators = { logoLink: by.css('.app-menu__title'), - userInfo: by.css('aca-current-user') + userInfo: by.css('aca-current-user'), + searchButton: by.css('#adf-search-button'), + searchBar: by.css('#adf-control-input') }; logoLink: ElementFinder = this.component.element(this.locators.logoLink); userInfo: UserInfo = new UserInfo(this.component); + searchButton: ElementFinder = this.component.element(this.locators.searchButton); + searchBar: ElementFinder = this.component.element(this.locators.searchBar); constructor(ancestor?: ElementFinder) { super('adf-layout-header', ancestor); } + + searchForText(text: string) { + return this.searchBar.clear() + .then(() => this.searchBar.sendKeys(text)) + .then(() => this.searchBar.sendKeys(protractor.Key.ENTER)); + } } + diff --git a/e2e/configs.ts b/e2e/configs.ts index 77b0b4204..5fca63a25 100755 --- a/e2e/configs.ts +++ b/e2e/configs.ts @@ -64,6 +64,12 @@ export const SIDEBAR_LABELS = { TRASH: 'Trash' }; +// Page titles +export const PAGE_TITLES = { + VIEWER: 'Preview', + SEARCH: 'Search Results' +}; + // Site visibility export const SITE_VISIBILITY = { PUBLIC: 'PUBLIC', diff --git a/e2e/suites/application/page-titles.test.ts b/e2e/suites/application/page-titles.test.ts index acb00b8d6..737877c54 100755 --- a/e2e/suites/application/page-titles.test.ts +++ b/e2e/suites/application/page-titles.test.ts @@ -25,13 +25,20 @@ import { browser } from 'protractor'; -import { SIDEBAR_LABELS } from '../../configs'; +import { SIDEBAR_LABELS, PAGE_TITLES } from '../../configs'; import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; +import { RepoClient } from '../../utilities/repo-client/repo-client'; +import { Utils } from '../../utilities/utils'; + describe('Page titles', () => { const loginPage = new LoginPage(); const logoutPage = new LogoutPage(); const page = new BrowsingPage(); + const adminApi = new RepoClient(); + const { nodes: nodesApi } = adminApi; + const file = `file-${Utils.random()}.txt`; let fileId; + const header = page.header; xit(''); @@ -124,5 +131,46 @@ describe('Page titles', () => { expect(browser.getTitle()).toContain(label); }); }); + + }); + + describe('on File Viewer', () => { + beforeAll( async (done) => { + fileId = (await nodesApi.createFile(file)).entry.id; + await loginPage.loginWithAdmin(); + done(); + }); + + afterAll( async (done) => { + await logoutPage.load(); + await adminApi.nodes.deleteNodeById(fileId); + done(); + }); + + it('File Preview page - [C280415]', async () => { + await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES); + await page.dataTable.waitForHeader(); + await page.dataTable.doubleClickOnRowByName(file); + expect(await browser.getTitle()).toContain(PAGE_TITLES.VIEWER); + }); + }); + + describe ('on Search query', () => { + beforeAll( async (done) => { + await loginPage.loginWithAdmin(); + done(); + }); + + afterAll( async (done) => { + await logoutPage.load(); + done(); + }); + + it('Search Results page - [C280413]', async () => { + await header.searchButton.click(); + await page.dataTable.waitForHeader(); + await header.searchForText(file); + expect(await browser.getTitle()).toContain(PAGE_TITLES.SEARCH); + }); }); });