mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
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:
@@ -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');
|
||||
});
|
||||
|
||||
});
|
||||
|
@@ -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);
|
||||
});
|
||||
});
|
||||
|
@@ -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();
|
||||
});
|
||||
});
|
||||
|
@@ -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');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@@ -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 couldn’t 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 couldn’t 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.');
|
||||
});
|
||||
|
||||
});
|
||||
|
@@ -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();
|
||||
});
|
||||
});
|
||||
|
@@ -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');
|
||||
});
|
||||
|
||||
});
|
||||
|
@@ -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();
|
||||
});
|
||||
|
||||
});
|
||||
|
@@ -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);
|
||||
});
|
||||
|
||||
});
|
||||
|
@@ -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');
|
||||
});
|
||||
});
|
||||
|
||||
|
@@ -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);
|
||||
|
42
e2e/core/login/login-sso/logout-sso.e2e.ts
Normal file
42
e2e/core/login/login-sso/logout-sso.e2e.ts
Normal 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');
|
||||
});
|
||||
|
||||
});
|
@@ -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);
|
||||
});
|
||||
});
|
||||
|
@@ -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();
|
||||
});
|
||||
});
|
||||
|
@@ -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();
|
||||
});
|
||||
});
|
||||
|
@@ -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');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@@ -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();
|
||||
});
|
||||
|
||||
});
|
||||
|
@@ -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();
|
||||
});
|
||||
});
|
||||
|
@@ -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();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
});
|
@@ -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();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
@@ -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);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
@@ -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();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
@@ -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();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
@@ -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');
|
||||
});
|
||||
});
|
||||
|
@@ -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);
|
||||
});
|
||||
});
|
||||
|
@@ -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');
|
||||
});
|
||||
});
|
||||
|
@@ -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();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@@ -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();
|
||||
});
|
||||
});
|
||||
|
@@ -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);
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user