mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-06-30 18:15:11 +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:
parent
462166293a
commit
82fafff114
@ -55,7 +55,6 @@ import { MonacoEditorModule } from 'ngx-monaco-editor-v2';
|
||||
import { ContentModule } from '@alfresco/adf-content-services';
|
||||
import { InsightsModule } from '@alfresco/adf-insights';
|
||||
import { ProcessModule } from '@alfresco/adf-process-services';
|
||||
import { TreeViewSampleComponent } from './components/tree-view/tree-view-sample.component';
|
||||
import { CloudLayoutComponent } from './components/cloud/cloud-layout.component';
|
||||
import { AppsCloudDemoComponent } from './components/cloud/apps-cloud-demo.component';
|
||||
import { TasksCloudDemoComponent } from './components/cloud/tasks-cloud-demo.component';
|
||||
@ -120,7 +119,6 @@ import { UserInfoComponent } from './components/app-layout/user-info/user-info.c
|
||||
ProcessAttachmentsComponent,
|
||||
DemoPermissionComponent,
|
||||
DemoErrorComponent,
|
||||
TreeViewSampleComponent,
|
||||
CloudLayoutComponent,
|
||||
AppsCloudDemoComponent,
|
||||
TasksCloudDemoComponent,
|
||||
|
@ -30,7 +30,6 @@ import { FilesComponent } from './components/files/files.component';
|
||||
import { FormComponent } from './components/form/form.component';
|
||||
import { DemoPermissionComponent } from './components/permissions/demo-permissions.component';
|
||||
import { AppComponent } from './app.component';
|
||||
import { TreeViewSampleComponent } from './components/tree-view/tree-view-sample.component';
|
||||
import { AppsCloudDemoComponent } from './components/cloud/apps-cloud-demo.component';
|
||||
import { CloudLayoutComponent } from './components/cloud/cloud-layout.component';
|
||||
import { TasksCloudDemoComponent } from './components/cloud/tasks-cloud-demo.component';
|
||||
@ -245,11 +244,6 @@ export const appRoutes: Routes = [
|
||||
component: DemoPermissionComponent,
|
||||
canActivate: [AuthGuardEcm]
|
||||
},
|
||||
{
|
||||
path: 'treeview',
|
||||
component: TreeViewSampleComponent,
|
||||
canActivate: [AuthGuardEcm]
|
||||
},
|
||||
{ path: 'form-cloud', component: FormCloudDemoComponent },
|
||||
{ path: 'form', component: FormComponent },
|
||||
{
|
||||
|
@ -1,19 +0,0 @@
|
||||
<div>TREE VIEW TEST</div>
|
||||
<mat-form-field class="example-full-width">
|
||||
<input matInput placeholder="Node Id"
|
||||
[(ngModel)]="nodeIdSample"
|
||||
(ngModelChange)="reset()">
|
||||
</mat-form-field>
|
||||
<span>
|
||||
CLICKED NODE: {{clickedNodeName}}
|
||||
</span>
|
||||
|
||||
<adf-tree-view-list *ngIf="!errorMessage; else errorOccurred"
|
||||
[nodeId]="nodeIdSample"
|
||||
(nodeClicked)="onClick($event)"
|
||||
(error)="onErrorOccurred($event)">
|
||||
</adf-tree-view-list>
|
||||
<ng-template #errorOccurred>
|
||||
<span>An Error Occurred </span>
|
||||
<span>{{errorMessage}}</span>
|
||||
</ng-template>
|
@ -1,3 +0,0 @@
|
||||
.example-full-width {
|
||||
width: 100%;
|
||||
}
|
@ -1,45 +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 { Component } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-tree-view',
|
||||
templateUrl: './tree-view-sample.component.html',
|
||||
styleUrls: ['./tree-view-sample.component.scss']
|
||||
})
|
||||
export class TreeViewSampleComponent {
|
||||
|
||||
clickedNodeName: string = '';
|
||||
errorMessage: string = '';
|
||||
|
||||
nodeIdSample: string = '-my-';
|
||||
|
||||
onClick(node) {
|
||||
this.clickedNodeName = node.entry.name;
|
||||
}
|
||||
|
||||
reset() {
|
||||
this.clickedNodeName = '';
|
||||
this.errorMessage = '';
|
||||
}
|
||||
|
||||
onErrorOccurred(error: string) {
|
||||
this.clickedNodeName = '';
|
||||
this.errorMessage = error;
|
||||
}
|
||||
}
|
@ -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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user