diff --git a/.travis.yml b/.travis.yml index 89802cd25d..3f7289712a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -154,7 +154,7 @@ jobs: AFFECTED_LIBS="$(./scripts/affected-libs.sh -b $TRAVIS_BRANCH)"; if [[ $AFFECTED_LIBS =~ "process-services-cloud$" || $AFFECTED_E2E = "e2e" ]]; then - (./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e $E2E_EMAIL -b -save --folder process-services-cloud --skip-lint --use-dist --timeout 7000 || exit 1;); + (./scripts/test-e2e-lib.sh -host localhost:4200 --host_sso "$E2E_HOST_SSO" -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e $E2E_EMAIL -b -save --folder process-services-cloud --skip-lint --use-dist --timeout 7000 || exit 1;); fi - stage: e2e Test # Test insights name: insights diff --git a/e2e/pages/adf/navigationBarPage.ts b/e2e/pages/adf/navigationBarPage.ts index 71582c0a58..5b84f3fc3d 100644 --- a/e2e/pages/adf/navigationBarPage.ts +++ b/e2e/pages/adf/navigationBarPage.ts @@ -26,6 +26,7 @@ export class NavigationBarPage { taskListButton = element(by.css("a[data-automation-id='Task List']")); configEditorButton = element(by.css('a[data-automation-id="Configuration Editor"]')); processServicesButton = element(by.css('a[data-automation-id="Process Services"]')); + processCloudButton = element(by.css('a[data-automation-id="Process Cloud"]')); loginButton = element(by.css('a[data-automation-id="Login"]')); trashcanButton = element(by.css('a[data-automation-id="Trashcan"]')); userProfileButton = element(by.css('button[data-automation-id="adf-user-profile"]')); @@ -49,6 +50,12 @@ export class NavigationBarPage { this.taskListButton.click(); } + clickProcessCloudButton() { + Util.waitUntilElementIsVisible(this.processCloudButton); + this.processCloudButton.click(); + + } + clickConfigEditorButton() { Util.waitUntilElementIsVisible(this.configEditorButton); this.configEditorButton.click(); diff --git a/e2e/pages/adf/process_services_cloud/appListCloudComponent.ts b/e2e/pages/adf/process_services_cloud/appListCloudComponent.ts new file mode 100644 index 0000000000..7892fd5bd9 --- /dev/null +++ b/e2e/pages/adf/process_services_cloud/appListCloudComponent.ts @@ -0,0 +1,46 @@ +/*! + * @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 Util = require('../../../util/util'); + +import { element, by } from 'protractor'; + +export class AppListCloudComponent { + + apsAppsContainer = element(by.css('adf-cloud-app-list')); + + checkApsContainer() { + Util.waitUntilElementIsVisible(this.apsAppsContainer); + } + + goToApp(applicationName) { + let app = element(by.css('mat-card[title="' + applicationName + '"]')); + Util.waitUntilElementIsVisible(app); + app.click(); + } + + checkAppIsNotDisplayed(applicationName) { + let app = element(by.css('mat-card[title="' + applicationName + '"]')); + return Util.waitUntilElementIsNotOnPage(app); + } + + checkAppIsDisplayed(applicationName) { + let app = element(by.css('mat-card[title="' + applicationName + '"]')); + return Util.waitUntilElementIsVisible(app); + } + +} diff --git a/e2e/process-services-cloud/apps_section_cloud.e2e.ts b/e2e/process-services-cloud/apps_section_cloud.e2e.ts new file mode 100644 index 0000000000..f76fe3867c --- /dev/null +++ b/e2e/process-services-cloud/apps_section_cloud.e2e.ts @@ -0,0 +1,48 @@ +/*! + * @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 { LoginAPSPage } from '../pages/adf/loginApsPage'; +import { SettingsPage } from '../pages/adf/settingsPage'; +import { AppListCloudComponent } from '../pages/adf/process_services_cloud/appListCloudComponent'; +import TestConfig = require('../test.config'); +import { browser } from 'protractor'; +import { NavigationBarPage } from '../pages/adf/navigationBarPage'; + +describe('Applications list', () => { + + const settingsPage = new SettingsPage(); + const loginApsPage = new LoginAPSPage(); + const navigationBarPage = new NavigationBarPage(); + const appListCloudComponent = new AppListCloudComponent(); + const path = '/auth/realms/springboot'; + const appName = 'task-app'; + + it ('[C289910] Should the app be displayed on dashboard when is deployed on APS', async () => { + + await settingsPage.setProviderBpmSso(TestConfig.adf.hostSso, TestConfig.adf.hostSso + path); + browser.ignoreSynchronization = true; + await loginApsPage.loginAPS(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); + await navigationBarPage.clickProcessCloudButton(); + + appListCloudComponent.checkApsContainer(); + + appListCloudComponent.checkAppIsDisplayed(appName); + appListCloudComponent.goToApp(appName); + + }); + +});