[ADF-3384] Create automated tests for Version Component (#3631)

* fix version component restore and delete event

* version manager actions

* fix test

* fix unit test

* remove fdescribe

* fix tslint

* fix screenshot rewrite problem

* remove fdescribe

* multi instance try

* remove fdescribe

* try uncomment some test

* error page

* fix user preferences pagiantion

* search page test include

* fix type tslint e2e

* restore code

* default lang momentadapter

* fix test

* [ADF-3384] removed console log from test

* [ADF-3384] adding some fixes for tests and code

* [ADF-3384] fixed some test and code
This commit is contained in:
Eugenio Romano
2018-08-03 18:12:03 +01:00
committed by Eugenio Romano
parent 17074478e2
commit a12662e7e2
101 changed files with 2047 additions and 718 deletions

View File

@@ -15,11 +15,11 @@
* limitations under the License.
*/
import { browser } from 'protractor';
import LoginPage = require('../../pages/adf/loginPage');
import ContentServicesPage = require('../../pages/adf/contentServicesPage');
import ViewerPage = require('../../pages/adf/viewerPage');
import CardViewPage = require('../../pages/adf/metadataViewPage');
import ContentListPage = require('../../pages/adf/dialog/contentList');
import NavigationBarPage = require('../../pages/adf/navigationBarPage');
import { ConfigEditorPage } from '../../pages/adf/configEditorPage';
@@ -28,31 +28,15 @@ import FileModel = require('../../models/ACS/fileModel');
import TestConfig = require('../../test.config');
import resources = require('../../util/resources');
import dateFormat = require('dateformat');
import AlfrescoApi = require('alfresco-js-api-node');
import { UploadActions } from '../../actions/ACS/upload.actions';
describe('Aspect oriented config', () => {
const METADATA = {
DATAFORMAT: 'mmm dd yyyy',
TITLE: 'Details',
COMMENTS_TAB: 'COMMENTS',
PROPERTY_TAB: 'PROPERTIES',
DEFAULT_ASPECT: 'Properties',
MORE_INFO_BUTTON: 'More information',
LESS_INFO_BUTTON: 'Less information',
ARROW_DOWN: 'keyboard_arrow_down',
ARROW_UP: 'keyboard_arrow_up',
EDIT_BUTTON_TOOLTIP: 'Edit'
};
const loginPage = new LoginPage();
const contentServicesPage = new ContentServicesPage();
const viewerPage = new ViewerPage();
const metadataViewPage = new CardViewPage();
const contentListPage = new ContentListPage();
const navigationBarPage = new NavigationBarPage();
const configEditorPage = new ConfigEditorPage();

View File

@@ -15,6 +15,8 @@
* limitations under the License.
*/
import { element, by } from 'protractor';
import LoginPage = require('../../pages/adf/loginPage');
import NavigationBarPage = require('../../pages/adf/navigationBarPage');
import CardViewPage = require('../../pages/adf/metadataViewPage');
@@ -279,13 +281,13 @@ describe('CardView Component', () => {
describe('Date and DateTime', () => {
it('[C279961] Should the label be present', () => {
let label = element(by.xpath('div[data-automation-id="card-dateitem-label-date"]'));
let labelDate = element(by.xpath('div[data-automation-id="card-dateitem-label-date"]'));
Util.waitUntilElementIsPresent(label);
Util.waitUntilElementIsPresent(labelDate);
let label = element(by.xpath('div[data-automation-id="card-dateitem-label-datetime"]'));
let labelDatetime = element(by.xpath('div[data-automation-id="card-dateitem-label-datetime"]'));
Util.waitUntilElementIsPresent(label);
Util.waitUntilElementIsPresent(labelDatetime);
});
it('[C279962] Should be present a default value', () => {

View File

@@ -16,10 +16,8 @@
*/
import LoginPage = require('../../pages/adf/loginPage');
import ContentServicesPage = require('../../pages/adf/contentServicesPage');
import ViewerPage = require('../../pages/adf/viewerPage');
import CardViewPage = require('../../pages/adf/metadataViewPage');
import ContentListPage = require('../../pages/adf/dialog/contentList');
import NavigationBarPage = require('../../pages/adf/navigationBarPage');
import AcsUserModel = require('../../models/ACS/acsUserModel');
@@ -27,14 +25,12 @@ import FileModel = require('../../models/ACS/fileModel');
import TestConfig = require('../../test.config');
import resources = require('../../util/resources');
import dateFormat = require('dateformat');
import AlfrescoApi = require('alfresco-js-api-node');
import { UploadActions } from '../../actions/ACS/upload.actions';
import fs = require('fs');
import path = require('path');
import Util = require('../../util/util');
import CONSTANTS = require('../../util/constants');
describe('permissions', () => {
@@ -52,13 +48,10 @@ describe('permissions', () => {
};
const loginPage = new LoginPage();
const contentServicesPage = new ContentServicesPage();
const viewerPage = new ViewerPage();
const metadataViewPage = new CardViewPage();
const contentListPage = new ContentListPage();
const navigationBarPage = new NavigationBarPage();
let acsUser = new AcsUserModel();
let consumerUser = new AcsUserModel();
let collaboratorUser = new AcsUserModel();
let contributorUser = new AcsUserModel();
@@ -91,17 +84,17 @@ describe('permissions', () => {
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
id: consumerUser.id,
role: 'SiteConsumer'
role: CONSTANTS.CS_USER_ROLES.CONSUMER
});
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
id: collaboratorUser.id,
role: 'SiteCollaborator'
role: CONSTANTS.CS_USER_ROLES.COLLABORATOR
});
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
id: contributorUser.id,
role: 'SiteContributor'
role: CONSTANTS.CS_USER_ROLES.CONTRIBUTOR
});
await uploadActions.uploadFile(this.alfrescoJsApi, pngFileModel.location, pngFileModel.name, site.entry.guid);

View File

@@ -25,14 +25,10 @@ import FileModel = require('../../models/ACS/fileModel');
import TestConfig = require('../../test.config');
import resources = require('../../util/resources');
import dateFormat = require('dateformat');
import AlfrescoApi = require('alfresco-js-api-node');
import { UploadActions } from '../../actions/ACS/upload.actions';
import fs = require('fs');
import path = require('path');
describe('CardView Component - properties', () => {
let METADATA = {

View File

@@ -15,12 +15,13 @@
* limitations under the License.
*/
import { browser } from 'protractor';
import LoginPage = require('../../pages/adf/loginPage');
import ContentServicesPage = require('../../pages/adf/contentServicesPage');
import ViewerPage = require('../../pages/adf/viewerPage');
import CardViewPage = require('../../pages/adf/metadataViewPage');
import ContentListPage = require('../../pages/adf/dialog/contentList');
import NavigationBarPage = require('../../pages/adf/navigationBarPage');
import AcsUserModel = require('../../models/ACS/acsUserModel');
import FileModel = require('../../models/ACS/fileModel');
@@ -52,10 +53,8 @@ describe('Metadata component', () => {
const viewerPage = new ViewerPage();
const metadataViewPage = new CardViewPage();
const contentListPage = new ContentListPage();
const navigationBarPage = new NavigationBarPage();
let acsUser = new AcsUserModel();
let consumerUser = new AcsUserModel();
let folderName = 'Metadata Folder';

View File

@@ -0,0 +1,54 @@
/*!
* @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 LoginPage = require('../pages/adf/loginPage');
import AcsUserModel = require('../models/ACS/acsUserModel');
import TestConfig = require('../test.config');
import AlfrescoApi = require('alfresco-js-api-node');
import ErrorPage = require('../pages/adf/errorPage');
import { browser } from '../../node_modules/protractor';
describe('Error Component', () => {
let acsUser = new AcsUserModel();
let loginPage = new LoginPage();
let errorPage = new ErrorPage();
beforeAll(async (done) => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: TestConfig.adf.url
});
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
loginPage.loginToContentServicesUsingUserModel(acsUser);
done();
});
it('[C277302] Error message displayed without permissions', () => {
browser.get(TestConfig.adf.url + '/error/403');
expect(errorPage.getErrorCode()).toBe('403');
expect(errorPage.getErrorTitle()).toBe('You don\'t have permission to access this server.');
expect(errorPage.getErrorDescription()).toBe('You\'re not allowed access to this resource on the server.');
});
});

View File

@@ -19,7 +19,6 @@ import NavigationBarPage = require('../pages/adf/navigationBarPage');
import { HeaderPage } from '../pages/adf/core/headerPage';
import TestConfig = require('../test.config');
import Util = require('../util/util.js');
import AlfrescoApi = require('alfresco-js-api-node');
import { UsersActions } from '../actions/users.actions';
@@ -54,7 +53,7 @@ describe('Header Component', () => {
done();
});
beforeEach(async(done) =>{
beforeEach(async(done) => {
let users = new UsersActions();
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
@@ -83,8 +82,8 @@ describe('Header Component', () => {
it('[C280002] Should be able to view Header component', () => {
headerPage.checkShowMenuCheckBoxIsDisplayed();
headerPage.checkChooseHeaderColourIsDisplayed();
headerPage.checkChangeTitleIsDisplayed(title.default);
headerPage.checkChangeUrlPathIsDisplayed(urlPath.default);
headerPage.checkChangeTitleIsDisplayed();
headerPage.checkChangeUrlPathIsDisplayed();
});

View File

@@ -15,6 +15,8 @@
* limitations under the License.
*/
import { browser } from 'protractor';
import LoginPage = require('../../pages/adf/loginPage');
import ContentServicesPage = require('../../pages/adf/contentServicesPage');
import ProcessServicesPage = require('../../pages/adf/process_services/processServicesPage');
@@ -28,7 +30,6 @@ import AdfSettingsPage = require('../../pages/adf/settingsPage');
import AlfrescoApi = require('alfresco-js-api-node');
import Util = require('../../util/util');
import { UploadActions } from '../../actions/ACS/upload.actions';
describe('Login component', () => {

View File

@@ -15,6 +15,8 @@
* limitations under the License.
*/
import { browser } from 'protractor';
import LoginPage = require('../../pages/adf/loginPage');
import ContentServicesPage = require('../../pages/adf/contentServicesPage');
import ProcessServicesPage = require('../../pages/adf/process_services/processServicesPage');

View File

@@ -17,8 +17,6 @@
import LoginPage = require('../../pages/adf/loginPage');
import AcsUserModel = require('../../models/ACS/acsUserModel');
import AdfSettingsPage = require('../../pages/adf/settingsPage');
describe('Login component - Remember Me', () => {

View File

@@ -77,7 +77,7 @@ describe('Pagination - returns to previous page when current is empty', () => {
done();
});
xit('Pagination - returns to previous page when current is empty', () => {
it('Pagination - returns to previous page when current is empty', () => {
contentServicesPage.navigateToFolder(folderModel.name);
contentServicesPage.checkAcsContainer();
contentServicesPage.waitForTableBody();

View File

@@ -14,6 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { protractor } from 'protractor';
import AdfSettingsPage = require('../pages/adf/settingsPage');
import LoginPage = require('../pages/adf/loginPage');
import UserInfoDialog = require('../pages/adf/dialog/userInfoDialog');

View File

@@ -15,6 +15,8 @@
* limitations under the License.
*/
import { browser } from 'protractor';
import TestConfig = require('../test.config');
import LoginPage = require('../pages/adf/loginPage');
@@ -139,7 +141,7 @@ describe('Content Services Viewer', () => {
viewerPage.viewFile(pdfFile.name);
browser.driver.sleep(3000); //wait open file
browser.driver.sleep(3000); // wait open file
viewerPage.checkFileContent('1', pdfFile.firstPageText);
viewerPage.checkCloseButtonIsDisplayed();
@@ -304,7 +306,7 @@ describe('Content Services Viewer', () => {
it('[C261123] Should be able to preview all pages and navigate to a page when using thumbnails', () => {
viewerPage.viewFile(pdfFile.name);
browser.driver.sleep(3000); //wait open file
browser.driver.sleep(3000); // wait open file
viewerPage.checkFileContent('1', pdfFile.firstPageText);
viewerPage.checkThumbnailsBtnIsDisplayed();
@@ -355,7 +357,7 @@ describe('Content Services Viewer', () => {
it('[C268901] Should need a password when opening a protected file', () => {
viewerPage.viewFile(protectedFile.name);
browser.driver.sleep(3000); //wait open file
browser.driver.sleep(3000); // wait open file
viewerPage.checkPasswordDialogIsDisplayed();
viewerPage.checkPasswordSubmitDisabledIsDisplayed();

View File

@@ -45,14 +45,16 @@ describe('Save screenshot at the end', () => {
let folder = await alfrescoJsApi.nodes.addNode('-my-', {
'name': 'core',
'relativePath': 'Buiild-screenshot/Screenshot-e2e-' + buildNumber,
'relativePath': 'Build-screenshot/Screenshot-e2e-' + buildNumber,
'nodeType': 'cm:folder'
}, {}, {});
}, {}, {
'overwrite': true
});
for (const fileName of files) {
let pathFile = path.join(__dirname, '../../e2e-output/screenshots', fileName);
let file = fs.createReadStream(pathFile);
let file: any = fs.createReadStream(pathFile);
await alfrescoJsApi.upload.uploadFile(
file,