From 55677e2b7b3c86cd1b3f4abfe3bd59480220593c Mon Sep 17 00:00:00 2001 From: Marouan Bentaleb <38426175+marouanbentaleb@users.noreply.github.com> Date: Tue, 11 Sep 2018 17:51:22 +0100 Subject: [PATCH] [ADF-3498] Automated tests for Permissions - Search (#3774) --- .../demo-permissions.component.html | 2 +- .../permissions_component.e2e.ts | 84 +++++++++++++++++++ e2e/pages/adf/permissionsPage.ts | 55 ++++++++++++ 3 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 e2e/content-services/permissions_component.e2e.ts create mode 100644 e2e/pages/adf/permissionsPage.ts diff --git a/demo-shell/src/app/components/permissions/demo-permissions.component.html b/demo-shell/src/app/components/permissions/demo-permissions.component.html index 6cb86d301d..0a7954e3f5 100644 --- a/demo-shell/src/app/components/permissions/demo-permissions.component.html +++ b/demo-shell/src/app/components/permissions/demo-permissions.component.html @@ -5,7 +5,7 @@ (error)="showErrorMessage($event)" (updated)="onUpdatedPermissions($event)"> {{ (toggleStatus?'DEMO_PERMISSION.INHERITED_PERMISSIONS_BUTTON':'DEMO_PERMISSION.INHERIT_PERMISSION_BUTTON') | translate}} - +
diff --git a/e2e/content-services/permissions_component.e2e.ts b/e2e/content-services/permissions_component.e2e.ts new file mode 100644 index 0000000000..1fdef3f627 --- /dev/null +++ b/e2e/content-services/permissions_component.e2e.ts @@ -0,0 +1,84 @@ +/*! + * @license + * Copyright 2016 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. + */ + +import { PermissionsPage } from '../pages/adf/permissionsPage'; +import LoginPage = require('../pages/adf/loginPage'); +import ContentServicesPage = require('../pages/adf/contentServicesPage'); +import AcsUserModel = require('../models/ACS/acsUserModel'); +import TestConfig = require('../test.config'); +import resources = require('../util/resources'); +import ContentListPage = require('../pages/adf/dialog/contentList'); +import AlfrescoApi = require('alfresco-js-api-node'); +import FileModel = require('../models/ACS/fileModel'); +import { UploadActions } from '../actions/ACS/upload.actions'; + +describe('Permissions Component', function () { + + let loginPage = new LoginPage(); + let contentServicesPage = new ContentServicesPage(); + let permissionsPage = new PermissionsPage(); + let uploadActions = new UploadActions(); + let contentList = new ContentListPage(); + let acsUser, file; + + let fileModel = new FileModel({ + 'name': resources.Files.ADF_DOCUMENTS.TXT_0B.file_name, + 'location': resources.Files.ADF_DOCUMENTS.TXT_0B.file_location + }); + + beforeAll(() => { + this.alfrescoJsApi = new AlfrescoApi({ + provider: 'ECM', + hostEcm: TestConfig.adf.url + }); + }); + + beforeEach(async (done) => { + acsUser = new AcsUserModel(); + + await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); + await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser); + + await this.alfrescoJsApi.login(acsUser.id, acsUser.password); + + file = await uploadActions.uploadFile(this.alfrescoJsApi, fileModel.location, fileModel.name, '-my-'); + + loginPage.loginToContentServicesUsingUserModel(acsUser); + contentServicesPage.goToDocumentList(); + + contentList.checkContentIsDisplayed(fileModel.name); + contentList.rightClickOnRowNamed(fileModel.name); + contentList.pressContextMenuActionNamed('Permission'); + + done(); + }); + + afterEach(async (done) => { + await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, file.entry.id); + done(); + }); + + it('[C286272] Should be able to see results when searching for a user', () => { + permissionsPage.checkAddPermissionButtonIsDisplayed(); + permissionsPage.clickAddPermissionButton(); + permissionsPage.checkAddPermissionDialogIsDisplayed(); + permissionsPage.checkSearchUserInputIsDisplayed(); + permissionsPage.searchUserOrGroup('a'); + permissionsPage.checkResultListIsDisplayed(); + }); + +}); diff --git a/e2e/pages/adf/permissionsPage.ts b/e2e/pages/adf/permissionsPage.ts new file mode 100644 index 0000000000..e9d81de4b4 --- /dev/null +++ b/e2e/pages/adf/permissionsPage.ts @@ -0,0 +1,55 @@ +/*! + * @license + * Copyright 2016 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. + */ + +import { element, by } from 'protractor'; + +import Util = require('../../util/util'); + +export class PermissionsPage { + + addPermissionButton = element(by.css("button[data-automation-id='adf-add-permission-button']")); + addPermissionDialog = element(by.css('adf-add-permission-dialog')); + searchUserInput = element(by.id('searchInput')); + searchResults = element.all(by.id('adf-search-results-content')).first(); + + checkAddPermissionButtonIsDisplayed() { + Util.waitUntilElementIsVisible(this.addPermissionButton); + } + + clickAddPermissionButton() { + Util.waitUntilElementIsClickable(this.addPermissionButton); + return this.addPermissionButton.click(); + } + + checkAddPermissionDialogIsDisplayed() { + Util.waitUntilElementIsVisible(this.addPermissionDialog); + } + + checkSearchUserInputIsDisplayed() { + Util.waitUntilElementIsVisible(this.searchUserInput); + } + + searchUserOrGroup(name) { + Util.waitUntilElementIsClickable(this.searchUserInput); + return this.searchUserInput.sendKeys(name); + } + + checkResultListIsDisplayed() { + Util.waitUntilElementIsVisible(this.searchResults); + } + +}