diff --git a/e2e/core/icons-component.e2e.ts b/e2e/core/icons-component.e2e.ts new file mode 100644 index 0000000000..f2b1e73d26 --- /dev/null +++ b/e2e/core/icons-component.e2e.ts @@ -0,0 +1,62 @@ +/*! + * @license + * Copyright 2016 Alfresco Software, Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { LoginPage } from '../pages/adf/loginPage'; +import { NavigationBarPage } from '../pages/adf/navigationBarPage'; +import { IconsPage } from '../pages/adf/iconsPage'; +import { AcsUserModel } from '../models/ACS/acsUserModel'; + +import TestConfig = require('../test.config'); +import AlfrescoApi = require('alfresco-js-api-node'); + +describe('Universal Icon component', function () { + + let loginPage = new LoginPage(); + let acsUser = new AcsUserModel(); + let navigationBarPage = new NavigationBarPage(); + let iconsPage = new IconsPage(); + + beforeAll(async (done) => { + this.alfrescoJsApi = new AlfrescoApi({ + provider: 'ECM', + hostEcm: TestConfig.adf.url + }); + + await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); + + await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser); + + loginPage.loginToContentServicesUsingUserModel(acsUser); + + done(); + }); + + beforeEach(async (done) => { + navigationBarPage.navigateToIconsPage(); + done(); + }); + + it('Should display the icons on the page', () => { + + expect(iconsPage.locateLigatureIcon('alarm').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('image/gif').isDisplayed()).toBe(true, 'Thumbnail service icon is not displayed'); + }); + +}); diff --git a/e2e/pages/adf/iconsPage.ts b/e2e/pages/adf/iconsPage.ts new file mode 100644 index 0000000000..5a108d946a --- /dev/null +++ b/e2e/pages/adf/iconsPage.ts @@ -0,0 +1,29 @@ +/*! + * @license + * Copyright 2016 Alfresco Software, Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { by, element } from 'protractor'; + +export class IconsPage { + + locateCustomIcon(name) { + return element(by.css(`adf-icon[value='${name}'] svg`)); + } + + locateLigatureIcon(name) { + return element(by.css(`adf-icon[value='${name}'] .material-icons`)); + } +} diff --git a/e2e/pages/adf/navigationBarPage.ts b/e2e/pages/adf/navigationBarPage.ts index 676fb5fa21..cc0eaa47b1 100644 --- a/e2e/pages/adf/navigationBarPage.ts +++ b/e2e/pages/adf/navigationBarPage.ts @@ -43,6 +43,7 @@ export class NavigationBarPage { menuButton = element(by.css('button[data-automation-id="adf-menu-icon"]')); formButton = element(by.css('a[data-automation-id="Form"]')); treeViewButton = element(by.css('a[data-automation-id="Tree View"]')); + iconsButton = element(by.css('a[data-automation-id="Icons"]')); navigateToDatatable() { Util.waitUntilElementIsVisible(this.dataTableButton); @@ -189,4 +190,9 @@ export class NavigationBarPage { Util.waitUntilElementIsVisible(this.treeViewButton); this.treeViewButton.click(); } + + navigateToIconsPage() { + Util.waitUntilElementIsVisible(this.iconsButton); + this.iconsButton.click(); + } }