Disable control flow e2e ADF (#4954)

* update project script possible different JS-API

* first commit no controll flow

* second commit no controll flow

* third commit no controll flow

* 4 commit no controll flow

* 5 commit no controll flow

* 6 commit no controll flow

* 7 commit no controll flow

* 8 commit no controll flow

* 9 commit no controll flow

* 10 commit no controll flow

* 11 commit no controll flow

* 12 commit no controll flow

* 13 commit no controll flow

* 14 commit no controll flow

* 15 commit no controll flow

* 16 commit no controll flow

* 17 commit no controll flow

* 18 commit no controll flow

* 19 commit no controll flow

* 20 commit no controll flow

* remove wdpromise, protractor promise and deferred promises

* - fixed some incorrect “expect” calls
- fixed some matchers
- removed “return this;” when not needed
- added a few more await-s

* forgot a file

* fix some failing tests

* replaced driver calls with browser calls and enabled back waitForAngular

* fix rightClick methods and hopefully some tests

* fix settings-component

* some more fixes for core and content tests

* try to fix some more issues

* linting

* revert some changes, allowing download on headless chrome won’t work with multiple browser instances

* fixes for Search tests

* try to remove some wait calls

* fix build

* increase allScriptsTimeout and try another protractor and web driver version

* improve navigation methods

* some fixes for notification history and login sso

* forgot a space

* fix packages and enable some screenshots

* navigation bar fixes

* fix some test

* some fixes for notification history and navigation bar
use correct visibility method in attachFileWidget test

* fix searching and another fix for navigation

* try solve sso login

* some more fixes

* refactor async forEach into for..of

* try fix for search tests

* resolve rebabse problems

* remove install

* fix lint

* fix core e2e

* fix core e2e

* fix core e2e

* fix ps tests

* fix some tests

* fix core e2e

* fix core e2e

* fix core

* fix some issues PS

* fix core

* fix core

* fix some ps test

* fix rebase issues

* remove save

* fix url regressed after rebase

* fix url regressed after rebase

* fix ps and core

* fix lint

* more parallel e2e ps

* fix some ps cloud test

* some cloud fix

* fix lint

* fix some test

* remove files to be ignored

* out-tsc

* improve one cs test

* fix candidate base app

* fix ps test

* remove click function

* clean methods alrady present in browser action

* try ugly wait

* move wait

* remove duplicate call

* remove underscore

* fix after review

* fix imports

* minor cosmetic fixes

* fix comments test
This commit is contained in:
Eugenio Romano
2019-08-17 14:32:02 +02:00
committed by GitHub
parent 4f3cf669f2
commit 83412bb9b6
328 changed files with 17653 additions and 18793 deletions

View File

@@ -25,19 +25,16 @@ describe('Auth Guard SSO', () => {
const errorPage = new ErrorPage();
it('[C307058] Should be redirected to 403 when user doesn\'t have permissions', async () => {
settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host,
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url,
browser.params.testConfig.adf.hostSso,
browser.params.testConfig.adf.hostIdentity,
false, true, browser.params.config.oauth2.clientId);
browser.driver.sleep(5000);
loginSSOPage.clickOnSSOButton();
await loginSSOPage.clickOnSSOButton();
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/cloud/simple-app');
browser.driver.sleep(2000);
expect(errorPage.getErrorCode()).toBe('403');
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/cloud/simple-app');
await browser.sleep(1000);
const error = await errorPage.getErrorCode();
await expect(error).toBe('403');
});
});

View File

@@ -30,255 +30,241 @@ describe('CardView Component', () => {
const cardViewPageComponent = new CardViewComponentPage();
const metadataViewPage = new MetadataViewPage();
beforeAll(async (done) => {
loginPage.loginToContentServices(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
navigationBarPage.clickCardViewButton();
beforeAll(async () => {
await loginPage.loginToContentServices(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await navigationBarPage.clickCardViewButton();
done();
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
});
afterEach(() => {
cardViewPageComponent.clickOnResetButton();
afterEach(async () => {
await cardViewPageComponent.clickOnResetButton();
});
describe('key-value pair ', () => {
it('[C279938] Should the label be present', () => {
it('[C279938] Should the label be present', async () => {
const label = element(by.css('div[data-automation-id="card-key-value-pairs-label-key-value-pairs"]'));
BrowserVisibility.waitUntilElementIsPresent(label);
await BrowserVisibility.waitUntilElementIsPresent(label);
});
it('[C279898] Should be possible edit key-value pair properties', () => {
cardViewPageComponent.clickOnAddButton();
cardViewPageComponent.setName('testName');
cardViewPageComponent.setValue('testValue');
cardViewPageComponent.clickOnAddButton();
cardViewPageComponent.waitForOutput();
expect(cardViewPageComponent.getOutputText(0)).toBe('[CardView Key-Value Pairs Item] - [{"name":"testName","value":"testValue"}]');
it('[C279898] Should be possible edit key-value pair properties', async () => {
await cardViewPageComponent.clickOnAddButton();
await cardViewPageComponent.setName('testName');
await cardViewPageComponent.setValue('testValue');
await cardViewPageComponent.clickOnAddButton();
await cardViewPageComponent.waitForOutput();
await expect(await cardViewPageComponent.getOutputText(0)).toBe('[CardView Key-Value Pairs Item] - [{"name":"testName","value":"testValue"}]');
cardViewPageComponent.deletePairsValues();
await cardViewPageComponent.deletePairsValues();
expect(cardViewPageComponent.getOutputText(1)).toBe('[CardView Key-Value Pairs Item] - []');
await expect(await cardViewPageComponent.getOutputText(1)).toBe('[CardView Key-Value Pairs Item] - []');
});
});
describe('SelectBox', () => {
it('[C279939] Should the label be present', () => {
it('[C279939] Should the label be present', async () => {
const label = element(by.css('div[data-automation-id="card-select-label-select"]'));
BrowserVisibility.waitUntilElementIsPresent(label);
await BrowserVisibility.waitUntilElementIsPresent(label);
});
it('[C279899] Should be possible edit selectBox item', () => {
cardViewPageComponent.clickSelectBox();
cardViewPageComponent.selectValueFromComboBox(1);
it('[C279899] Should be possible edit selectBox item', async () => {
await cardViewPageComponent.clickSelectBox();
await cardViewPageComponent.selectValueFromComboBox(1);
expect(cardViewPageComponent.getOutputText(0))
await expect(await cardViewPageComponent.getOutputText(0))
.toBe('[CardView Select Item] - two');
});
});
describe('Text', () => {
it('[C279937] Should the label be present', () => {
it('[C279937] Should the label be present', async () => {
const label = element(by.css('div[data-automation-id="card-textitem-label-name"]'));
BrowserVisibility.waitUntilElementIsPresent(label);
await BrowserVisibility.waitUntilElementIsPresent(label);
});
it('[C279943] Should be present a default value', () => {
expect(cardViewPageComponent.getTextFieldText()).toBe('Spock');
it('[C279943] Should be present a default value', async () => {
await expect(await cardViewPageComponent.getTextFieldText()).toBe('Spock');
});
it('[C279934] Should be possible edit text item', () => {
cardViewPageComponent
.clickOnTextField()
.enterTextField('example')
.clickOnTextSaveIcon();
it('[C279934] Should be possible edit text item', async () => {
await cardViewPageComponent.clickOnTextField();
await cardViewPageComponent.enterTextField('example');
await cardViewPageComponent.clickOnTextSaveIcon();
expect(cardViewPageComponent.getOutputText(0)).toBe('[CardView Text Item] - example');
await expect(await cardViewPageComponent.getOutputText(0)).toBe('[CardView Text Item] - example');
});
it('[C279944] Should be possible undo text item modify when click on the clear button', () => {
cardViewPageComponent
.clickOnTextField()
.enterTextField('example')
.clickOnTextClearIcon();
it('[C279944] Should be possible undo text item modify when click on the clear button', async () => {
await cardViewPageComponent.clickOnTextField();
await cardViewPageComponent.enterTextField('example');
await cardViewPageComponent.clickOnTextClearIcon();
expect(cardViewPageComponent.getTextFieldText()).toBe('Spock');
await expect(await cardViewPageComponent.getTextFieldText()).toBe('Spock');
});
});
describe('Int', () => {
it('[C279940] Should the label be present', () => {
it('[C279940] Should the label be present', async () => {
const label = element(by.css('div[data-automation-id="card-textitem-label-int"]'));
BrowserVisibility.waitUntilElementIsPresent(label);
await BrowserVisibility.waitUntilElementIsPresent(label);
});
it('[C279945] Should be present a default value', () => {
expect(cardViewPageComponent.getIntFieldText()).toBe('213');
it('[C279945] Should be present a default value', async () => {
await expect(await cardViewPageComponent.getIntFieldText()).toBe('213');
});
it('[C279946] Should be possible edit int item', () => {
cardViewPageComponent
.clickOnIntField()
.enterIntField('99999')
.clickOnIntSaveIcon();
it('[C279946] Should be possible edit int item', async () => {
await cardViewPageComponent.clickOnIntField();
await cardViewPageComponent.enterIntField('99999');
await cardViewPageComponent.clickOnIntSaveIcon();
expect(cardViewPageComponent.getOutputText(0)).toBe('[CardView Int Item] - 99999');
await expect(await cardViewPageComponent.getOutputText(0)).toBe('[CardView Int Item] - 99999');
});
it('[C279947] Should not be possible add string value to the int item', () => {
cardViewPageComponent
.clickOnIntField()
.enterIntField('string value')
.clickOnIntSaveIcon();
it('[C279947] Should not be possible add string value to the int item', async () => {
await cardViewPageComponent.clickOnIntField();
await cardViewPageComponent.enterIntField('string value');
await cardViewPageComponent.clickOnIntSaveIcon();
expect(cardViewPageComponent.getErrorInt()).toBe('Use an integer format');
await expect(await cardViewPageComponent.getErrorInt()).toBe('Use an integer format');
});
it('[C279948] Should not be possible add float value to the int item', () => {
cardViewPageComponent
.clickOnIntField()
.enterIntField('0.22')
.clickOnIntSaveIcon();
it('[C279948] Should not be possible add float value to the int item', async () => {
await cardViewPageComponent.clickOnIntField();
await cardViewPageComponent.enterIntField('0.22');
await cardViewPageComponent.clickOnIntSaveIcon();
expect(cardViewPageComponent.getErrorInt()).toBe('Use an integer format');
await expect(await cardViewPageComponent.getErrorInt()).toBe('Use an integer format');
});
it('[C279949] Should not be possible have an empty value', () => {
cardViewPageComponent
.clickOnIntField()
.enterIntField(' ')
.clickOnIntSaveIcon();
it('[C279949] Should not be possible have an empty value', async () => {
await cardViewPageComponent.clickOnIntField();
await cardViewPageComponent.enterIntField(' ');
await cardViewPageComponent.clickOnIntSaveIcon();
expect(cardViewPageComponent.getErrorInt()).toBe('Use an integer format');
await expect(await cardViewPageComponent.getErrorInt()).toBe('Use an integer format');
});
it('[C279950] Should return an error when the value is > 2147483647', () => {
cardViewPageComponent
.clickOnIntField()
.enterIntField('214748367')
.clickOnIntSaveIcon();
it('[C279950] Should return an error when the value is > 2147483647', async () => {
await cardViewPageComponent.clickOnIntField();
await cardViewPageComponent.enterIntField('214748367');
await cardViewPageComponent.clickOnIntSaveIcon();
expect(cardViewPageComponent.getOutputText(0)).toBe('[CardView Int Item] - 214748367');
await expect(await cardViewPageComponent.getOutputText(0)).toBe('[CardView Int Item] - 214748367');
cardViewPageComponent
.clickOnIntField()
.enterIntField('2147483648')
.clickOnIntSaveIcon();
await cardViewPageComponent.clickOnIntField();
await cardViewPageComponent.enterIntField('2147483648');
await cardViewPageComponent.clickOnIntSaveIcon();
expect(cardViewPageComponent.getErrorInt()).toBe('Use an integer format');
await expect(await cardViewPageComponent.getErrorInt()).toBe('Use an integer format');
});
it('[C279951] Should be possible undo item modify when click on the clear button', () => {
cardViewPageComponent
.clickOnIntField()
.enterIntField('999')
.clickOnIntClearIcon();
it('[C279951] Should be possible undo item modify when click on the clear button', async () => {
await cardViewPageComponent.clickOnIntField();
await cardViewPageComponent.enterIntField('999');
await cardViewPageComponent.clickOnIntClearIcon();
expect(cardViewPageComponent.getIntFieldText()).toBe('213');
await expect(await cardViewPageComponent.getIntFieldText()).toBe('213');
});
});
describe('Float', () => {
it('[C279941] Should the label be present', () => {
it('[C279941] Should the label be present', async () => {
const label = element(by.css('div[data-automation-id="card-textitem-label-float"]'));
BrowserVisibility.waitUntilElementIsPresent(label);
await BrowserVisibility.waitUntilElementIsPresent(label);
});
it('[C279952] Should be present a default value', () => {
expect(cardViewPageComponent.getFloatFieldText()).toBe('9.9');
it('[C279952] Should be present a default value', async () => {
await expect(await cardViewPageComponent.getFloatFieldText()).toBe('9.9');
});
it('[C279953] Should be possible edit float item', () => {
cardViewPageComponent
.clickOnFloatField()
.enterFloatField('77.33')
.clickOnFloatSaveIcon();
it('[C279953] Should be possible edit float item', async () => {
await cardViewPageComponent.clickOnFloatField();
await cardViewPageComponent.enterFloatField('77.33');
await cardViewPageComponent.clickOnFloatSaveIcon();
expect(cardViewPageComponent.getOutputText(0)).toBe('[CardView Float Item] - 77.33');
await expect(await cardViewPageComponent.getOutputText(0)).toBe('[CardView Float Item] - 77.33');
});
it('[C279954] Should not be possible add string value to the float item', () => {
cardViewPageComponent
.clickOnFloatField()
.enterFloatField('string value')
.clickOnFloatSaveIcon();
it('[C279954] Should not be possible add string value to the float item', async () => {
await cardViewPageComponent.clickOnFloatField();
await cardViewPageComponent.enterFloatField('string value');
await cardViewPageComponent.clickOnFloatSaveIcon();
expect(cardViewPageComponent.getErrorFloat()).toBe('Use a number format');
await expect(await cardViewPageComponent.getErrorFloat()).toBe('Use a number format');
});
it('[C279955] Should be possible undo item item modify when click on the clear button', () => {
cardViewPageComponent
.clickOnFloatField()
.enterFloatField('77.33')
.clickOnFloatClearIcon();
it('[C279955] Should be possible undo item item modify when click on the clear button', async () => {
await cardViewPageComponent.clickOnFloatField();
await cardViewPageComponent.enterFloatField('77.33');
await cardViewPageComponent.clickOnFloatClearIcon();
expect(cardViewPageComponent.getFloatFieldText()).toBe('9.9');
await expect(await cardViewPageComponent.getFloatFieldText()).toBe('9.9');
});
it('[C279956] Should not be possible have an empty value', () => {
cardViewPageComponent
.clickOnFloatField()
.enterFloatField(' ')
.clickOnFloatSaveIcon();
it('[C279956] Should not be possible have an empty value', async () => {
await cardViewPageComponent.clickOnFloatField();
await cardViewPageComponent.enterFloatField(' ');
await cardViewPageComponent.clickOnFloatSaveIcon();
expect(cardViewPageComponent.getErrorFloat()).toBe('Use a number format');
await expect(await cardViewPageComponent.getErrorFloat()).toBe('Use a number format');
});
});
describe('Boolean', () => {
it('[C279942] Should the label be present', () => {
it('[C279942] Should the label be present', async () => {
const label = element(by.css('div[data-automation-id="card-boolean-label-boolean"]'));
BrowserVisibility.waitUntilElementIsPresent(label);
await BrowserVisibility.waitUntilElementIsPresent(label);
});
it('[C279957] Should be possible edit the checkbox value when click on it', () => {
cardViewPageComponent.checkboxClick();
it('[C279957] Should be possible edit the checkbox value when click on it', async () => {
await cardViewPageComponent.checkboxClick();
expect(cardViewPageComponent.getOutputText(0)).toBe('[CardView Boolean Item] - false');
await expect(await cardViewPageComponent.getOutputText(0)).toBe('[CardView Boolean Item] - false');
cardViewPageComponent.checkboxClick();
await cardViewPageComponent.checkboxClick();
expect(cardViewPageComponent.getOutputText(1)).toBe('[CardView Boolean Item] - true');
await expect(await cardViewPageComponent.getOutputText(1)).toBe('[CardView Boolean Item] - true');
});
});
describe('Date and DateTime', () => {
it('[C279961] Should the label be present', () => {
it('[C279961] Should the label be present', async () => {
const labelDate = element(by.css('div[data-automation-id="card-dateitem-label-date"]'));
BrowserVisibility.waitUntilElementIsPresent(labelDate);
await BrowserVisibility.waitUntilElementIsPresent(labelDate);
const labelDatetime = element(by.css('div[data-automation-id="card-dateitem-label-datetime"]'));
BrowserVisibility.waitUntilElementIsPresent(labelDatetime);
await BrowserVisibility.waitUntilElementIsPresent(labelDatetime);
});
it('[C279962] Should be present a default value', () => {
expect(metadataViewPage.getPropertyText('date', 'date')).toEqual('12/24/83');
expect(metadataViewPage.getPropertyText('datetime', 'datetime')).toEqual('Dec 24, 1983, 10:00');
it('[C279962] Should be present a default value', async () => {
await expect(await metadataViewPage.getPropertyText('date', 'date')).toEqual('12/24/83');
await expect(await metadataViewPage.getPropertyText('datetime', 'datetime')).toEqual('Dec 24, 1983, 10:00');
});
});
it('[C279936] Should not be possible edit any parameter when editable property is false', () => {
cardViewPageComponent.disableEdit();
it('[C279936] Should not be possible edit any parameter when editable property is false', async () => {
await cardViewPageComponent.disableEdit();
const editIconText = element(by.css('mat-icon[data-automation-id="card-textitem-edit-icon-name"]'));
const editIconInt = element(by.css('mat-icon[data-automation-id="card-textitem-edit-icon-int"]'));
@@ -286,10 +272,10 @@ describe('CardView Component', () => {
const editIconKey = element(by.css('mat-icon[data-automation-id="card-key-value-pairs-button-key-value-pairs"]'));
const editIconData = element(by.css('mat-datetimepicker-toggle'));
BrowserVisibility.waitUntilElementIsNotVisible(editIconText);
BrowserVisibility.waitUntilElementIsNotVisible(editIconInt);
BrowserVisibility.waitUntilElementIsNotVisible(editIconFloat);
BrowserVisibility.waitUntilElementIsNotVisible(editIconKey);
BrowserVisibility.waitUntilElementIsNotVisible(editIconData);
await BrowserVisibility.waitUntilElementIsNotVisible(editIconText);
await BrowserVisibility.waitUntilElementIsNotVisible(editIconInt);
await BrowserVisibility.waitUntilElementIsNotVisible(editIconFloat);
await BrowserVisibility.waitUntilElementIsNotVisible(editIconKey);
await BrowserVisibility.waitUntilElementIsNotVisible(editIconData);
});
});

View File

@@ -32,7 +32,7 @@ describe('Datatable component - selection', () => {
const navigationBarPage = new NavigationBarPage();
const dataTableComponent = new DataTableComponentPage();
beforeAll(async (done) => {
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
@@ -46,60 +46,59 @@ describe('Datatable component - selection', () => {
await navigationBarPage.navigateToDatatable();
done();
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
});
it('[C213258] Should be possible change the selection modes when change the selectionMode property', () => {
dataTablePage.selectRow('2');
dataTableComponent.checkRowIsSelected('Id', '2');
expect(dataTablePage.getNumberOfSelectedRows()).toEqual(1);
dataTablePage.selectRow('3');
dataTableComponent.checkRowIsSelected('Id', '3');
expect(dataTablePage.getNumberOfSelectedRows()).toEqual(1);
dataTablePage.selectSelectionMode('Multiple');
dataTablePage.selectRow('1');
dataTableComponent.checkRowIsSelected('Id', '1');
dataTablePage.selectRowWithKeyboard('3');
dataTableComponent.checkRowIsSelected('Id', '1');
dataTableComponent.checkRowIsSelected('Id', '3');
dataTablePage.checkRowIsNotSelected('2');
dataTablePage.checkRowIsNotSelected('4');
dataTablePage.selectSelectionMode('None');
dataTablePage.selectRow('1');
dataTablePage.checkNoRowIsSelected();
it('[C213258] Should be possible change the selection modes when change the selectionMode property', async () => {
await dataTablePage.selectRow('2');
await dataTableComponent.checkRowIsSelected('Id', '2');
await expect(await dataTablePage.getNumberOfSelectedRows()).toEqual(1);
await dataTablePage.selectRow('3');
await dataTableComponent.checkRowIsSelected('Id', '3');
await expect(await dataTablePage.getNumberOfSelectedRows()).toEqual(1);
await dataTablePage.selectSelectionMode('Multiple');
await dataTablePage.selectRow('1');
await dataTableComponent.checkRowIsSelected('Id', '1');
await dataTablePage.selectRowWithKeyboard('3');
await dataTableComponent.checkRowIsSelected('Id', '1');
await dataTableComponent.checkRowIsSelected('Id', '3');
await dataTablePage.checkRowIsNotSelected('2');
await dataTablePage.checkRowIsNotSelected('4');
await dataTablePage.selectSelectionMode('None');
await dataTablePage.selectRow('1');
await dataTablePage.checkNoRowIsSelected();
});
it('[C260059] Should be possible select multiple row when multiselect is true', () => {
dataTablePage.clickMultiSelect();
dataTablePage.clickCheckbox('1');
dataTablePage.checkRowIsChecked('1');
dataTablePage.clickCheckbox('3');
dataTablePage.checkRowIsChecked('3');
dataTablePage.checkRowIsNotChecked('2');
dataTablePage.checkRowIsNotChecked('4');
dataTablePage.clickCheckbox('3');
dataTablePage.checkRowIsNotChecked('3');
dataTablePage.checkRowIsChecked('1');
it('[C260059] Should be possible select multiple row when multiselect is true', async () => {
await dataTablePage.clickMultiSelect();
await dataTablePage.clickCheckbox('1');
await dataTablePage.checkRowIsChecked('1');
await dataTablePage.clickCheckbox('3');
await dataTablePage.checkRowIsChecked('3');
await dataTablePage.checkRowIsNotChecked('2');
await dataTablePage.checkRowIsNotChecked('4');
await dataTablePage.clickCheckbox('3');
await dataTablePage.checkRowIsNotChecked('3');
await dataTablePage.checkRowIsChecked('1');
});
it('[C260058] Should be possible select all the rows when multiselect is true', () => {
dataTablePage.checkAllRows();
dataTablePage.checkRowIsChecked('1');
dataTablePage.checkRowIsChecked('2');
dataTablePage.checkRowIsChecked('3');
dataTablePage.checkRowIsChecked('4');
it('[C260058] Should be possible select all the rows when multiselect is true', async () => {
await dataTablePage.checkAllRows();
await dataTablePage.checkRowIsChecked('1');
await dataTablePage.checkRowIsChecked('2');
await dataTablePage.checkRowIsChecked('3');
await dataTablePage.checkRowIsChecked('4');
});
it('[C277262] Should be possible reset the selected row when click on the reset button', () => {
dataTablePage.checkRowIsChecked('1');
dataTablePage.checkRowIsChecked('2');
dataTablePage.checkRowIsChecked('3');
dataTablePage.checkRowIsChecked('4');
dataTablePage.clickReset();
dataTablePage.checkNoRowIsSelected();
it('[C277262] Should be possible reset the selected row when click on the reset button', async () => {
await dataTablePage.checkRowIsChecked('1');
await dataTablePage.checkRowIsChecked('2');
await dataTablePage.checkRowIsChecked('3');
await dataTablePage.checkRowIsChecked('4');
await dataTablePage.clickReset();
await dataTablePage.checkNoRowIsSelected();
});
});

View File

@@ -43,7 +43,7 @@ describe('Datatable component', () => {
'location': resources.Files.ADF_DOCUMENTS.PNG.file_location
});
beforeAll(async (done) => {
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
@@ -55,7 +55,6 @@ describe('Datatable component', () => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
done();
});
afterAll(async () => {
@@ -64,151 +63,153 @@ describe('Datatable component', () => {
describe('Datatable component', () => {
beforeAll(async (done) => {
navigationBarPage.navigateToDatatable();
done();
beforeAll(async () => {
await navigationBarPage.navigateToDatatable();
await dataTablePage.dataTable.waitForTableBody();
});
beforeEach(async (done) => {
dataTablePage.clickReset();
done();
beforeEach(async () => {
await dataTablePage.clickReset();
});
it('[C91314] Should be possible add new row to the table', () => {
dataTableComponent.numberOfRows().then((result) => {
dataTablePage.addRow();
expect(dataTableComponent.numberOfRows()).toEqual(result + 1);
dataTablePage.addRow();
expect(dataTableComponent.numberOfRows()).toEqual(result + 2);
});
it('[C91314] Should be possible add new row to the table', async () => {
const result = await dataTableComponent.numberOfRows();
await dataTablePage.addRow();
await expect(await dataTableComponent.numberOfRows()).toEqual(result + 1);
await dataTablePage.addRow();
await expect(await dataTableComponent.numberOfRows()).toEqual(result + 2);
});
it('[C260039] Should be possible replace rows', () => {
dataTablePage.replaceRows(1);
it('[C260039] Should be possible replace rows', async () => {
await dataTablePage.replaceRows(1);
});
it('[C260041] Should be possible replace columns', () => {
dataTablePage.replaceColumns();
it('[C260041] Should be possible replace columns', async () => {
await dataTablePage.replaceColumns();
});
it('[C277314] Should filter the table rows when the input filter is passed', () => {
dataTablePage.replaceRows(1);
dataTablePage.replaceColumns();
expect(dataTableComponent.numberOfRows()).toEqual(4);
dataTablePage.insertFilter('Name');
expect(dataTableComponent.numberOfRows()).toEqual(3);
dataTablePage.insertFilter('I');
expect(dataTableComponent.numberOfRows()).toEqual(1);
it('[C277314] Should filter the table rows when the input filter is passed', async () => {
await dataTablePage.replaceRows(1);
await dataTablePage.replaceColumns();
await expect(await dataTableComponent.numberOfRows()).toEqual(4);
await dataTablePage.insertFilter('Name');
await expect(await dataTableComponent.numberOfRows()).toEqual(3);
await dataTablePage.insertFilter('I');
await expect(await dataTableComponent.numberOfRows()).toEqual(1);
});
});
describe('Datatable component - copyContent', () => {
beforeAll(async (done) => {
navigationBarPage.navigateToCopyContentDatatable();
done();
beforeAll(async () => {
await navigationBarPage.navigateToCopyContentDatatable();
await dataTablePage.dataTable.waitForTableBody();
});
it('[C307037] A tooltip is displayed when mouseOver a column with copyContent set to true', () => {
dataTablePage.mouseOverIdColumn('1');
expect(dataTablePage.getCopyContentTooltip()).toEqual('Click to copy');
dataTablePage.mouseOverNameColumn('Name 2');
dataTablePage.dataTable.copyContentTooltipIsNotDisplayed();
it('[C307037] A tooltip is displayed when mouseOver a column with copyContent set to true', async () => {
await dataTablePage.mouseOverIdColumn('1');
await expect(await dataTablePage.getCopyContentTooltip()).toEqual('Click to copy');
await dataTablePage.mouseOverNameColumn('Name 2');
await dataTablePage.dataTable.copyContentTooltipIsNotDisplayed();
});
it('[C307045] No tooltip is displayed when hover over a column with copyContent set to false', () => {
dataTablePage.mouseOverNameColumn('Name 2');
dataTablePage.dataTable.copyContentTooltipIsNotDisplayed();
dataTablePage.clickOnNameColumn('Name 2');
notificationHistoryPage.checkNotifyNotContains('Name 2');
it('[C307045] No tooltip is displayed when hover over a column with copyContent set to false', async () => {
await dataTablePage.mouseOverNameColumn('Name 2');
await dataTablePage.dataTable.copyContentTooltipIsNotDisplayed();
await dataTablePage.clickOnNameColumn('Name 2');
await notificationHistoryPage.checkNotifyNotContains('Name 2');
});
it('[C307046] No tooltip is displayed when hover over a column that has default value for copyContent property', () => {
dataTablePage.mouseOverCreatedByColumn('Created One');
dataTablePage.dataTable.copyContentTooltipIsNotDisplayed();
dataTablePage.clickOnCreatedByColumn('Created One');
notificationHistoryPage.checkNotifyNotContains('Created One');
it('[C307046] No tooltip is displayed when hover over a column that has default value for copyContent property', async () => {
await dataTablePage.mouseOverCreatedByColumn('Created One');
await dataTablePage.dataTable.copyContentTooltipIsNotDisplayed();
await dataTablePage.clickOnCreatedByColumn('Created One');
await notificationHistoryPage.checkNotifyNotContains('Created One');
});
it('[C307040] A column value with copyContent set to true is copied when clicking on it', () => {
dataTablePage.mouseOverIdColumn('1');
expect(dataTablePage.getCopyContentTooltip()).toEqual('Click to copy');
dataTablePage.clickOnIdColumn('1');
notificationHistoryPage.checkNotifyContains('Text copied to clipboard');
dataTablePage.clickOnIdColumn('2');
notificationHistoryPage.checkNotifyContains('Text copied to clipboard');
dataTablePage.pasteClipboard();
expect(dataTablePage.getClipboardInputText()).toEqual('2');
it('[C307040] A column value with copyContent set to true is copied when clicking on it', async () => {
await dataTablePage.mouseOverIdColumn('1');
await expect(await dataTablePage.getCopyContentTooltip()).toEqual('Click to copy');
await dataTablePage.clickOnIdColumn('1');
await notificationHistoryPage.checkNotifyContains('Text copied to clipboard');
await dataTablePage.clickOnIdColumn('2');
await notificationHistoryPage.checkNotifyContains('Text copied to clipboard');
await dataTablePage.pasteClipboard();
await expect(await dataTablePage.getClipboardInputText()).toEqual('2');
});
it('[C307072] A tooltip is displayed when mouseOver a column with copyContent set to true', () => {
copyContentDataTablePage.mouseOverIdColumn('1');
expect(copyContentDataTablePage.getCopyContentTooltip()).toEqual('Click to copy');
copyContentDataTablePage.mouseOverNameColumn('First');
copyContentDataTablePage.dataTable.copyContentTooltipIsNotDisplayed();
it('[C307072] A tooltip is displayed when mouseOver a column with copyContent set to true', async () => {
await copyContentDataTablePage.mouseOverIdColumn('1');
await expect(await copyContentDataTablePage.getCopyContentTooltip()).toEqual('Click to copy');
await copyContentDataTablePage.mouseOverNameColumn('First');
await copyContentDataTablePage.dataTable.copyContentTooltipIsNotDisplayed();
});
it('[C307074] No tooltip is displayed when hover over a column with copyContent set to false', () => {
copyContentDataTablePage.mouseOverNameColumn('Second');
copyContentDataTablePage.dataTable.copyContentTooltipIsNotDisplayed();
copyContentDataTablePage.clickOnNameColumn('Second');
notificationHistoryPage.checkNotifyNotContains('Second');
it('[C307074] No tooltip is displayed when hover over a column with copyContent set to false', async () => {
await copyContentDataTablePage.mouseOverNameColumn('Second');
await copyContentDataTablePage.dataTable.copyContentTooltipIsNotDisplayed();
await copyContentDataTablePage.clickOnNameColumn('Second');
await notificationHistoryPage.checkNotifyNotContains('Second');
});
it('[C307075] No tooltip is displayed when hover over a column that has default value for copyContent property', () => {
copyContentDataTablePage.mouseOverCreatedByColumn('Created one');
copyContentDataTablePage.dataTable.copyContentTooltipIsNotDisplayed();
copyContentDataTablePage.clickOnCreatedByColumn('Created one');
notificationHistoryPage.checkNotifyNotContains('Created One');
it('[C307075] No tooltip is displayed when hover over a column that has default value for copyContent property', async () => {
await copyContentDataTablePage.mouseOverCreatedByColumn('Created one');
await copyContentDataTablePage.dataTable.copyContentTooltipIsNotDisplayed();
await copyContentDataTablePage.clickOnCreatedByColumn('Created one');
await notificationHistoryPage.checkNotifyNotContains('Created One');
});
it('[C307073] A column value with copyContent set to true is copied when clicking on it', () => {
copyContentDataTablePage.mouseOverIdColumn('1');
expect(copyContentDataTablePage.getCopyContentTooltip()).toEqual('Click to copy');
copyContentDataTablePage.clickOnIdColumn('1');
notificationHistoryPage.checkNotifyContains('Text copied to clipboard');
copyContentDataTablePage.clickOnIdColumn('2');
notificationHistoryPage.checkNotifyContains('Text copied to clipboard');
copyContentDataTablePage.pasteClipboard();
expect(copyContentDataTablePage.getClipboardInputText()).toEqual('2');
it('[C307073] A column value with copyContent set to true is copied when clicking on it', async () => {
await copyContentDataTablePage.mouseOverIdColumn('1');
await expect(await copyContentDataTablePage.getCopyContentTooltip()).toEqual('Click to copy');
await copyContentDataTablePage.clickOnIdColumn('1');
await notificationHistoryPage.checkNotifyContains('Text copied to clipboard');
await copyContentDataTablePage.clickOnIdColumn('2');
await notificationHistoryPage.checkNotifyContains('Text copied to clipboard');
await copyContentDataTablePage.pasteClipboard();
await expect(await copyContentDataTablePage.getClipboardInputText()).toEqual('2');
});
it('[C307100] A column value of type text and with copyContent set to true is copied when clicking on it', () => {
dataTablePage.mouseOverIdColumn('1');
expect(dataTablePage.getCopyContentTooltip()).toEqual('Click to copy');
dataTablePage.clickOnIdColumn('1');
notificationHistoryPage.checkNotifyContains('Text copied to clipboard');
dataTablePage.pasteClipboard();
expect(dataTablePage.getClipboardInputText()).toEqual('1');
it('[C307100] A column value of type text and with copyContent set to true is copied when clicking on it', async () => {
await dataTablePage.mouseOverIdColumn('1');
await expect(await dataTablePage.getCopyContentTooltip()).toEqual('Click to copy');
await dataTablePage.clickOnIdColumn('1');
await notificationHistoryPage.checkNotifyContains('Text copied to clipboard');
await dataTablePage.pasteClipboard();
await expect(await dataTablePage.getClipboardInputText()).toEqual('1');
});
it('[C307101] A column value of type json and with copyContent set to true is copied when clicking on it', () => {
it('[C307101] A column value of type json and with copyContent set to true is copied when clicking on it', async () => {
const jsonValue = `{ "id": 4 }`;
copyContentDataTablePage.mouseOverJsonColumn(2);
expect(copyContentDataTablePage.getCopyContentTooltip()).toEqual('Click to copy');
copyContentDataTablePage.clickOnJsonColumn(2);
notificationHistoryPage.checkNotifyContains('Text copied to clipboard');
copyContentDataTablePage.pasteClipboard();
expect(copyContentDataTablePage.getClipboardInputText()).toContain(jsonValue);
await copyContentDataTablePage.mouseOverJsonColumn(2);
await expect(await copyContentDataTablePage.getCopyContentTooltip()).toEqual('Click to copy');
await copyContentDataTablePage.clickOnJsonColumn(2);
await notificationHistoryPage.checkNotifyContains('Text copied to clipboard');
await copyContentDataTablePage.pasteClipboard();
await expect(await copyContentDataTablePage.getClipboardInputText()).toContain(jsonValue);
});
afterAll(async () => {
await navigationBarPage.clickHomeButton();
});
});
describe('Datatable component - Drag and Drop', () => {
beforeAll(async (done) => {
navigationBarPage.navigateToDragAndDropDatatable();
done();
beforeAll(async () => {
await navigationBarPage.navigateToDragAndDropDatatable();
await dragAndDropDataTablePage.dataTable.waitForTableBody();
});
it('[C307984] Should trigger the event handling header-drop and cell-drop', () => {
it('[C307984] Should trigger the event handling header-drop and cell-drop', async () => {
const dragAndDropHeader = dragAndDropDataTablePage.getDropTargetIdColumnHeader();
dragAndDrop.dropFile(dragAndDropHeader, pngFile.location);
notificationHistoryPage.checkNotifyContains('Dropped data on [ id ] header');
await dragAndDrop.dropFile(dragAndDropHeader, pngFile.location);
await notificationHistoryPage.checkNotifyContains('Dropped data on [ id ] header');
const dragAndDropCell = dragAndDropDataTablePage.getDropTargetIdColumnCell(1);
dragAndDrop.dropFile(dragAndDropCell, pngFile.location);
notificationHistoryPage.checkNotifyContains('Dropped data on [ id ] cell');
await dragAndDrop.dropFile(dragAndDropCell, pngFile.location);
await notificationHistoryPage.checkNotifyContains('Dropped data on [ id ] cell');
});
});
});

View File

@@ -28,7 +28,7 @@ describe('Error Component', () => {
const errorPage = new ErrorPage();
const navigationBarPage = new NavigationBarPage();
beforeAll(async (done) => {
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
@@ -38,49 +38,47 @@ describe('Error Component', () => {
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
done();
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
});
it('[C277302] Should display the error 403 when access to unauthorized page - My Change', () => {
BrowserActions.getUrl(browser.params.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.');
it('[C277302] Should display the error 403 when access to unauthorized page - My Change', async () => {
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/error/403');
await expect(await errorPage.getErrorCode()).toBe('403');
await expect(await errorPage.getErrorTitle()).toBe('You don\'t have permission to access this server.');
await expect(await errorPage.getErrorDescription()).toBe('You\'re not allowed access to this resource on the server.');
});
it('[C280563] Should back home button navigate to the home page', () => {
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/error/404');
it('[C280563] Should back home button navigate to the home page', async () => {
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/error/404');
errorPage.clickBackButton();
await errorPage.clickBackButton();
expect(browser.getCurrentUrl()).toBe(browser.params.testConfig.adf.url + '/');
await expect(await browser.getCurrentUrl()).toBe(browser.params.testConfig.adf.url + '/');
});
it('[C280564] Should secondary button by default redirect to report-issue URL', () => {
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/error/403');
it('[C280564] Should secondary button by default redirect to report-issue URL', async () => {
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/error/403');
errorPage.clickSecondButton();
await errorPage.clickSecondButton();
expect(browser.getCurrentUrl()).toBe(browser.params.testConfig.adf.url + '/report-issue');
await expect(await browser.getCurrentUrl()).toBe(browser.params.testConfig.adf.url + '/report-issue');
});
it('[C277304] Should display the error 404 when access to not found page', () => {
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/error/404');
expect(errorPage.getErrorCode()).toBe('404');
expect(errorPage.getErrorTitle()).toBe('An error occurred.');
expect(errorPage.getErrorDescription()).toBe('We couldnt find the page you were looking for.');
it('[C277304] Should display the error 404 when access to not found page', async () => {
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/error/404');
await expect(await errorPage.getErrorCode()).toBe('404');
await expect(await errorPage.getErrorTitle()).toBe('An error occurred.');
await expect(await errorPage.getErrorDescription()).toBe('We couldnt find the page you were looking for.');
});
it('[C307029] Should display Unknown message when error is undefined', () => {
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/error/501');
expect(errorPage.getErrorCode()).toBe('UNKNOWN');
expect(errorPage.getErrorTitle()).toBe('We hit a problem.');
expect(errorPage.getErrorDescription()).toBe('Looks like something went wrong.');
it('[C307029] Should display Unknown message when error is undefined', async () => {
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/error/501');
await expect(await errorPage.getErrorCode()).toBe('UNKNOWN');
await expect(await errorPage.getErrorTitle()).toBe('We hit a problem.');
await expect(await errorPage.getErrorDescription()).toBe('Looks like something went wrong.');
});
});

View File

@@ -46,7 +46,7 @@ describe('Header Component', () => {
logo_tooltip: 'test_tooltip'
};
beforeAll(async(done) => {
beforeAll(async() => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
@@ -64,85 +64,83 @@ describe('Header Component', () => {
await loginPage.loginToProcessServicesUsingUserModel(user);
done();
});
beforeEach(async(done) => {
navigationBarPage.clickHeaderDataButton();
done();
beforeEach(async() => {
await navigationBarPage.clickHeaderDataButton();
});
afterAll(async(done) => {
afterAll(async() => {
await navigationBarPage.clickLogoutButton();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
done();
});
it('[C280002] Should be able to view Header component', () => {
headerPage.checkShowMenuCheckBoxIsDisplayed();
headerPage.checkChooseHeaderColourIsDisplayed();
headerPage.checkHexColorInputIsDisplayed();
headerPage.checkChangeTitleIsDisplayed();
headerPage.checkChangeUrlPathIsDisplayed();
headerPage.checkLogoHyperlinkInputIsDisplayed();
headerPage.checkLogoTooltipInputIsDisplayed();
it('[C280002] Should be able to view Header component', async () => {
await headerPage.checkShowMenuCheckBoxIsDisplayed();
await headerPage.checkChooseHeaderColourIsDisplayed();
await headerPage.checkHexColorInputIsDisplayed();
await headerPage.checkChangeTitleIsDisplayed();
await headerPage.checkChangeUrlPathIsDisplayed();
await headerPage.checkLogoHyperlinkInputIsDisplayed();
await headerPage.checkLogoTooltipInputIsDisplayed();
});
it('[C279996] Should be able to show/hide menu button', () => {
headerPage.clickShowMenuButton();
navigationBarPage.checkMenuButtonIsNotDisplayed();
headerPage.clickShowMenuButton();
navigationBarPage.checkMenuButtonIsDisplayed();
it('[C279996] Should be able to show/hide menu button', async () => {
await headerPage.clickShowMenuButton();
await navigationBarPage.checkMenuButtonIsNotDisplayed();
await headerPage.clickShowMenuButton();
await navigationBarPage.checkMenuButtonIsDisplayed();
});
it('[C279999] Should be able to change the colour between primary, accent and warn', () => {
headerPage.changeHeaderColor(names.color_accent);
navigationBarPage.checkToolbarColor(names.color_accent);
headerPage.changeHeaderColor(names.color_primary);
navigationBarPage.checkToolbarColor(names.color_primary);
headerPage.changeHeaderColor(names.color_warn);
navigationBarPage.checkToolbarColor(names.color_warn);
it('[C279999] Should be able to change the colour between primary, accent and warn', async () => {
await headerPage.changeHeaderColor(names.color_accent);
await navigationBarPage.checkToolbarColor(names.color_accent);
await headerPage.changeHeaderColor(names.color_primary);
await navigationBarPage.checkToolbarColor(names.color_primary);
await headerPage.changeHeaderColor(names.color_warn);
await navigationBarPage.checkToolbarColor(names.color_warn);
});
it('[C280552] Should be able to change the colour of the header by typing a hex code', () => {
headerPage.addHexCodeColor(names.color_custom);
navigationBarPage.checkToolbarColor(names.color_custom);
it('[C280552] Should be able to change the colour of the header by typing a hex code', async () => {
await headerPage.addHexCodeColor(names.color_custom);
await navigationBarPage.checkToolbarColor(names.color_custom);
});
it('[C279997] Should be able to change the title of the app', () => {
headerPage.checkAppTitle(names.app_title_default);
headerPage.addTitle(names.app_title_custom);
headerPage.checkAppTitle(names.app_title_custom);
it('[C279997] Should be able to change the title of the app', async () => {
await headerPage.checkAppTitle(names.app_title_default);
await headerPage.addTitle(names.app_title_custom);
await headerPage.checkAppTitle(names.app_title_custom);
});
it('[C279998] Should be able to change the default logo of the app', () => {
headerPage.checkIconIsDisplayed(names.urlPath_default);
headerPage.addIcon(names.urlPath_custom);
headerPage.checkIconIsDisplayed(names.urlPath_custom);
it('[C279998] Should be able to change the default logo of the app', async () => {
await headerPage.checkIconIsDisplayed(names.urlPath_default);
await headerPage.addIcon(names.urlPath_custom);
await headerPage.checkIconIsDisplayed(names.urlPath_custom);
});
it('[C280553] Should be able to set a hyperlink to the logo', () => {
headerPage.addLogoHyperlink(names.urlPath_logo_link);
navigationBarPage.clickAppLogo(names.logo_title);
settingsPage.checkProviderDropdownIsDisplayed();
it('[C280553] Should be able to set a hyperlink to the logo', async () => {
await headerPage.addLogoHyperlink(names.urlPath_logo_link);
await navigationBarPage.clickAppLogo(names.logo_title);
await settingsPage.checkProviderDropdownIsDisplayed();
});
it('[C286517] Should be able to set a hyperlink to the logo text', () => {
headerPage.addLogoHyperlink(names.urlPath_logo_link);
navigationBarPage.clickAppLogoText();
settingsPage.checkProviderDropdownIsDisplayed();
it('[C286517] Should be able to set a hyperlink to the logo text', async () => {
await headerPage.addLogoHyperlink(names.urlPath_logo_link);
await navigationBarPage.clickAppLogoText();
await settingsPage.checkProviderDropdownIsDisplayed();
});
it('[C280554] Should be able to customise the tooltip-text of the logo', () => {
headerPage.addLogoTooltip(names.logo_tooltip);
navigationBarPage.checkLogoTooltip(names.logo_tooltip);
it('[C280554] Should be able to customise the tooltip-text of the logo', async () => {
await headerPage.addLogoTooltip(names.logo_tooltip);
await navigationBarPage.checkLogoTooltip(names.logo_tooltip);
});
it('[C286297] Should be able to change the position of the sidebar menu', () => {
headerPage.sideBarPositionEnd();
headerPage.checkSidebarPositionEnd();
headerPage.sideBarPositionStart();
headerPage.checkSidebarPositionStart();
it('[C286297] Should be able to change the position of the sidebar menu', async () => {
await headerPage.sideBarPositionEnd();
await headerPage.checkSidebarPositionEnd();
await headerPage.sideBarPositionStart();
await headerPage.checkSidebarPositionStart();
});
});

View File

@@ -23,14 +23,14 @@ import { AcsUserModel } from '../models/ACS/acsUserModel';
import { browser } from 'protractor';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
describe('Universal Icon component', function () {
describe('Universal Icon component', () => {
const loginPage = new LoginPage();
const acsUser = new AcsUserModel();
const navigationBarPage = new NavigationBarPage();
const iconsPage = new IconsPage();
beforeAll(async (done) => {
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
@@ -40,25 +40,21 @@ describe('Universal Icon component', function () {
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
done();
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
});
beforeEach(async (done) => {
navigationBarPage.navigateToIconsPage();
done();
beforeEach(async () => {
await navigationBarPage.clickIconsButton();
});
it('[C291872] Should display the icons on the page', () => {
expect(iconsPage.locateLigatureIcon('folder').isDisplayed()).toBe(true, 'Ligature icon is not displayed');
expect(iconsPage.locateCustomIcon('adf:move_file').isDisplayed()).toBe(true, 'Named icon is not displayed');
expect(iconsPage.locateCustomIcon('adf:folder').isDisplayed()).toBe(true, 'Thumbnail service icon is not displayed');
it('[C291872] Should display the icons on the page', async () => {
await expect(await iconsPage.isLigatureIconDisplayed('folder')).toBe(true, 'Ligature icon is not displayed');
await expect(await iconsPage.isCustomIconDisplayed('adf:move_file')).toBe(true, 'Named icon is not displayed');
await expect(await iconsPage.isCustomIconDisplayed('adf:folder')).toBe(true, 'Thumbnail service icon is not displayed');
});
});

View File

@@ -52,7 +52,7 @@ describe('Enable infinite scrolling', () => {
extension: '.txt'
};
beforeAll(async (done) => {
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
@@ -79,81 +79,80 @@ describe('Enable infinite scrolling', () => {
await uploadActions.createEmptyFiles(deleteFileNames, deleteUploaded.entry.id);
done();
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
});
beforeEach(async (done) => {
navigationBarPage.clickContentServicesButton();
contentServicesPage.checkAcsContainer();
done();
beforeEach(async () => {
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.checkAcsContainer();
});
it('[C260484] Should be possible to enable infinite scrolling', () => {
contentServicesPage.doubleClickRow(folderModel.name);
contentServicesPage.enableInfiniteScrolling();
infinitePaginationPage.clickLoadMoreButton();
it('[C260484] Should be possible to enable infinite scrolling', async () => {
await contentServicesPage.doubleClickRow(folderModel.name);
await contentServicesPage.enableInfiniteScrolling();
await infinitePaginationPage.clickLoadMoreButton();
for (let i = 0; i < nrOfFiles; i++) {
contentServicesPage.checkContentIsDisplayed(fileNames[i]);
await contentServicesPage.checkContentIsDisplayed(fileNames[i]);
}
});
it('[C268165] Delete folder when infinite scrolling is enabled', () => {
contentServicesPage.doubleClickRow(deleteUploaded.entry.name);
contentServicesPage.checkAcsContainer();
contentServicesPage.waitForTableBody();
contentServicesPage.enableInfiniteScrolling();
infinitePaginationPage.clickLoadMoreButton();
it('[C268165] Delete folder when infinite scrolling is enabled', async () => {
await contentServicesPage.doubleClickRow(deleteUploaded.entry.name);
await contentServicesPage.checkAcsContainer();
await contentServicesPage.waitForTableBody();
await contentServicesPage.enableInfiniteScrolling();
await infinitePaginationPage.clickLoadMoreButton();
for (let i = 0; i < nrOfDeletedFiles; i++) {
contentServicesPage.checkContentIsDisplayed(deleteFileNames[i]);
await contentServicesPage.checkContentIsDisplayed(deleteFileNames[i]);
}
expect(contentServicesPage.getContentList().dataTablePage().numberOfRows()).toEqual(nrOfDeletedFiles);
await expect(await contentServicesPage.getDocumentList().dataTablePage().numberOfRows()).toEqual(nrOfDeletedFiles);
contentServicesPage.deleteContent(deleteFileNames[nrOfDeletedFiles - 1]);
contentServicesPage.checkContentIsNotDisplayed(deleteFileNames[nrOfDeletedFiles - 1]);
await contentServicesPage.deleteContent(deleteFileNames[nrOfDeletedFiles - 1]);
await contentServicesPage.checkContentIsNotDisplayed(deleteFileNames[nrOfDeletedFiles - 1]);
for (let i = 0; i < nrOfDeletedFiles - 1; i++) {
contentServicesPage.checkContentIsDisplayed(deleteFileNames[i]);
await contentServicesPage.checkContentIsDisplayed(deleteFileNames[i]);
}
});
it('[C299201] Should use default pagination settings for infinite pagination', () => {
navigationBarPage.clickContentServicesButton();
contentServicesPage.checkAcsContainer();
contentServicesPage.doubleClickRow(folderModel.name);
it('[C299201] Should use default pagination settings for infinite pagination', async () => {
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.checkAcsContainer();
await contentServicesPage.doubleClickRow(folderModel.name);
contentServicesPage.enableInfiniteScrolling();
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(pageSize);
infinitePaginationPage.clickLoadMoreButton();
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(nrOfFiles);
await contentServicesPage.enableInfiniteScrolling();
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(pageSize);
await infinitePaginationPage.clickLoadMoreButton();
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(nrOfFiles);
infinitePaginationPage.checkLoadMoreButtonIsNotDisplayed();
await infinitePaginationPage.checkLoadMoreButtonIsNotDisplayed();
});
it('[C299202] Should not display load more button when all the files are already displayed', () => {
LocalStorageUtil.setUserPreference('paginationSize', '30');
it('[C299202] Should not display load more button when all the files are already displayed', async () => {
await LocalStorageUtil.setUserPreference('paginationSize', '30');
navigationBarPage.clickContentServicesButton();
contentServicesPage.checkAcsContainer();
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.checkAcsContainer();
contentServicesPage.doubleClickRow(folderModel.name);
await contentServicesPage.doubleClickRow(folderModel.name);
contentServicesPage.enableInfiniteScrolling();
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(nrOfFiles);
await contentServicesPage.enableInfiniteScrolling();
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(nrOfFiles);
infinitePaginationPage.checkLoadMoreButtonIsNotDisplayed();
await infinitePaginationPage.checkLoadMoreButtonIsNotDisplayed();
});
it('[C299203] Should not display load more button when a folder is empty', () => {
navigationBarPage.clickContentServicesButton();
contentServicesPage.checkAcsContainer();
it('[C299203] Should not display load more button when a folder is empty', async () => {
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.checkAcsContainer();
contentServicesPage.doubleClickRow(emptyFolderModel.entry.name);
await contentServicesPage.doubleClickRow(emptyFolderModel.entry.name);
infinitePaginationPage.checkLoadMoreButtonIsNotDisplayed();
await infinitePaginationPage.checkLoadMoreButtonIsNotDisplayed();
});
});

View File

@@ -56,7 +56,7 @@ describe('Login component', () => {
const invalidUsername = 'invaliduser';
const invalidPassword = 'invalidpassword';
beforeAll(async (done) => {
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ALL',
hostEcm: browser.params.testConfig.adf_acs.host,
@@ -68,218 +68,213 @@ describe('Login component', () => {
await this.alfrescoJsApi.core.peopleApi.addPerson(userA);
await this.alfrescoJsApi.core.peopleApi.addPerson(userB);
done();
});
it('[C276746] Should display the right information in user-info when a different users logs in', async () => {
await loginPage.loginToContentServicesUsingUserModel(userA);
userInfoPage.clickUserProfile();
expect(userInfoPage.getContentHeaderTitle()).toEqual(userA.firstName + ' ' + userA.lastName);
expect(userInfoPage.getContentEmail()).toEqual(userA.email);
await userInfoPage.clickUserProfile();
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(userA.firstName + ' ' + userA.lastName);
await expect(await userInfoPage.getContentEmail()).toEqual(userA.email);
await loginPage.loginToContentServicesUsingUserModel(userB);
userInfoPage.clickUserProfile();
expect(userInfoPage.getContentHeaderTitle()).toEqual(userB.firstName + ' ' + userB.lastName);
expect(userInfoPage.getContentEmail()).toEqual(userB.email);
await userInfoPage.clickUserProfile();
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(userB.firstName + ' ' + userB.lastName);
await expect(await userInfoPage.getContentEmail()).toEqual(userB.email);
});
it('[C299206] Should redirect the user without the right access role on a forbidden page', async () => {
await loginPage.loginToContentServicesUsingUserModel(userA);
navigationBarPage.navigateToProcessServicesCloudPage();
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.');
await navigationBarPage.navigateToProcessServicesCloudPage();
await expect(await errorPage.getErrorCode()).toBe('403');
await expect(await errorPage.getErrorTitle()).toBe('You don\'t have permission to access this server.');
await expect(await errorPage.getErrorDescription()).toBe('You\'re not allowed access to this resource on the server.');
});
it('[C260036] Should require username', () => {
loginPage.goToLoginPage();
loginPage.checkUsernameInactive();
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
loginPage.enterUsername('A');
expect(loginPage.getUsernameTooltip()).toEqual(errorMessages.username);
loginPage.clearUsername();
expect(loginPage.getUsernameTooltip()).toEqual(errorMessages.required);
loginPage.checkUsernameHighlighted();
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
it('[C260036] Should require username', async () => {
await loginPage.goToLoginPage();
await loginPage.checkUsernameInactive();
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.enterUsername('A');
await expect(await loginPage.getUsernameTooltip()).toEqual(errorMessages.username);
await loginPage.clearUsername();
await expect(await loginPage.getUsernameTooltip()).toEqual(errorMessages.required);
await loginPage.checkUsernameHighlighted();
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
});
it('[C260043] Should require password', () => {
loginPage.goToLoginPage();
loginPage.checkPasswordInactive();
loginPage.checkUsernameInactive();
loginPage.enterPassword('A');
loginPage.checkPasswordTooltipIsNotVisible();
loginPage.clearPassword();
expect(loginPage.getPasswordTooltip()).toEqual(errorMessages.password);
loginPage.checkPasswordHighlighted();
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
it('[C260043] Should require password', async () => {
await loginPage.goToLoginPage();
await loginPage.checkPasswordInactive();
await loginPage.checkUsernameInactive();
await loginPage.enterPassword('A');
await loginPage.checkPasswordTooltipIsNotVisible();
await loginPage.clearPassword();
await expect(await loginPage.getPasswordTooltip()).toEqual(errorMessages.password);
await loginPage.checkPasswordHighlighted();
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
});
it('[C260044] Username should be at least 2 characters long', () => {
loginPage.goToLoginPage();
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
loginPage.enterUsername('A');
expect(loginPage.getUsernameTooltip()).toEqual(errorMessages.username);
loginPage.enterUsername('AB');
loginPage.checkUsernameTooltipIsNotVisible();
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
loginPage.clearUsername();
it('[C260044] Username should be at least 2 characters long', async () => {
await loginPage.goToLoginPage();
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.enterUsername('A');
await expect(await loginPage.getUsernameTooltip()).toEqual(errorMessages.username);
await loginPage.enterUsername('AB');
await loginPage.checkUsernameTooltipIsNotVisible();
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.clearUsername();
});
it('[C260045] Should enable login button after entering a valid username and a password', () => {
loginPage.goToLoginPage();
loginPage.enterUsername(adminUserModel.id);
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
loginPage.enterPassword('a');
expect(loginPage.getSignInButtonIsEnabled()).toBe(true);
loginPage.clearUsername();
loginPage.clearPassword();
it('[C260045] Should enable login button after entering a valid username and a password', async () => {
await loginPage.goToLoginPage();
await loginPage.enterUsername(adminUserModel.id);
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.enterPassword('a');
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(true);
await loginPage.clearUsername();
await loginPage.clearPassword();
});
it('[C260046] Should NOT be possible to login with an invalid username/password', () => {
loginPage.goToLoginPage();
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
loginPage.enterUsername('test');
loginPage.enterPassword('test');
expect(loginPage.getSignInButtonIsEnabled()).toBe(true);
loginPage.clickSignInButton();
expect(loginPage.getLoginError()).toEqual(errorMessages.invalid_credentials);
loginPage.clearUsername();
loginPage.clearPassword();
it('[C260046] Should NOT be possible to login with an invalid username/password', async () => {
await loginPage.goToLoginPage();
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.enterUsername('test');
await loginPage.enterPassword('test');
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(true);
await loginPage.clickSignInButton();
await expect(await loginPage.getLoginError()).toEqual(errorMessages.invalid_credentials);
await loginPage.clearUsername();
await loginPage.clearPassword();
});
it('[C260047] Password should be crypted', () => {
loginPage.goToLoginPage();
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
loginPage.enterPassword('test');
loginPage.showPassword();
loginPage.getShownPassword().then(async (tooltip) => {
await expect(tooltip).toEqual('test');
});
loginPage.hidePassword();
loginPage.checkPasswordIsHidden();
loginPage.clearPassword();
it('[C260047] Password should be crypted', async () => {
await loginPage.goToLoginPage();
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.enterPassword('test');
await loginPage.showPassword();
const tooltip = await loginPage.getShownPassword();
await expect(tooltip).toEqual('test');
await loginPage.hidePassword();
await loginPage.checkPasswordIsHidden();
await loginPage.clearPassword();
});
it('[C260048] Should be possible to enable/disable login footer', () => {
loginPage.goToLoginPage();
loginPage.enableFooter();
loginPage.checkRememberIsDisplayed();
loginPage.checkNeedHelpIsDisplayed();
loginPage.checkRegisterDisplayed();
loginPage.disableFooter();
loginPage.checkRememberIsNotDisplayed();
loginPage.checkNeedHelpIsNotDisplayed();
loginPage.checkRegisterIsNotDisplayed();
it('[C260048] Should be possible to enable/disable login footer', async () => {
await loginPage.goToLoginPage();
await loginPage.enableFooter();
await loginPage.checkRememberIsDisplayed();
await loginPage.checkNeedHelpIsDisplayed();
await loginPage.checkRegisterDisplayed();
await loginPage.disableFooter();
await loginPage.checkRememberIsNotDisplayed();
await loginPage.checkNeedHelpIsNotDisplayed();
await loginPage.checkRegisterIsNotDisplayed();
});
it('[C260049] Should be possible to login to Process Services with Content Services disabled', () => {
loginPage.goToLoginPage();
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
loginPage.clickSettingsIcon();
settingsPage.setProviderBpm();
loginPage.login(adminUserModel.id, adminUserModel.password);
navigationBarPage.navigateToProcessServicesPage();
processServicesPage.checkApsContainer();
navigationBarPage.clickContentServicesButton();
loginPage.waitForElements();
it('[C260049] Should be possible to login to Process Services with Content Services disabled', async () => {
await loginPage.goToLoginPage();
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.clickSettingsIcon();
await settingsPage.setProviderBpm();
await loginPage.login(adminUserModel.id, adminUserModel.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await navigationBarPage.clickContentServicesButton();
await loginPage.waitForElements();
});
it('[C260050] Should be possible to login to Content Services with Process Services disabled', () => {
loginPage.goToLoginPage();
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
loginPage.clickSettingsIcon();
settingsPage.setProviderEcm();
loginPage.login(browser.params.testConfig.adf.adminUser, browser.params.testConfig.adf.adminPassword);
navigationBarPage.clickContentServicesButton();
contentServicesPage.checkAcsContainer();
it('[C260050] Should be possible to login to Content Services with Process Services disabled', async () => {
await loginPage.goToLoginPage();
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcm();
await loginPage.login(browser.params.testConfig.adf.adminUser, browser.params.testConfig.adf.adminPassword);
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.checkAcsContainer();
});
it('[C260051] Should be able to login to both Content Services and Process Services', () => {
loginPage.goToLoginPage();
loginPage.clickSettingsIcon();
settingsPage.setProviderEcmBpm();
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
loginPage.clickSettingsIcon();
settingsPage.setProviderEcmBpm();
loginPage.login(adminUserModel.id, adminUserModel.password);
navigationBarPage.navigateToProcessServicesPage();
processServicesPage.checkApsContainer();
navigationBarPage.clickContentServicesButton();
contentServicesPage.checkAcsContainer();
navigationBarPage.clickLoginButton();
loginPage.waitForElements();
it('[C260051] Should be able to login to both Content Services and Process Services', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await loginPage.login(adminUserModel.id, adminUserModel.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.checkAcsContainer();
await navigationBarPage.clickLoginButton();
await loginPage.waitForElements();
});
it('[C277754] Should the user be redirect to the login page when the Content Service session expire', () => {
loginPage.goToLoginPage();
loginPage.clickSettingsIcon();
settingsPage.setProviderEcmBpm();
loginPage.login(adminUserModel.id, adminUserModel.password);
browser.executeScript('window.localStorage.removeItem("ticket-ECM");');
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/files');
loginPage.waitForElements();
it('[C277754] Should the user be redirect to the login page when the Content Service session expire', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await loginPage.login(adminUserModel.id, adminUserModel.password);
await browser.executeScript('window.localStorage.removeItem("ticket-ECM");');
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/files');
await loginPage.waitForElements();
});
it('[C279932] Should successRoute property change the landing page when the user Login', () => {
loginPage.goToLoginPage();
loginPage.clickSettingsIcon();
settingsPage.setProviderEcmBpm();
loginPage.enableSuccessRouteSwitch();
loginPage.enterSuccessRoute('activiti');
loginPage.login(adminUserModel.id, adminUserModel.password);
processServicesPage.checkApsContainer();
it('[C279932] Should successRoute property change the landing page when the user Login', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await loginPage.enableSuccessRouteSwitch();
await loginPage.enterSuccessRoute('activiti');
await loginPage.login(adminUserModel.id, adminUserModel.password);
await processServicesPage.checkApsContainer();
});
it('[C279931] Should the user be redirect to the login page when the Process Service session expire', () => {
loginPage.goToLoginPage();
loginPage.clickSettingsIcon();
settingsPage.setProviderEcmBpm();
loginPage.login(adminUserModel.id, adminUserModel.password);
browser.executeScript('window.localStorage.removeItem("ticket-BPM");');
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/activiti');
loginPage.waitForElements();
it('[C279931] Should the user be redirect to the login page when the Process Service session expire', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await loginPage.login(adminUserModel.id, adminUserModel.password);
await browser.executeScript('window.localStorage.removeItem("ticket-BPM");');
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/activiti');
await loginPage.waitForElements();
});
it('[C279930] Should a user still be logged-in when open a new tab', () => {
loginPage.goToLoginPage();
loginPage.clickSettingsIcon();
settingsPage.setProviderEcmBpm();
loginPage.login(adminUserModel.id, adminUserModel.password);
it('[C279930] Should a user still be logged-in when open a new tab', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await loginPage.login(adminUserModel.id, adminUserModel.password);
Util.openNewTabInBrowser();
await Util.openNewTabInBrowser();
browser.getAllWindowHandles().then((handles) => {
browser.switchTo().window(handles[1]).then(() => {
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/activiti');
processServicesPage.checkApsContainer();
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/files');
contentServicesPage.checkAcsContainer();
});
});
const handles = await browser.getAllWindowHandles();
await browser.switchTo().window(handles[1]);
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/activiti');
await processServicesPage.checkApsContainer();
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/files');
await contentServicesPage.checkAcsContainer();
});
it('[C279933] Should be possible change the login component logo when logoImageUrl is changed', () => {
loginPage.goToLoginPage();
loginPage.clickSettingsIcon();
settingsPage.setProviderEcmBpm();
loginPage.enableLogoSwitch();
loginPage.enterLogo('https://rawgit.com/Alfresco/alfresco-ng2-components/master/assets/angular2.png');
loginPage.checkLoginImgURL();
it('[C279933] Should be possible change the login component logo when logoImageUrl is changed', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await loginPage.enableLogoSwitch();
await loginPage.enterLogo('https://rawgit.com/Alfresco/alfresco-ng2-components/master/assets/angular2.png');
await loginPage.checkLoginImgURL();
});
it('[C291854] Should be possible login in valid credentials', () => {
BrowserActions.getUrl(browser.params.testConfig.adf.url);
loginPage.waitForElements();
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
loginPage.enterUsername(invalidUsername);
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
loginPage.enterPassword(invalidPassword);
expect(loginPage.getSignInButtonIsEnabled()).toBe(true);
loginPage.clickSignInButton();
expect(loginPage.getLoginError()).toEqual(errorMessages.invalid_credentials);
loginPage.login(adminUserModel.id, adminUserModel.password);
it('[C291854] Should be possible login in valid credentials', async () => {
await BrowserActions.getUrl(browser.params.testConfig.adf.url);
await loginPage.waitForElements();
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.enterUsername(invalidUsername);
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.enterPassword(invalidPassword);
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(true);
await loginPage.clickSignInButton();
await expect(await loginPage.getLoginError()).toEqual(errorMessages.invalid_credentials);
await loginPage.login(adminUserModel.id, adminUserModel.password);
});
});

View File

@@ -36,7 +36,7 @@ describe('Login component - SSO', () => {
browser.params.testConfig.adf.hostIdentity, false, true, browser.params.config.oauth2.clientId);
await loginSSOPage.clickOnSSOButton();
await loginSSOPage.checkLoginErrorIsDisplayed();
expect(loginSSOPage.getLoginErrorMessage()).toContain('SSO Authentication server unreachable');
await expect(loginSSOPage.getLoginErrorMessage()).toContain('SSO Authentication server unreachable');
});
});

View File

@@ -15,7 +15,7 @@
* limitations under the License.
*/
import { LoginSSOPage, SettingsPage, LoginPage } from '@alfresco/adf-testing';
import { LoginSSOPage, SettingsPage, LoginPage, BrowserVisibility } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { NavigationBarPage } from '../../../pages/adf/navigationBarPage';
@@ -29,21 +29,6 @@ describe('Login component - SSO', () => {
const silentLogin = false;
let implicitFlow;
it('[C280665] Should be possible change the logout redirect URL', async () => {
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url,
browser.params.testConfig.adf.hostSso,
browser.params.testConfig.adf.hostIdentity, false, true, browser.params.config.oauth2.clientId, '/login');
await loginSSOPage.clickOnSSOButton();
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await navigationBarPage.clickLogoutButton();
browser.sleep(2000);
browser.getCurrentUrl().then((actualUrl) => {
expect(actualUrl).toEqual(browser.params.testConfig.adf.url + '/login');
});
});
describe('Login component - SSO Grant type password (implicit flow false)', () => {
it('[C299158] Should be possible to login with SSO, with grant type password (Implicit Flow false)', async () => {
@@ -63,28 +48,18 @@ describe('Login component - SSO', () => {
await loginPage.enterPassword(browser.params.testConfig.adf.adminPassword);
await loginPage.clickSignInButton();
let isDisplayed = false;
await BrowserVisibility.waitUntilElementIsVisible(loginPage.sidenavLayout);
browser.wait(() => {
loginPage.header.isDisplayed().then(
() => {
isDisplayed = true;
},
() => {
isDisplayed = false;
}
);
return isDisplayed;
}, browser.params.testConfig.main.timeout, 'Element is not visible ' + loginPage.header.locator());
});
});
describe('Login component - SSO implicit Flow', () => {
afterEach(() => {
navigationBarPage.clickLogoutButton();
browser.executeScript('window.sessionStorage.clear();');
browser.executeScript('window.localStorage.clear();');
afterEach(async () => {
await navigationBarPage.clickLogoutButton();
await browser.executeScript('window.sessionStorage.clear();');
await browser.executeScript('window.localStorage.clear();');
await browser.refresh();
});
it('[C261050] Should be possible login with SSO', async () => {
@@ -96,7 +71,7 @@ describe('Login component - SSO', () => {
});
it('[C280667] Should be redirect directly to keycloak without show the login page with silent login', async () => {
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host,
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host,
browser.params.testConfig.adf.hostSso,
browser.params.testConfig.adf.hostIdentity, true, true, browser.params.config.oauth2.clientId);
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);

View File

@@ -0,0 +1,42 @@
/*!
* @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.
*/
import { LoginSSOPage, SettingsPage } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { NavigationBarPage } from '../../../pages/adf/navigationBarPage';
describe('Logout component - SSO', () => {
const settingsPage = new SettingsPage();
const loginSSOPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
it('[C280665] Should be possible change the logout redirect URL', async () => {
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url,
browser.params.testConfig.adf.hostSso,
browser.params.testConfig.adf.hostIdentity, false, true, browser.params.config.oauth2.clientId, '/login');
await loginSSOPage.clickOnSSOButton();
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await navigationBarPage.clickLogoutButton();
await browser.sleep(2000);
const actualUrl = await browser.getCurrentUrl();
await expect(actualUrl).toEqual(browser.params.testConfig.adf.url + '/login');
});
});

View File

@@ -48,7 +48,7 @@ describe('Login component - Redirect', () => {
const uploadActions = new UploadActions(this.alfrescoJsApi);
const logoutPage = new LogoutPage();
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
@@ -59,118 +59,111 @@ describe('Login component - Redirect', () => {
uploadedFolder = await uploadActions.createFolder('protecteFolder' + StringUtil.generateRandomString(), '-my-');
done();
});
it('[C213838] Should after login in CS be redirect to Login page when try to access to PS', () => {
loginPage.goToLoginPage();
loginPage.clickSettingsIcon();
settingsPage.setProviderEcm();
loginPage.login(user.id, user.password);
it('[C213838] Should after login in CS be redirect to Login page when try to access to PS', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcm();
await loginPage.login(user.id, user.password);
navigationBarPage.clickContentServicesButton();
contentServicesPage.checkAcsContainer();
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.checkAcsContainer();
navigationBarPage.navigateToProcessServicesPage();
await navigationBarPage.navigateToProcessServicesPage();
loginPage.waitForElements();
await loginPage.waitForElements();
});
it('[C260085] Should after login in PS be redirect to Login page when try to access to CS', () => {
loginPage.goToLoginPage();
loginPage.clickSettingsIcon();
settingsPage.setProviderBpm();
it('[C260085] Should after login in PS be redirect to Login page when try to access to CS', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderBpm();
loginPage.enableSuccessRouteSwitch();
loginPage.enterSuccessRoute('activiti');
await loginPage.enableSuccessRouteSwitch();
await loginPage.enterSuccessRoute('activiti');
loginPage.login(adminUserModel.id, adminUserModel.password);
await loginPage.login(adminUserModel.id, adminUserModel.password);
navigationBarPage.navigateToProcessServicesPage();
processServicesPage.checkApsContainer();
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
loginPage.waitForElements();
await loginPage.waitForElements();
});
it('[C260081] Should after login in BOTH not be redirect to Login page when try to access to CS or PS', () => {
loginPage.goToLoginPage();
loginPage.clickSettingsIcon();
it('[C260081] Should after login in BOTH not be redirect to Login page when try to access to CS or PS', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
settingsPage.setProviderEcmBpm();
await settingsPage.setProviderEcmBpm();
loginPage.login(adminUserModel.id, adminUserModel.password);
await loginPage.login(adminUserModel.id, adminUserModel.password);
navigationBarPage.navigateToProcessServicesPage();
processServicesPage.checkApsContainer();
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
navigationBarPage.clickContentServicesButton();
contentServicesPage.checkAcsContainer();
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.checkAcsContainer();
});
it('[C260088] Should be re-redirect to the request URL after login when try to access to a protect URL ', () => {
loginPage.goToLoginPage();
loginPage.clickSettingsIcon();
settingsPage.setProviderEcm();
loginPage.login(user.id, user.password);
it('[C260088] Should be re-redirect to the request URL after login when try to access to a protect URL ', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcm();
await loginPage.login(user.id, user.password);
navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
await navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
browser.getCurrentUrl().then((actualUrl) => {
expect(actualUrl).toEqual(browser.params.testConfig.adf.url + '/files/' + uploadedFolder.entry.id);
});
let actualUrl = await browser.getCurrentUrl();
await expect(actualUrl).toEqual(browser.params.testConfig.adf.url + '/files/' + uploadedFolder.entry.id);
contentServicesPage.waitForTableBody();
await contentServicesPage.waitForTableBody();
navigationBarPage.clickLogoutButton();
await navigationBarPage.clickLogoutButton();
logoutPage.checkLogoutSectionIsDisplayed();
await logoutPage.checkLogoutSectionIsDisplayed();
navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
await navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
loginPage.waitForElements();
await loginPage.waitForElements();
loginPage.login(user.id, user.password);
browser.getCurrentUrl().then((actualUrl) => {
expect(actualUrl).toEqual(browser.params.testConfig.adf.url + '/files/' + uploadedFolder.entry.id);
});
await loginPage.login(user.id, user.password);
actualUrl = await browser.getCurrentUrl();
await expect(actualUrl).toEqual(browser.params.testConfig.adf.url + '/files/' + uploadedFolder.entry.id);
});
it('[C299161] Should redirect user to requested URL after reloading login page', () => {
loginPage.goToLoginPage();
loginPage.clickSettingsIcon();
settingsPage.setProviderEcm();
loginPage.login(user.id, user.password);
it('[C299161] Should redirect user to requested URL after reloading login page', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcm();
await loginPage.login(user.id, user.password);
navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
await navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
browser.getCurrentUrl().then((actualUrl) => {
expect(actualUrl).toEqual(browser.params.testConfig.adf.url + '/files/' + uploadedFolder.entry.id);
});
const currentUrl = await browser.getCurrentUrl();
await expect(currentUrl).toEqual(browser.params.testConfig.adf.url + '/files/' + uploadedFolder.entry.id);
contentServicesPage.waitForTableBody();
await contentServicesPage.waitForTableBody();
navigationBarPage.clickLogoutButton();
await navigationBarPage.clickLogoutButton();
logoutPage.checkLogoutSectionIsDisplayed();
await logoutPage.checkLogoutSectionIsDisplayed();
navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
loginPage.waitForElements();
browser.refresh();
loginPage.waitForElements();
await navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
await loginPage.waitForElements();
await browser.refresh();
await loginPage.waitForElements();
loginPage.enterUsername(user.id);
loginPage.enterPassword(user.password);
loginPage.clickSignInButton();
await loginPage.enterUsername(user.id);
await loginPage.enterPassword(user.password);
await loginPage.clickSignInButton();
navigationBarPage.checkMenuButtonIsDisplayed();
browser.getCurrentUrl().then((actualUrl) => {
expect(actualUrl).toEqual(browser.params.testConfig.adf.url + '/files/' + uploadedFolder.entry.id);
});
await navigationBarPage.checkMenuButtonIsDisplayed();
const actualUrl = await browser.getCurrentUrl();
await expect(actualUrl).toEqual(browser.params.testConfig.adf.url + '/files/' + uploadedFolder.entry.id);
});
});

View File

@@ -22,16 +22,15 @@ describe('Login component - Remember Me', () => {
const settingsPage = new SettingsPage();
const loginPage = new LoginPage();
beforeAll((done) => {
loginPage.goToLoginPage();
loginPage.clickSettingsIcon();
settingsPage.setProviderEcmBpm();
done();
beforeAll(async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
});
it('[C260501] Should Remember me checkbox not be present in the login if the property showRememberMe is false', () => {
loginPage.checkRememberIsDisplayed();
loginPage.disableRememberMe();
loginPage.checkRememberIsNotDisplayed();
it('[C260501] Should Remember me checkbox not be present in the login if the property showRememberMe is false', async () => {
await loginPage.checkRememberIsDisplayed();
await loginPage.disableRememberMe();
await loginPage.checkRememberIsNotDisplayed();
});
});

View File

@@ -30,7 +30,6 @@ import { UploadActions } from '@alfresco/adf-testing';
import { Util } from '../util/util';
import resources = require('../util/resources');
import { browser } from 'protractor';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
describe('Pagination - returns to previous page when current is empty', () => {
@@ -38,7 +37,6 @@ describe('Pagination - returns to previous page when current is empty', () => {
const contentServicesPage = new ContentServicesPage();
const paginationPage = new PaginationPage();
const viewerPage = new ViewerPage();
const navigationBarPage = new NavigationBarPage();
const acsUser = new AcsUserModel();
const folderModel = new FolderModel({ 'name': 'folderOne' });
@@ -67,7 +65,7 @@ describe('Pagination - returns to previous page when current is empty', () => {
'location': resources.Files.ADF_DOCUMENTS.PNG.file_location
});
beforeAll(async (done) => {
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
@@ -98,79 +96,71 @@ describe('Pagination - returns to previous page when current is empty', () => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
contentServicesPage.goToDocumentList();
done();
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
});
it('[C274710] Should redirect to previous page when current is emptied', () => {
contentServicesPage.doubleClickRow(folderModel.name);
contentServicesPage.checkAcsContainer();
contentServicesPage.waitForTableBody();
paginationPage.selectItemsPerPage(itemsPerPage.five);
contentServicesPage.checkAcsContainer();
contentServicesPage.waitForTableBody();
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
contentServicesPage.getAllRowsNameColumn().then((list) => {
expect(Util.arrayContainsArray(list, fileNames.slice(0, 5))).toEqual(true);
});
paginationPage.clickOnNextPage();
contentServicesPage.checkAcsContainer();
contentServicesPage.waitForTableBody();
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
contentServicesPage.getAllRowsNameColumn().then((list) => {
expect(Util.arrayContainsArray(list, fileNames.slice(5, 6))).toEqual(true);
});
contentServicesPage.deleteContent(lastFile);
contentServicesPage.checkContentIsNotDisplayed(lastFile);
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
contentServicesPage.getAllRowsNameColumn().then((list) => {
expect(Util.arrayContainsArray(list, fileNames.slice(0, 5))).toEqual(true);
});
await contentServicesPage.goToDocumentList();
});
it('[C297494] Should display content when navigating to a non-empty folder not in the first page', () => {
contentServicesPage.goToDocumentList();
contentServicesPage.doubleClickRow(parentFolderModel.name);
contentServicesPage.checkAcsContainer();
contentServicesPage.waitForTableBody();
it('[C274710] Should redirect to previous page when current is emptied', async () => {
await contentServicesPage.doubleClickRow(folderModel.name);
await contentServicesPage.checkAcsContainer();
await contentServicesPage.waitForTableBody();
paginationPage.selectItemsPerPage(itemsPerPage.five);
await paginationPage.selectItemsPerPage(itemsPerPage.five);
contentServicesPage.checkAcsContainer();
contentServicesPage.waitForTableBody();
await contentServicesPage.checkAcsContainer();
await contentServicesPage.waitForTableBody();
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
await expect(await paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
paginationPage.clickOnNextPage();
let list = await contentServicesPage.getAllRowsNameColumn();
await expect(Util.arrayContainsArray(list, fileNames.slice(0, 5))).toEqual(true);
contentServicesPage.checkAcsContainer();
contentServicesPage.waitForTableBody();
await paginationPage.clickOnNextPage();
contentServicesPage.doubleClickRow(lastFolderResponse.entry.name);
contentServicesPage.checkContentIsDisplayed(pngFileInfo.name);
await contentServicesPage.checkAcsContainer();
await contentServicesPage.waitForTableBody();
viewerPage.viewFile(pngFileUploaded.entry.name);
viewerPage.checkImgViewerIsDisplayed();
viewerPage.clickCloseButton();
await expect(await paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
list = await contentServicesPage.getAllRowsNameColumn();
await expect(Util.arrayContainsArray(list, fileNames.slice(5, 6))).toEqual(true);
await contentServicesPage.deleteContent(lastFile);
await contentServicesPage.checkContentIsNotDisplayed(lastFile);
await expect(await paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
list = await contentServicesPage.getAllRowsNameColumn();
await expect(Util.arrayContainsArray(list, fileNames.slice(0, 5))).toEqual(true);
});
it('[C297494] Should display content when navigating to a non-empty folder not in the first page', async () => {
await contentServicesPage.goToDocumentList();
await contentServicesPage.doubleClickRow(parentFolderModel.name);
await contentServicesPage.checkAcsContainer();
await contentServicesPage.waitForTableBody();
await paginationPage.selectItemsPerPage(itemsPerPage.five);
await contentServicesPage.checkAcsContainer();
await contentServicesPage.waitForTableBody();
await expect(await paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
await paginationPage.clickOnNextPage();
await contentServicesPage.checkAcsContainer();
await contentServicesPage.waitForTableBody();
await contentServicesPage.doubleClickRow(lastFolderResponse.entry.name);
await contentServicesPage.checkContentIsDisplayed(pngFileInfo.name);
await viewerPage.viewFile(pngFileUploaded.entry.name);
await viewerPage.checkImgViewerIsDisplayed();
await viewerPage.clickCloseButton();
});
});

View File

@@ -39,179 +39,182 @@ describe('Settings component', () => {
});
describe('Should be able to change Urls in the Settings', () => {
beforeEach( (done) => {
settingsPage.goToSettingsPage();
done();
});
it('[C245641] Should navigate User from Settings page to Login screen', () => {
settingsPage.clickBackButton();
loginPage.waitForElements();
});
it('[C291948] Should save ALL Settings changes when User clicks Apply button', () => {
loginPage.goToLoginPage();
loginPage.clickSettingsIcon();
settingsPage.setProviderEcmBpm();
loginPage.waitForElements();
settingsPage.goToSettingsPage();
expect(settingsPage.getSelectedOptionText()).toEqual('ALL', 'The Settings changes are not saved');
expect(settingsPage.getBpmHostUrl()).toEqual(browser.params.testConfig.adf_aps.host, 'The BPM Settings changes are not saved');
expect(settingsPage.getEcmHostUrl()).toEqual(browser.params.testConfig.adf_acs.host, 'The ECM Settings changes are not saved');
beforeEach(async () => {
await settingsPage.goToSettingsPage();
});
it('[C291949] Should have field validation for Content Services Url', () => {
settingsPage.setProvider(settingsPage.getEcmAndBpmOption(), 'ALL');
settingsPage.clearContentServicesURL();
settingsPage.ecmText.sendKeys(protractor.Key.TAB);
settingsPage.checkValidationMessageIsDisplayed();
settingsPage.checkApplyButtonIsDisabled();
it('[C245641] Should navigate User from Settings page to Login screen', async () => {
await settingsPage.clickBackButton();
await loginPage.waitForElements();
});
it('[C291950] Should have field validation for Process Services Url', () => {
settingsPage.setProvider(settingsPage.getEcmAndBpmOption(), 'ALL');
settingsPage.clearProcessServicesURL();
settingsPage.bpmText.sendKeys(protractor.Key.TAB);
settingsPage.checkValidationMessageIsDisplayed();
settingsPage.checkApplyButtonIsDisabled();
it('[C291948] Should save ALL Settings changes when User clicks Apply button', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await loginPage.waitForElements();
await settingsPage.goToSettingsPage();
await expect(await settingsPage.getSelectedOptionText()).toEqual('ALL', 'The Settings changes are not saved');
await expect(await settingsPage.getBpmHostUrl()).toEqual(browser.params.testConfig.adf_aps.host, 'The BPM Settings changes are not saved');
await expect(await settingsPage.getEcmHostUrl()).toEqual(browser.params.testConfig.adf_acs.host, 'The ECM Settings changes are not saved');
});
it('[C291951] Should not be able to sign in with invalid Content Services Url', () => {
settingsPage.setProvider(settingsPage.getEcmOption(), 'ECM');
settingsPage.setContentServicesURL('http://localhost:7070');
settingsPage.clickApply();
loginPage.waitForElements();
loginPage.enterUsername(adminUserModel.id);
loginPage.enterPassword(adminUserModel.password);
loginPage.clickSignInButton();
expect(loginPage.getLoginError()).toMatch(loginError);
it('[C291949] Should have field validation for Content Services Url', async () => {
await settingsPage.setProvider(settingsPage.getEcmAndBpmOption(), 'ALL');
await settingsPage.clearContentServicesURL();
await settingsPage.ecmText.sendKeys(protractor.Key.TAB);
await settingsPage.checkValidationMessageIsDisplayed();
await settingsPage.checkApplyButtonIsDisabled();
});
it('[C291952] Should not be able to sign in with invalid Process Services Url', () => {
settingsPage.setProvider(settingsPage.getBpmOption(), 'BPM');
settingsPage.setProcessServicesURL('http://localhost:7070');
settingsPage.clickApply();
loginPage.waitForElements();
loginPage.enterUsername(adminUserModel.id);
loginPage.enterPassword(adminUserModel.password);
loginPage.clickSignInButton();
expect(loginPage.getLoginError()).toMatch(loginError);
it('[C291950] Should have field validation for Process Services Url', async () => {
await settingsPage.setProvider(settingsPage.getEcmAndBpmOption(), 'ALL');
await settingsPage.clearProcessServicesURL();
await settingsPage.bpmText.sendKeys(protractor.Key.TAB);
await settingsPage.checkValidationMessageIsDisplayed();
await settingsPage.checkApplyButtonIsDisabled();
});
it('[C291951] Should not be able to sign in with invalid Content Services Url', async () => {
await settingsPage.setProvider(settingsPage.getEcmOption(), 'ECM');
await settingsPage.setContentServicesURL('http://localhost:7070');
await settingsPage.clickApply();
await loginPage.waitForElements();
await loginPage.enterUsername(adminUserModel.id);
await loginPage.enterPassword(adminUserModel.password);
await loginPage.clickSignInButton();
await expect(await loginPage.getLoginError()).toMatch(loginError);
});
it('[C291952] Should not be able to sign in with invalid Process Services Url', async () => {
await settingsPage.setProvider(settingsPage.getBpmOption(), 'BPM');
await settingsPage.setProcessServicesURL('http://localhost:7070');
await settingsPage.clickApply();
await loginPage.waitForElements();
await loginPage.enterUsername(adminUserModel.id);
await loginPage.enterPassword(adminUserModel.password);
await loginPage.clickSignInButton();
await expect(await loginPage.getLoginError()).toMatch(loginError);
});
});
describe('Settings Component - Basic Authentication', () => {
beforeAll( (done) => {
settingsPage.goToSettingsPage();
settingsPage.setProvider(settingsPage.getEcmAndBpmOption(), 'ALL');
settingsPage.setContentServicesURL(browser.params.testConfig.adf_acs.host);
settingsPage.setProcessServicesURL(browser.params.testConfig.adf_aps.host);
settingsPage.clickApply();
done();
beforeAll(async () => {
await settingsPage.goToSettingsPage();
await settingsPage.setProvider(settingsPage.getEcmAndBpmOption(), 'ALL');
await settingsPage.setContentServicesURL(browser.params.testConfig.adf_acs.host);
await settingsPage.setProcessServicesURL(browser.params.testConfig.adf_aps.host);
await settingsPage.clickApply();
});
beforeEach( (done) => {
loginPage.goToLoginPage();
loginPage.clickSettingsIcon();
settingsPage.checkProviderDropdownIsDisplayed();
done();
beforeEach(async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.checkProviderDropdownIsDisplayed();
});
it('[C277751] Should allow the User to login to Process Services using the BPM selection on Settings page', () => {
settingsPage.checkProviderOptions();
settingsPage.checkBasicAuthRadioIsSelected();
settingsPage.checkSsoRadioIsNotSelected();
expect(settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf_acs.host);
expect(settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf_aps.host);
expect(settingsPage.getBackButton().isEnabled()).toBe(true);
expect(settingsPage.getApplyButton().isEnabled()).toBe(true);
loginPage.goToLoginPage();
loginPage.clickSettingsIcon();
settingsPage.checkProviderDropdownIsDisplayed();
settingsPage.setProvider(settingsPage.getBpmOption(), 'BPM');
settingsPage.clickBackButton();
loginPage.waitForElements();
loginPage.clickSettingsIcon();
settingsPage.checkProviderDropdownIsDisplayed();
settingsPage.setProviderBpm();
loginPage.waitForElements();
loginPage.enterUsername(adminUserModel.id);
loginPage.enterPassword(adminUserModel.password);
loginPage.clickSignInButton();
navigationBarPage.navigateToProcessServicesPage();
processServicesPage.checkApsContainer();
processServicesPage.checkAppIsDisplayed('Task App');
navigationBarPage.navigateToSettingsPage();
expect(settingsPage.getSelectedOptionText()).toBe('BPM');
settingsPage.checkBasicAuthRadioIsSelected();
settingsPage.checkSsoRadioIsNotSelected();
expect(settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf_aps.host);
expect(settingsPage.getBackButton().isEnabled()).toBe(true);
expect(settingsPage.getApplyButton().isEnabled()).toBe(true);
settingsPage.clickBackButton();
loginPage.waitForElements();
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/activiti');
processServicesPage.checkApsContainer();
processServicesPage.checkAppIsDisplayed('Task App');
it('[C277751] Should allow the User to login to Process Services using the BPM selection on Settings page', async () => {
await settingsPage.checkProviderOptions();
await settingsPage.checkBasicAuthRadioIsSelected();
await settingsPage.checkSsoRadioIsNotSelected();
await expect(await settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf_acs.host);
await expect(await settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf_aps.host);
await expect(await settingsPage.getBackButton().isEnabled()).toBe(true);
await expect(await settingsPage.getApplyButton().isEnabled()).toBe(true);
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.checkProviderDropdownIsDisplayed();
await settingsPage.setProvider(settingsPage.getBpmOption(), 'BPM');
await settingsPage.clickBackButton();
await loginPage.waitForElements();
await loginPage.clickSettingsIcon();
await settingsPage.checkProviderDropdownIsDisplayed();
await settingsPage.setProviderBpm();
await loginPage.waitForElements();
await loginPage.enterUsername(adminUserModel.id);
await loginPage.enterPassword(adminUserModel.password);
await loginPage.clickSignInButton();
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await processServicesPage.checkAppIsDisplayed('Task App');
await navigationBarPage.clickSettingsButton();
await expect(await settingsPage.getSelectedOptionText()).toBe('BPM');
await settingsPage.checkBasicAuthRadioIsSelected();
await settingsPage.checkSsoRadioIsNotSelected();
await expect(await settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf_aps.host);
await expect(await settingsPage.getBackButton().isEnabled()).toBe(true);
await expect(await settingsPage.getApplyButton().isEnabled()).toBe(true);
await settingsPage.clickBackButton();
await loginPage.waitForElements();
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/activiti');
await processServicesPage.checkApsContainer();
await processServicesPage.checkAppIsDisplayed('Task App');
});
it('[C277752] Should allow the User to login to Content Services using the ECM selection on Settings page', () => {
settingsPage.setProvider(settingsPage.getEcmOption(), 'ECM');
settingsPage.clickBackButton();
loginPage.waitForElements();
loginPage.clickSettingsIcon();
settingsPage.checkProviderDropdownIsDisplayed();
settingsPage.setProviderEcm();
loginPage.waitForElements();
loginPage.enterUsername(adminUserModel.id);
loginPage.enterPassword(adminUserModel.password);
loginPage.clickSignInButton();
navigationBarPage.clickContentServicesButton();
contentServicesPage.checkAcsContainer();
navigationBarPage.navigateToSettingsPage();
expect(settingsPage.getSelectedOptionText()).toBe('ECM');
settingsPage.checkBasicAuthRadioIsSelected();
settingsPage.checkSsoRadioIsNotSelected();
expect(settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf_acs.host);
expect(settingsPage.getBackButton().isEnabled()).toBe(true);
expect(settingsPage.getApplyButton().isEnabled()).toBe(true);
settingsPage.clickBackButton();
loginPage.waitForElements();
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/files');
contentServicesPage.checkAcsContainer();
it('[C277752] Should allow the User to login to Content Services using the ECM selection on Settings page', async () => {
await settingsPage.setProvider(settingsPage.getEcmOption(), 'ECM');
await settingsPage.clickBackButton();
await loginPage.waitForElements();
await loginPage.clickSettingsIcon();
await settingsPage.checkProviderDropdownIsDisplayed();
await settingsPage.setProviderEcm();
await loginPage.waitForElements();
await loginPage.enterUsername(adminUserModel.id);
await loginPage.enterPassword(adminUserModel.password);
await loginPage.clickSignInButton();
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.checkAcsContainer();
await navigationBarPage.clickSettingsButton();
await expect(await settingsPage.getSelectedOptionText()).toBe('ECM');
await settingsPage.checkBasicAuthRadioIsSelected();
await settingsPage.checkSsoRadioIsNotSelected();
await expect(await settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf_acs.host);
await expect(await settingsPage.getBackButton().isEnabled()).toBe(true);
await expect(await settingsPage.getApplyButton().isEnabled()).toBe(true);
await settingsPage.clickBackButton();
await loginPage.waitForElements();
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/files');
await contentServicesPage.checkAcsContainer();
});
it('[C277753] Should allow the User to login to both Process Services and Content Services using the ALL selection on Settings Page', () => {
settingsPage.setProvider(settingsPage.getEcmAndBpmOption(), 'ALL');
settingsPage.clickBackButton();
loginPage.waitForElements();
loginPage.clickSettingsIcon();
settingsPage.checkProviderDropdownIsDisplayed();
settingsPage.setProviderEcmBpm();
loginPage.waitForElements();
loginPage.enterUsername(adminUserModel.id);
loginPage.enterPassword(adminUserModel.password);
loginPage.clickSignInButton();
navigationBarPage.clickContentServicesButton();
contentServicesPage.checkAcsContainer();
navigationBarPage.navigateToProcessServicesPage();
processServicesPage.checkApsContainer();
processServicesPage.checkAppIsDisplayed('Task App');
navigationBarPage.navigateToSettingsPage();
expect(settingsPage.getSelectedOptionText()).toBe('ALL');
settingsPage.checkBasicAuthRadioIsSelected();
settingsPage.checkSsoRadioIsNotSelected();
expect(settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf_acs.host);
expect(settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf_aps.host);
expect(settingsPage.getBackButton().isEnabled()).toBe(true);
expect(settingsPage.getApplyButton().isEnabled()).toBe(true);
settingsPage.clickBackButton();
loginPage.waitForElements();
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/files');
contentServicesPage.checkAcsContainer();
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/activiti');
processServicesPage.checkApsContainer();
processServicesPage.checkAppIsDisplayed('Task App');
it('[C277753] Should allow the User to login to both Process Services and Content Services using the ALL selection on Settings Page', async () => {
await settingsPage.setProvider(settingsPage.getEcmAndBpmOption(), 'ALL');
await settingsPage.clickBackButton();
await loginPage.waitForElements();
await loginPage.clickSettingsIcon();
await settingsPage.checkProviderDropdownIsDisplayed();
await settingsPage.setProviderEcmBpm();
await loginPage.waitForElements();
await loginPage.enterUsername(adminUserModel.id);
await loginPage.enterPassword(adminUserModel.password);
await loginPage.clickSignInButton();
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.checkAcsContainer();
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await processServicesPage.checkAppIsDisplayed('Task App');
await navigationBarPage.clickSettingsButton();
await expect(await settingsPage.getSelectedOptionText()).toBe('ALL');
await settingsPage.checkBasicAuthRadioIsSelected();
await settingsPage.checkSsoRadioIsNotSelected();
await expect(await settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf_acs.host);
await expect(await settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf_aps.host);
await expect(await settingsPage.getBackButton().isEnabled()).toBe(true);
await expect(await settingsPage.getApplyButton().isEnabled()).toBe(true);
await settingsPage.clickBackButton();
await loginPage.waitForElements();
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/files');
await contentServicesPage.checkAcsContainer();
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/activiti');
await processServicesPage.checkApsContainer();
await processServicesPage.checkAppIsDisplayed('Task App');
});
});
});

View File

@@ -28,7 +28,7 @@ describe('User Info - SSO', () => {
let silentLogin, identityUser;
let identityService: IdentityService;
beforeAll(async (done) => {
beforeAll(async () => {
const apiService = new ApiService(browser.params.config.oauth2.clientId, browser.params.testConfig.adf.url, browser.params.testConfig.adf.hostSso, 'ECM');
await apiService.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
@@ -36,15 +36,14 @@ describe('User Info - SSO', () => {
identityUser = await identityService.createIdentityUser();
silentLogin = false;
settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url,
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url,
browser.params.testConfig.adf.hostSso,
browser.params.testConfig.adf.hostIdentity, silentLogin, true, browser.params.config.oauth2.clientId);
loginSSOPage.clickOnSSOButton();
await loginSSOPage.clickOnSSOButton();
loginSSOPage.loginSSOIdentityService(identityUser.email, identityUser.password);
await loginSSOPage.loginSSOIdentityService(identityUser.email, identityUser.password);
done();
});
afterAll(async () => {
@@ -53,13 +52,13 @@ describe('User Info - SSO', () => {
}
});
it('[C290066] Should display UserInfo when login using SSO', () => {
userInfoPage.clickUserProfile();
expect(userInfoPage.getSsoHeaderTitle()).toEqual(identityUser.firstName + ' ' + identityUser.lastName);
expect(userInfoPage.getSsoTitle()).toEqual(identityUser.firstName + ' ' + identityUser.lastName);
expect(userInfoPage.getSsoEmail()).toEqual(identityUser.email);
userInfoPage.closeUserProfile();
userInfoPage.dialogIsNotDisplayed();
it('[C290066] Should display UserInfo when login using SSO', async () => {
await userInfoPage.clickUserProfile();
await expect(await userInfoPage.getSsoHeaderTitle()).toEqual(identityUser.firstName + ' ' + identityUser.lastName);
await expect(await userInfoPage.getSsoTitle()).toEqual(identityUser.firstName + ' ' + identityUser.lastName);
await expect(await userInfoPage.getSsoEmail()).toEqual(identityUser.email);
await userInfoPage.closeUserProfile();
await userInfoPage.dialogIsNotDisplayed();
});
});

View File

@@ -46,7 +46,7 @@ describe('User Info component', () => {
'location': resources.Files.PROFILE_IMAGES.BPM.file_location
});
beforeAll(async (done) => {
beforeAll(async () => {
const users = new UsersActions();
this.alfrescoJsApi = new AlfrescoApi({
@@ -69,7 +69,6 @@ describe('User Info component', () => {
await this.alfrescoJsApi.core.peopleApi.addPerson(contentUserModel);
done();
});
afterAll(async () => {
@@ -79,86 +78,86 @@ describe('User Info component', () => {
it('[C260111] Should display UserInfo when Process Services and Content Services are enabled', async () => {
await loginPage.loginToAllUsingUserModel(contentUserModel);
userInfoPage.clickUserProfile();
await userInfoPage.clickUserProfile();
expect(userInfoPage.getContentHeaderTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
expect(userInfoPage.getContentTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
expect(userInfoPage.getContentEmail()).toEqual(contentUserModel.email);
expect(userInfoPage.getContentJobTitle()).toEqual('N/A');
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
await expect(await userInfoPage.getContentTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
await expect(await userInfoPage.getContentEmail()).toEqual(contentUserModel.email);
await expect(await userInfoPage.getContentJobTitle()).toEqual('N/A');
userInfoPage.checkInitialImage();
userInfoPage.APSProfileImageNotDisplayed();
userInfoPage.ACSProfileImageNotDisplayed();
userInfoPage.clickOnContentServicesTab();
await userInfoPage.checkInitialImage();
await userInfoPage.APSProfileImageNotDisplayed();
await userInfoPage.ACSProfileImageNotDisplayed();
await userInfoPage.clickOnContentServicesTab();
expect(userInfoPage.getContentHeaderTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
expect(userInfoPage.getContentTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
expect(userInfoPage.getContentEmail()).toEqual(contentUserModel.email);
expect(userInfoPage.getContentJobTitle()).toEqual('N/A');
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
await expect(await userInfoPage.getContentTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
await expect(await userInfoPage.getContentEmail()).toEqual(contentUserModel.email);
await expect(await userInfoPage.getContentJobTitle()).toEqual('N/A');
userInfoPage.checkInitialImage();
userInfoPage.APSProfileImageNotDisplayed();
userInfoPage.ACSProfileImageNotDisplayed();
userInfoPage.clickOnProcessServicesTab();
userInfoPage.checkProcessServicesTabIsSelected();
await userInfoPage.checkInitialImage();
await userInfoPage.APSProfileImageNotDisplayed();
await userInfoPage.ACSProfileImageNotDisplayed();
await userInfoPage.clickOnProcessServicesTab();
await userInfoPage.checkProcessServicesTabIsSelected();
expect(userInfoPage.getProcessHeaderTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
expect(userInfoPage.getProcessTitle()).toEqual(contentUserModel.firstName + ' ' + processUserModel.lastName);
expect(userInfoPage.getProcessEmail()).toEqual(contentUserModel.email);
await expect(await userInfoPage.getProcessHeaderTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
await expect(await userInfoPage.getProcessTitle()).toEqual(contentUserModel.firstName + ' ' + processUserModel.lastName);
await expect(await userInfoPage.getProcessEmail()).toEqual(contentUserModel.email);
userInfoPage.checkInitialImage();
userInfoPage.APSProfileImageNotDisplayed();
userInfoPage.ACSProfileImageNotDisplayed();
userInfoPage.closeUserProfile();
await userInfoPage.checkInitialImage();
await userInfoPage.APSProfileImageNotDisplayed();
await userInfoPage.ACSProfileImageNotDisplayed();
await userInfoPage.closeUserProfile();
});
it('[C260113] Should display UserInfo when Content Services is enabled and Process Services is disabled', async () => {
await loginPage.loginToContentServicesUsingUserModel(contentUserModel);
userInfoPage.clickUserProfile();
userInfoPage.dialogIsDisplayed();
await userInfoPage.clickUserProfile();
await userInfoPage.dialogIsDisplayed();
expect(userInfoPage.getContentHeaderTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
expect(userInfoPage.getContentTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
expect(userInfoPage.getContentEmail()).toEqual(contentUserModel.email);
expect(userInfoPage.getContentJobTitle()).toEqual('N/A');
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
await expect(await userInfoPage.getContentTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
await expect(await userInfoPage.getContentEmail()).toEqual(contentUserModel.email);
await expect(await userInfoPage.getContentJobTitle()).toEqual('N/A');
userInfoPage.checkInitialImage();
userInfoPage.APSProfileImageNotDisplayed();
userInfoPage.ACSProfileImageNotDisplayed();
userInfoPage.closeUserProfile();
userInfoPage.dialogIsNotDisplayed();
await userInfoPage.checkInitialImage();
await userInfoPage.APSProfileImageNotDisplayed();
await userInfoPage.ACSProfileImageNotDisplayed();
await userInfoPage.closeUserProfile();
await userInfoPage.dialogIsNotDisplayed();
});
it('[C260115] Should display UserInfo when Process Services is enabled and Content Services is disabled', async () => {
await loginPage.loginToProcessServicesUsingUserModel(contentUserModel);
userInfoPage.clickUserProfile();
await userInfoPage.clickUserProfile();
userInfoPage.dialogIsDisplayed();
await userInfoPage.dialogIsDisplayed();
expect(userInfoPage.getProcessHeaderTitle()).toEqual(processUserModel.firstName + ' ' + processUserModel.lastName);
expect(userInfoPage.getProcessTitle()).toEqual(processUserModel.firstName + ' ' + processUserModel.lastName);
expect(userInfoPage.getProcessEmail()).toEqual(processUserModel.email);
await expect(await userInfoPage.getProcessHeaderTitle()).toEqual(processUserModel.firstName + ' ' + processUserModel.lastName);
await expect(await userInfoPage.getProcessTitle()).toEqual(processUserModel.firstName + ' ' + processUserModel.lastName);
await expect(await userInfoPage.getProcessEmail()).toEqual(processUserModel.email);
userInfoPage.checkInitialImage();
userInfoPage.APSProfileImageNotDisplayed();
userInfoPage.ACSProfileImageNotDisplayed();
userInfoPage.closeUserProfile();
await userInfoPage.checkInitialImage();
await userInfoPage.APSProfileImageNotDisplayed();
await userInfoPage.ACSProfileImageNotDisplayed();
await userInfoPage.closeUserProfile();
});
it('[C260117] Should display UserInfo with profile image uploaded in ACS', async () => {
await PeopleAPI.updateAvatarViaAPI(contentUserModel, acsAvatarFileModel, '-me-');
await PeopleAPI.getAvatarViaAPI(4, contentUserModel, '-me-', function () {
await PeopleAPI.getAvatarViaAPI(4, contentUserModel, '-me-', async() => {
});
await loginPage.loginToContentServicesUsingUserModel(contentUserModel);
userInfoPage.clickUserProfile();
await userInfoPage.clickUserProfile();
userInfoPage.checkACSProfileImage();
userInfoPage.APSProfileImageNotDisplayed();
userInfoPage.closeUserProfile();
await userInfoPage.checkACSProfileImage();
await userInfoPage.APSProfileImageNotDisplayed();
await userInfoPage.closeUserProfile();
});
it('[C260118] Should display UserInfo with profile image uploaded in APS', async () => {
@@ -168,12 +167,12 @@ describe('User Info component', () => {
await loginPage.loginToProcessServicesUsingUserModel(contentUserModel);
userInfoPage.clickUserProfile();
await userInfoPage.clickUserProfile();
userInfoPage.checkAPSProfileImage();
userInfoPage.ACSProfileImageNotDisplayed();
userInfoPage.initialImageNotDisplayed();
userInfoPage.closeUserProfile();
await userInfoPage.checkAPSProfileImage();
await userInfoPage.ACSProfileImageNotDisplayed();
await userInfoPage.initialImageNotDisplayed();
await userInfoPage.closeUserProfile();
});
it('[C260120] Should not display profile image in UserInfo when deleted in ACS', async () => {
@@ -181,11 +180,11 @@ describe('User Info component', () => {
await loginPage.loginToContentServicesUsingUserModel(contentUserModel);
userInfoPage.clickUserProfile();
await userInfoPage.clickUserProfile();
userInfoPage.checkInitialImage();
userInfoPage.APSProfileImageNotDisplayed();
userInfoPage.ACSProfileImageNotDisplayed();
userInfoPage.closeUserProfile();
await userInfoPage.checkInitialImage();
await userInfoPage.APSProfileImageNotDisplayed();
await userInfoPage.ACSProfileImageNotDisplayed();
await userInfoPage.closeUserProfile();
});
});

View File

@@ -47,24 +47,19 @@ describe('Viewer', () => {
'location': resources.Files.ADF_DOCUMENTS.ARCHIVE_FOLDER.folder_location
});
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
site = await this.alfrescoJsApi.core.sitesApi.createSite({
title: StringUtil.generateRandomString(8),
visibility: 'PUBLIC'
});
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
id: acsUser.id,
role: CONSTANTS.CS_USER_ROLES.MANAGER
});
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
done();
});
afterAll(async () => {
@@ -75,32 +70,28 @@ describe('Viewer', () => {
let uploadedArchives;
let archiveFolderUploaded;
beforeAll(async (done) => {
beforeAll(async () => {
archiveFolderUploaded = await uploadActions.createFolder(archiveFolderInfo.name, '-my-');
uploadedArchives = await uploadActions.uploadFolder(archiveFolderInfo.location, archiveFolderUploaded.entry.id);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
contentServicesPage.goToDocumentList();
await contentServicesPage.goToDocumentList();
done();
});
afterAll(async (done) => {
afterAll(async () => {
await uploadActions.deleteFileOrFolder(archiveFolderUploaded.entry.id);
done();
});
it('[C260517] Should be possible to open any Archive file', () => {
contentServicesPage.doubleClickRow('archive');
uploadedArchives.forEach((currentFile) => {
if (currentFile.entry.name !== '.DS_Store') {
contentServicesPage.doubleClickRow(currentFile.entry.name);
viewerPage.checkFileIsLoaded();
viewerPage.clickCloseButton();
it('[C260517] Should be possible to open any Archive file', async () => {
await contentServicesPage.doubleClickRow('archive');
for (const file of uploadedArchives) {
if (file.entry.name !== '.DS_Store') {
await contentServicesPage.doubleClickRow(file.entry.name);
await viewerPage.checkFileIsLoaded();
await viewerPage.clickCloseButton();
}
});
}
});
});

View File

@@ -53,7 +53,7 @@ describe('Viewer', () => {
'location': resources.Files.ADF_DOCUMENTS.OTHER_FOLDER.folder_location
});
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -70,7 +70,7 @@ describe('Viewer', () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
pngFileUploaded = await uploadActions.uploadFile(pngFileInfo.location, pngFileInfo.name, site.entry.guid);
done();
});
afterAll(async () => {
@@ -80,14 +80,14 @@ describe('Viewer', () => {
it('[C272813] Should be redirected to site when opening and closing a file in a site', async () => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
navigationBarPage.goToSite(site);
contentServicesPage.checkAcsContainer();
await navigationBarPage.goToSite(site);
await contentServicesPage.checkAcsContainer();
viewerPage.viewFile(pngFileUploaded.entry.name);
await viewerPage.viewFile(pngFileUploaded.entry.name);
viewerPage.checkImgViewerIsDisplayed();
await viewerPage.checkImgViewerIsDisplayed();
viewerPage.clickCloseButton();
await viewerPage.clickCloseButton();
});
describe('Other Folder Uploaded', () => {
@@ -95,32 +95,30 @@ describe('Viewer', () => {
let uploadedOthers;
let otherFolderUploaded;
beforeAll(async (done) => {
beforeAll(async () => {
otherFolderUploaded = await uploadActions.createFolder(otherFolderInfo.name, '-my-');
uploadedOthers = await uploadActions.uploadFolder(otherFolderInfo.location, otherFolderUploaded.entry.id);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
contentServicesPage.goToDocumentList();
await contentServicesPage.goToDocumentList();
done();
});
afterAll(async (done) => {
afterAll(async () => {
await uploadActions.deleteFileOrFolder(otherFolderUploaded.entry.id);
done();
});
it('[C280012] Should be possible to open any other Document supported extension', () => {
contentServicesPage.doubleClickRow('other');
uploadedOthers.forEach((currentFile) => {
if (currentFile.entry.name !== '.DS_Store') {
contentServicesPage.doubleClickRow(currentFile.entry.name);
viewerPage.checkFileIsLoaded();
viewerPage.clickCloseButton();
it('[C280012] Should be possible to open any other Document supported extension', async () => {
await contentServicesPage.doubleClickRow('other');
for (const file of uploadedOthers) {
if (file.entry.name !== '.DS_Store') {
await contentServicesPage.doubleClickRow(file.entry.name);
await viewerPage.checkFileIsLoaded();
await viewerPage.clickCloseButton();
}
});
}
});
});

View File

@@ -24,15 +24,12 @@ import resources = require('../../../util/resources');
import { FolderModel } from '../../../models/ACS/folderModel';
import { AcsUserModel } from '../../../models/ACS/acsUserModel';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { NavigationBarPage } from '../../../pages/adf/navigationBarPage';
describe('Viewer', () => {
const viewerPage = new ViewerPage();
const loginPage = new LoginPage();
const contentServicesPage = new ContentServicesPage();
const navigationBarPage = new NavigationBarPage();
let site;
const acsUser = new AcsUserModel();
@@ -46,7 +43,7 @@ describe('Viewer', () => {
});
const uploadActions = new UploadActions(this.alfrescoJsApi);
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -62,45 +59,37 @@ describe('Viewer', () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
done();
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
});
describe('Excel Folder Uploaded', () => {
let uploadedExcels;
let excelFolderUploaded;
beforeAll(async (done) => {
beforeAll(async () => {
excelFolderUploaded = await uploadActions.createFolder(excelFolderInfo.name, '-my-');
uploadedExcels = await uploadActions.uploadFolder(excelFolderInfo.location, excelFolderUploaded.entry.id);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
contentServicesPage.goToDocumentList();
await contentServicesPage.goToDocumentList();
done();
});
afterAll(async (done) => {
afterAll(async () => {
await uploadActions.deleteFileOrFolder(excelFolderUploaded.entry.id);
done();
});
it('[C280008] Should be possible to open any Excel file', () => {
contentServicesPage.doubleClickRow('excel');
uploadedExcels.forEach((currentFile) => {
it('[C280008] Should be possible to open any Excel file', async () => {
await contentServicesPage.doubleClickRow('excel');
for (const currentFile of uploadedExcels) {
if (currentFile.entry.name !== '.DS_Store') {
contentServicesPage.doubleClickRow(currentFile.entry.name);
viewerPage.checkFileIsLoaded(currentFile.entry.name);
viewerPage.clickCloseButton();
await contentServicesPage.doubleClickRow(currentFile.entry.name);
await viewerPage.checkFileIsLoaded(currentFile.entry.name);
await viewerPage.clickCloseButton();
}
});
}, 5 * 60 * 1000);
}
});
});

View File

@@ -24,15 +24,12 @@ import resources = require('../../../util/resources');
import { FolderModel } from '../../../models/ACS/folderModel';
import { AcsUserModel } from '../../../models/ACS/acsUserModel';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { NavigationBarPage } from '../../../pages/adf/navigationBarPage';
describe('Viewer', () => {
const viewerPage = new ViewerPage();
const loginPage = new LoginPage();
const contentServicesPage = new ContentServicesPage();
const navigationBarPage = new NavigationBarPage();
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
@@ -51,7 +48,7 @@ describe('Viewer', () => {
'location': resources.Files.ADF_DOCUMENTS.IMG_RENDITION_FOLDER.folder_location
});
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -67,11 +64,6 @@ describe('Viewer', () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
done();
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
});
describe('Image Folder Uploaded', () => {
@@ -79,7 +71,7 @@ describe('Viewer', () => {
let uploadedImages, uploadedImgRenditionFolderInfo;
let imgFolderUploaded, imgFolderRenditionUploaded;
beforeAll(async (done) => {
beforeAll(async () => {
imgFolderUploaded = await uploadActions.createFolder(imgFolderInfo.name, '-my-');
uploadedImages = await uploadActions.uploadFolder(imgFolderInfo.location, imgFolderUploaded.entry.id);
@@ -89,37 +81,33 @@ describe('Viewer', () => {
uploadedImgRenditionFolderInfo = await uploadActions.uploadFolder(imgRenditionFolderInfo.location, imgFolderRenditionUploaded.entry.id);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
contentServicesPage.goToDocumentList();
await contentServicesPage.goToDocumentList();
done();
});
afterAll(async (done) => {
afterAll(async () => {
await uploadActions.deleteFileOrFolder(imgFolderUploaded.entry.id);
done();
});
it('[C279966] Should be possible to open any Image supported extension', () => {
contentServicesPage.doubleClickRow('images');
uploadedImages.forEach((currentFile) => {
if (currentFile.entry.name !== '.DS_Store') {
contentServicesPage.doubleClickRow(currentFile.entry.name);
viewerPage.checkImgViewerIsDisplayed();
viewerPage.clickCloseButton();
it('[C279966] Should be possible to open any Image supported extension', async () => {
await contentServicesPage.doubleClickRow('images');
for (const image of uploadedImages) {
if (image.entry.name !== '.DS_Store') {
await contentServicesPage.doubleClickRow(image.entry.name);
await viewerPage.checkImgViewerIsDisplayed();
await viewerPage.clickCloseButton();
}
});
contentServicesPage.doubleClickRow('images-rendition');
uploadedImgRenditionFolderInfo.forEach((currentFile) => {
if (currentFile.entry.name !== '.DS_Store') {
contentServicesPage.doubleClickRow(currentFile.entry.name);
viewerPage.checkFileIsLoaded();
viewerPage.clickCloseButton();
}
await contentServicesPage.doubleClickRow('images-rendition');
for (const item of uploadedImgRenditionFolderInfo) {
if (item.entry.name !== '.DS_Store') {
await contentServicesPage.doubleClickRow(item.entry.name);
await viewerPage.checkFileIsLoaded();
await viewerPage.clickCloseButton();
}
});
}, 5 * 60 * 1000);
}
});
});

View File

@@ -24,19 +24,16 @@ import { FolderModel } from '../../../models/ACS/folderModel';
import { AcsUserModel } from '../../../models/ACS/acsUserModel';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { browser } from 'protractor';
import { NavigationBarPage } from '../../../pages/adf/navigationBarPage';
describe('Viewer', () => {
const viewerPage = new ViewerPage();
const loginPage = new LoginPage();
const contentServicesPage = new ContentServicesPage();
const navigationBarPage = new NavigationBarPage();
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
});
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
});
const uploadActions = new UploadActions(this.alfrescoJsApi);
let site;
@@ -47,7 +44,7 @@ describe('Viewer', () => {
'location': resources.Files.ADF_DOCUMENTS.PPT_FOLDER.folder_location
});
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -63,11 +60,6 @@ describe('Viewer', () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
done();
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
});
describe('PowerPoint Folder Uploaded', () => {
@@ -75,33 +67,32 @@ describe('Viewer', () => {
let uploadedPpt;
let pptFolderUploaded;
beforeAll(async (done) => {
beforeAll(async () => {
pptFolderUploaded = await uploadActions.createFolder(pptFolderInfo.name, '-my-');
uploadedPpt = await uploadActions.uploadFolder(pptFolderInfo.location, pptFolderUploaded.entry.id);
loginPage.loginToContentServicesUsingUserModel(acsUser);
contentServicesPage.goToDocumentList();
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await contentServicesPage.goToDocumentList();
done();
});
afterAll(async (done) => {
afterAll(async () => {
await uploadActions.deleteFileOrFolder(pptFolderUploaded.entry.id);
done();
});
it('[C280009] Should be possible to open any PowerPoint file', () => {
contentServicesPage.doubleClickRow('ppt');
it('[C280009] Should be possible to open any PowerPoint file', async () => {
await contentServicesPage.doubleClickRow('ppt');
uploadedPpt.forEach((currentFile) => {
for (const currentFile of uploadedPpt) {
if (currentFile.entry.name !== '.DS_Store') {
contentServicesPage.doubleClickRow(currentFile.entry.name);
viewerPage.checkFileIsLoaded();
viewerPage.clickCloseButton();
await contentServicesPage.doubleClickRow(currentFile.entry.name);
await viewerPage.checkFileIsLoaded();
await viewerPage.clickCloseButton();
}
});
}, 5 * 60 * 1000);
}
});
});

View File

@@ -24,19 +24,16 @@ import resources = require('../../../util/resources');
import { FolderModel } from '../../../models/ACS/folderModel';
import { AcsUserModel } from '../../../models/ACS/acsUserModel';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { NavigationBarPage } from '../../../pages/adf/navigationBarPage';
describe('Viewer', () => {
const viewerPage = new ViewerPage();
const loginPage = new LoginPage();
const contentServicesPage = new ContentServicesPage();
const navigationBarPage = new NavigationBarPage();
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
});
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
});
const uploadActions = new UploadActions(this.alfrescoJsApi);
let site;
const acsUser = new AcsUserModel();
@@ -46,7 +43,7 @@ describe('Viewer', () => {
'location': resources.Files.ADF_DOCUMENTS.TEXT_FOLDER.folder_location
});
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -62,11 +59,6 @@ describe('Viewer', () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
done();
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
});
describe('Text Folder Uploaded', () => {
@@ -74,32 +66,30 @@ describe('Viewer', () => {
let uploadedTexts;
let textFolderUploaded;
beforeAll(async (done) => {
beforeAll(async () => {
textFolderUploaded = await uploadActions.createFolder(textFolderInfo.name, '-my-');
uploadedTexts = await uploadActions.uploadFolder(textFolderInfo.location, textFolderUploaded.entry.id);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
contentServicesPage.goToDocumentList();
await contentServicesPage.goToDocumentList();
done();
});
afterAll(async (done) => {
afterAll(async () => {
await uploadActions.deleteFileOrFolder(textFolderUploaded.entry.id);
done();
});
it('[C280010] Should be possible to open any Text file', () => {
contentServicesPage.doubleClickRow('text');
uploadedTexts.forEach((currentFile) => {
it('[C280010] Should be possible to open any Text file', async () => {
await contentServicesPage.doubleClickRow('text');
for (const currentFile of uploadedTexts) {
if (currentFile.entry.name !== '.DS_Store') {
contentServicesPage.doubleClickRow(currentFile.entry.name);
viewerPage.checkFileIsLoaded();
viewerPage.clickCloseButton();
await contentServicesPage.doubleClickRow(currentFile.entry.name);
await viewerPage.checkFileIsLoaded();
await viewerPage.clickCloseButton();
}
});
}
});
});

View File

@@ -46,7 +46,7 @@ describe('Viewer', () => {
'location': resources.Files.ADF_DOCUMENTS.WORD_FOLDER.folder_location
});
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -62,7 +62,6 @@ describe('Viewer', () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
done();
});
afterAll(async () => {
@@ -74,32 +73,30 @@ describe('Viewer', () => {
let uploadedWords;
let wordFolderUploaded;
beforeAll(async (done) => {
beforeAll(async () => {
wordFolderUploaded = await uploadActions.createFolder(wordFolderInfo.name, '-my-');
uploadedWords = await uploadActions.uploadFolder(wordFolderInfo.location, wordFolderUploaded.entry.id);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
contentServicesPage.goToDocumentList();
await contentServicesPage.goToDocumentList();
done();
});
afterAll(async (done) => {
afterAll(async () => {
await uploadActions.deleteFileOrFolder(wordFolderUploaded.entry.id);
done();
});
it('[C280011] Should be possible to open any Word file', () => {
contentServicesPage.doubleClickRow('word');
uploadedWords.forEach((currentFile) => {
it('[C280011] Should be possible to open any Word file', async () => {
await contentServicesPage.doubleClickRow('word');
for (const currentFile of uploadedWords) {
if (currentFile.entry.name !== '.DS_Store') {
contentServicesPage.doubleClickRow(currentFile.entry.name);
viewerPage.checkFileIsLoaded();
viewerPage.clickCloseButton();
await contentServicesPage.doubleClickRow(currentFile.entry.name);
await viewerPage.checkFileIsLoaded();
await viewerPage.clickCloseButton();
}
});
}
});
});

View File

@@ -46,7 +46,7 @@ describe('Info Drawer', () => {
'location': resources.Files.ADF_DOCUMENTS.PNG.file_location
});
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -63,43 +63,39 @@ describe('Info Drawer', () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
pngFileUploaded = await uploadActions.uploadFile(pngFileInfo.location, pngFileInfo.name, site.entry.guid);
done();
});
afterAll(async (done) => {
afterAll(async () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await uploadActions.deleteFileOrFolder(pngFileUploaded.entry.id);
done();
});
beforeEach(async() => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
navigationBarPage.goToSite(site);
contentServicesPage.checkAcsContainer();
await navigationBarPage.goToSite(site);
await contentServicesPage.checkAcsContainer();
});
afterEach(async () => {
await navigationBarPage.clickLogoutButton();
it('[C277251] Should display the icon when the icon property is defined', async () => {
await viewerPage.viewFile(pngFileUploaded.entry.name);
await viewerPage.clickLeftSidebarButton();
await viewerPage.enableShowTabWithIcon();
await viewerPage.enableShowTabWithIconAndLabel();
await viewerPage.checkTabHasNoIcon(0);
await expect(await viewerPage.getTabIconById(1)).toBe('face');
await expect(await viewerPage.getTabIconById(2)).toBe('comment');
});
it('[C277251] Should display the icon when the icon property is defined', () => {
viewerPage.viewFile(pngFileUploaded.entry.name);
viewerPage.clickLeftSidebarButton();
viewerPage.enableShowTabWithIcon();
viewerPage.enableShowTabWithIconAndLabel();
viewerPage.checkTabHasNoIcon(0);
expect(viewerPage.getTabIconById(1)).toBe('face');
expect(viewerPage.getTabIconById(2)).toBe('comment');
});
it('[C277252] Should display the label when the label property is defined', () => {
viewerPage.viewFile(pngFileUploaded.entry.name);
viewerPage.clickLeftSidebarButton();
viewerPage.enableShowTabWithIcon();
viewerPage.enableShowTabWithIconAndLabel();
expect(viewerPage.getTabLabelById(0)).toBe('SETTINGS');
viewerPage.checkTabHasNoLabel(1);
expect(viewerPage.getTabLabelById(2)).toBe('COMMENTS');
it('[C277252] Should display the label when the label property is defined', async () => {
await viewerPage.viewFile(pngFileUploaded.entry.name);
await viewerPage.clickLeftSidebarButton();
await viewerPage.enableShowTabWithIcon();
await viewerPage.enableShowTabWithIconAndLabel();
await expect(await viewerPage.getTabLabelById(0)).toBe('SETTINGS');
await viewerPage.checkTabHasNoLabel(1);
await expect(await viewerPage.getTabLabelById(2)).toBe('COMMENTS');
});
});

View File

@@ -77,7 +77,7 @@ describe('Content Services Viewer', () => {
});
const uploadActions = new UploadActions(this.alfrescoJsApi);
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
@@ -108,12 +108,11 @@ describe('Content Services Viewer', () => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
contentServicesPage.goToDocumentList();
await contentServicesPage.goToDocumentList();
done();
});
afterAll(async (done) => {
afterAll(async () => {
await uploadActions.deleteFileOrFolder(pdfFile.getId());
await uploadActions.deleteFileOrFolder(protectedFile.getId());
await uploadActions.deleteFileOrFolder(docxFile.getId());
@@ -123,294 +122,293 @@ describe('Content Services Viewer', () => {
await uploadActions.deleteFileOrFolder(unsupportedFile.getId());
await navigationBarPage.clickLogoutButton();
done();
});
it('[C260038] Should display first page, toolbar and pagination when opening a .pdf file', () => {
contentServicesPage.checkAcsContainer();
it('[C260038] Should display first page, toolbar and pagination when opening a .pdf file', async () => {
await contentServicesPage.checkAcsContainer();
viewerPage.viewFile(pdfFile.name);
viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.viewFile(pdfFile.name);
await viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkFileContent('1', pdfFile.firstPageText);
viewerPage.checkCloseButtonIsDisplayed();
viewerPage.checkFileNameIsDisplayed(pdfFile.name);
viewerPage.checkFileThumbnailIsDisplayed();
viewerPage.checkDownloadButtonIsDisplayed();
viewerPage.checkFullScreenButtonIsDisplayed();
viewerPage.checkInfoButtonIsDisplayed();
viewerPage.checkPreviousPageButtonIsDisplayed();
viewerPage.checkNextPageButtonIsDisplayed();
viewerPage.checkPageSelectorInputIsDisplayed('1');
viewerPage.checkPercentageIsDisplayed();
viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkZoomOutButtonIsDisplayed();
viewerPage.checkScalePageButtonIsDisplayed();
await viewerPage.checkFileContent('1', pdfFile.firstPageText);
await viewerPage.checkCloseButtonIsDisplayed();
await viewerPage.checkFileNameIsDisplayed(pdfFile.name);
await viewerPage.checkFileThumbnailIsDisplayed();
await viewerPage.checkDownloadButtonIsDisplayed();
await viewerPage.checkFullScreenButtonIsDisplayed();
await viewerPage.checkInfoButtonIsDisplayed();
await viewerPage.checkPreviousPageButtonIsDisplayed();
await viewerPage.checkNextPageButtonIsDisplayed();
await viewerPage.checkPageSelectorInputIsDisplayed('1');
await viewerPage.checkPercentageIsDisplayed();
await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkZoomOutButtonIsDisplayed();
await viewerPage.checkScalePageButtonIsDisplayed();
viewerPage.clickCloseButton();
await viewerPage.clickCloseButton();
});
it('[C260040] Should be able to change pages and zoom when .pdf file is open', async () => {
viewerPage.viewFile(pdfFile.name);
viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.viewFile(pdfFile.name);
await viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkFileContent('1', pdfFile.firstPageText);
viewerPage.clickNextPageButton();
viewerPage.checkFileContent('2', pdfFile.secondPageText);
viewerPage.checkPageSelectorInputIsDisplayed('2');
await viewerPage.checkFileContent('1', pdfFile.firstPageText);
await viewerPage.clickNextPageButton();
await viewerPage.checkFileContent('2', pdfFile.secondPageText);
await viewerPage.checkPageSelectorInputIsDisplayed('2');
viewerPage.clickPreviousPageButton();
viewerPage.checkFileContent('1', pdfFile.firstPageText);
viewerPage.checkPageSelectorInputIsDisplayed('1');
await viewerPage.clickPreviousPageButton();
await viewerPage.checkFileContent('1', pdfFile.firstPageText);
await viewerPage.checkPageSelectorInputIsDisplayed('1');
viewerPage.clearPageNumber();
viewerPage.checkPageSelectorInputIsDisplayed('');
await viewerPage.clearPageNumber();
await viewerPage.checkPageSelectorInputIsDisplayed('');
const initialWidth = await viewerPage.getCanvasWidth();
const initialHeight = await viewerPage.getCanvasHeight();
viewerPage.clickZoomInButton();
expect(+(await viewerPage.getCanvasWidth())).toBeGreaterThan(+initialWidth);
expect(+(await viewerPage.getCanvasHeight())).toBeGreaterThan(+initialHeight);
await viewerPage.clickZoomInButton();
await expect(+(await viewerPage.getCanvasWidth())).toBeGreaterThan(+initialWidth);
await expect(+(await viewerPage.getCanvasHeight())).toBeGreaterThan(+initialHeight);
viewerPage.clickActualSize();
expect(+(await viewerPage.getCanvasWidth())).toEqual(+initialWidth);
expect(+(await viewerPage.getCanvasHeight())).toEqual(+initialHeight);
await viewerPage.clickActualSize();
await expect(+(await viewerPage.getCanvasWidth())).toEqual(+initialWidth);
await expect(+(await viewerPage.getCanvasHeight())).toEqual(+initialHeight);
viewerPage.clickZoomOutButton();
expect(+(await viewerPage.getCanvasWidth())).toBeLessThan(+initialWidth);
expect(+(await viewerPage.getCanvasHeight())).toBeLessThan(+initialHeight);
await viewerPage.clickZoomOutButton();
await expect(+(await viewerPage.getCanvasWidth())).toBeLessThan(+initialWidth);
await expect(+(await viewerPage.getCanvasHeight())).toBeLessThan(+initialHeight);
viewerPage.clickCloseButton();
await viewerPage.clickCloseButton();
});
it('[C260042] Should be able to download, open full-screen and Info container from the Viewer', () => {
viewerPage.viewFile(jpgFile.name);
viewerPage.checkZoomInButtonIsDisplayed();
it('[C260042] Should be able to download, open full-screen and Info container from the Viewer', async () => {
await viewerPage.viewFile(jpgFile.name);
await viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkImgContainerIsDisplayed();
await viewerPage.checkImgContainerIsDisplayed();
viewerPage.checkFullScreenButtonIsDisplayed();
viewerPage.clickFullScreenButton();
await viewerPage.checkFullScreenButtonIsDisplayed();
await viewerPage.clickFullScreenButton();
viewerPage.exitFullScreen();
await viewerPage.exitFullScreen();
viewerPage.checkDownloadButtonIsDisplayed();
viewerPage.clickDownloadButton();
await viewerPage.checkDownloadButtonIsDisplayed();
await viewerPage.clickDownloadButton();
viewerPage.clickCloseButton();
await viewerPage.clickCloseButton();
});
it('[C260052] Should display image, toolbar and pagination when opening a .jpg file', () => {
viewerPage.viewFile(jpgFile.name);
viewerPage.checkZoomInButtonIsDisplayed();
it('[C260052] Should display image, toolbar and pagination when opening a .jpg file', async () => {
await viewerPage.viewFile(jpgFile.name);
await viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkImgContainerIsDisplayed();
await viewerPage.checkImgContainerIsDisplayed();
viewerPage.checkCloseButtonIsDisplayed();
viewerPage.checkFileNameIsDisplayed(jpgFile.name);
viewerPage.checkFileThumbnailIsDisplayed();
viewerPage.checkDownloadButtonIsDisplayed();
viewerPage.checkFullScreenButtonIsDisplayed();
viewerPage.checkInfoButtonIsDisplayed();
viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkZoomOutButtonIsDisplayed();
viewerPage.checkPercentageIsDisplayed();
viewerPage.checkRotateLeftButtonIsDisplayed();
viewerPage.checkRotateRightButtonIsDisplayed();
viewerPage.checkScaleImgButtonIsDisplayed();
await viewerPage.checkCloseButtonIsDisplayed();
await viewerPage.checkFileNameIsDisplayed(jpgFile.name);
await viewerPage.checkFileThumbnailIsDisplayed();
await viewerPage.checkDownloadButtonIsDisplayed();
await viewerPage.checkFullScreenButtonIsDisplayed();
await viewerPage.checkInfoButtonIsDisplayed();
await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkZoomOutButtonIsDisplayed();
await viewerPage.checkPercentageIsDisplayed();
await viewerPage.checkRotateLeftButtonIsDisplayed();
await viewerPage.checkRotateRightButtonIsDisplayed();
await viewerPage.checkScaleImgButtonIsDisplayed();
viewerPage.clickCloseButton();
await viewerPage.clickCloseButton();
});
it('[C260483] Should be able to zoom and rotate image when .jpg file is open', () => {
viewerPage.viewFile(jpgFile.name);
viewerPage.checkZoomInButtonIsDisplayed();
it('[C260483] Should be able to zoom and rotate image when .jpg file is open', async () => {
await viewerPage.viewFile(jpgFile.name);
await viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkPercentageIsDisplayed();
await viewerPage.checkPercentageIsDisplayed();
zoom = viewerPage.getZoom();
viewerPage.clickZoomInButton();
viewerPage.checkZoomedIn(zoom);
zoom = await viewerPage.getZoom();
await viewerPage.clickZoomInButton();
await viewerPage.checkZoomedIn(zoom);
zoom = viewerPage.getZoom();
viewerPage.clickZoomOutButton();
viewerPage.checkZoomedOut(zoom);
zoom = await viewerPage.getZoom();
await viewerPage.clickZoomOutButton();
await viewerPage.checkZoomedOut(zoom);
viewerPage.clickRotateLeftButton();
viewerPage.checkRotation('transform: scale(1, 1) rotate(-90deg) translate(0px, 0px);');
await viewerPage.clickRotateLeftButton();
await viewerPage.checkRotation('transform: scale(1, 1) rotate(-90deg) translate(0px, 0px);');
viewerPage.clickScaleImgButton();
viewerPage.checkRotation('transform: scale(1, 1) rotate(0deg) translate(0px, 0px);');
await viewerPage.clickScaleImgButton();
await viewerPage.checkRotation('transform: scale(1, 1) rotate(0deg) translate(0px, 0px);');
viewerPage.clickRotateRightButton();
viewerPage.checkRotation('transform: scale(1, 1) rotate(90deg) translate(0px, 0px);');
await viewerPage.clickRotateRightButton();
await viewerPage.checkRotation('transform: scale(1, 1) rotate(90deg) translate(0px, 0px);');
viewerPage.clickCloseButton();
await viewerPage.clickCloseButton();
});
it('[C279922] Should display first page, toolbar and pagination when opening a .ppt file', () => {
viewerPage.viewFile(pptFile.name);
viewerPage.checkZoomInButtonIsDisplayed();
it('[C279922] Should display first page, toolbar and pagination when opening a .ppt file', async () => {
await viewerPage.viewFile(pptFile.name);
await viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkFileContent('1', pptFile.firstPageText);
viewerPage.checkCloseButtonIsDisplayed();
viewerPage.checkFileThumbnailIsDisplayed();
viewerPage.checkFileNameIsDisplayed(pptFile.name);
viewerPage.checkDownloadButtonIsDisplayed();
viewerPage.checkInfoButtonIsDisplayed();
viewerPage.checkPreviousPageButtonIsDisplayed();
viewerPage.checkNextPageButtonIsDisplayed();
viewerPage.checkPageSelectorInputIsDisplayed('1');
viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkZoomOutButtonIsDisplayed();
viewerPage.checkScalePageButtonIsDisplayed();
await viewerPage.checkFileContent('1', pptFile.firstPageText);
await viewerPage.checkCloseButtonIsDisplayed();
await viewerPage.checkFileThumbnailIsDisplayed();
await viewerPage.checkFileNameIsDisplayed(pptFile.name);
await viewerPage.checkDownloadButtonIsDisplayed();
await viewerPage.checkInfoButtonIsDisplayed();
await viewerPage.checkPreviousPageButtonIsDisplayed();
await viewerPage.checkNextPageButtonIsDisplayed();
await viewerPage.checkPageSelectorInputIsDisplayed('1');
await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkZoomOutButtonIsDisplayed();
await viewerPage.checkScalePageButtonIsDisplayed();
viewerPage.clickCloseButton();
await viewerPage.clickCloseButton();
});
it('[C291903] Should display the buttons in order in the adf viewer toolbar', () => {
viewerPage.viewFile(pdfFile.name);
viewerPage.checkLeftSideBarIsNotDisplayed();
viewerPage.clickLeftSidebarButton();
viewerPage.checkLeftSideBarIsDisplayed();
viewerPage.enableMoreActionsMenu();
viewerPage.checkToolbarIsDisplayed();
expect(viewerPage.getLastButtonTitle()).toEqual(viewerPage.getMoreActionsMenuTitle());
viewerPage.clickCloseButton();
it('[C291903] Should display the buttons in order in the adf viewer toolbar', async () => {
await viewerPage.viewFile(pdfFile.name);
await viewerPage.checkLeftSideBarIsNotDisplayed();
await viewerPage.clickLeftSidebarButton();
await viewerPage.checkLeftSideBarIsDisplayed();
await viewerPage.enableMoreActionsMenu();
await viewerPage.checkToolbarIsDisplayed();
await expect(await viewerPage.getLastButtonTitle()).toEqual(await viewerPage.getMoreActionsMenuTitle());
await viewerPage.clickCloseButton();
});
it('[C260053] Should display first page, toolbar and pagination when opening a .docx file', () => {
viewerPage.viewFile(docxFile.name);
viewerPage.checkZoomInButtonIsDisplayed();
it('[C260053] Should display first page, toolbar and pagination when opening a .docx file', async () => {
await viewerPage.viewFile(docxFile.name);
await viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkFileContent('1', docxFile.firstPageText);
viewerPage.checkCloseButtonIsDisplayed();
viewerPage.checkFileThumbnailIsDisplayed();
viewerPage.checkFileNameIsDisplayed(docxFile.name);
viewerPage.checkDownloadButtonIsDisplayed();
viewerPage.checkInfoButtonIsDisplayed();
viewerPage.checkPreviousPageButtonIsDisplayed();
viewerPage.checkNextPageButtonIsDisplayed();
viewerPage.checkPageSelectorInputIsDisplayed('1');
viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkZoomOutButtonIsDisplayed();
viewerPage.checkScalePageButtonIsDisplayed();
await viewerPage.checkFileContent('1', docxFile.firstPageText);
await viewerPage.checkCloseButtonIsDisplayed();
await viewerPage.checkFileThumbnailIsDisplayed();
await viewerPage.checkFileNameIsDisplayed(docxFile.name);
await viewerPage.checkDownloadButtonIsDisplayed();
await viewerPage.checkInfoButtonIsDisplayed();
await viewerPage.checkPreviousPageButtonIsDisplayed();
await viewerPage.checkNextPageButtonIsDisplayed();
await viewerPage.checkPageSelectorInputIsDisplayed('1');
await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkZoomOutButtonIsDisplayed();
await viewerPage.checkScalePageButtonIsDisplayed();
viewerPage.clickCloseButton();
await viewerPage.clickCloseButton();
});
it('[C260054] Should display Preview could not be loaded and viewer toolbar when opening an unsupported file', () => {
viewerPage.viewFile(unsupportedFile.name);
it('[C260054] Should display Preview could not be loaded and viewer toolbar when opening an unsupported file', async () => {
await viewerPage.viewFile(unsupportedFile.name);
viewerPage.checkCloseButtonIsDisplayed();
viewerPage.checkFileNameIsDisplayed(unsupportedFile.name);
viewerPage.checkFileThumbnailIsDisplayed();
viewerPage.checkDownloadButtonIsDisplayed();
viewerPage.checkInfoButtonIsDisplayed();
await viewerPage.checkCloseButtonIsDisplayed();
await viewerPage.checkFileNameIsDisplayed(unsupportedFile.name);
await viewerPage.checkFileThumbnailIsDisplayed();
await viewerPage.checkDownloadButtonIsDisplayed();
await viewerPage.checkInfoButtonIsDisplayed();
viewerPage.checkZoomInButtonIsNotDisplayed();
viewerPage.checkUnknownFormatIsDisplayed();
expect(viewerPage.getUnknownFormatMessage()).toBe('Couldn\'t load preview. Unknown format.');
await viewerPage.checkZoomInButtonIsNotDisplayed();
await viewerPage.checkUnknownFormatIsDisplayed();
await expect(await viewerPage.getUnknownFormatMessage()).toBe('Couldn\'t load preview. Unknown format.');
viewerPage.clickCloseButton();
await viewerPage.clickCloseButton();
});
it('[C260056] Should display video and viewer toolbar when opening a media file', () => {
viewerPage.viewFile(mp4File.name);
it('[C260056] Should display video and viewer toolbar when opening a media file', async () => {
await viewerPage.viewFile(mp4File.name);
viewerPage.checkMediaPlayerContainerIsDisplayed();
viewerPage.checkCloseButtonIsDisplayed();
viewerPage.checkFileThumbnailIsDisplayed();
viewerPage.checkFileNameIsDisplayed(mp4File.name);
viewerPage.checkDownloadButtonIsDisplayed();
viewerPage.checkInfoButtonIsDisplayed();
viewerPage.checkFullScreenButtonIsNotDisplayed();
await viewerPage.checkMediaPlayerContainerIsDisplayed();
await viewerPage.checkCloseButtonIsDisplayed();
await viewerPage.checkFileThumbnailIsDisplayed();
await viewerPage.checkFileNameIsDisplayed(mp4File.name);
await viewerPage.checkDownloadButtonIsDisplayed();
await viewerPage.checkInfoButtonIsDisplayed();
await viewerPage.checkFullScreenButtonIsNotDisplayed();
viewerPage.checkZoomInButtonIsNotDisplayed();
await viewerPage.checkZoomInButtonIsNotDisplayed();
viewerPage.clickCloseButton();
await viewerPage.clickCloseButton();
});
it('[C261123] Should be able to preview all pages and navigate to a page when using thumbnails', () => {
viewerPage.viewFile(pdfFile.name);
it('[C261123] Should be able to preview all pages and navigate to a page when using thumbnails', async () => {
await viewerPage.viewFile(pdfFile.name);
viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkFileContent('1', pdfFile.firstPageText);
viewerPage.checkThumbnailsBtnIsDisplayed();
viewerPage.clickThumbnailsBtn();
await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkFileContent('1', pdfFile.firstPageText);
await viewerPage.checkThumbnailsBtnIsDisplayed();
await viewerPage.clickThumbnailsBtn();
viewerPage.checkThumbnailsContentIsDisplayed();
viewerPage.checkThumbnailsCloseIsDisplayed();
viewerPage.checkAllThumbnailsDisplayed(pdfFile.lastPageNumber);
await viewerPage.checkThumbnailsContentIsDisplayed();
await viewerPage.checkThumbnailsCloseIsDisplayed();
await viewerPage.checkAllThumbnailsDisplayed(pdfFile.lastPageNumber);
viewerPage.clickSecondThumbnail();
viewerPage.checkFileContent('2', pdfFile.secondPageText);
viewerPage.checkCurrentThumbnailIsSelected();
await viewerPage.clickSecondThumbnail();
await viewerPage.checkFileContent('2', pdfFile.secondPageText);
await viewerPage.checkCurrentThumbnailIsSelected();
viewerPage.checkPreviousPageButtonIsDisplayed();
viewerPage.clickPreviousPageButton();
viewerPage.checkFileContent('1', pdfFile.firstPageText);
viewerPage.checkCurrentThumbnailIsSelected();
await viewerPage.checkPreviousPageButtonIsDisplayed();
await viewerPage.clickPreviousPageButton();
await viewerPage.checkFileContent('1', pdfFile.firstPageText);
await viewerPage.checkCurrentThumbnailIsSelected();
viewerPage.clickThumbnailsBtn();
viewerPage.checkThumbnailsContentIsNotDisplayed();
viewerPage.clickThumbnailsBtn();
viewerPage.checkThumbnailsCloseIsDisplayed();
viewerPage.clickThumbnailsClose();
await viewerPage.clickThumbnailsBtn();
await viewerPage.checkThumbnailsContentIsNotDisplayed();
await viewerPage.clickThumbnailsBtn();
await viewerPage.checkThumbnailsCloseIsDisplayed();
await viewerPage.clickThumbnailsClose();
viewerPage.clickCloseButton();
await viewerPage.clickCloseButton();
});
it('[C268105] Should display current thumbnail when getting to the page following the last visible thumbnail', () => {
viewerPage.viewFile(pdfFile.name);
viewerPage.checkZoomInButtonIsDisplayed();
it('[C268105] Should display current thumbnail when getting to the page following the last visible thumbnail', async () => {
await viewerPage.viewFile(pdfFile.name);
await viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkFileContent('1', pdfFile.firstPageText);
viewerPage.checkThumbnailsBtnIsDisplayed();
viewerPage.clickThumbnailsBtn();
viewerPage.clickLastThumbnailDisplayed();
viewerPage.checkCurrentThumbnailIsSelected();
await viewerPage.checkFileContent('1', pdfFile.firstPageText);
await viewerPage.checkThumbnailsBtnIsDisplayed();
await viewerPage.clickThumbnailsBtn();
await viewerPage.clickLastThumbnailDisplayed();
await viewerPage.checkCurrentThumbnailIsSelected();
viewerPage.checkNextPageButtonIsDisplayed();
viewerPage.clickNextPageButton();
viewerPage.checkCurrentThumbnailIsSelected();
await viewerPage.checkNextPageButtonIsDisplayed();
await viewerPage.clickNextPageButton();
await viewerPage.checkCurrentThumbnailIsSelected();
viewerPage.clickCloseButton();
await viewerPage.clickCloseButton();
});
it('[C269109] Should not be able to open thumbnail panel before the pdf is loaded', () => {
viewerPage.viewFile(pdfFile.name);
it('[C269109] Should not be able to open thumbnail panel before the pdf is loaded', async () => {
await viewerPage.viewFile(pdfFile.name);
viewerPage.checkThumbnailsBtnIsDisabled();
await viewerPage.checkThumbnailsBtnIsDisabled();
viewerPage.checkCloseButtonIsDisplayed();
viewerPage.clickCloseButton();
await viewerPage.checkCloseButtonIsDisplayed();
await viewerPage.clickCloseButton();
});
it('[C268901] Should need a password when opening a protected file', () => {
viewerPage.viewFile(protectedFile.name);
it('[C268901] Should need a password when opening a protected file', async () => {
await viewerPage.viewFile(protectedFile.name);
viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkPasswordDialogIsDisplayed();
viewerPage.checkPasswordSubmitDisabledIsDisplayed();
await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkPasswordDialogIsDisplayed();
await viewerPage.checkPasswordSubmitDisabledIsDisplayed();
viewerPage.enterPassword('random password');
viewerPage.clickPasswordSubmit();
viewerPage.checkPasswordErrorIsDisplayed();
viewerPage.checkPasswordInputIsDisplayed();
await viewerPage.enterPassword('random password');
await viewerPage.clickPasswordSubmit();
await viewerPage.checkPasswordErrorIsDisplayed();
await viewerPage.checkPasswordInputIsDisplayed();
viewerPage.enterPassword(protectedFile.password);
viewerPage.clickPasswordSubmit();
viewerPage.checkFileContent('1', protectedFile.firstPageText);
await viewerPage.enterPassword(protectedFile.password);
await viewerPage.clickPasswordSubmit();
await viewerPage.checkFileContent('1', protectedFile.firstPageText);
viewerPage.clickCloseButton();
await viewerPage.clickCloseButton();
});
it('[C307985] Should close the viewer when password dialog is cancelled', () => {
viewerPage.viewFile(protectedFile.name);
viewerPage.checkPasswordDialogIsDisplayed();
viewerPage.clickClosePasswordDialog();
contentServicesPage.checkContentIsDisplayed(protectedFile.name);
it('[C307985] Should close the viewer when password dialog is cancelled', async () => {
await viewerPage.viewFile(protectedFile.name);
await viewerPage.checkPasswordDialogIsDisplayed();
await viewerPage.clickClosePasswordDialog();
await contentServicesPage.checkContentIsDisplayed(protectedFile.name);
});
});

View File

@@ -44,7 +44,7 @@ describe('Viewer', () => {
'location': resources.Files.ADF_DOCUMENTS.TXT.file_location
});
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -54,41 +54,40 @@ describe('Viewer', () => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
done();
});
afterAll(async (done) => {
afterAll(async () => {
await uploadActions.deleteFileOrFolder(txtFileUploaded.entry.id);
await navigationBarPage.clickLogoutButton();
done();
});
beforeEach(() => {
contentServicesPage.goToDocumentList();
contentServicesPage.doubleClickRow(txtFileUploaded.entry.name);
beforeEach(async () => {
await contentServicesPage.goToDocumentList();
await contentServicesPage.doubleClickRow(txtFileUploaded.entry.name);
});
afterEach(() => {
viewerPage.clickCloseButton();
afterEach(async () => {
await viewerPage.clickCloseButton();
});
it('[C260096] Should the Viewer able to accept a customToolbar', () => {
viewerPage.clickLeftSidebarButton();
viewerPage.checkLeftSideBarIsDisplayed();
viewerPage.checkToolbarIsDisplayed();
viewerPage.enableCustomToolbar();
viewerPage.checkCustomToolbarIsDisplayed();
viewerPage.disableCustomToolbar();
it('[C260096] Should the Viewer able to accept a customToolbar', async () => {
await viewerPage.clickLeftSidebarButton();
await viewerPage.checkLeftSideBarIsDisplayed();
await viewerPage.checkToolbarIsDisplayed();
await viewerPage.enableCustomToolbar();
await viewerPage.checkCustomToolbarIsDisplayed();
await viewerPage.disableCustomToolbar();
});
it('[C260097] Should the viewer able to show a custom info-drawer when the sidebarTemplate is set', () => {
viewerPage.clickInfoButton();
viewerPage.checkInfoSideBarIsDisplayed();
viewerPage.clickOnTab('Comments');
viewerPage.checkTabIsActive('Comments');
viewerPage.clickOnTab('Properties');
viewerPage.checkTabIsActive('Properties');
viewerPage.clickOnTab('Versions');
viewerPage.checkTabIsActive('Versions');
it('[C260097] Should the viewer able to show a custom info-drawer when the sidebarTemplate is set', async () => {
await viewerPage.clickInfoButton();
await viewerPage.checkInfoSideBarIsDisplayed();
await viewerPage.clickOnTab('Comments');
await viewerPage.checkTabIsActive('Comments');
await viewerPage.clickOnTab('Properties');
await viewerPage.checkTabIsActive('Properties');
await viewerPage.clickOnTab('Versions');
await viewerPage.checkTabIsActive('Versions');
});
});

View File

@@ -34,9 +34,9 @@ describe('Viewer', () => {
const loginPage = new LoginPage();
const contentServicesPage = new ContentServicesPage();
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
});
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
});
const uploadActions = new UploadActions(this.alfrescoJsApi);
let site;
const acsUser = new AcsUserModel();
@@ -48,7 +48,7 @@ describe('Viewer', () => {
'location': resources.Files.ADF_DOCUMENTS.JS.file_location
});
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -69,30 +69,27 @@ describe('Viewer', () => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
done();
});
afterAll(async (done) => {
afterAll(async () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await uploadActions.deleteFileOrFolder(jsFileUploaded.entry.id);
await navigationBarPage.clickLogoutButton();
done();
});
describe('Viewer extension', () => {
it('[C297698] Should be able to add an extension for code editor viewer', () => {
navigationBarPage.clickAboutButton();
it('[C297698] Should be able to add an extension for code editor viewer', async () => {
await navigationBarPage.clickAboutButton();
monacoExtensionPage.checkMonacoPluginIsDisplayed();
await monacoExtensionPage.checkMonacoPluginIsDisplayed();
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
contentServicesPage.waitForTableBody();
contentServicesPage.checkContentIsDisplayed(jsFileInfo.name);
contentServicesPage.doubleClickRow(jsFileInfo.name);
await contentServicesPage.waitForTableBody();
await contentServicesPage.checkContentIsDisplayed(jsFileInfo.name);
await contentServicesPage.doubleClickRow(jsFileInfo.name);
viewerPage.checkCodeViewerIsDisplayed();
await viewerPage.checkCodeViewerIsDisplayed();
});
});
});

View File

@@ -49,7 +49,7 @@ describe('Viewer - properties', () => {
});
const uploadActions = new UploadActions(this.alfrescoJsApi);
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -64,136 +64,133 @@ describe('Viewer - properties', () => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
contentServicesPage.goToDocumentList();
await contentServicesPage.goToDocumentList();
contentServicesPage.checkAcsContainer();
await contentServicesPage.checkAcsContainer();
viewerPage.viewFile(pngFile.name);
await viewerPage.viewFile(pngFile.name);
viewerPage.clickLeftSidebarButton();
viewerPage.checkLeftSideBarIsDisplayed();
await viewerPage.clickLeftSidebarButton();
await viewerPage.checkLeftSideBarIsDisplayed();
done();
});
afterAll(async (done) => {
afterAll(async () => {
await uploadActions.deleteFileOrFolder(pngFile.getId());
await navigationBarPage.clickLogoutButton();
done();
});
it('[C260066] Should Show/Hide viewer toolbar when showToolbar is true/false', () => {
viewerPage.checkToolbarIsDisplayed();
viewerPage.disableToolbar();
viewerPage.checkToolbarIsNotDisplayed();
viewerPage.enableToolbar();
it('[C260066] Should Show/Hide viewer toolbar when showToolbar is true/false', async () => {
await viewerPage.checkToolbarIsDisplayed();
await viewerPage.disableToolbar();
await viewerPage.checkToolbarIsNotDisplayed();
await viewerPage.enableToolbar();
});
it('[C260076] Should Show/Hide back button when allowGoBack is true/false', () => {
viewerPage.checkGoBackIsDisplayed();
viewerPage.disableGoBack();
viewerPage.checkGoBackIsNotDisplayed();
viewerPage.enableGoBack();
it('[C260076] Should Show/Hide back button when allowGoBack is true/false', async () => {
await viewerPage.checkGoBackIsDisplayed();
await viewerPage.disableGoBack();
await viewerPage.checkGoBackIsNotDisplayed();
await viewerPage.enableGoBack();
});
it('[C260077] Should Show toolbar options dropdown when adf-viewer-open-with directive is used', () => {
viewerPage.checkToolbarOptionsIsNotDisplayed();
viewerPage.enableToolbarOptions();
viewerPage.checkToolbarOptionsIsDisplayed();
viewerPage.disableToolbarOptions();
it('[C260077] Should Show toolbar options dropdown when adf-viewer-open-with directive is used', async () => {
await viewerPage.checkToolbarOptionsIsNotDisplayed();
await viewerPage.enableToolbarOptions();
await viewerPage.checkToolbarOptionsIsDisplayed();
await viewerPage.disableToolbarOptions();
});
it('[C260079] Should Show/Hide download button when allowDownload is true/false', () => {
viewerPage.checkDownloadButtonDisplayed();
viewerPage.disableDownload();
viewerPage.checkDownloadButtonIsNotDisplayed();
viewerPage.enableDownload();
it('[C260079] Should Show/Hide download button when allowDownload is true/false', async () => {
await viewerPage.checkDownloadButtonDisplayed();
await viewerPage.disableDownload();
await viewerPage.checkDownloadButtonIsNotDisplayed();
await viewerPage.enableDownload();
});
it('[C260082] Should Show/Hide print button when allowPrint is true/false', () => {
viewerPage.checkPrintButtonIsDisplayed();
viewerPage.disablePrint();
viewerPage.checkPrintButtonIsNotDisplayed();
viewerPage.enablePrint();
it('[C260082] Should Show/Hide print button when allowPrint is true/false', async () => {
await viewerPage.checkPrintButtonIsDisplayed();
await viewerPage.disablePrint();
await viewerPage.checkPrintButtonIsNotDisplayed();
await viewerPage.enablePrint();
});
it('[C260092] Should show adf-viewer-toolbar-actions directive buttons when adf-viewer-toolbar-actions is used', () => {
viewerPage.checkMoreActionsDisplayed();
it('[C260092] Should show adf-viewer-toolbar-actions directive buttons when adf-viewer-toolbar-actions is used', async () => {
await viewerPage.checkMoreActionsDisplayed();
viewerPage.disableMoreActions();
await viewerPage.disableMoreActions();
viewerPage.checkMoreActionsIsNotDisplayed();
await viewerPage.checkMoreActionsIsNotDisplayed();
viewerPage.enableMoreActions();
await viewerPage.enableMoreActions();
});
it('[C260074] Should show a custom file name when displayName property is used', () => {
viewerPage.checkFileNameIsDisplayed(pngFile.name);
it('[C260074] Should show a custom file name when displayName property is used', async () => {
await viewerPage.checkFileNameIsDisplayed(pngFile.name);
viewerPage.enableCustomName();
await viewerPage.enableCustomName();
viewerPage.enterCustomName('test custom title');
viewerPage.checkFileNameIsDisplayed('test custom title');
await viewerPage.enterCustomName('test custom title');
await viewerPage.checkFileNameIsDisplayed('test custom title');
viewerPage.disableCustomName();
await viewerPage.disableCustomName();
});
it('[C260090] Should showSidebar allow right info-drawer to be shown', () => {
viewerPage.clickToggleRightSidebar();
viewerPage.checkInfoSideBarIsDisplayed();
it('[C260090] Should showSidebar allow right info-drawer to be shown', async () => {
await viewerPage.clickToggleRightSidebar();
await viewerPage.checkInfoSideBarIsDisplayed();
viewerPage.clickToggleRightSidebar();
viewerPage.checkInfoSideBarIsNotDisplayed();
await viewerPage.clickToggleRightSidebar();
await viewerPage.checkInfoSideBarIsNotDisplayed();
});
it('[C286442] Should showLeftSidebar allow left info-drawer to be shown', () => {
viewerPage.clickToggleLeftSidebar();
viewerPage.checkLeftSideBarIsNotDisplayed();
viewerPage.clickLeftSidebarButton();
viewerPage.checkLeftSideBarIsDisplayed();
it('[C286442] Should showLeftSidebar allow left info-drawer to be shown', async () => {
await viewerPage.clickToggleLeftSidebar();
await viewerPage.checkLeftSideBarIsNotDisplayed();
await viewerPage.clickLeftSidebarButton();
await viewerPage.checkLeftSideBarIsDisplayed();
});
it('[C260089] Should Show/Hide info-drawer if allowSidebar true/false', () => {
viewerPage.clickInfoButton();
it('[C260089] Should Show/Hide info-drawer if allowSidebar true/false', async () => {
await viewerPage.clickInfoButton();
viewerPage.checkInfoSideBarIsDisplayed();
viewerPage.checkInfoButtonIsDisplayed();
await viewerPage.checkInfoSideBarIsDisplayed();
await viewerPage.checkInfoButtonIsDisplayed();
viewerPage.disableAllowSidebar();
await viewerPage.disableAllowSidebar();
viewerPage.checkInfoButtonIsNotDisplayed();
viewerPage.checkInfoSideBarIsNotDisplayed();
await viewerPage.checkInfoButtonIsNotDisplayed();
await viewerPage.checkInfoSideBarIsNotDisplayed();
});
it('[C286596] Should Show/Hide left info-drawer if allowLeftSidebar true/false', () => {
viewerPage.checkLeftSideBarIsDisplayed();
viewerPage.checkLeftSideBarButtonIsDisplayed();
it('[C286596] Should Show/Hide left info-drawer if allowLeftSidebar true/false', async () => {
await viewerPage.checkLeftSideBarIsDisplayed();
await viewerPage.checkLeftSideBarButtonIsDisplayed();
viewerPage.disableAllowLeftSidebar();
await viewerPage.disableAllowLeftSidebar();
viewerPage.checkLeftSideBarButtonIsNotDisplayed();
viewerPage.checkLeftSideBarIsNotDisplayed();
await viewerPage.checkLeftSideBarButtonIsNotDisplayed();
await viewerPage.checkLeftSideBarIsNotDisplayed();
});
it('[C260100] Should be possible to disable Overlay viewer', () => {
viewerPage.clickCloseButton();
navigationBarPage.scrollTo(navigationBarPage.overlayViewerButton);
navigationBarPage.clickOverlayViewerButton();
it('[C260100] Should be possible to disable Overlay viewer', async () => {
await viewerPage.clickCloseButton();
await navigationBarPage.clickOverlayViewerButton();
dataTable.doubleClickRow('Name', fileForOverlay.name);
viewerPage.checkOverlayViewerIsDisplayed();
viewerPage.clickCloseButton();
dataTable.doubleClickRow('Name', pngFile.name);
viewerPage.checkOverlayViewerIsDisplayed();
viewerPage.clickCloseButton();
await dataTable.doubleClickRow('Name', fileForOverlay.name);
await viewerPage.checkOverlayViewerIsDisplayed();
await viewerPage.clickCloseButton();
await dataTable.doubleClickRow('Name', pngFile.name);
await viewerPage.checkOverlayViewerIsDisplayed();
await viewerPage.clickCloseButton();
viewerPage.disableOverlay();
dataTable.doubleClickRow('Name', fileForOverlay.name);
viewerPage.checkImgContainerIsDisplayed();
viewerPage.checkInlineViewerIsDisplayed();
dataTable.doubleClickRow('Name', pngFile.name);
viewerPage.checkImgContainerIsDisplayed();
viewerPage.checkInlineViewerIsDisplayed();
await viewerPage.disableOverlay();
await dataTable.doubleClickRow('Name', fileForOverlay.name);
await viewerPage.checkImgContainerIsDisplayed();
await viewerPage.checkInlineViewerIsDisplayed();
await dataTable.doubleClickRow('Name', pngFile.name);
await viewerPage.checkImgContainerIsDisplayed();
await viewerPage.checkInlineViewerIsDisplayed();
});
});

View File

@@ -34,9 +34,9 @@ describe('Viewer', () => {
const loginPage = new LoginPage();
const contentServicesPage = new ContentServicesPage();
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
});
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
});
const uploadActions = new UploadActions(this.alfrescoJsApi);
let site;
const acsUser = new AcsUserModel();
@@ -56,7 +56,7 @@ describe('Viewer', () => {
let pngFileShared, wordFileUploaded;
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -80,49 +80,44 @@ describe('Viewer', () => {
pngFileShared = await this.alfrescoJsApi.core.sharedlinksApi.addSharedLink({ 'nodeId': pngFileUploaded.entry.id });
done();
});
afterAll(async (done) => {
afterAll(async () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await uploadActions.deleteFileOrFolder(wordFileUploaded.entry.id);
await navigationBarPage.clickLogoutButton();
done();
});
beforeEach(async () => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
});
it('[C260105] Should be able to open an image file shared via API', () => {
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/preview/s/' + pngFileShared.entry.id);
viewerPage.checkImgContainerIsDisplayed();
BrowserActions.getUrl(browser.params.testConfig.adf.url);
navigationBarPage.clickLogoutButton();
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/preview/s/' + pngFileShared.entry.id);
viewerPage.checkImgContainerIsDisplayed();
it('[C260105] Should be able to open an image file shared via API', async () => {
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/preview/s/' + pngFileShared.entry.id);
await viewerPage.checkImgContainerIsDisplayed();
await BrowserActions.getUrl(browser.params.testConfig.adf.url);
await navigationBarPage.clickLogoutButton();
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/preview/s/' + pngFileShared.entry.id);
await viewerPage.checkImgContainerIsDisplayed();
});
it('[C260106] Should be able to open a Word file shared via API', () => {
navigationBarPage.clickContentServicesButton();
contentServicesPage.waitForTableBody();
it('[C260106] Should be able to open a Word file shared via API', async () => {
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.waitForTableBody();
contentList.selectRow(wordFileInfo.name);
contentServicesPage.clickShareButton();
shareDialog.checkDialogIsDisplayed();
shareDialog.clickShareLinkButton();
browser.controlFlow().execute(async () => {
const sharedLink = await shareDialog.getShareLink();
await contentList.selectRow(wordFileInfo.name);
await contentServicesPage.clickShareButton();
await shareDialog.checkDialogIsDisplayed();
await shareDialog.clickShareLinkButton();
const sharedLink = await shareDialog.getShareLink();
await BrowserActions.getUrl(sharedLink);
viewerPage.checkFileIsLoaded();
viewerPage.checkFileNameIsDisplayed(wordFileInfo.name);
await BrowserActions.getUrl(sharedLink);
await viewerPage.checkFileIsLoaded();
await viewerPage.checkFileNameIsDisplayed(wordFileInfo.name);
await BrowserActions.getUrl(browser.params.testConfig.adf.url);
navigationBarPage.clickLogoutButton();
await BrowserActions.getUrl(sharedLink);
viewerPage.checkFileIsLoaded();
viewerPage.checkFileNameIsDisplayed(wordFileInfo.name);
});
await BrowserActions.getUrl(browser.params.testConfig.adf.url);
await navigationBarPage.clickLogoutButton();
await BrowserActions.getUrl(sharedLink);
await viewerPage.checkFileIsLoaded();
await viewerPage.checkFileNameIsDisplayed(wordFileInfo.name);
});
});