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 { ContentModule } from '@alfresco/adf-content-services';
|
||||||
import { InsightsModule } from '@alfresco/adf-insights';
|
import { InsightsModule } from '@alfresco/adf-insights';
|
||||||
import { ProcessModule } from '@alfresco/adf-process-services';
|
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 { CloudLayoutComponent } from './components/cloud/cloud-layout.component';
|
||||||
import { AppsCloudDemoComponent } from './components/cloud/apps-cloud-demo.component';
|
import { AppsCloudDemoComponent } from './components/cloud/apps-cloud-demo.component';
|
||||||
import { TasksCloudDemoComponent } from './components/cloud/tasks-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,
|
ProcessAttachmentsComponent,
|
||||||
DemoPermissionComponent,
|
DemoPermissionComponent,
|
||||||
DemoErrorComponent,
|
DemoErrorComponent,
|
||||||
TreeViewSampleComponent,
|
|
||||||
CloudLayoutComponent,
|
CloudLayoutComponent,
|
||||||
AppsCloudDemoComponent,
|
AppsCloudDemoComponent,
|
||||||
TasksCloudDemoComponent,
|
TasksCloudDemoComponent,
|
||||||
|
@ -30,7 +30,6 @@ import { FilesComponent } from './components/files/files.component';
|
|||||||
import { FormComponent } from './components/form/form.component';
|
import { FormComponent } from './components/form/form.component';
|
||||||
import { DemoPermissionComponent } from './components/permissions/demo-permissions.component';
|
import { DemoPermissionComponent } from './components/permissions/demo-permissions.component';
|
||||||
import { AppComponent } from './app.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 { AppsCloudDemoComponent } from './components/cloud/apps-cloud-demo.component';
|
||||||
import { CloudLayoutComponent } from './components/cloud/cloud-layout.component';
|
import { CloudLayoutComponent } from './components/cloud/cloud-layout.component';
|
||||||
import { TasksCloudDemoComponent } from './components/cloud/tasks-cloud-demo.component';
|
import { TasksCloudDemoComponent } from './components/cloud/tasks-cloud-demo.component';
|
||||||
@ -245,11 +244,6 @@ export const appRoutes: Routes = [
|
|||||||
component: DemoPermissionComponent,
|
component: DemoPermissionComponent,
|
||||||
canActivate: [AuthGuardEcm]
|
canActivate: [AuthGuardEcm]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
path: 'treeview',
|
|
||||||
component: TreeViewSampleComponent,
|
|
||||||
canActivate: [AuthGuardEcm]
|
|
||||||
},
|
|
||||||
{ path: 'form-cloud', component: FormCloudDemoComponent },
|
{ path: 'form-cloud', component: FormCloudDemoComponent },
|
||||||
{ path: 'form', component: FormComponent },
|
{ 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 { createApiService, LoginPage, StringUtil, UploadActions, UserModel, UsersActions } from '@alfresco/adf-testing';
|
||||||
import { FileModel } from '../../models/ACS/file.model';
|
import { FileModel } from '../../models/ACS/file.model';
|
||||||
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
|
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
|
||||||
|
import { NodeEntry } from '@alfresco/js-api';
|
||||||
|
|
||||||
describe('Document List Component', () => {
|
describe('Document List Component', () => {
|
||||||
|
|
||||||
@ -56,7 +57,11 @@ describe('Document List Component', () => {
|
|||||||
location: browser.params.resources.Files.ADF_DOCUMENTS.DOCX.file_path
|
location: browser.params.resources.Files.ADF_DOCUMENTS.DOCX.file_path
|
||||||
});
|
});
|
||||||
const folderName = `MEESEEKS_${StringUtil.generateRandomString(5)}_LOOK_AT_ME`;
|
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 () => {
|
beforeAll(async () => {
|
||||||
await apiService.loginWithProfile('admin');
|
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);
|
await BrowserVisibility.waitUntilElementIsNotPresent(this.linkMenuChildrenContainer);
|
||||||
}
|
}
|
||||||
|
|
||||||
async clickTreeViewButton(): Promise<void> {
|
|
||||||
await this.clickNavigationBarItem('Tree View');
|
|
||||||
}
|
|
||||||
|
|
||||||
async clickLogoutButton(): Promise<void> {
|
async clickLogoutButton(): Promise<void> {
|
||||||
Logger.log('Logout');
|
Logger.log('Logout');
|
||||||
try {
|
try {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user