diff --git a/e2e/components/component.ts b/e2e/components/component.ts
deleted file mode 100644
index 24d7f1cb1..000000000
--- a/e2e/components/component.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-/*!
- * @license
- * Alfresco Example Content Application
- *
- * Copyright (C) 2005 - 2017 Alfresco Software Limited
- *
- * This file is part of the Alfresco Example Content Application.
- * If the software was purchased under a paid Alfresco license, the terms of
- * the paid license agreement will prevail. Otherwise, the software is
- * provided under the following open source license terms:
- *
- * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * The Alfresco Example Content Application is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-
-import { ElementFinder, element, by, ExpectedConditions as EC, browser } from 'protractor';
-import { BROWSER_WAIT_TIMEOUT } from '../configs';
-
-export abstract class Component {
- component: ElementFinder;
-
- constructor(selector: string, ancestor?: ElementFinder) {
- const locator = by.css(selector);
-
- this.component = ancestor
- ? ancestor.element(locator)
- : element(locator);
- }
-
- wait() {
- return browser.wait(EC.presenceOf(this.component), BROWSER_WAIT_TIMEOUT);
- }
-}
diff --git a/e2e/components/components.ts b/e2e/components/components.ts
deleted file mode 100644
index 70992f11d..000000000
--- a/e2e/components/components.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-/*!
- * @license
- * Alfresco Example Content Application
- *
- * Copyright (C) 2005 - 2017 Alfresco Software Limited
- *
- * This file is part of the Alfresco Example Content Application.
- * If the software was purchased under a paid Alfresco license, the terms of
- * the paid license agreement will prevail. Otherwise, the software is
- * provided under the following open source license terms:
- *
- * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * The Alfresco Example Content Application is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-
-export * from './login/login';
-export * from './header/header';
-export * from './header/user-info';
-export * from './data-table/data-table';
-export * from './pagination/pagination';
-export * from './sidenav/sidenav';
-export * from './toolbar/toolbar';
diff --git a/e2e/components/data-table/data-table.ts b/e2e/components/data-table/data-table.ts
deleted file mode 100644
index ea809fcf3..000000000
--- a/e2e/components/data-table/data-table.ts
+++ /dev/null
@@ -1,196 +0,0 @@
-/*!
- * @license
- * Alfresco Example Content Application
- *
- * Copyright (C) 2005 - 2017 Alfresco Software Limited
- *
- * This file is part of the Alfresco Example Content Application.
- * If the software was purchased under a paid Alfresco license, the terms of
- * the paid license agreement will prevail. Otherwise, the software is
- * provided under the following open source license terms:
- *
- * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * The Alfresco Example Content Application is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-
-import { ElementFinder, ElementArrayFinder, promise, by, browser, ExpectedConditions as EC, protractor } from 'protractor';
-import { BROWSER_WAIT_TIMEOUT } from '../../configs';
-import { Component } from '../component';
-
-export class DataTable extends Component {
- private static selectors = {
- root: 'adf-datatable',
-
- head: 'table > thead',
- columnHeader: 'tr > th',
- sortedColumnHeader: `
- th.adf-data-table__header--sorted-asc,
- th.adf-data-table__header--sorted-desc
- `,
-
- body: 'table > tbody',
- row: 'tr',
- selectedRow: 'tr.is-selected',
- cell: 'td',
- locationLink: 'app-location-link',
-
- emptyListContainer: 'td.adf-no-content-container',
- emptyFolderDragAndDrop: '.adf-empty-list_template .adf-empty-folder',
-
- emptyListTitle: 'div .empty-list__title',
- emptyListText: 'div .empty-list__text'
- };
-
- head: ElementFinder = this.component.element(by.css(DataTable.selectors.head));
- body: ElementFinder = this.component.element(by.css(DataTable.selectors.body));
- cell = by.css(DataTable.selectors.cell);
- locationLink = by.css(DataTable.selectors.locationLink);
- emptyList: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyListContainer));
- emptyFolderDragAndDrop: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyFolderDragAndDrop));
- emptyListTitle: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyListTitle));
- emptyListText: ElementArrayFinder = this.component.all(by.css(DataTable.selectors.emptyListText));
-
- constructor(ancestor?: ElementFinder) {
- super(DataTable.selectors.root, ancestor);
- }
-
- // Wait methods (waits for elements)
- waitForHeader() {
- return browser.wait(EC.presenceOf(this.head), BROWSER_WAIT_TIMEOUT);
- }
-
- waitForEmptyState() {
- return browser.wait(EC.presenceOf(this.emptyList), BROWSER_WAIT_TIMEOUT);
- }
-
- // Header/Column methods
- getColumnHeaders(): ElementArrayFinder {
- const locator = by.css(DataTable.selectors.columnHeader);
- return this.head.all(locator);
- }
-
- getNthColumnHeader(nth: number): ElementFinder {
- return this.getColumnHeaders().get(nth - 1);
- }
-
- getColumnHeaderByLabel(label: string): ElementFinder {
- const locator = by.cssContainingText(DataTable.selectors.columnHeader, label);
- return this.head.element(locator);
- }
-
- getSortedColumnHeader(): ElementFinder {
- const locator = by.css(DataTable.selectors.sortedColumnHeader);
- return this.head.element(locator);
- }
-
- sortByColumn(columnName: string): promise.Promise {
- const column = this.getColumnHeaderByLabel(columnName);
- const click = browser.actions().mouseMove(column).click();
-
- return click.perform();
- }
-
- // Rows methods
- getRows(): ElementArrayFinder {
- return this.body.all(by.css(DataTable.selectors.row));
- }
-
- getSelectedRows(): ElementArrayFinder {
- return this.body.all(by.css(DataTable.selectors.selectedRow));
- }
-
- getNthRow(nth: number): ElementFinder {
- return this.getRows().get(nth - 1);
- }
-
- getRowByName(name: string): ElementFinder {
- return this.body.element(by.cssContainingText(`.adf-data-table-cell`, name));
- }
-
- countRows(): promise.Promise {
- return this.getRows().count();
- }
-
- // Navigation/selection methods
- doubleClickOnItemName(name: string): promise.Promise {
- const dblClick = browser.actions()
- .mouseMove(this.getRowByName(name))
- .click()
- .click();
-
- return dblClick.perform();
- }
-
- clickOnItemName(name: string): promise.Promise {
- return this.getRowByName(name).click();
- }
-
- selectMultipleItems(names: string[]): promise.Promise {
- return browser.actions().sendKeys(protractor.Key.COMMAND).perform()
- .then(() => {
- names.forEach(name => {
- this.clickOnItemName(name);
- });
- })
- .then(() => browser.actions().sendKeys(protractor.Key.NULL).perform());
- }
-
- clearSelection() {
- this.getSelectedRows().count()
- .then(count => {
- if (count !== 0) { browser.refresh().then(() => this.waitForHeader()); }
- });
- }
-
- getItemLocation(name: string) {
- const rowLocator = by.cssContainingText(DataTable.selectors.row, name);
- return this.body.element(rowLocator).element(this.locationLink);
- }
-
- clickItemLocation(name: string) {
- return this.getItemLocation(name).click();
- }
-
- // empty state methods
- isEmptyList(): promise.Promise {
- return this.emptyList.isPresent();
- }
-
- isEmptyWithDragAndDrop(): promise.Promise {
- return this.emptyFolderDragAndDrop.isDisplayed();
- }
-
- getEmptyDragAndDropText(): promise.Promise {
- return this.isEmptyWithDragAndDrop()
- .then(() => {
- return this.emptyFolderDragAndDrop.getText();
- })
- .catch(() => '');
- }
-
- getEmptyStateTitle(): promise.Promise {
- return this.isEmptyList()
- .then(() => {
- return this.emptyListTitle.getText();
- })
- .catch(() => '');
- }
-
- getEmptyStateText(): promise.Promise {
- return this.isEmptyList()
- .then(() => {
- return this.emptyListText.getText();
- })
- .catch(() => '');
- }
-}
diff --git a/e2e/components/dialog/create-edit-folder-dialog.ts b/e2e/components/dialog/create-edit-folder-dialog.ts
deleted file mode 100644
index a6d7f29e0..000000000
--- a/e2e/components/dialog/create-edit-folder-dialog.ts
+++ /dev/null
@@ -1,108 +0,0 @@
-/*!
- * @license
- * Alfresco Example Content Application
- *
- * Copyright (C) 2005 - 2017 Alfresco Software Limited
- *
- * This file is part of the Alfresco Example Content Application.
- * If the software was purchased under a paid Alfresco license, the terms of
- * the paid license agreement will prevail. Otherwise, the software is
- * provided under the following open source license terms:
- *
- * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * The Alfresco Example Content Application is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-
-import { ElementFinder, by, browser, protractor, ExpectedConditions as EC, promise } from 'protractor';
-import { BROWSER_WAIT_TIMEOUT } from '../../configs';
-import { Component } from '../component';
-
-export class CreateOrEditFolderDialog extends Component {
- private static selectors = {
- root: 'adf-folder-dialog',
-
- title: '.mat-dialog-title',
- nameInput: '.mat-input-element[placeholder="Name" i]',
- descriptionTextArea: '.mat-input-element[placeholder="Description" i]',
- button: '.mat-dialog-actions button',
- validationMessage: '.mat-hint span'
- };
-
- title: ElementFinder = this.component.element(by.css(CreateOrEditFolderDialog.selectors.title));
- nameInput: ElementFinder = this.component.element(by.css(CreateOrEditFolderDialog.selectors.nameInput));
- descriptionTextArea: ElementFinder = this.component.element(by.css(CreateOrEditFolderDialog.selectors.descriptionTextArea));
- createButton: ElementFinder = this.component.element(by.cssContainingText(CreateOrEditFolderDialog.selectors.button, 'Create'));
- cancelButton: ElementFinder = this.component.element(by.cssContainingText(CreateOrEditFolderDialog.selectors.button, 'Cancel'));
- updateButton: ElementFinder = this.component.element(by.cssContainingText(CreateOrEditFolderDialog.selectors.button, 'Update'));
- validationMessage: ElementFinder = this.component.element(by.css(CreateOrEditFolderDialog.selectors.validationMessage));
-
- constructor(ancestor?: ElementFinder) {
- super(CreateOrEditFolderDialog.selectors.root, ancestor);
- }
-
- waitForDialogToOpen() {
- return browser.wait(EC.presenceOf(this.title), BROWSER_WAIT_TIMEOUT);
- }
-
- waitForDialogToClose() {
- return browser.wait(EC.stalenessOf(this.title), BROWSER_WAIT_TIMEOUT);
- }
-
- getTitle(): promise.Promise {
- return this.title.getText();
- }
-
- isValidationMessageDisplayed(): promise.Promise {
- return this.validationMessage.isDisplayed();
- }
-
- getValidationMessage(): promise.Promise {
- return this.isValidationMessageDisplayed()
- .then(() => this.validationMessage.getText())
- .catch(() => '');
- }
-
- enterName(name: string): promise.Promise {
- return this.nameInput.clear()
- .then(() => this.nameInput.sendKeys(name))
- .then(() => this);
- }
-
- enterDescription(description: string): promise.Promise {
- return this.descriptionTextArea.clear()
- .then(() => {
- browser.actions().click(this.descriptionTextArea).sendKeys(description).perform();
- })
- .then(() => this);
- }
-
- deleteNameWithBackspace(): promise.Promise {
- return this.nameInput.clear()
- .then(() => {
- return this.nameInput.sendKeys(' ', protractor.Key.CONTROL, 'a', protractor.Key.NULL, protractor.Key.BACK_SPACE);
- });
- }
-
- clickCreate() {
- return this.createButton.click();
- }
-
- clickCancel() {
- return this.cancelButton.click()
- .then(() => this.waitForDialogToClose());
- }
-
- clickUpdate() {
- return this.updateButton.click();
- }
-}
diff --git a/e2e/components/header/header.ts b/e2e/components/header/header.ts
deleted file mode 100644
index be8d271d4..000000000
--- a/e2e/components/header/header.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-/*!
- * @license
- * Alfresco Example Content Application
- *
- * Copyright (C) 2005 - 2017 Alfresco Software Limited
- *
- * This file is part of the Alfresco Example Content Application.
- * If the software was purchased under a paid Alfresco license, the terms of
- * the paid license agreement will prevail. Otherwise, the software is
- * provided under the following open source license terms:
- *
- * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * The Alfresco Example Content Application is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-
-import { ElementFinder, by } from 'protractor';
-import { Component } from '../component';
-import { UserInfo } from './user-info';
-
-export class Header extends Component {
- private locators = {
- logoLink: by.css('.app-menu__title'),
- userInfo: by.css('app-current-user')
- };
-
- logoLink: ElementFinder = this.component.element(this.locators.logoLink);
- userInfo: UserInfo = new UserInfo(this.component);
-
- constructor(ancestor?: ElementFinder) {
- super('app-header', ancestor);
- }
-}
diff --git a/e2e/components/header/user-info.ts b/e2e/components/header/user-info.ts
deleted file mode 100644
index da110f0a9..000000000
--- a/e2e/components/header/user-info.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-/*!
- * @license
- * Alfresco Example Content Application
- *
- * Copyright (C) 2005 - 2017 Alfresco Software Limited
- *
- * This file is part of the Alfresco Example Content Application.
- * If the software was purchased under a paid Alfresco license, the terms of
- * the paid license agreement will prevail. Otherwise, the software is
- * provided under the following open source license terms:
- *
- * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * The Alfresco Example Content Application is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-
-import { ElementFinder, ElementArrayFinder, element, by, promise } from 'protractor';
-import { Menu } from '../menu/menu';
-import { Component } from '../component';
-
-export class UserInfo extends Component {
- private locators = {
- avatar: by.css('.current-user__avatar'),
- fullName: by.css('.current-user__full-name'),
- menuItems: by.css('[mat-menu-item]')
- };
-
- fullName: ElementFinder = this.component.element(this.locators.fullName);
- avatar: ElementFinder = this.component.element(this.locators.avatar);
-
- menu: Menu = new Menu();
-
- constructor(ancestor?: ElementFinder) {
- super('app-current-user', ancestor);
- }
-
- openMenu(): promise.Promise