mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
Remove demo shell protractor TreeView e2e (#9000)
* remove protractor TreeView e2e * [ci:force] fix types * [ci:force] remove unused method
This commit is contained in:
@@ -1,139 +0,0 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { createApiService, LoginPage, UploadActions, UserModel, UsersActions } from '@alfresco/adf-testing';
|
||||
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
|
||||
import { TreeViewPage } from './../pages/tree-view.page';
|
||||
import { NodesApi } from '@alfresco/js-api';
|
||||
|
||||
describe('Tree View Component', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const treeViewPage = new TreeViewPage();
|
||||
|
||||
let acsUser: UserModel;
|
||||
const apiService = createApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const nodesApi = new NodesApi(apiService.getInstance());
|
||||
|
||||
let treeFolder; let secondTreeFolder; let thirdTreeFolder;
|
||||
|
||||
const nodeNames = {
|
||||
folder: 'Folder1',
|
||||
secondFolder: 'Folder2',
|
||||
thirdFolder: 'Folder3',
|
||||
parentFolder: '-my-',
|
||||
document: 'MyFile'
|
||||
};
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.loginWithProfile('admin');
|
||||
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
await apiService.login(acsUser.username, acsUser.password);
|
||||
|
||||
treeFolder = await nodesApi.createNode(nodeNames.parentFolder, {
|
||||
name: nodeNames.folder,
|
||||
nodeType: 'cm:folder'
|
||||
});
|
||||
secondTreeFolder = await nodesApi.createNode(nodeNames.parentFolder, {
|
||||
name: nodeNames.secondFolder,
|
||||
nodeType: 'cm:folder'
|
||||
});
|
||||
thirdTreeFolder = await nodesApi.createNode(secondTreeFolder.entry.id, {
|
||||
name: nodeNames.thirdFolder,
|
||||
nodeType: 'cm:folder'
|
||||
});
|
||||
await nodesApi.createNode(thirdTreeFolder.entry.id, {
|
||||
name: nodeNames.document,
|
||||
nodeType: 'cm:content'
|
||||
});
|
||||
|
||||
await loginPage.login(acsUser.username, acsUser.password);
|
||||
|
||||
await navigationBarPage.clickTreeViewButton();
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
|
||||
await apiService.loginWithProfile('admin');
|
||||
|
||||
await uploadActions.deleteFileOrFolder(treeFolder.entry.id);
|
||||
await uploadActions.deleteFileOrFolder(secondTreeFolder.entry.id);
|
||||
});
|
||||
|
||||
it('[C289972] Should be able to show folders and sub-folders of a node as a tree view', async () => {
|
||||
await treeViewPage.checkTreeViewTitleIsDisplayed();
|
||||
|
||||
await expect(await treeViewPage.getNodeId()).toEqual(nodeNames.parentFolder);
|
||||
|
||||
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.folder);
|
||||
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.secondFolder);
|
||||
|
||||
await treeViewPage.clickNode(nodeNames.secondFolder);
|
||||
|
||||
await treeViewPage.checkClickedNodeName(nodeNames.secondFolder);
|
||||
await treeViewPage.checkNodeIsDisplayedAsOpen(nodeNames.secondFolder);
|
||||
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.thirdFolder);
|
||||
|
||||
await treeViewPage.clickNode(nodeNames.thirdFolder);
|
||||
|
||||
await treeViewPage.checkClickedNodeName(nodeNames.thirdFolder);
|
||||
await treeViewPage.checkNodeIsDisplayedAsOpen(nodeNames.thirdFolder);
|
||||
|
||||
await treeViewPage.clickNode(nodeNames.secondFolder);
|
||||
|
||||
await treeViewPage.checkClickedNodeName(nodeNames.secondFolder);
|
||||
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.secondFolder);
|
||||
await treeViewPage.checkNodeIsNotDisplayed(nodeNames.thirdFolder);
|
||||
});
|
||||
|
||||
it('[C289973] Should be able to change the default nodeId', async () => {
|
||||
await treeViewPage.clearNodeIdInput();
|
||||
|
||||
await treeViewPage.checkNoNodeIdMessageIsDisplayed();
|
||||
await treeViewPage.addNodeId(secondTreeFolder.entry.id);
|
||||
|
||||
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.thirdFolder);
|
||||
|
||||
await treeViewPage.addNodeId('ThisIdDoesNotExist');
|
||||
await treeViewPage.checkErrorMessageIsDisplayed();
|
||||
|
||||
await treeViewPage.addNodeId(nodeNames.parentFolder);
|
||||
|
||||
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.folder);
|
||||
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.secondFolder);
|
||||
|
||||
await treeViewPage.clickNode(nodeNames.secondFolder);
|
||||
|
||||
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.thirdFolder);
|
||||
});
|
||||
|
||||
it('[C290071] Should not be able to display files', async () => {
|
||||
await treeViewPage.addNodeId(secondTreeFolder.entry.id);
|
||||
|
||||
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.thirdFolder);
|
||||
|
||||
await treeViewPage.clickNode(nodeNames.thirdFolder);
|
||||
|
||||
await expect(await treeViewPage.getTotalNodes()).toEqual(1);
|
||||
});
|
||||
});
|
@@ -20,6 +20,7 @@ import { browser } from 'protractor';
|
||||
import { createApiService, LoginPage, StringUtil, UploadActions, UserModel, UsersActions } from '@alfresco/adf-testing';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
|
||||
import { NodeEntry } from '@alfresco/js-api';
|
||||
|
||||
describe('Document List Component', () => {
|
||||
|
||||
@@ -56,7 +57,11 @@ describe('Document List Component', () => {
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.DOCX.file_path
|
||||
});
|
||||
const folderName = `MEESEEKS_${StringUtil.generateRandomString(5)}_LOOK_AT_ME`;
|
||||
let filePdfNode; let fileTestNode; let fileDocxNode; let folderNode; let filePDFSubNode;
|
||||
let filePdfNode: NodeEntry;
|
||||
let fileTestNode: NodeEntry;
|
||||
let fileDocxNode: NodeEntry;
|
||||
let folderNode: NodeEntry;
|
||||
let filePDFSubNode: NodeEntry;
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.loginWithProfile('admin');
|
||||
|
@@ -1,85 +0,0 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { element, by, protractor, $, $$ } from 'protractor';
|
||||
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||
|
||||
export class TreeViewPage {
|
||||
|
||||
treeViewTitle = element(by.cssContainingText('app-tree-view div', 'TREE VIEW TEST'));
|
||||
nodeIdInput = $('input[data-placeholder="Node Id"]');
|
||||
noNodeMessage = $('#adf-tree-view-missing-node');
|
||||
nodesOnPage = $$('mat-tree-node');
|
||||
|
||||
async checkTreeViewTitleIsDisplayed(): Promise<void> {
|
||||
await BrowserVisibility.waitUntilElementIsVisible(this.treeViewTitle);
|
||||
}
|
||||
|
||||
async getNodeId(): Promise<string> {
|
||||
return BrowserActions.getInputValue(this.nodeIdInput);
|
||||
}
|
||||
|
||||
async clickNode(nodeName: string): Promise<void> {
|
||||
const node = $('mat-tree-node[id="' + nodeName + '-tree-child-node"] button');
|
||||
await BrowserActions.click(node);
|
||||
}
|
||||
|
||||
async checkNodeIsDisplayedAsClosed(nodeName: string): Promise<void> {
|
||||
const node = $('mat-tree-node[id="' + nodeName + '-tree-child-node"][aria-expanded="false"]');
|
||||
await BrowserVisibility.waitUntilElementIsVisible(node);
|
||||
}
|
||||
|
||||
async checkNodeIsDisplayedAsOpen(nodeName: string): Promise<void> {
|
||||
const node = $('mat-tree-node[id="' + nodeName + '-tree-child-node"][aria-expanded="true"]');
|
||||
await BrowserVisibility.waitUntilElementIsVisible(node);
|
||||
}
|
||||
|
||||
async checkClickedNodeName(nodeName: string): Promise<void> {
|
||||
const clickedNode = element(by.cssContainingText('span', ' CLICKED NODE: ' + nodeName + ''));
|
||||
await BrowserVisibility.waitUntilElementIsVisible(clickedNode);
|
||||
}
|
||||
|
||||
async checkNodeIsNotDisplayed(nodeName: string): Promise<void> {
|
||||
const node = $('#' + nodeName + '-tree-child-node');
|
||||
await BrowserVisibility.waitUntilElementIsNotVisible(node);
|
||||
}
|
||||
|
||||
async clearNodeIdInput(): Promise<void> {
|
||||
await BrowserActions.click(this.nodeIdInput);
|
||||
await BrowserActions.clearWithBackSpace(this.nodeIdInput);
|
||||
}
|
||||
|
||||
async checkNoNodeIdMessageIsDisplayed(): Promise<void> {
|
||||
await BrowserVisibility.waitUntilElementIsVisible(this.noNodeMessage);
|
||||
}
|
||||
|
||||
async addNodeId(nodeId: string): Promise<void> {
|
||||
await BrowserActions.click(this.nodeIdInput);
|
||||
await BrowserActions.clearSendKeys(this.nodeIdInput, nodeId);
|
||||
await this.nodeIdInput.sendKeys('a');
|
||||
await this.nodeIdInput.sendKeys(protractor.Key.BACK_SPACE);
|
||||
}
|
||||
|
||||
async checkErrorMessageIsDisplayed(): Promise<void> {
|
||||
const clickedNode = element(by.cssContainingText('span', 'An Error Occurred '));
|
||||
await BrowserVisibility.waitUntilElementIsVisible(clickedNode);
|
||||
}
|
||||
|
||||
async getTotalNodes(): Promise<number> {
|
||||
return this.nodesOnPage.count();
|
||||
}
|
||||
}
|
@@ -90,10 +90,6 @@ export class NavigationBarPage {
|
||||
await BrowserVisibility.waitUntilElementIsNotPresent(this.linkMenuChildrenContainer);
|
||||
}
|
||||
|
||||
async clickTreeViewButton(): Promise<void> {
|
||||
await this.clickNavigationBarItem('Tree View');
|
||||
}
|
||||
|
||||
async clickLogoutButton(): Promise<void> {
|
||||
Logger.log('Logout');
|
||||
try {
|
||||
|
Reference in New Issue
Block a user