Improve attach file widget PO (#5973)

* Improve attach file widget

* Fix import

* Fix import

* no message
This commit is contained in:
Cristina Jalba
2020-08-11 15:45:48 +03:00
committed by GitHub
parent 4f97067c77
commit ff8cfb1d05
7 changed files with 39 additions and 6 deletions

View File

@@ -19,6 +19,7 @@ import { browser, by, element } from 'protractor';
import { import {
ApiService, ApiService,
BreadcrumbPage, BreadcrumbPage,
BreadcrumbDropdownPage,
ContentNodeSelectorDialogPage, ContentNodeSelectorDialogPage,
LoginPage, LoginPage,
PaginationPage, PaginationPage,
@@ -31,7 +32,6 @@ import {
import { ContentServicesPage } from '../../core/pages/content-services.page'; import { ContentServicesPage } from '../../core/pages/content-services.page';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { FileModel } from '../../models/ACS/file.model'; import { FileModel } from '../../models/ACS/file.model';
import { BreadCrumbDropdownPage } from '../pages/breadcrumb/bread-crumb-dropdown.page';
import { InfinitePaginationPage } from '../../core/pages/infinite-pagination.page'; import { InfinitePaginationPage } from '../../core/pages/infinite-pagination.page';
import { FolderModel } from '../../models/ACS/folder.model'; import { FolderModel } from '../../models/ACS/folder.model';
@@ -43,7 +43,7 @@ describe('Document List Component - Actions', () => {
const contentListPage = contentServicesPage.getDocumentList(); const contentListPage = contentServicesPage.getDocumentList();
const contentNodeSelector = new ContentNodeSelectorDialogPage(); const contentNodeSelector = new ContentNodeSelectorDialogPage();
const paginationPage = new PaginationPage(); const paginationPage = new PaginationPage();
const breadCrumbDropdownPage = new BreadCrumbDropdownPage(); const breadCrumbDropdownPage = new BreadcrumbDropdownPage();
const breadCrumbPage = new BreadcrumbPage(); const breadCrumbPage = new BreadcrumbPage();
const viewerPage = new ViewerPage(); const viewerPage = new ViewerPage();
const apiService = new ApiService(); const apiService = new ApiService();

View File

@@ -21,6 +21,7 @@ import { TasksCloudDemoPage } from './pages/tasks-cloud-demo.page';
import { import {
LoginPage, LoginPage,
AppListCloudPage, AppListCloudPage,
BreadcrumbDropdownPage,
StringUtil, StringUtil,
StartTasksCloudPage, StartTasksCloudPage,
ApiService, ApiService,
@@ -43,7 +44,6 @@ import { StartProcessCloudConfiguration } from './config/start-process-cloud.con
import { ProcessCloudDemoPage } from './pages/process-cloud-demo.page'; import { ProcessCloudDemoPage } from './pages/process-cloud-demo.page';
import { ProcessDetailsCloudDemoPage } from './pages/process-details-cloud-demo.page'; import { ProcessDetailsCloudDemoPage } from './pages/process-details-cloud-demo.page';
import { FileModel } from '../models/ACS/file.model'; import { FileModel } from '../models/ACS/file.model';
import { BreadCrumbDropdownPage } from '../content-services/pages/breadcrumb/bread-crumb-dropdown.page';
import CONSTANTS = require('../util/constants'); import CONSTANTS = require('../util/constants');
describe('Start Task Form', () => { describe('Start Task Form', () => {
@@ -55,7 +55,7 @@ describe('Start Task Form', () => {
const tasksCloudDemoPage = new TasksCloudDemoPage(); const tasksCloudDemoPage = new TasksCloudDemoPage();
const startTask = new StartTasksCloudPage(); const startTask = new StartTasksCloudPage();
const contentNodeSelectorDialogPage = new ContentNodeSelectorDialogPage(); const contentNodeSelectorDialogPage = new ContentNodeSelectorDialogPage();
const breadCrumbDropdownPage = new BreadCrumbDropdownPage(); const breadCrumbDropdownPage = new BreadcrumbDropdownPage();
const processDetailsCloudDemoPage = new ProcessDetailsCloudDemoPage(); const processDetailsCloudDemoPage = new ProcessDetailsCloudDemoPage();
const widget = new ProcessCloudWidgetPage(); const widget = new ProcessCloudWidgetPage();
const startProcessPage = new StartProcessCloudPage(); const startProcessPage = new StartProcessCloudPage();

View File

@@ -21,6 +21,7 @@ import { DocumentListPage } from '../pages/document-list.page';
import { BrowserVisibility } from '../../core/utils/browser-visibility'; import { BrowserVisibility } from '../../core/utils/browser-visibility';
import { BrowserActions } from '../../core/utils/browser-actions'; import { BrowserActions } from '../../core/utils/browser-actions';
import { DropdownPage } from '../../core/pages/material/dropdown.page'; import { DropdownPage } from '../../core/pages/material/dropdown.page';
import { BreadcrumbDropdownPage } from '../pages/breadcrumb/breadcrumb-dropdown.page';
export class ContentNodeSelectorDialogPage { export class ContentNodeSelectorDialogPage {
dialog = element(by.css(`adf-content-node-selector`)); dialog = element(by.css(`adf-content-node-selector`));
@@ -34,6 +35,7 @@ export class ContentNodeSelectorDialogPage {
contentList = new DocumentListPage(this.dialog); contentList = new DocumentListPage(this.dialog);
dataTable = this.contentList.dataTablePage(); dataTable = this.contentList.dataTablePage();
siteListDropdown = new DropdownPage(this.dialog.element(by.css(`mat-select[data-automation-id='site-my-files-option']`))); siteListDropdown = new DropdownPage(this.dialog.element(by.css(`mat-select[data-automation-id='site-my-files-option']`)));
breadcrumbDropdownPage = new BreadcrumbDropdownPage();
async checkDialogIsDisplayed(): Promise<void> { async checkDialogIsDisplayed(): Promise<void> {
await BrowserVisibility.waitUntilElementIsVisible(this.dialog); await BrowserVisibility.waitUntilElementIsVisible(this.dialog);
@@ -132,6 +134,8 @@ export class ContentNodeSelectorDialogPage {
async attachFileFromLocal(fileName: string, fileLocation: string): Promise<void> { async attachFileFromLocal(fileName: string, fileLocation: string): Promise<void> {
await this.checkDialogIsDisplayed(); await this.checkDialogIsDisplayed();
await this.dataTable.waitForTableBody();
await this.breadcrumbDropdownPage.checkCurrentFolderIsDisplayed();
await browser.setFileDetector(new remote.FileDetector()); await browser.setFileDetector(new remote.FileDetector());
const uploadButton = element(by.css('adf-upload-button input')); const uploadButton = element(by.css('adf-upload-button input'));

View File

@@ -16,9 +16,11 @@
*/ */
import { element, by } from 'protractor'; import { element, by } from 'protractor';
import { BrowserActions, DropdownPage } from '@alfresco/adf-testing'; import { BrowserActions } from '../../../core/utils/browser-actions';
import { BrowserVisibility } from '../../../core/utils/browser-visibility';
import { DropdownPage } from '../../../core/pages/material/dropdown.page';
export class BreadCrumbDropdownPage { export class BreadcrumbDropdownPage {
breadCrumb = element(by.css(`adf-dropdown-breadcrumb[data-automation-id='content-node-selector-content-breadcrumb']`)); breadCrumb = element(by.css(`adf-dropdown-breadcrumb[data-automation-id='content-node-selector-content-breadcrumb']`));
parentFolder = this.breadCrumb.element(by.css(`button[data-automation-id='dropdown-breadcrumb-trigger']`)); parentFolder = this.breadCrumb.element(by.css(`button[data-automation-id='dropdown-breadcrumb-trigger']`));
@@ -41,4 +43,8 @@ export class BreadCrumbDropdownPage {
async getTextOfCurrentFolder(): Promise<string> { async getTextOfCurrentFolder(): Promise<string> {
return BrowserActions.getText(this.currentFolder); return BrowserActions.getText(this.currentFolder);
} }
async checkCurrentFolderIsDisplayed(): Promise<void> {
await BrowserVisibility.waitUntilElementIsVisible(this.currentFolder);
}
} }

View File

@@ -0,0 +1,18 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* 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.
*/
export * from './breadcrumb-dropdown.page';

View File

@@ -19,4 +19,5 @@ export * from './like.page';
export * from './rate.page'; export * from './rate.page';
export * from './document-list.page'; export * from './document-list.page';
export * from './breadcrumb/public-api';
export * from './search/public-api'; export * from './search/public-api';

View File

@@ -121,6 +121,10 @@ export class TaskListCloudComponentPage {
return BrowserActions.getText(this.noTasksFound); return BrowserActions.getText(this.noTasksFound);
} }
async checkNoTasksFoundMessageIsDisplayed(): Promise<void> {
await BrowserVisibility.waitUntilElementIsVisible(this.noTasksFound);
}
async getAllRowsNameColumn() { async getAllRowsNameColumn() {
return this.dataTable.getAllRowsColumnValues(column.name); return this.dataTable.getAllRowsColumnValues(column.name);
} }