mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2026-09-09 18:03:21 +00:00
[no-issue] Parallel run e2e and e2e common action refactoring (#4702)
This commit is contained in:
+30
-155
@@ -25,8 +25,7 @@ stages:
|
|||||||
- name: Warm Up Cache & Lint & Build Dist
|
- name: Warm Up Cache & Lint & Build Dist
|
||||||
- name: Unit test
|
- name: Unit test
|
||||||
- name: e2e Test
|
- name: e2e Test
|
||||||
- name: Create Docker PR
|
- name: Deploy PR
|
||||||
- name: Deploy Docker PR
|
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
chrome: stable
|
chrome: stable
|
||||||
@@ -43,169 +42,45 @@ before_install:
|
|||||||
jobs:
|
jobs:
|
||||||
include:
|
include:
|
||||||
- stage: Warm Up Cache & Lint & Build Dist
|
- stage: Warm Up Cache & Lint & Build Dist
|
||||||
|
name: Warm Up Cache & Lint & Build Dist
|
||||||
script:
|
script:
|
||||||
- if [[ $TRAVIS_PULL_REQUEST == "false" ]];
|
./scripts/travis/build/build.sh
|
||||||
then
|
|
||||||
./scripts/lint.sh || exit 1;
|
|
||||||
./scripts/npm-build-all.sh || exit 1;
|
|
||||||
else
|
|
||||||
./scripts/update-version.sh -gnu -alpha || exit 1;
|
|
||||||
npm install;
|
|
||||||
./scripts/lint.sh || exit 1;
|
|
||||||
rm -rf tmp && mkdir tmp;
|
|
||||||
git merge-base origin/$TRAVIS_BRANCH HEAD > ./tmp/devhead.txt;
|
|
||||||
./scripts/smart-build.sh -b $TRAVIS_BRANCH -gnu || exit 1;
|
|
||||||
fi;
|
|
||||||
npm run build:dist || exit 1;
|
|
||||||
./scripts/license-list-generator.sh || exit 1;
|
|
||||||
- stage: Unit test
|
- stage: Unit test
|
||||||
name: core and extensions
|
name: Unit test content
|
||||||
|
script: ./scripts/travis/unit-test/content.sh
|
||||||
|
- stage: Unit test
|
||||||
|
name: Unit test core extension demo
|
||||||
|
script: ./scripts/travis/unit-test/core-extension-demo.sh
|
||||||
|
- stage: Unit test
|
||||||
|
name: Unit test process process-cloud insights
|
||||||
|
script: ./scripts/travis/unit-test/process.sh
|
||||||
|
- stage: Deploy PR
|
||||||
|
name: Deploy PR
|
||||||
script:
|
script:
|
||||||
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
|
./scripts/travis/deploy/deploy.sh
|
||||||
if [[ $AFFECTED_LIBS =~ "core$" || $TRAVIS_PULL_REQUEST == "false" ]];
|
- stage: Update children projects dependency #Update children projects dependency
|
||||||
then
|
|
||||||
ng test core --watch=false || exit 1;
|
|
||||||
fi;
|
|
||||||
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
|
|
||||||
if [[ $AFFECTED_LIBS =~ "extensions$" || $TRAVIS_PULL_REQUEST == "false" ]];
|
|
||||||
then
|
|
||||||
ng test extensions --watch=false || exit 1;
|
|
||||||
fi;
|
|
||||||
- stage: Unit test
|
|
||||||
name: process-services and insights
|
|
||||||
script:
|
|
||||||
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
|
|
||||||
if [[ $AFFECTED_LIBS =~ "process-services$" || $TRAVIS_PULL_REQUEST == "false" ]];
|
|
||||||
then
|
|
||||||
ng test process-services --watch=false || exit 1;
|
|
||||||
fi;
|
|
||||||
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
|
|
||||||
if [[ $AFFECTED_LIBS =~ "insights$" || $TRAVIS_PULL_REQUEST == "false" ]];
|
|
||||||
then
|
|
||||||
ng test insights --watch=false || exit 1;
|
|
||||||
fi;
|
|
||||||
- stage: Unit test
|
|
||||||
name: content-services
|
|
||||||
script:
|
|
||||||
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
|
|
||||||
if [[ $AFFECTED_LIBS =~ "content-services$" || $TRAVIS_PULL_REQUEST == "false" ]];
|
|
||||||
then
|
|
||||||
ng test content-services --watch=false || exit 1;
|
|
||||||
fi;
|
|
||||||
- stage: Unit test
|
|
||||||
name: process-services-cloud
|
|
||||||
script:
|
|
||||||
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
|
|
||||||
if [[ $AFFECTED_LIBS =~ "process-services-cloud$" || $TRAVIS_PULL_REQUEST == "false" ]];
|
|
||||||
then
|
|
||||||
ng test process-services-cloud --watch=false || exit 1;
|
|
||||||
fi;
|
|
||||||
- stage: Unit test
|
|
||||||
name: demo-shell
|
|
||||||
script: if ([ "$TRAVIS_BRANCH" = "master" ]); then
|
|
||||||
(./scripts/start.sh -t -ss -si || exit 1;);
|
|
||||||
else
|
|
||||||
(./scripts/start.sh -dev -t -ss -si || exit 1;);
|
|
||||||
fi;
|
|
||||||
- stage: Update children projects dependency #Update generator-ng2-alfresco-app
|
|
||||||
name: Update Generator
|
name: Update Generator
|
||||||
if: tag =~ .*beta.*
|
if: tag =~ .*beta.*
|
||||||
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Alfresco/generator-ng2-alfresco-app'
|
script: ./scripts/travis/e2e/update-project.sh
|
||||||
- stage: Update children projects dependency # Test Update alfresco-content-app
|
- stage: e2e Test
|
||||||
name: Update ACA
|
|
||||||
if: tag =~ .*beta.*
|
|
||||||
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Alfresco/alfresco-content-app'
|
|
||||||
- stage: Update children projects dependency # Test Update adf-app-manager-ui
|
|
||||||
name: Update adf-app-manager-ui
|
|
||||||
if: tag =~ .*beta.*
|
|
||||||
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Alfresco/adf-app-manager-ui'
|
|
||||||
- stage: Update children projects dependency # Test Update alfresco-ng2-components
|
|
||||||
name: Update alfresco-ng2-components
|
|
||||||
if: tag =~ .*beta.*
|
|
||||||
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Alfresco/alfresco-ng2-components'
|
|
||||||
- stage: Update children projects dependency # Test Update alfresco-modeler-app
|
|
||||||
name: Update alfresco modeler app
|
|
||||||
if: tag =~ .*beta.*
|
|
||||||
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Alfresco/alfresco-modeler-app'
|
|
||||||
- stage: Update children projects dependency # Test Update activiti-modeling-app
|
|
||||||
name: Update alfresco modeler activiti app
|
|
||||||
if: tag =~ .*beta.*
|
|
||||||
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Activiti/activiti-modeling-app'
|
|
||||||
- stage: Update children projects dependency # Test alfresco-admin-app
|
|
||||||
name: Update alfresco admin app
|
|
||||||
if: tag =~ .*beta.*
|
|
||||||
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Alfresco/alfresco-admin-app'
|
|
||||||
- stage: e2e Test # Test core
|
|
||||||
name: core
|
name: core
|
||||||
|
script: ./scripts/travis/e2e/core-e2e.sh
|
||||||
|
- stage: e2e Test
|
||||||
|
name: content
|
||||||
script:
|
script:
|
||||||
AFFECTED_E2E="$(./scripts/affected-folder.sh -b $TRAVIS_BRANCH -f "e2e")";
|
./scripts/travis/e2e/content-services-e2e.sh
|
||||||
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
|
- stage: e2e Test
|
||||||
if [[ $AFFECTED_LIBS =~ "core$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]];
|
name: search
|
||||||
then
|
|
||||||
node ./scripts/check-ps-env.js --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1;
|
|
||||||
node ./scripts/check-cs-env.js --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1;
|
|
||||||
./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --folder core --skip-lint -save --use-dist || exit 1;
|
|
||||||
fi;
|
|
||||||
- stage: e2e Test # Test process-services
|
|
||||||
name: process-services
|
|
||||||
script:
|
script:
|
||||||
AFFECTED_E2E="$(./scripts/affected-folder.sh -b $TRAVIS_BRANCH -f "e2e")";
|
./scripts/travis/e2e/search-e2e.sh
|
||||||
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
|
- stage: e2e Test
|
||||||
if [[ $AFFECTED_LIBS =~ "process-services$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]];
|
name: process
|
||||||
then
|
|
||||||
node ./scripts/check-ps-env.js --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1;
|
|
||||||
./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --folder process-services --skip-lint --use-dist || exit 1;
|
|
||||||
fi;
|
|
||||||
- stage: e2e Test # Test content-services
|
|
||||||
name: content-services
|
|
||||||
script:
|
script:
|
||||||
AFFECTED_E2E="$(./scripts/affected-folder.sh -b $TRAVIS_BRANCH -f "e2e")";
|
./scripts/travis/e2e/process-services-e2e.sh
|
||||||
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
|
- stage: e2e Test
|
||||||
if [[ $AFFECTED_LIBS =~ "content-services$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]];
|
name: process Cloud
|
||||||
then
|
|
||||||
node ./scripts/check-cs-env.js --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1;
|
|
||||||
./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --folder content-services --skip-lint --use-dist || exit 1;
|
|
||||||
fi;
|
|
||||||
- stage: e2e Test # Test search
|
|
||||||
name: search
|
|
||||||
script:
|
script:
|
||||||
AFFECTED_E2E="$(./scripts/affected-folder.sh -b $TRAVIS_BRANCH -f "e2e")";
|
./scripts/travis/e2e/process-services-cloud-e2e.sh
|
||||||
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
|
|
||||||
if [[ $AFFECTED_LIBS =~ "content-services$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]];
|
|
||||||
then
|
|
||||||
node ./scripts/check-cs-env.js --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1;
|
|
||||||
./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --folder search --skip-lint --use-dist || exit 1;
|
|
||||||
fi;
|
|
||||||
- stage: e2e Test # Test process-services-cloud
|
|
||||||
name: process-services-cloud
|
|
||||||
script:
|
|
||||||
AFFECTED_E2E="$(./scripts/affected-folder.sh -b $TRAVIS_BRANCH -f "e2e")";
|
|
||||||
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
|
|
||||||
if [[ $AFFECTED_LIBS =~ "process-services-cloud$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]];
|
|
||||||
then
|
|
||||||
node ./scripts/check-activiti-env.js --host "$E2E_HOST_BPM" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" --client 'activiti' || exit 1;
|
|
||||||
./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST_BPM" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --folder process-services-cloud --skip-lint --use-dist -timeout 8000 || exit 1;
|
|
||||||
fi;
|
|
||||||
- stage: e2e Test # Test insights
|
|
||||||
name: insights
|
|
||||||
script:
|
|
||||||
AFFECTED_E2E="$(./scripts/affected-folder.sh -b $TRAVIS_BRANCH -f "e2e")";
|
|
||||||
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
|
|
||||||
if [[ $AFFECTED_LIBS =~ "process-services-cloud$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]];
|
|
||||||
then
|
|
||||||
node ./scripts/check-ps-env.js --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1;
|
|
||||||
./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --folder insights --skip-lint --use-dist || exit 1;
|
|
||||||
fi;
|
|
||||||
- stage: Create Docker and Deploy Docker PR
|
|
||||||
script:
|
|
||||||
- if [ "$TRAVIS_PULL_REQUEST" != "false" ];
|
|
||||||
then
|
|
||||||
node ./scripts/move-dist-folder.js --base-href $TRAVIS_BUILD_NUMBER && (./scripts/pr-publish.sh -n $TRAVIS_BUILD_NUMBER -r $REPO_DOCKER -u $USERNAME_DOCKER -p $PASSWORD_DOCKER || exit 1);
|
|
||||||
fi;
|
|
||||||
- if [ "$TRAVIS_PULL_REQUEST" != "false" ];
|
|
||||||
then
|
|
||||||
(node --no-deprecation ./scripts/pr-deploy.js -n $TRAVIS_BUILD_NUMBER -u $RANCHER_TOKEN -p $RANCHER_SECRET -s $REPO_RANCHER --image "docker:$REPO_DOCKER/adf/demo-shell:$TRAVIS_BUILD_NUMBER" --env $ENVIRONMENT_NAME -r $ENVIRONMENT_URL || exit 1);
|
|
||||||
fi;
|
|
||||||
|
|
||||||
# Send coverage data to codecov
|
# Send coverage data to codecov
|
||||||
after_success:
|
after_success:
|
||||||
|
|||||||
+874
-688
File diff suppressed because it is too large
Load Diff
@@ -27,7 +27,6 @@ import { AppConfigService, TRANSLATION_PROVIDER, DebugAppConfigService, CoreModu
|
|||||||
import { ExtensionsModule } from '@alfresco/adf-extensions';
|
import { ExtensionsModule } from '@alfresco/adf-extensions';
|
||||||
import { AppComponent } from './app.component';
|
import { AppComponent } from './app.component';
|
||||||
import { MaterialModule } from './material.module';
|
import { MaterialModule } from './material.module';
|
||||||
import { LoginComponent } from './components/login/login.component';
|
|
||||||
import { LogoutComponent } from './components/logout/logout.component';
|
import { LogoutComponent } from './components/logout/logout.component';
|
||||||
import { AppLayoutComponent } from './components/app-layout/app-layout.component';
|
import { AppLayoutComponent } from './components/app-layout/app-layout.component';
|
||||||
import { HomeComponent } from './components/home/home.component';
|
import { HomeComponent } from './components/home/home.component';
|
||||||
@@ -116,7 +115,6 @@ import { CommunityTaskDetailsCloudDemoComponent } from './components/cloud/commu
|
|||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
AppComponent,
|
AppComponent,
|
||||||
LoginComponent,
|
|
||||||
LogoutComponent,
|
LogoutComponent,
|
||||||
AppLayoutComponent,
|
AppLayoutComponent,
|
||||||
HomeComponent,
|
HomeComponent,
|
||||||
|
|||||||
@@ -17,9 +17,14 @@
|
|||||||
|
|
||||||
import { ModuleWithProviders } from '@angular/core';
|
import { ModuleWithProviders } from '@angular/core';
|
||||||
import { RouterModule, Routes } from '@angular/router';
|
import { RouterModule, Routes } from '@angular/router';
|
||||||
import { AuthGuard, AuthGuardEcm, ErrorContentComponent, AuthGuardBpm, AuthGuardSsoRoleService } from '@alfresco/adf-core';
|
import {
|
||||||
|
AuthGuard,
|
||||||
|
AuthGuardEcm,
|
||||||
|
ErrorContentComponent,
|
||||||
|
AuthGuardBpm,
|
||||||
|
AuthGuardSsoRoleService
|
||||||
|
} from '@alfresco/adf-core';
|
||||||
import { AppLayoutComponent } from './components/app-layout/app-layout.component';
|
import { AppLayoutComponent } from './components/app-layout/app-layout.component';
|
||||||
import { LoginComponent } from './components/login/login.component';
|
|
||||||
import { HomeComponent } from './components/home/home.component';
|
import { HomeComponent } from './components/home/home.component';
|
||||||
import { LogoutComponent } from './components/logout/logout.component';
|
import { LogoutComponent } from './components/logout/logout.component';
|
||||||
import { ProcessServiceComponent } from './components/process-service/process-service.component';
|
import { ProcessServiceComponent } from './components/process-service/process-service.component';
|
||||||
@@ -61,7 +66,7 @@ import { CommunityProcessesCloudDemoComponent } from './components/cloud/communi
|
|||||||
import { CommunityTaskDetailsCloudDemoComponent } from './components/cloud/community/community-task-details-cloud.component';
|
import { CommunityTaskDetailsCloudDemoComponent } from './components/cloud/community/community-task-details-cloud.component';
|
||||||
|
|
||||||
export const appRoutes: Routes = [
|
export const appRoutes: Routes = [
|
||||||
{ path: 'login', component: LoginComponent },
|
{ path: 'login', loadChildren: 'app/components/login/login.module#AppLoginModule' },
|
||||||
{ path: 'logout', component: LogoutComponent },
|
{ path: 'logout', component: LogoutComponent },
|
||||||
{
|
{
|
||||||
path: 'settings',
|
path: 'settings',
|
||||||
@@ -70,8 +75,8 @@ export const appRoutes: Routes = [
|
|||||||
{
|
{
|
||||||
path: 'files/:nodeId/view',
|
path: 'files/:nodeId/view',
|
||||||
component: AppComponent,
|
component: AppComponent,
|
||||||
canActivate: [ AuthGuardEcm ],
|
canActivate: [AuthGuardEcm],
|
||||||
canActivateChild: [ AuthGuardEcm ],
|
canActivateChild: [AuthGuardEcm],
|
||||||
outlet: 'overlay',
|
outlet: 'overlay',
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
@@ -159,7 +164,7 @@ export const appRoutes: Routes = [
|
|||||||
{
|
{
|
||||||
path: 'cloud',
|
path: 'cloud',
|
||||||
canActivate: [AuthGuardSsoRoleService],
|
canActivate: [AuthGuardSsoRoleService],
|
||||||
data: { roles: ['ACTIVITI_USER'], redirectUrl: '/error/403'},
|
data: { roles: ['ACTIVITI_USER'], redirectUrl: '/error/403' },
|
||||||
|
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
@@ -203,7 +208,7 @@ export const appRoutes: Routes = [
|
|||||||
{
|
{
|
||||||
path: ':appName',
|
path: ':appName',
|
||||||
canActivate: [AuthGuardSsoRoleService],
|
canActivate: [AuthGuardSsoRoleService],
|
||||||
data: { clientRoles: ['appName'], roles: ['ACTIVITI_USER'], redirectUrl: '/error/403'},
|
data: { clientRoles: ['appName'], roles: ['ACTIVITI_USER'], redirectUrl: '/error/403' },
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: '',
|
path: '',
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
/*!
|
||||||
|
* @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 { NgModule } from '@angular/core';
|
||||||
|
import { LoginComponent } from './login.component';
|
||||||
|
import { Routes, RouterModule } from '@angular/router';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { CoreModule } from '@alfresco/adf-core';
|
||||||
|
import { ContentModule } from '@alfresco/adf-content-services';
|
||||||
|
|
||||||
|
const routes: Routes = [
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
component: LoginComponent
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule,
|
||||||
|
CoreModule.forChild(),
|
||||||
|
RouterModule.forChild(routes),
|
||||||
|
ContentModule.forChild()
|
||||||
|
],
|
||||||
|
declarations: [LoginComponent]
|
||||||
|
})
|
||||||
|
export class AppLoginModule {}
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
<label for="nodeId"><b>{{'TAG.INSERT' | translate }}</b></label><br>
|
<label for="nodeId"><b>{{'TAG.INSERT' | translate }}</b></label><br>
|
||||||
<input id="nodeId" type="text" size="48" [(ngModel)]="nodeId"><br>
|
<input id="nodeId" type="text" size="48" [(ngModel)]="nodeIdInput">
|
||||||
|
<button mat-raised-button id="adf-tag-node-send" (click)="onSubmit()" color="primary">Confirm</button>
|
||||||
|
|
||||||
|
<br>
|
||||||
<div fxLayout="row" fxLayout.lt-lg="column" fxLayoutAlign="stretch">
|
<div fxLayout="row" fxLayout.lt-lg="column" fxLayoutAlign="stretch">
|
||||||
<div class="adf-tag-example-area" fxFlex.gt-md="1 1 auto">
|
<div class="adf-tag-example-area" fxFlex.gt-md="1 1 auto">
|
||||||
<mat-card>
|
<mat-card>
|
||||||
|
|||||||
@@ -25,9 +25,14 @@ import { Component } from '@angular/core';
|
|||||||
export class TagComponent {
|
export class TagComponent {
|
||||||
|
|
||||||
nodeId = '';
|
nodeId = '';
|
||||||
|
nodeIdInput = '';
|
||||||
showDelete = true;
|
showDelete = true;
|
||||||
|
|
||||||
toggleDeleteButton() {
|
toggleDeleteButton() {
|
||||||
this.showDelete = !this.showDelete;
|
this.showDelete = !this.showDelete;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onSubmit() {
|
||||||
|
this.nodeId = this.nodeIdInput;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import { debounceTime } from 'rxjs/operators';
|
|||||||
import moment from 'moment-es6';
|
import moment from 'moment-es6';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
selector: 'app-task-list-demo',
|
||||||
templateUrl: './task-list-demo.component.html',
|
templateUrl: './task-list-demo.component.html',
|
||||||
styleUrls: [`./task-list-demo.component.scss`]
|
styleUrls: [`./task-list-demo.component.scss`]
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -0,0 +1,479 @@
|
|||||||
|
---
|
||||||
|
Title: License info, ADF
|
||||||
|
---
|
||||||
|
|
||||||
|
# License information for ADF
|
||||||
|
|
||||||
|
This page lists all third party libraries that ADF depends on.
|
||||||
|
|
||||||
|
## Libraries
|
||||||
|
|
||||||
|
| Name | Version | License |
|
||||||
|
| -- | -- | -- |
|
||||||
|
| [@alfresco/adf-content-services](https://github.com/Alfresco/alfresco-ng2-components) | 3.2.0-beta6 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [@alfresco/adf-core](https://github.com/Alfresco/alfresco-ng2-components) | 3.2.0-beta6 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [@alfresco/adf-extensions](https://github.com/Alfresco/alfresco-ng2-components) | 3.2.0-beta6 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [@alfresco/adf-insights](https://github.com/Alfresco/alfresco-ng2-components) | 3.2.0-beta6 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [@alfresco/adf-process-services-cloud](https://github.com/Alfresco/alfresco-ng2-components) | 3.2.0-beta6 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [@alfresco/adf-process-services](https://github.com/Alfresco/alfresco-ng2-components) | 3.2.0-beta6 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [@alfresco/adf-testing](https://github.com/Alfresco/alfresco-ng2-components) | 3.2.0-beta6 | UNKNOWN |
|
||||||
|
| [@alfresco/js-api](https://github.com/Alfresco/alfresco-js-api) | 3.2.0-beta6 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [@angular/animations](https://github.com/angular/angular) | 7.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@angular/cdk](https://github.com/angular/material2) | 7.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@angular/common](https://github.com/angular/angular) | 7.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@angular/compiler](https://github.com/angular/angular) | 7.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@angular/core](https://github.com/angular/angular) | 7.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@angular/flex-layout](https://github.com/angular/flex-layout) | 7.0.0-beta.23 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@angular/forms](https://github.com/angular/angular) | 7.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@angular/http](https://github.com/angular/angular) | 7.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@angular/material-moment-adapter](https://github.com/angular/material2) | 7.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@angular/material](https://github.com/angular/material2) | 7.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@angular/platform-browser-dynamic](https://github.com/angular/angular) | 7.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@angular/platform-browser](https://github.com/angular/angular) | 7.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@angular/router](https://github.com/angular/angular) | 7.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@mat-datetimepicker/core](https://github.com/kuhnroyal/mat-datetimepicker) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@mat-datetimepicker/moment](https://github.com/kuhnroyal/mat-datetimepicker) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@ngx-translate/core](https://github.com/ngx-translate/core) | 11.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/ast](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/floating-point-hex-parser](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/helper-api-error](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/helper-buffer](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/helper-code-frame](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/helper-fsm](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [@webassemblyjs/helper-module-context](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/helper-wasm-bytecode](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/helper-wasm-section](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/ieee754](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/leb128](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/utf8](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/wasm-edit](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/wasm-gen](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/wasm-opt](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/wasm-parser](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/wast-parser](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@webassemblyjs/wast-printer](https://github.com/xtuc/webassemblyjs) | 1.7.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [@xtuc/ieee754](https://github.com/feross/ieee754) | 1.2.0 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
|
||||||
|
| [@xtuc/long](https://github.com/dcodeIO/long.js) | 4.2.1 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [abbrev](https://github.com/isaacs/abbrev-js) | 1.1.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [acorn-dynamic-import](https://github.com/kesne/acorn-dynamic-import) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [acorn](https://github.com/acornjs/acorn) | 6.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [adf-monaco-extension](https://github.com/eromano/aca-monaco-extension) | 0.0.8 | UNKNOWN |
|
||||||
|
| [adf-tslint-rules](https://github.com/Alfresco/alfresco-ng2-components) | 0.0.6 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [ajv-errors](https://github.com/epoberezkin/ajv-errors) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [ajv-keywords](https://github.com/epoberezkin/ajv-keywords) | 3.4.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [ajv](https://github.com/epoberezkin/ajv) | 6.10.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [alfresco-components](https://github.com/Alfresco/alfresco-ng2-components) | 3.2.0-beta6 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [ansi-regex](https://github.com/chalk/ansi-regex) | 2.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [ansi-styles](https://github.com/chalk/ansi-styles) | 2.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [ansi-styles](https://github.com/chalk/ansi-styles) | 3.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [anymatch](https://github.com/micromatch/anymatch) | 2.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [app-root-path](https://github.com/inxilpro/node-app-root-path) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [app-root-path](https://github.com/inxilpro/node-app-root-path) | 2.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [aproba](https://github.com/iarna/aproba) | 1.2.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [are-we-there-yet](https://github.com/iarna/are-we-there-yet) | 1.1.5 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [argparse](https://github.com/nodeca/argparse) | 1.0.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [aria-query](https://github.com/A11yance/aria-query) | 3.0.0 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [arr-diff](https://github.com/jonschlinkert/arr-diff) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [arr-flatten](https://github.com/jonschlinkert/arr-flatten) | 1.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [arr-union](https://github.com/jonschlinkert/arr-union) | 3.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [array-unique](https://github.com/jonschlinkert/array-unique) | 0.3.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [asn1.js](https://github.com/indutny/asn1.js) | 4.10.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [assert](https://github.com/defunctzombie/commonjs-assert) | 1.4.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [assign-symbols](https://github.com/jonschlinkert/assign-symbols) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [ast-types-flow](https://github.com/kyldvs/ast-types-flow) | 0.0.7 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [async-each](https://github.com/paulmillr/async-each) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [asynckit](https://github.com/alexindigo/asynckit) | 0.4.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [atob](git://git.coolaj86.com/coolaj86/atob.js) | 2.1.2 | ([MIT](http://www.opensource.org/licenses/MIT) OR [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)) |
|
||||||
|
| [axobject-query](https://github.com/A11yance/axobject-query) | 2.0.2 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [babel-code-frame](https://github.com/babel/babel/tree/master/packages/babel-code-frame) | 6.26.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [balanced-match](https://github.com/juliangruber/balanced-match) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [base64-js](https://github.com/beatgammit/base64-js) | 1.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [base](https://github.com/node-base/base) | 0.11.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [big.js](https://github.com/MikeMcl/big.js) | 5.2.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [binary-extensions](https://github.com/sindresorhus/binary-extensions) | 1.13.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [bluebird](https://github.com/petkaantonov/bluebird) | 3.5.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [bn.js](https://github.com/indutny/bn.js) | 4.11.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [brace-expansion](https://github.com/juliangruber/brace-expansion) | 1.1.11 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [braces](https://github.com/micromatch/braces) | 2.3.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [brorand](https://github.com/indutny/brorand) | 1.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [browserify-aes](https://github.com/crypto-browserify/browserify-aes) | 1.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [browserify-cipher](https://github.com/crypto-browserify/browserify-cipher) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [browserify-des](https://github.com/crypto-browserify/browserify-des) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [browserify-rsa](https://github.com/crypto-browserify/browserify-rsa) | 4.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [browserify-sign](https://github.com/crypto-browserify/browserify-sign) | 4.0.4 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [browserify-zlib](https://github.com/devongovett/browserify-zlib) | 0.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [buffer-from](https://github.com/LinusU/buffer-from) | 1.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [buffer-xor](https://github.com/crypto-browserify/buffer-xor) | 1.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [buffer](https://github.com/feross/buffer) | 4.9.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [builtin-modules](https://github.com/sindresorhus/builtin-modules) | 1.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [builtin-status-codes](https://github.com/bendrucker/builtin-status-codes) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [cacache](https://github.com/zkat/cacache) | 11.3.2 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [cache-base](https://github.com/jonschlinkert/cache-base) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [chalk](https://github.com/chalk/chalk) | 1.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [chalk](https://github.com/chalk/chalk) | 2.4.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [chart.js](https://github.com/chartjs/Chart.js) | 2.5.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [chart.js](https://github.com/chartjs/Chart.js) | 2.8.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [chartjs-color-string](https://github.com/chartjs/chartjs-color-string) | 0.6.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [chartjs-color](https://github.com/chartjs/chartjs-color) | 2.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [chokidar](https://github.com/paulmillr/chokidar) | 2.0.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [chownr](https://github.com/isaacs/chownr) | 1.1.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [chrome-trace-event](github.com:samccone/chrome-trace-event) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [cipher-base](https://github.com/crypto-browserify/cipher-base) | 1.0.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [class-utils](https://github.com/jonschlinkert/class-utils) | 0.3.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [classlist.js](https://github.com/eligrey/classList.js) | 1.1.20150312 | Public Domain |
|
||||||
|
| [code-point-at](https://github.com/sindresorhus/code-point-at) | 1.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [codelyzer](https://github.com/mgechev/codelyzer) | 5.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [collection-visit](https://github.com/jonschlinkert/collection-visit) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [color-convert](https://github.com/harthur/color-convert) | 0.5.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [color-convert](https://github.com/Qix-/color-convert) | 1.9.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [color-name](https://github.com/dfcreative/color-name) | 1.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [color-name](https://github.com/colorjs/color-name) | 1.1.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [combined-stream](https://github.com/felixge/node-combined-stream) | 1.0.7 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [commander](https://github.com/tj/commander.js) | 2.19.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [commondir](https://github.com/substack/node-commondir) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [component-emitter](https://github.com/component/emitter) | 1.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [concat-map](https://github.com/substack/node-concat-map) | 0.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [concat-stream](https://github.com/maxogden/concat-stream) | 1.6.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [console-browserify](https://github.com/Raynos/console-browserify) | 1.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [console-control-strings](https://github.com/iarna/console-control-strings) | 1.1.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [constants-browserify](https://github.com/juliangruber/constants-browserify) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [cookiejar](https://github.com/bmeck/node-cookiejar) | 2.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [copy-concurrently](https://github.com/npm/copy-concurrently) | 1.0.5 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [copy-descriptor](https://github.com/jonschlinkert/copy-descriptor) | 0.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [core-js](https://github.com/zloirock/core-js) | 2.6.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [core-util-is](https://github.com/isaacs/core-util-is) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [create-ecdh](https://github.com/crypto-browserify/createECDH) | 4.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [create-hash](https://github.com/crypto-browserify/createHash) | 1.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [create-hmac](https://github.com/crypto-browserify/createHmac) | 1.1.7 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [crypto-browserify](https://github.com/crypto-browserify/crypto-browserify) | 3.12.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [css-selector-tokenizer](https://github.com/css-modules/css-selector-tokenizer) | 0.7.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [css-selector-tokenizer](https://github.com/css-modules/css-selector-tokenizer) | 0.7.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [cssauron](https://github.com/chrisdickinson/cssauron) | 1.4.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [cssesc](https://github.com/mathiasbynens/cssesc) | 0.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [custom-event-polyfill](https://github.com/krambuhl/custom-event-polyfill) | 0.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [cyclist](https://github.com/mafintosh/cyclist) | 0.2.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [d](https://github.com/medikoo/d) | 0.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [d](https://github.com/medikoo/d) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [damerau-levenshtein](https://github.com/lzrski/node-damerau-levenshtein) | 1.0.4 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
|
||||||
|
| [date-now](https://github.com/Colingo/date-now) | 0.1.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [debug](https://github.com/visionmedia/debug) | 2.6.9 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [debug](https://github.com/visionmedia/debug) | 3.2.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) | 0.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [deep-extend](https://github.com/unclechu/node-deep-extend) | 0.6.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [define-property](https://github.com/jonschlinkert/define-property) | 0.2.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [define-property](https://github.com/jonschlinkert/define-property) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [define-property](https://github.com/jonschlinkert/define-property) | 2.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [delayed-stream](https://github.com/felixge/node-delayed-stream) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [delegates](https://github.com/visionmedia/node-delegates) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [des.js](https://github.com/indutny/des.js) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [detect-libc](https://github.com/lovell/detect-libc) | 1.0.3 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [diff](https://github.com/kpdecker/jsdiff) | 3.5.0 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
|
||||||
|
| [diffie-hellman](https://github.com/crypto-browserify/diffie-hellman) | 5.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [domain-browser](https://github.com/bevry/domain-browser) | 1.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [duplexify](https://github.com/mafintosh/duplexify) | 3.7.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [elliptic](https://github.com/indutny/elliptic) | 6.4.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [emoji-regex](https://github.com/mathiasbynens/emoji-regex) | 6.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [emojis-list](https://github.com/kikobeats/emojis-list) | 2.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [end-of-stream](https://github.com/mafintosh/end-of-stream) | 1.4.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [enhanced-resolve](https://github.com/webpack/enhanced-resolve) | 4.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [errno](https://github.com/rvagg/node-errno) | 0.1.7 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [es5-ext](https://github.com/medikoo/es5-ext) | 0.10.49 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [es6-iterator](https://github.com/medikoo/es6-iterator) | 2.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [es6-symbol](https://github.com/medikoo/es6-symbol) | 3.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [escape-string-regexp](https://github.com/sindresorhus/escape-string-regexp) | 1.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [eslint-scope](https://github.com/eslint/eslint-scope) | 4.0.3 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
|
||||||
|
| [esprima](https://github.com/jquery/esprima) | 4.0.1 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
|
||||||
|
| [esrecurse](https://github.com/estools/esrecurse) | 4.2.1 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
|
||||||
|
| [estraverse](https://github.com/estools/estraverse) | 4.2.0 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
|
||||||
|
| [esutils](https://github.com/estools/esutils) | 2.0.2 | [BSD](http://www.opensource.org/licenses/BSD-2-Clause) |
|
||||||
|
| [eve-raphael](https://github.com/tomasAlabes/eve) | 0.5.0 | [Apache](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [event-emitter](https://github.com/medikoo/event-emitter) | 0.3.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [events](https://github.com/Gozala/events) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [evp_bytestokey](https://github.com/crypto-browserify/EVP_BytesToKey) | 1.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [expand-brackets](https://github.com/jonschlinkert/expand-brackets) | 2.1.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [extend-shallow](https://github.com/jonschlinkert/extend-shallow) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [extend-shallow](https://github.com/jonschlinkert/extend-shallow) | 3.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [extend](https://github.com/justmoon/node-extend) | 2.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [extend](https://github.com/justmoon/node-extend) | 3.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [extglob](https://github.com/micromatch/extglob) | 2.0.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [fast-deep-equal](https://github.com/epoberezkin/fast-deep-equal) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [fastparse](https://github.com/webpack/fastparse) | 1.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [figgy-pudding](https://github.com/zkat/figgy-pudding) | 3.5.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [fill-range](https://github.com/jonschlinkert/fill-range) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [find-cache-dir](https://github.com/avajs/find-cache-dir) | 2.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [find-up](https://github.com/sindresorhus/find-up) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [flush-write-stream](https://github.com/mafintosh/flush-write-stream) | 1.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [for-in](https://github.com/jonschlinkert/for-in) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [form-data](https://github.com/form-data/form-data) | 2.3.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [formidable](https://github.com/felixge/node-formidable) | 1.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [fragment-cache](https://github.com/jonschlinkert/fragment-cache) | 0.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [from2](https://github.com/hughsk/from2) | 2.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [fs-minipass](https://github.com/npm/fs-minipass) | 1.2.5 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [fs-write-stream-atomic](https://github.com/npm/fs-write-stream-atomic) | 1.0.10 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [fs.realpath](https://github.com/isaacs/fs.realpath) | 1.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [fsevents](https://github.com/strongloop/fsevents) | 1.2.7 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [gauge](https://github.com/iarna/gauge) | 2.7.4 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [get-value](https://github.com/jonschlinkert/get-value) | 2.0.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [github-slugger](https://github.com/Flet/github-slugger) | 1.2.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [glob-parent](https://github.com/es128/glob-parent) | 3.1.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [glob](https://github.com/isaacs/node-glob) | 7.1.3 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [graceful-fs](https://github.com/isaacs/node-graceful-fs) | 4.1.15 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [hammerjs](https://github.com/hammerjs/hammer.js) | 2.0.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [has-ansi](https://github.com/sindresorhus/has-ansi) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [has-flag](https://github.com/sindresorhus/has-flag) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [has-unicode](https://github.com/iarna/has-unicode) | 2.0.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [has-value](https://github.com/jonschlinkert/has-value) | 0.3.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [has-value](https://github.com/jonschlinkert/has-value) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [has-values](https://github.com/jonschlinkert/has-values) | 0.1.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [has-values](https://github.com/jonschlinkert/has-values) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [hash-base](https://github.com/crypto-browserify/hash-base) | 3.0.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [hash.js](https://github.com/indutny/hash.js) | 1.1.7 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [hmac-drbg](https://github.com/indutny/hmac-drbg) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [hosted-git-info](https://github.com/npm/hosted-git-info) | 2.7.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [https-browserify](https://github.com/substack/https-browserify) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [iconv-lite](https://github.com/ashtuchkin/iconv-lite) | 0.4.24 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [ieee754](https://github.com/feross/ieee754) | 1.1.12 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
|
||||||
|
| [iferr](https://github.com/shesek/iferr) | 0.1.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [ignore-walk](https://github.com/isaacs/ignore-walk) | 3.0.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [imurmurhash](https://github.com/jensyt/imurmurhash-js) | 0.1.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [indexof](https://github.com/component/indexof) | 0.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [inflight](https://github.com/npm/inflight) | 1.0.6 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [inherits](https://github.com/isaacs/inherits) | 2.0.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [inherits](https://github.com/isaacs/inherits) | 2.0.3 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [ini](https://github.com/isaacs/ini) | 1.3.5 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [is-accessor-descriptor](https://github.com/jonschlinkert/is-accessor-descriptor) | 0.1.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-accessor-descriptor](https://github.com/jonschlinkert/is-accessor-descriptor) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-binary-path](https://github.com/sindresorhus/is-binary-path) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-buffer](https://github.com/feross/is-buffer) | 1.1.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-data-descriptor](https://github.com/jonschlinkert/is-data-descriptor) | 0.1.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-data-descriptor](https://github.com/jonschlinkert/is-data-descriptor) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-descriptor](https://github.com/jonschlinkert/is-descriptor) | 0.1.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-descriptor](https://github.com/jonschlinkert/is-descriptor) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-extendable](https://github.com/jonschlinkert/is-extendable) | 0.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-extendable](https://github.com/jonschlinkert/is-extendable) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-extglob](https://github.com/jonschlinkert/is-extglob) | 2.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-fullwidth-code-point](https://github.com/sindresorhus/is-fullwidth-code-point) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-glob](https://github.com/jonschlinkert/is-glob) | 3.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-glob](https://github.com/jonschlinkert/is-glob) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-number](https://github.com/jonschlinkert/is-number) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-plain-object](https://github.com/jonschlinkert/is-plain-object) | 2.0.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [is-windows](https://github.com/jonschlinkert/is-windows) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [isarray](https://github.com/juliangruber/isarray) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [isobject](https://github.com/jonschlinkert/isobject) | 2.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [isobject](https://github.com/jonschlinkert/isobject) | 3.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [js-tokens](https://github.com/lydell/js-tokens) | 3.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [js-yaml](https://github.com/nodeca/js-yaml) | 3.12.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [jsesc](https://github.com/mathiasbynens/jsesc) | 0.5.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [json-parse-better-errors](https://github.com/zkat/json-parse-better-errors) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [json-schema-traverse](https://github.com/epoberezkin/json-schema-traverse) | 0.4.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [json5](https://github.com/json5/json5) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [kind-of](https://github.com/jonschlinkert/kind-of) | 3.2.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [kind-of](https://github.com/jonschlinkert/kind-of) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [kind-of](https://github.com/jonschlinkert/kind-of) | 5.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [kind-of](https://github.com/jonschlinkert/kind-of) | 6.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [levenshtein-edit-distance](https://github.com/wooorm/levenshtein-edit-distance) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [loader-runner](https://github.com/webpack/loader-runner) | 2.4.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [loader-utils](https://github.com/webpack/loader-utils) | 1.2.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [locate-path](https://github.com/sindresorhus/locate-path) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [lodash.debounce](https://github.com/lodash/lodash) | 4.0.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [lru-cache](https://github.com/isaacs/node-lru-cache) | 5.1.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [make-dir](https://github.com/sindresorhus/make-dir) | 2.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [map-cache](https://github.com/jonschlinkert/map-cache) | 0.2.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [map-visit](https://github.com/jonschlinkert/map-visit) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [md5.js](https://github.com/crypto-browserify/md5.js) | 1.3.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [mdast-util-definitions](https://github.com/syntax-tree/mdast-util-definitions) | 1.2.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [mdast-util-to-string](https://github.com/syntax-tree/mdast-util-to-string) | 1.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [memory-fs](https://github.com/webpack/memory-fs) | 0.4.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [methods](https://github.com/jshttp/methods) | 1.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [micromatch](https://github.com/micromatch/micromatch) | 3.1.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [miller-rabin](https://github.com/indutny/miller-rabin) | 4.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [mime-db](https://github.com/jshttp/mime-db) | 1.38.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [mime-types](https://github.com/jshttp/mime-types) | 2.1.22 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [mime](https://github.com/broofa/node-mime) | 1.6.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [minimalistic-assert](https://github.com/calvinmetcalf/minimalistic-assert) | 1.0.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [minimalistic-crypto-utils](https://github.com/indutny/minimalistic-crypto-utils) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [minimatch-browser](https://github.com/isaacs/minimatch) | 1.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [minimatch](https://github.com/isaacs/minimatch) | 3.0.4 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [minimist](https://github.com/substack/minimist) | 0.0.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [minimist](https://github.com/substack/minimist) | 1.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [minipass](https://github.com/isaacs/minipass) | 2.3.5 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [minizlib](https://github.com/isaacs/minizlib) | 1.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [mississippi](https://github.com/maxogden/mississippi) | 3.0.0 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
|
||||||
|
| [mixin-deep](https://github.com/jonschlinkert/mixin-deep) | 1.3.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [mkdirp](https://github.com/substack/node-mkdirp) | 0.5.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [moment-es6](https://github.com/Agamnentzar/moment-es6) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [moment](https://github.com/moment/moment) | 2.22.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [move-concurrently](https://github.com/npm/move-concurrently) | 1.0.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [ms](https://github.com/zeit/ms) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [ms](https://github.com/zeit/ms) | 2.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [nan](https://github.com/nodejs/nan) | 2.13.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [nanomatch](https://github.com/micromatch/nanomatch) | 1.2.13 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [needle](https://github.com/tomas/needle) | 2.2.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [neo-async](https://github.com/suguru03/neo-async) | 2.6.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [next-tick](https://github.com/medikoo/next-tick) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [ng2-charts](https://github.com/valor-software/ng2-charts) | 1.6.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [ngx-monaco-editor](https://github.com/atularen/ngx-monaco-editor) | 7.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [node-ensure](https://github.com/bauerca/node-ensure) | 0.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [node-libs-browser](https://github.com/webpack/node-libs-browser) | 2.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [node-pre-gyp](https://github.com/mapbox/node-pre-gyp) | 0.10.3 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
|
||||||
|
| [nopt](https://github.com/npm/nopt) | 4.0.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [normalize-path](https://github.com/jonschlinkert/normalize-path) | 2.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [npm-bundled](https://github.com/npm/npm-bundled) | 1.0.5 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [npm-packlist](https://github.com/npm/npm-packlist) | 1.2.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [npmlog](https://github.com/npm/npmlog) | 4.1.2 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [number-is-nan](https://github.com/sindresorhus/number-is-nan) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [object-assign](https://github.com/sindresorhus/object-assign) | 4.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [object-copy](https://github.com/jonschlinkert/object-copy) | 0.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [object-visit](https://github.com/jonschlinkert/object-visit) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [object.pick](https://github.com/jonschlinkert/object.pick) | 1.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [once](https://github.com/isaacs/once) | 1.4.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [os-browserify](https://github.com/CoderPuppy/os-browserify) | 0.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [os-homedir](https://github.com/sindresorhus/os-homedir) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [os-tmpdir](https://github.com/sindresorhus/os-tmpdir) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [osenv](https://github.com/npm/osenv) | 0.1.5 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [p-limit](https://github.com/sindresorhus/p-limit) | 2.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [p-locate](https://github.com/sindresorhus/p-locate) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [p-try](https://github.com/sindresorhus/p-try) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [pako](https://github.com/nodeca/pako) | 1.0.10 | ([MIT](http://www.opensource.org/licenses/MIT) AND [Zlib](http://www.zlib.net/zlib_license.html)) |
|
||||||
|
| [parallel-transform](https://github.com/mafintosh/parallel-transform) | 1.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [parse-asn1](https://github.com/crypto-browserify/parse-asn1) | 5.1.4 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [parse5](https://github.com/inikulin/parse5) | 5.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [pascalcase](https://github.com/jonschlinkert/pascalcase) | 0.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [path-browserify](https://github.com/substack/path-browserify) | 0.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [path-dirname](https://github.com/es128/path-dirname) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [path-exists](https://github.com/sindresorhus/path-exists) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [path-is-absolute](https://github.com/sindresorhus/path-is-absolute) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [path-parse](https://github.com/jbgutierrez/path-parse) | 1.0.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [pbkdf2](https://github.com/crypto-browserify/pbkdf2) | 3.0.17 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [pdfjs-dist](https://github.com/mozilla/pdfjs-dist) | 2.0.943 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [pify](https://github.com/sindresorhus/pify) | 4.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [pkg-dir](https://github.com/sindresorhus/pkg-dir) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [posix-character-classes](https://github.com/jonschlinkert/posix-character-classes) | 0.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [process-nextick-args](https://github.com/calvinmetcalf/process-nextick-args) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [process](https://github.com/shtylman/node-process) | 0.11.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [promise-inflight](https://github.com/iarna/promise-inflight) | 1.0.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [propose](https://github.com/liushuping/propose) | 0.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [prr](https://github.com/rvagg/prr) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [public-encrypt](https://github.com/crypto-browserify/publicEncrypt) | 4.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [pump](https://github.com/mafintosh/pump) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [pump](https://github.com/mafintosh/pump) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [pumpify](https://github.com/mafintosh/pumpify) | 1.5.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [punycode](https://github.com/bestiejs/punycode.js) | 1.3.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [punycode](https://github.com/bestiejs/punycode.js) | 1.4.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [punycode](https://github.com/bestiejs/punycode.js) | 2.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [qs](https://github.com/ljharb/qs) | 6.7.0 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
|
||||||
|
| [querystring-es3](https://github.com/mike-spainhower/querystring) | 0.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [querystring](https://github.com/Gozala/querystring) | 0.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [randombytes](https://github.com/crypto-browserify/randombytes) | 2.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [randomfill](https://github.com/crypto-browserify/randomfill) | 1.0.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [raphael](https://github.com/DmitryBaranovskiy/raphael) | 2.2.7 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [rc](https://github.com/dominictarr/rc) | 1.2.8 | ([BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) OR [MIT](http://www.opensource.org/licenses/MIT) OR [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)) |
|
||||||
|
| [readable-stream](https://github.com/nodejs/readable-stream) | 2.3.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [readdirp](https://github.com/paulmillr/readdirp) | 2.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [reflect-metadata](https://github.com/rbuckton/reflect-metadata) | 0.1.13 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [regenerate](https://github.com/mathiasbynens/regenerate) | 1.4.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [regex-not](https://github.com/jonschlinkert/regex-not) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [regexpu-core](https://github.com/mathiasbynens/regexpu-core) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [regjsgen](https://github.com/d10/regjsgen) | 0.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [regjsparser](https://github.com/jviereck/regjsparser) | 0.1.5 | [BSD](http://www.opensource.org/licenses/BSD-2-Clause) |
|
||||||
|
| [remark-validate-links](https://github.com/remarkjs/remark-validate-links) | 8.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [remove-trailing-separator](https://github.com/darsain/remove-trailing-separator) | 1.1.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [repeat-element](https://github.com/jonschlinkert/repeat-element) | 1.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [repeat-string](https://github.com/jonschlinkert/repeat-string) | 1.6.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [resolve-url](https://github.com/lydell/resolve-url) | 0.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [resolve](https://github.com/browserify/resolve) | 1.10.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [ret](https://github.com/fent/ret.js) | 0.1.15 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [rimraf](https://github.com/isaacs/rimraf) | 2.6.3 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [ripemd160](https://github.com/crypto-browserify/ripemd160) | 2.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [run-queue](https://github.com/iarna/run-queue) | 1.0.3 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [rxjs](https://github.com/reactivex/rxjs) | 6.4.0 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [safe-buffer](https://github.com/feross/safe-buffer) | 5.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [safe-regex](https://github.com/substack/safe-regex) | 1.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [safer-buffer](https://github.com/ChALkeR/safer-buffer) | 2.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [sax](https://github.com/isaacs/sax-js) | 1.2.4 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [schema-utils](https://github.com/webpack-contrib/schema-utils) | 0.4.7 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [schema-utils](https://github.com/webpack-contrib/schema-utils) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [semver-dsl](https://github.com/mgechev/semver-dsl) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [semver](https://github.com/npm/node-semver) | 5.6.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [serialize-javascript](https://github.com/yahoo/serialize-javascript) | 1.6.1 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
|
||||||
|
| [set-blocking](https://github.com/yargs/set-blocking) | 2.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [set-value](https://github.com/jonschlinkert/set-value) | 0.4.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [set-value](https://github.com/jonschlinkert/set-value) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [setimmediate](https://github.com/YuzuJS/setImmediate) | 1.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [sha.js](https://github.com/crypto-browserify/sha.js) | 2.4.11 | ([MIT](http://www.opensource.org/licenses/MIT) AND [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause)) |
|
||||||
|
| [signal-exit](https://github.com/tapjs/signal-exit) | 3.0.2 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node) | 2.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [snapdragon-util](https://github.com/jonschlinkert/snapdragon-util) | 3.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [snapdragon](https://github.com/jonschlinkert/snapdragon) | 0.8.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [source-list-map](https://github.com/webpack/source-list-map) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [source-map-resolve](https://github.com/lydell/source-map-resolve) | 0.5.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [source-map-support](https://github.com/evanw/node-source-map-support) | 0.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [source-map-url](https://github.com/lydell/source-map-url) | 0.4.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [source-map](https://github.com/mozilla/source-map) | 0.5.6 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
|
||||||
|
| [source-map](https://github.com/mozilla/source-map) | 0.5.7 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
|
||||||
|
| [source-map](https://github.com/mozilla/source-map) | 0.6.1 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
|
||||||
|
| [split-string](https://github.com/jonschlinkert/split-string) | 3.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [sprintf-js](https://github.com/alexei/sprintf.js) | 1.0.3 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
|
||||||
|
| [sprintf-js](https://github.com/alexei/sprintf.js) | 1.1.2 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
|
||||||
|
| [ssri](https://github.com/zkat/ssri) | 6.0.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [static-extend](https://github.com/jonschlinkert/static-extend) | 0.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [stream-browserify](https://github.com/browserify/stream-browserify) | 2.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [stream-each](https://github.com/mafintosh/stream-each) | 1.2.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [stream-http](https://github.com/jhiesey/stream-http) | 2.8.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [stream-shift](https://github.com/mafintosh/stream-shift) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [string-width](https://github.com/sindresorhus/string-width) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [string_decoder](https://github.com/nodejs/string_decoder) | 1.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [strip-ansi](https://github.com/chalk/strip-ansi) | 3.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [strip-json-comments](https://github.com/sindresorhus/strip-json-comments) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [superagent](https://github.com/visionmedia/superagent) | 3.8.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [supports-color](https://github.com/chalk/supports-color) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [supports-color](https://github.com/chalk/supports-color) | 5.5.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [systemjs](https://github.com/systemjs/systemjs) | 0.19.27 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [tapable](https://github.com/webpack/tapable) | 1.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [tar](https://github.com/npm/node-tar) | 4.4.8 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) | 1.2.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [terser](https://github.com/fabiosantoscode/terser) | 3.17.0 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
|
||||||
|
| [through2](https://github.com/rvagg/through2) | 2.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [through](https://github.com/dominictarr/through) | 2.3.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [timers-browserify](https://github.com/jryans/timers-browserify) | 2.0.10 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [to-arraybuffer](https://github.com/jhiesey/to-arraybuffer) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [to-object-path](https://github.com/jonschlinkert/to-object-path) | 0.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [to-regex-range](https://github.com/micromatch/to-regex-range) | 2.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [to-regex](https://github.com/jonschlinkert/to-regex) | 3.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [tslib](https://github.com/Microsoft/tslib) | 1.9.3 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [tslint](https://github.com/palantir/tslint) | 5.9.1 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [tsutils](https://github.com/ajafff/tsutils) | 2.29.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [tty-browserify](https://github.com/substack/tty-browserify) | 0.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [typedarray](https://github.com/substack/typedarray) | 0.0.6 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [typescript](https://github.com/Microsoft/TypeScript) | 3.1.6 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [union-value](https://github.com/jonschlinkert/union-value) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [unique-filename](https://github.com/iarna/unique-filename) | 1.1.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [unique-slug](https://github.com/iarna/unique-slug) | 2.0.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [unist-util-is](https://github.com/syntax-tree/unist-util-is) | 2.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [unist-util-visit-parents](https://github.com/syntax-tree/unist-util-visit-parents) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [unist-util-visit](https://github.com/syntax-tree/unist-util-visit) | 1.4.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [unset-value](https://github.com/jonschlinkert/unset-value) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [upath](https://github.com/anodynos/upath) | 1.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [uri-js](https://github.com/garycourt/uri-js) | 4.2.2 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
|
||||||
|
| [urix](https://github.com/lydell/urix) | 0.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [url](https://github.com/defunctzombie/node-url) | 0.11.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [urljoin](https://github.com/yanni4night/urljoin) | 0.1.5 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [use](https://github.com/jonschlinkert/use) | 3.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [util-deprecate](https://github.com/TooTallNate/util-deprecate) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [util](https://github.com/defunctzombie/node-util) | 0.10.3 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [util](https://github.com/defunctzombie/node-util) | 0.11.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [vm-browserify](https://github.com/substack/vm-browserify) | 0.0.4 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [watchpack](https://github.com/webpack/watchpack) | 1.6.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [web-animations-js](https://github.com/web-animations/web-animations-js) | 2.3.1 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
|
||||||
|
| [webpack-sources](https://github.com/webpack/webpack-sources) | 1.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [webpack](https://github.com/webpack/webpack) | 4.29.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [when](https://github.com/cujojs/when) | 3.7.8 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [wide-align](https://github.com/iarna/wide-align) | 1.1.3 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [worker-farm](https://github.com/rvagg/node-worker-farm) | 1.6.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [worker-loader](https://github.com/webpack-contrib/worker-loader) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [wrappy](https://github.com/npm/wrappy) | 1.0.2 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [xtend](https://github.com/Raynos/xtend) | 4.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
|
| [y18n](https://github.com/yargs/y18n) | 4.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [yallist](https://github.com/isaacs/yallist) | 3.0.3 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
|
||||||
|
| [zone.js](https://github.com/angular/zone.js) | 0.8.29 | [MIT](http://www.opensource.org/licenses/MIT) |
|
||||||
@@ -31,7 +31,6 @@ import { StringUtil } from '@alfresco/adf-testing';
|
|||||||
|
|
||||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||||
import { UploadActions } from '../../actions/ACS/upload.actions';
|
import { UploadActions } from '../../actions/ACS/upload.actions';
|
||||||
import { browser } from 'protractor';
|
|
||||||
|
|
||||||
describe('Comment Component', () => {
|
describe('Comment Component', () => {
|
||||||
|
|
||||||
@@ -70,7 +69,6 @@ describe('Comment Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
|
||||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
@@ -86,7 +84,7 @@ describe('Comment Component', () => {
|
|||||||
|
|
||||||
userFullName = pngUploadedFile.entry.createdByUser.displayName;
|
userFullName = pngUploadedFile.entry.createdByUser.displayName;
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
navigationBar.clickContentServicesButton();
|
navigationBar.clickContentServicesButton();
|
||||||
contentServicesPage.waitForTableBody();
|
contentServicesPage.waitForTableBody();
|
||||||
@@ -95,21 +93,20 @@ describe('Comment Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterEach(async (done) => {
|
afterEach(async (done) => {
|
||||||
|
try {
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, nodeId);
|
||||||
|
} catch (error) {
|
||||||
|
|
||||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
}
|
||||||
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, nodeId);
|
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C276947] Should be able to add a comment on ACS and view on ADF', () => {
|
it('[C276947] Should be able to add a comment on ACS and view on ADF', async () => {
|
||||||
|
await this.alfrescoJsApi.core.commentsApi.addComment(nodeId, { content: comments.test });
|
||||||
browser.controlFlow().execute(async() => {
|
|
||||||
await this.alfrescoJsApi.core.commentsApi.addComment(nodeId, {content: comments.test});
|
|
||||||
});
|
|
||||||
|
|
||||||
viewerPage.viewFile(pngFileModel.name);
|
viewerPage.viewFile(pngFileModel.name);
|
||||||
|
viewerPage.checkImgViewerIsDisplayed();
|
||||||
viewerPage.clickInfoButton();
|
viewerPage.clickInfoButton();
|
||||||
viewerPage.checkInfoSideBarIsDisplayed();
|
viewerPage.checkInfoSideBarIsDisplayed();
|
||||||
|
|
||||||
@@ -125,6 +122,7 @@ describe('Comment Component', () => {
|
|||||||
|
|
||||||
it('[C276948] Should be able to add a comment on a file', () => {
|
it('[C276948] Should be able to add a comment on a file', () => {
|
||||||
viewerPage.viewFile(pngFileModel.name);
|
viewerPage.viewFile(pngFileModel.name);
|
||||||
|
viewerPage.checkImgViewerIsDisplayed();
|
||||||
viewerPage.clickInfoButton();
|
viewerPage.clickInfoButton();
|
||||||
viewerPage.checkInfoSideBarIsDisplayed();
|
viewerPage.checkInfoSideBarIsDisplayed();
|
||||||
viewerPage.clickOnCommentsTab();
|
viewerPage.clickOnCommentsTab();
|
||||||
@@ -140,6 +138,7 @@ describe('Comment Component', () => {
|
|||||||
|
|
||||||
it('[C280021] Should be able to add a multiline comment on a file', () => {
|
it('[C280021] Should be able to add a multiline comment on a file', () => {
|
||||||
viewerPage.viewFile(pngFileModel.name);
|
viewerPage.viewFile(pngFileModel.name);
|
||||||
|
viewerPage.checkImgViewerIsDisplayed();
|
||||||
viewerPage.clickInfoButton();
|
viewerPage.clickInfoButton();
|
||||||
viewerPage.checkInfoSideBarIsDisplayed();
|
viewerPage.checkInfoSideBarIsDisplayed();
|
||||||
viewerPage.clickOnCommentsTab();
|
viewerPage.clickOnCommentsTab();
|
||||||
@@ -163,6 +162,7 @@ describe('Comment Component', () => {
|
|||||||
|
|
||||||
it('[C280022] Should not be able to add an HTML or other code input into the comment input filed', () => {
|
it('[C280022] Should not be able to add an HTML or other code input into the comment input filed', () => {
|
||||||
viewerPage.viewFile(pngFileModel.name);
|
viewerPage.viewFile(pngFileModel.name);
|
||||||
|
viewerPage.checkImgViewerIsDisplayed();
|
||||||
viewerPage.clickInfoButton();
|
viewerPage.clickInfoButton();
|
||||||
viewerPage.checkInfoSideBarIsDisplayed();
|
viewerPage.checkInfoSideBarIsDisplayed();
|
||||||
viewerPage.clickOnCommentsTab();
|
viewerPage.clickOnCommentsTab();
|
||||||
@@ -194,7 +194,7 @@ describe('Comment Component', () => {
|
|||||||
|
|
||||||
pngUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileModel.location, pngFileModel.name, site.entry.guid);
|
pngUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileModel.location, pngFileModel.name, site.entry.guid);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
navigationBar.clickContentServicesButton();
|
navigationBar.clickContentServicesButton();
|
||||||
|
|
||||||
@@ -202,7 +202,10 @@ describe('Comment Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterAll((done) => {
|
afterAll((done) => {
|
||||||
uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, pngUploadedFile.entry.id);
|
try {
|
||||||
|
uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, pngUploadedFile.entry.id);
|
||||||
|
} catch (error) {
|
||||||
|
}
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
@@ -212,6 +215,7 @@ describe('Comment Component', () => {
|
|||||||
contentServicesPage.checkAcsContainer();
|
contentServicesPage.checkAcsContainer();
|
||||||
|
|
||||||
viewerPage.viewFile(pngUploadedFile.entry.name);
|
viewerPage.viewFile(pngUploadedFile.entry.name);
|
||||||
|
viewerPage.checkImgViewerIsDisplayed();
|
||||||
viewerPage.checkInfoButtonIsDisplayed();
|
viewerPage.checkInfoButtonIsDisplayed();
|
||||||
viewerPage.clickInfoButton();
|
viewerPage.clickInfoButton();
|
||||||
viewerPage.checkInfoSideBarIsDisplayed();
|
viewerPage.checkInfoSideBarIsDisplayed();
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ describe('Create folder directive', function () {
|
|||||||
|
|
||||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { LoginPage } from '@alfresco/adf-testing';
|
import { LoginPage, BrowserActions } from '@alfresco/adf-testing';
|
||||||
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
import { CreateLibraryDialog } from '../../pages/adf/dialog/createLibraryDialog';
|
import { CreateLibraryDialog } from '../../pages/adf/dialog/createLibraryDialog';
|
||||||
import { CustomSources } from '../../pages/adf/demo-shell/customSourcesPage';
|
import { CustomSources } from '../../pages/adf/demo-shell/customSourcesPage';
|
||||||
@@ -23,7 +23,6 @@ import { CustomSources } from '../../pages/adf/demo-shell/customSourcesPage';
|
|||||||
import { AcsUserModel } from '../../models/ACS/acsUserModel';
|
import { AcsUserModel } from '../../models/ACS/acsUserModel';
|
||||||
import TestConfig = require('../../test.config');
|
import TestConfig = require('../../test.config');
|
||||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||||
import { browser, Key } from 'protractor';
|
|
||||||
import { StringUtil } from '@alfresco/adf-testing';
|
import { StringUtil } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
describe('Create library directive', function () {
|
describe('Create library directive', function () {
|
||||||
@@ -53,7 +52,7 @@ describe('Create library directive', function () {
|
|||||||
|
|
||||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
createSite = await this.alfrescoJsApi.core.sitesApi.createSite({
|
createSite = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||||
'title': StringUtil.generateRandomString(20).toLowerCase(),
|
'title': StringUtil.generateRandomString(20).toLowerCase(),
|
||||||
@@ -69,9 +68,8 @@ describe('Create library directive', function () {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(async (done) => {
|
afterEach(() => {
|
||||||
await browser.actions().sendKeys(Key.ESCAPE).perform();
|
BrowserActions.closeMenuAndDialogs();
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C290158] Should display the Create Library defaults', () => {
|
it('[C290158] Should display the Create Library defaults', () => {
|
||||||
|
|||||||
@@ -0,0 +1,140 @@
|
|||||||
|
/*!
|
||||||
|
* @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 { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
|
import { AcsUserModel } from '../../models/ACS/acsUserModel';
|
||||||
|
import { FileModel } from '../../models/ACS/fileModel';
|
||||||
|
import { LoginPage, FileBrowserUtil, BrowserVisibility } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
|
import TestConfig = require('../../test.config');
|
||||||
|
import resources = require('../../util/resources');
|
||||||
|
|
||||||
|
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||||
|
import { UploadActions } from '../../actions/ACS/upload.actions';
|
||||||
|
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
||||||
|
import { FolderModel } from '../../models/ACS/folderModel';
|
||||||
|
|
||||||
|
describe('Version component actions', () => {
|
||||||
|
|
||||||
|
const loginPage = new LoginPage();
|
||||||
|
const contentServicesPage = new ContentServicesPage();
|
||||||
|
const navigationBarPage = new NavigationBarPage();
|
||||||
|
const contentListPage = contentServicesPage.getDocumentList();
|
||||||
|
|
||||||
|
const acsUser = new AcsUserModel();
|
||||||
|
|
||||||
|
const txtFileComma = new FileModel({
|
||||||
|
'name': 'comma,name',
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.TXT.file_location
|
||||||
|
});
|
||||||
|
|
||||||
|
const txtFileModel = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.TXT.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.TXT.file_location
|
||||||
|
});
|
||||||
|
|
||||||
|
const file0BytesModel = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.TXT_0B.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.TXT_0B.file_location
|
||||||
|
});
|
||||||
|
|
||||||
|
const folderInfo = new FolderModel({
|
||||||
|
'name': 'myFolder',
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.TEXT_FOLDER.folder_location
|
||||||
|
});
|
||||||
|
|
||||||
|
const folderSecond = new FolderModel({
|
||||||
|
'name': 'myrSecondFolder',
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.TEXT_FOLDER.folder_location
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeAll(async (done) => {
|
||||||
|
|
||||||
|
const uploadActions = new UploadActions();
|
||||||
|
|
||||||
|
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);
|
||||||
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
|
||||||
|
await uploadActions.uploadFile(this.alfrescoJsApi, txtFileModel.location, txtFileModel.name, '-my-');
|
||||||
|
await uploadActions.uploadFile(this.alfrescoJsApi, file0BytesModel.location, file0BytesModel.name, '-my-');
|
||||||
|
await uploadActions.uploadFile(this.alfrescoJsApi, txtFileComma.location, txtFileComma.name, '-my-');
|
||||||
|
|
||||||
|
const textFolderUploaded = await uploadActions.createFolder(this.alfrescoJsApi, folderInfo.name, '-my-');
|
||||||
|
await uploadActions.uploadFolder(this.alfrescoJsApi, folderInfo.location, textFolderUploaded.entry.id);
|
||||||
|
|
||||||
|
await uploadActions.createFolder(this.alfrescoJsApi, folderSecond.name, '-my-');
|
||||||
|
|
||||||
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
|
navigationBarPage.clickContentServicesButton();
|
||||||
|
contentServicesPage.waitForTableBody();
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(async () => {
|
||||||
|
BrowserVisibility.waitUntilDialogIsClose();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C260083] Download files - Different size values', () => {
|
||||||
|
contentListPage.selectRow(txtFileModel.name);
|
||||||
|
contentServicesPage.clickDownloadButton();
|
||||||
|
FileBrowserUtil.isFileDownloaded(txtFileModel.name);
|
||||||
|
BrowserVisibility.waitUntilDialogIsClose();
|
||||||
|
|
||||||
|
contentListPage.selectRow(file0BytesModel.name);
|
||||||
|
contentServicesPage.clickDownloadButton();
|
||||||
|
FileBrowserUtil.isFileDownloaded(file0BytesModel.name);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C260084] Download folder', () => {
|
||||||
|
contentListPage.selectRow(folderInfo.name);
|
||||||
|
contentServicesPage.clickDownloadButton();
|
||||||
|
FileBrowserUtil.isFileDownloaded(folderInfo.name + '.zip');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C261032] File and Folder', () => {
|
||||||
|
contentServicesPage.clickMultiSelectToggle();
|
||||||
|
contentServicesPage.checkAcsContainer();
|
||||||
|
contentListPage.dataTablePage().checkAllRows();
|
||||||
|
contentServicesPage.clickDownloadButton();
|
||||||
|
FileBrowserUtil.isFileDownloaded('archive.zip');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C261033] Folder and Folder', () => {
|
||||||
|
contentListPage.selectRow(folderInfo.name);
|
||||||
|
contentListPage.selectRow(folderSecond.name);
|
||||||
|
|
||||||
|
contentServicesPage.clickDownloadButton();
|
||||||
|
|
||||||
|
FileBrowserUtil.isFileDownloaded('archive.zip');
|
||||||
|
BrowserVisibility.waitUntilDialogIsClose();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C277757] Download file - Comma in file name', () => {
|
||||||
|
contentListPage.selectRow(txtFileComma.name);
|
||||||
|
contentServicesPage.clickDownloadButton();
|
||||||
|
FileBrowserUtil.isFileDownloaded(txtFileComma.name);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
@@ -15,8 +15,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { browser, by, element } from 'protractor';
|
import { browser } from 'protractor';
|
||||||
import { LoginPage, PaginationPage } from '@alfresco/adf-testing';
|
import { LoginPage } from '@alfresco/adf-testing';
|
||||||
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
||||||
import { AcsUserModel } from '../../models/ACS/acsUserModel';
|
import { AcsUserModel } from '../../models/ACS/acsUserModel';
|
||||||
@@ -28,10 +28,6 @@ import { FileModel } from '../../models/ACS/fileModel';
|
|||||||
import { StringUtil } from '@alfresco/adf-testing';
|
import { StringUtil } from '@alfresco/adf-testing';
|
||||||
import { Util } from '../../util/util';
|
import { Util } from '../../util/util';
|
||||||
import { ContentNodeSelectorDialogPage } from '@alfresco/adf-testing';
|
import { ContentNodeSelectorDialogPage } from '@alfresco/adf-testing';
|
||||||
import { BreadCrumbDropdownPage } from '../../pages/adf/content-services/breadcrumb/breadCrumbDropdownPage';
|
|
||||||
import { FolderModel } from '../../models/ACS/folderModel';
|
|
||||||
import { BreadCrumbPage } from '../../pages/adf/content-services/breadcrumb/breadCrumbPage';
|
|
||||||
import { InfinitePaginationPage } from '../../pages/adf/core/infinitePaginationPage';
|
|
||||||
|
|
||||||
describe('Document List Component - Actions', () => {
|
describe('Document List Component - Actions', () => {
|
||||||
|
|
||||||
@@ -40,11 +36,7 @@ describe('Document List Component - Actions', () => {
|
|||||||
const navigationBarPage = new NavigationBarPage();
|
const navigationBarPage = new NavigationBarPage();
|
||||||
const contentListPage = contentServicesPage.getDocumentList();
|
const contentListPage = contentServicesPage.getDocumentList();
|
||||||
const contentNodeSelector = new ContentNodeSelectorDialogPage();
|
const contentNodeSelector = new ContentNodeSelectorDialogPage();
|
||||||
const paginationPage = new PaginationPage();
|
|
||||||
const breadCrumbDropdownPage = new BreadCrumbDropdownPage();
|
|
||||||
const breadCrumbPage = new BreadCrumbPage();
|
|
||||||
const uploadActions = new UploadActions();
|
const uploadActions = new UploadActions();
|
||||||
const infinitePaginationPage = new InfinitePaginationPage(element(by.css('adf-content-node-selector')));
|
|
||||||
|
|
||||||
const alfrescoJsApi = new AlfrescoApi({
|
const alfrescoJsApi = new AlfrescoApi({
|
||||||
provider: 'ECM',
|
provider: 'ECM',
|
||||||
@@ -75,7 +67,6 @@ describe('Document List Component - Actions', () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
|
|
||||||
acsUser = new AcsUserModel();
|
acsUser = new AcsUserModel();
|
||||||
folderName = `TATSUMAKY_${StringUtil.generateRandomString(5)}_SENPOUKYAKU`;
|
folderName = `TATSUMAKY_${StringUtil.generateRandomString(5)}_SENPOUKYAKU`;
|
||||||
await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
@@ -89,13 +80,13 @@ describe('Document List Component - Actions', () => {
|
|||||||
fileNames = Util.generateSequenceFiles(1, nrOfFiles, files.base, files.extension);
|
fileNames = Util.generateSequenceFiles(1, nrOfFiles, files.base, files.extension);
|
||||||
await uploadActions.createEmptyFiles(alfrescoJsApi, fileNames, uploadedFolder.entry.id);
|
await uploadActions.createEmptyFiles(alfrescoJsApi, fileNames, uploadedFolder.entry.id);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
browser.driver.sleep(10000);
|
await browser.driver.sleep(15000);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach((done) => {
|
||||||
navigationBarPage.clickContentServicesButton();
|
navigationBarPage.clickContentServicesButton();
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
@@ -215,147 +206,4 @@ describe('Document List Component - Actions', () => {
|
|||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Folder Actions - Copy and Move', () => {
|
|
||||||
|
|
||||||
const folderModel1 = new FolderModel({'name': StringUtil.generateRandomString()});
|
|
||||||
const folderModel2 = new FolderModel({'name': StringUtil.generateRandomString()});
|
|
||||||
const folderModel3 = new FolderModel({'name': StringUtil.generateRandomString()});
|
|
||||||
const folderModel4 = new FolderModel({'name': StringUtil.generateRandomString()});
|
|
||||||
const folderModel5 = new FolderModel({'name': StringUtil.generateRandomString()});
|
|
||||||
const folderModel6 = new FolderModel({'name': StringUtil.generateRandomString()});
|
|
||||||
|
|
||||||
let folder1, folder2, folder3, folder4, folder5, folder6;
|
|
||||||
|
|
||||||
let folders;
|
|
||||||
const contentServicesUser = new AcsUserModel();
|
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
|
||||||
|
|
||||||
await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
|
||||||
await alfrescoJsApi.core.peopleApi.addPerson(contentServicesUser);
|
|
||||||
await alfrescoJsApi.login(contentServicesUser.id, contentServicesUser.password);
|
|
||||||
folder1 = await uploadActions.createFolder(alfrescoJsApi, 'A' + folderModel1.name, '-my-');
|
|
||||||
folder2 = await uploadActions.createFolder(alfrescoJsApi, 'B' + folderModel2.name, '-my-');
|
|
||||||
folder3 = await uploadActions.createFolder(alfrescoJsApi, 'C' + folderModel3.name, '-my-');
|
|
||||||
folder4 = await uploadActions.createFolder(alfrescoJsApi, 'D' + folderModel4.name, '-my-');
|
|
||||||
folder5 = await uploadActions.createFolder(alfrescoJsApi, 'E' + folderModel5.name, '-my-');
|
|
||||||
folder6 = await uploadActions.createFolder(alfrescoJsApi, 'F' + folderModel6.name, '-my-');
|
|
||||||
folders = [folder1, folder2, folder3, folder4, folder5, folder6];
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(contentServicesUser);
|
|
||||||
contentServicesPage.goToDocumentList();
|
|
||||||
contentServicesPage.waitForTableBody();
|
|
||||||
paginationPage.selectItemsPerPage('5');
|
|
||||||
contentServicesPage.checkAcsContainer();
|
|
||||||
contentListPage.waitForTableBody();
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
afterAll(async (done) => {
|
|
||||||
await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
|
||||||
await folders.forEach(function (folder) {
|
|
||||||
uploadActions.deleteFilesOrFolder(alfrescoJsApi, folder.entry.id);
|
|
||||||
});
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C260132] Move action on folder with - Load more', () => {
|
|
||||||
|
|
||||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual('5');
|
|
||||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 1-' + 5 + ' of ' + 6);
|
|
||||||
contentListPage.rightClickOnRow('A' + folderModel1.name);
|
|
||||||
contentServicesPage.checkContextActionIsVisible('Move');
|
|
||||||
contentServicesPage.pressContextMenuActionNamed('Move');
|
|
||||||
contentNodeSelector.checkDialogIsDisplayed();
|
|
||||||
expect(contentNodeSelector.getDialogHeaderText()).toBe('Move \'' + 'A' + folderModel1.name + '\' to...');
|
|
||||||
contentNodeSelector.checkSearchInputIsDisplayed();
|
|
||||||
expect(contentNodeSelector.getSearchLabel()).toBe('Search');
|
|
||||||
contentNodeSelector.checkSelectedSiteIsDisplayed('My files');
|
|
||||||
contentNodeSelector.checkCancelButtonIsDisplayed();
|
|
||||||
contentNodeSelector.checkMoveCopyButtonIsDisplayed();
|
|
||||||
expect(contentNodeSelector.getMoveCopyButtonText()).toBe('MOVE');
|
|
||||||
expect(contentNodeSelector.numberOfResultsDisplayed()).toBe(5);
|
|
||||||
infinitePaginationPage.clickLoadMoreButton();
|
|
||||||
expect(contentNodeSelector.numberOfResultsDisplayed()).toBe(6);
|
|
||||||
infinitePaginationPage.checkLoadMoreButtonIsNotDisplayed();
|
|
||||||
contentNodeSelector.contentListPage().dataTablePage().selectRowByContent('F' + folderModel6.name);
|
|
||||||
contentNodeSelector.contentListPage().dataTablePage().checkRowByContentIsSelected('F' + folderModel6.name);
|
|
||||||
contentNodeSelector.clickCancelButton();
|
|
||||||
contentNodeSelector.checkDialogIsNotDisplayed();
|
|
||||||
contentServicesPage.checkContentIsDisplayed('A' + folderModel1.name);
|
|
||||||
|
|
||||||
contentListPage.rightClickOnRow('A' + folderModel1.name);
|
|
||||||
contentServicesPage.checkContextActionIsVisible('Move');
|
|
||||||
contentServicesPage.pressContextMenuActionNamed('Move');
|
|
||||||
contentNodeSelector.checkDialogIsDisplayed();
|
|
||||||
infinitePaginationPage.clickLoadMoreButton();
|
|
||||||
contentNodeSelector.contentListPage().dataTablePage().selectRowByContent('F' + folderModel6.name);
|
|
||||||
contentNodeSelector.contentListPage().dataTablePage().checkRowByContentIsSelected('F' + folderModel6.name);
|
|
||||||
contentNodeSelector.clickMoveCopyButton();
|
|
||||||
contentServicesPage.checkContentIsNotDisplayed('A' + folderModel1.name);
|
|
||||||
contentServicesPage.doubleClickRow('F' + folderModel6.name);
|
|
||||||
contentServicesPage.checkContentIsDisplayed('A' + folderModel1.name);
|
|
||||||
|
|
||||||
contentListPage.rightClickOnRow('A' + folderModel1.name);
|
|
||||||
contentServicesPage.checkContextActionIsVisible('Move');
|
|
||||||
contentServicesPage.pressContextMenuActionNamed('Move');
|
|
||||||
contentNodeSelector.checkDialogIsDisplayed();
|
|
||||||
breadCrumbDropdownPage.clickParentFolder();
|
|
||||||
breadCrumbDropdownPage.checkBreadCrumbDropdownIsDisplayed();
|
|
||||||
breadCrumbDropdownPage.choosePath(contentServicesUser.id);
|
|
||||||
contentNodeSelector.clickMoveCopyButton();
|
|
||||||
contentServicesPage.checkContentIsNotDisplayed('A' + folderModel1.name);
|
|
||||||
|
|
||||||
breadCrumbPage.chooseBreadCrumb(contentServicesUser.id);
|
|
||||||
contentServicesPage.waitForTableBody();
|
|
||||||
contentServicesPage.checkContentIsDisplayed('A' + folderModel1.name);
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C305051] Copy action on folder with - Load more', () => {
|
|
||||||
|
|
||||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual('5');
|
|
||||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 1-' + 5 + ' of ' + 6);
|
|
||||||
contentListPage.rightClickOnRow('A' + folderModel1.name);
|
|
||||||
contentServicesPage.checkContextActionIsVisible('Copy');
|
|
||||||
contentServicesPage.pressContextMenuActionNamed('Copy');
|
|
||||||
contentNodeSelector.checkDialogIsDisplayed();
|
|
||||||
expect(contentNodeSelector.getDialogHeaderText()).toBe('Copy \'' + 'A' + folderModel1.name + '\' to...');
|
|
||||||
contentNodeSelector.checkSearchInputIsDisplayed();
|
|
||||||
expect(contentNodeSelector.getSearchLabel()).toBe('Search');
|
|
||||||
contentNodeSelector.checkSelectedSiteIsDisplayed('My files');
|
|
||||||
contentNodeSelector.checkCancelButtonIsDisplayed();
|
|
||||||
contentNodeSelector.checkMoveCopyButtonIsDisplayed();
|
|
||||||
expect(contentNodeSelector.getMoveCopyButtonText()).toBe('COPY');
|
|
||||||
expect(contentNodeSelector.numberOfResultsDisplayed()).toBe(5);
|
|
||||||
infinitePaginationPage.clickLoadMoreButton();
|
|
||||||
expect(contentNodeSelector.numberOfResultsDisplayed()).toBe(6);
|
|
||||||
infinitePaginationPage.checkLoadMoreButtonIsNotDisplayed();
|
|
||||||
contentNodeSelector.contentListPage().dataTablePage().selectRowByContent('F' + folderModel6.name);
|
|
||||||
contentNodeSelector.contentListPage().dataTablePage().checkRowByContentIsSelected('F' + folderModel6.name);
|
|
||||||
contentNodeSelector.clickCancelButton();
|
|
||||||
contentNodeSelector.checkDialogIsNotDisplayed();
|
|
||||||
contentServicesPage.checkContentIsDisplayed('A' + folderModel1.name);
|
|
||||||
|
|
||||||
contentListPage.rightClickOnRow('A' + folderModel1.name);
|
|
||||||
contentServicesPage.checkContextActionIsVisible('Copy');
|
|
||||||
contentServicesPage.pressContextMenuActionNamed('Copy');
|
|
||||||
contentNodeSelector.checkDialogIsDisplayed();
|
|
||||||
infinitePaginationPage.clickLoadMoreButton();
|
|
||||||
contentNodeSelector.contentListPage().dataTablePage().selectRowByContent('F' + folderModel6.name);
|
|
||||||
contentNodeSelector.contentListPage().dataTablePage().checkRowByContentIsSelected('F' + folderModel6.name);
|
|
||||||
contentNodeSelector.clickMoveCopyButton();
|
|
||||||
contentServicesPage.checkContentIsDisplayed('A' + folderModel1.name);
|
|
||||||
paginationPage.clickOnNextPage();
|
|
||||||
contentListPage.waitForTableBody();
|
|
||||||
contentServicesPage.doubleClickRow('F' + folderModel6.name);
|
|
||||||
contentServicesPage.checkContentIsDisplayed('A' + folderModel1.name);
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -15,14 +15,12 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { browser } from 'protractor';
|
|
||||||
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
|
||||||
import { AcsUserModel } from '../../models/ACS/acsUserModel';
|
import { AcsUserModel } from '../../models/ACS/acsUserModel';
|
||||||
import { ViewerPage } from '../../pages/adf/viewerPage';
|
import { ViewerPage } from '../../pages/adf/viewerPage';
|
||||||
import TestConfig = require('../../test.config');
|
import TestConfig = require('../../test.config');
|
||||||
import resources = require('../../util/resources');
|
import resources = require('../../util/resources');
|
||||||
import { LoginPage, ErrorPage, StringUtil } from '@alfresco/adf-testing';
|
import { LoginPage, StringUtil } from '@alfresco/adf-testing';
|
||||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||||
import { UploadActions } from '../../actions/ACS/upload.actions';
|
import { UploadActions } from '../../actions/ACS/upload.actions';
|
||||||
import { FileModel } from '../../models/ACS/fileModel';
|
import { FileModel } from '../../models/ACS/fileModel';
|
||||||
@@ -32,9 +30,6 @@ describe('Document List Component', () => {
|
|||||||
|
|
||||||
const loginPage = new LoginPage();
|
const loginPage = new LoginPage();
|
||||||
const contentServicesPage = new ContentServicesPage();
|
const contentServicesPage = new ContentServicesPage();
|
||||||
const navBar = new NavigationBarPage();
|
|
||||||
const errorPage = new ErrorPage();
|
|
||||||
let privateSite;
|
|
||||||
let uploadedFolder, uploadedFolderExtra;
|
let uploadedFolder, uploadedFolderExtra;
|
||||||
const uploadActions = new UploadActions();
|
const uploadActions = new UploadActions();
|
||||||
let acsUser = null;
|
let acsUser = null;
|
||||||
@@ -68,58 +63,6 @@ describe('Document List Component', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Permission Message', async () => {
|
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
|
||||||
acsUser = new AcsUserModel();
|
|
||||||
const siteName = `PRIVATE_TEST_SITE_${StringUtil.generateRandomString(5)}`;
|
|
||||||
const folderName = `MEESEEKS_${StringUtil.generateRandomString(5)}`;
|
|
||||||
const privateSiteBody = { visibility: 'PRIVATE', title: siteName };
|
|
||||||
|
|
||||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
|
||||||
|
|
||||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
|
||||||
|
|
||||||
privateSite = await this.alfrescoJsApi.core.sitesApi.createSite(privateSiteBody);
|
|
||||||
|
|
||||||
uploadedFolder = await uploadActions.createFolder(this.alfrescoJsApi, folderName, privateSite.entry.guid);
|
|
||||||
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
afterAll(async (done) => {
|
|
||||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(privateSite.entry.id);
|
|
||||||
navBar.openLanguageMenu();
|
|
||||||
navBar.chooseLanguage('English');
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C217334] Should display a message when accessing file without permissions', () => {
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
||||||
browser.get(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
|
||||||
expect(errorPage.getErrorCode()).toBe('403');
|
|
||||||
expect(errorPage.getErrorDescription()).toBe('You\'re not allowed access to this resource on the server.');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C279924] Should display custom message when accessing a file without permissions', () => {
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
||||||
contentServicesPage.goToDocumentList();
|
|
||||||
contentServicesPage.enableCustomPermissionMessage();
|
|
||||||
browser.get(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
|
||||||
expect(errorPage.getErrorCode()).toBe('403');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C279925] Should display translated message when accessing a file without permissions if language is changed', () => {
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
||||||
navBar.openLanguageMenu();
|
|
||||||
navBar.chooseLanguage('Italiano');
|
|
||||||
browser.sleep(2000);
|
|
||||||
browser.get(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
|
||||||
expect(errorPage.getErrorDescription()).toBe('Accesso alla risorsa sul server non consentito.');
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('Custom Column', () => {
|
describe('Custom Column', () => {
|
||||||
|
|
||||||
let folderName;
|
let folderName;
|
||||||
@@ -252,7 +195,7 @@ describe('Document List Component', () => {
|
|||||||
fileBNode = await uploadActions.uploadFile(this.alfrescoJsApi, fakeFileB.location, fakeFileB.name, '-my-');
|
fileBNode = await uploadActions.uploadFile(this.alfrescoJsApi, fakeFileB.location, fakeFileB.name, '-my-');
|
||||||
fileCNode = await uploadActions.uploadFile(this.alfrescoJsApi, fakeFileC.location, fakeFileC.name, '-my-');
|
fileCNode = await uploadActions.uploadFile(this.alfrescoJsApi, fakeFileC.location, fakeFileC.name, '-my-');
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(user);
|
await loginPage.loginToContentServicesUsingUserModel(user);
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
done();
|
done();
|
||||||
@@ -313,7 +256,7 @@ describe('Document List Component', () => {
|
|||||||
const folderName = 'BANANA';
|
const folderName = 'BANANA';
|
||||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
contentServicesPage.createNewFolder(folderName);
|
contentServicesPage.createNewFolder(folderName);
|
||||||
contentServicesPage.doubleClickRow(folderName);
|
contentServicesPage.doubleClickRow(folderName);
|
||||||
@@ -334,7 +277,7 @@ describe('Document List Component', () => {
|
|||||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
uploadedFolder = await uploadActions.createFolder(this.alfrescoJsApi, folderName, '-my-');
|
uploadedFolder = await uploadActions.createFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
contentServicesPage.checkContentIsDisplayed(uploadedFolder.entry.name);
|
contentServicesPage.checkContentIsDisplayed(uploadedFolder.entry.name);
|
||||||
contentServicesPage.doubleClickRow(uploadedFolder.entry.name);
|
contentServicesPage.doubleClickRow(uploadedFolder.entry.name);
|
||||||
@@ -347,7 +290,7 @@ describe('Document List Component', () => {
|
|||||||
acsUser = new AcsUserModel();
|
acsUser = new AcsUserModel();
|
||||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
contentServicesPage.clickOnContentServices();
|
contentServicesPage.clickOnContentServices();
|
||||||
contentServicesPage.checkRecentFileToBeShowed();
|
contentServicesPage.checkRecentFileToBeShowed();
|
||||||
const icon = await contentServicesPage.getRecentFileIcon();
|
const icon = await contentServicesPage.getRecentFileIcon();
|
||||||
@@ -367,7 +310,7 @@ describe('Document List Component', () => {
|
|||||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
uploadedFolder = await uploadActions.createFolder(this.alfrescoJsApi, folderNameA, '-my-');
|
uploadedFolder = await uploadActions.createFolder(this.alfrescoJsApi, folderNameA, '-my-');
|
||||||
uploadedFolderExtra = await uploadActions.createFolder(this.alfrescoJsApi, folderNameB, '-my-');
|
uploadedFolderExtra = await uploadActions.createFolder(this.alfrescoJsApi, folderNameB, '-my-');
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
contentServicesPage.checkContentIsDisplayed(folderNameA);
|
contentServicesPage.checkContentIsDisplayed(folderNameA);
|
||||||
contentServicesPage.checkContentIsDisplayed(folderNameB);
|
contentServicesPage.checkContentIsDisplayed(folderNameB);
|
||||||
@@ -391,7 +334,7 @@ describe('Document List Component', () => {
|
|||||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
testFileNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFileA.location, testFileA.name, '-my-');
|
testFileNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFileA.location, testFileA.name, '-my-');
|
||||||
pdfBFileNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFileB.location, testFileB.name, '-my-');
|
pdfBFileNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFileB.location, testFileB.name, '-my-');
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
contentServicesPage.checkContentIsDisplayed(testFileA.name);
|
contentServicesPage.checkContentIsDisplayed(testFileA.name);
|
||||||
contentServicesPage.checkContentIsDisplayed(testFileB.name);
|
contentServicesPage.checkContentIsDisplayed(testFileB.name);
|
||||||
@@ -429,7 +372,7 @@ describe('Document List Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C277093] Should sort files with Items per page set to default', async (done) => {
|
it('[C277093] Should sort files with Items per page set to default', async (done) => {
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
contentServicesPage.checkListIsSortedByNameColumn('asc');
|
contentServicesPage.checkListIsSortedByNameColumn('asc');
|
||||||
done();
|
done();
|
||||||
@@ -437,252 +380,6 @@ describe('Document List Component', () => {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Thumbnails and tooltips', () => {
|
|
||||||
|
|
||||||
const pdfFile = new FileModel({
|
|
||||||
'name': resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
|
||||||
'location': resources.Files.ADF_DOCUMENTS.PDF.file_location
|
|
||||||
});
|
|
||||||
|
|
||||||
const testFile = new FileModel({
|
|
||||||
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
|
||||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
|
||||||
});
|
|
||||||
|
|
||||||
const docxFile = new FileModel({
|
|
||||||
'name': resources.Files.ADF_DOCUMENTS.DOCX.file_name,
|
|
||||||
'location': resources.Files.ADF_DOCUMENTS.DOCX.file_location
|
|
||||||
});
|
|
||||||
const folderName = `MEESEEKS_${StringUtil.generateRandomString(5)}_LOOK_AT_ME`;
|
|
||||||
let filePdfNode, fileTestNode, fileDocxNode, folderNode;
|
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
|
||||||
acsUser = new AcsUserModel();
|
|
||||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
|
||||||
|
|
||||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
|
||||||
|
|
||||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
|
||||||
filePdfNode = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFile.location, pdfFile.name, '-my-');
|
|
||||||
fileTestNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFile.location, testFile.name, '-my-');
|
|
||||||
fileDocxNode = await uploadActions.uploadFile(this.alfrescoJsApi, docxFile.location, docxFile.name, '-my-');
|
|
||||||
folderNode = await uploadActions.createFolder(this.alfrescoJsApi, folderName, '-my-');
|
|
||||||
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
afterAll(async (done) => {
|
|
||||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
|
||||||
if (filePdfNode) {
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, filePdfNode.entry.id);
|
|
||||||
}
|
|
||||||
if (fileTestNode) {
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileTestNode.entry.id);
|
|
||||||
}
|
|
||||||
if (fileDocxNode) {
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileDocxNode.entry.id);
|
|
||||||
}
|
|
||||||
if (folderNode) {
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, folderNode.entry.id);
|
|
||||||
}
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
||||||
contentServicesPage.goToDocumentList();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C260108] Should display tooltip for file\'s name', () => {
|
|
||||||
expect(contentServicesPage.getContentList().getTooltip(pdfFile.name)).toEqual(pdfFile.name);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C260109] Should display tooltip for folder\'s name', () => {
|
|
||||||
expect(contentServicesPage.getContentList().getTooltip(folderName)).toEqual(folderName);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C260119] Should have a specific thumbnail for folders', async (done) => {
|
|
||||||
const folderIconUrl = await contentServicesPage.getRowIconImageUrl(folderName);
|
|
||||||
expect(folderIconUrl).toContain('/assets/images/ft_ic_folder.svg');
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C280066] Should have a specific thumbnail PDF files', async (done) => {
|
|
||||||
const fileIconUrl = await contentServicesPage.getRowIconImageUrl(pdfFile.name);
|
|
||||||
expect(fileIconUrl).toContain('/assets/images/ft_ic_pdf.svg');
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C280067] Should have a specific thumbnail DOCX files', async (done) => {
|
|
||||||
const fileIconUrl = await contentServicesPage.getRowIconImageUrl(docxFile.name);
|
|
||||||
expect(fileIconUrl).toContain('/assets/images/ft_ic_ms_word.svg');
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C280068] Should have a specific thumbnail files', async (done) => {
|
|
||||||
const fileIconUrl = await contentServicesPage.getRowIconImageUrl(testFile.name);
|
|
||||||
expect(fileIconUrl).toContain('/assets/images/ft_ic_document.svg');
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C274701] Should be able to enable thumbnails', async (done) => {
|
|
||||||
contentServicesPage.enableThumbnails();
|
|
||||||
contentServicesPage.checkAcsContainer();
|
|
||||||
const fileIconUrl = await contentServicesPage.getRowIconImageUrl(pdfFile.name);
|
|
||||||
expect(fileIconUrl).toContain(`/versions/1/nodes/${filePdfNode.entry.id}/renditions`);
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('Gallery View', () => {
|
|
||||||
|
|
||||||
const cardProperties = {
|
|
||||||
DISPLAY_NAME: 'Display name',
|
|
||||||
SIZE: 'Size',
|
|
||||||
LOCK: 'Lock',
|
|
||||||
CREATED_BY: 'Created by',
|
|
||||||
CREATED: 'Created'
|
|
||||||
};
|
|
||||||
|
|
||||||
let funnyUser;
|
|
||||||
|
|
||||||
const pdfFile = new FileModel({
|
|
||||||
'name': resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
|
||||||
'location': resources.Files.ADF_DOCUMENTS.PDF.file_location
|
|
||||||
});
|
|
||||||
|
|
||||||
const testFile = new FileModel({
|
|
||||||
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
|
||||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
|
||||||
});
|
|
||||||
|
|
||||||
const docxFile = new FileModel({
|
|
||||||
'name': resources.Files.ADF_DOCUMENTS.DOCX.file_name,
|
|
||||||
'location': resources.Files.ADF_DOCUMENTS.DOCX.file_location
|
|
||||||
});
|
|
||||||
const folderName = `MEESEEKS_${StringUtil.generateRandomString(5)}_LOOK_AT_ME`;
|
|
||||||
let filePdfNode, fileTestNode, fileDocxNode, folderNode, filePDFSubNode;
|
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
|
||||||
acsUser = new AcsUserModel();
|
|
||||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
|
||||||
funnyUser = await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
|
||||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
|
||||||
filePdfNode = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFile.location, pdfFile.name, '-my-');
|
|
||||||
fileTestNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFile.location, testFile.name, '-my-');
|
|
||||||
fileDocxNode = await uploadActions.uploadFile(this.alfrescoJsApi, docxFile.location, docxFile.name, '-my-');
|
|
||||||
folderNode = await uploadActions.createFolder(this.alfrescoJsApi, folderName, '-my-');
|
|
||||||
filePDFSubNode = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFile.location, pdfFile.name, folderNode.entry.id);
|
|
||||||
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
||||||
contentServicesPage.goToDocumentList();
|
|
||||||
contentServicesPage.clickGridViewButton();
|
|
||||||
contentServicesPage.checkCardViewContainerIsDisplayed();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C280016] Should be able to choose Gallery View', () => {
|
|
||||||
expect(contentServicesPage.getCardElementShowedInPage()).toBe(4);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C280023] Gallery Card should show details', () => {
|
|
||||||
expect(contentServicesPage.getDocumentCardIconForElement(folderName)).toContain('/assets/images/ft_ic_folder.svg');
|
|
||||||
expect(contentServicesPage.getDocumentCardIconForElement(pdfFile.name)).toContain('/assets/images/ft_ic_pdf.svg');
|
|
||||||
expect(contentServicesPage.getDocumentCardIconForElement(docxFile.name)).toContain('/assets/images/ft_ic_ms_word.svg');
|
|
||||||
expect(contentServicesPage.getDocumentCardIconForElement(testFile.name)).toContain('/assets/images/ft_ic_document.svg');
|
|
||||||
contentServicesPage.checkMenuIsShowedForElementIndex(0);
|
|
||||||
contentServicesPage.checkMenuIsShowedForElementIndex(1);
|
|
||||||
contentServicesPage.checkMenuIsShowedForElementIndex(2);
|
|
||||||
contentServicesPage.checkMenuIsShowedForElementIndex(3);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C280069] Gallery Card should show attributes', () => {
|
|
||||||
contentServicesPage.checkDocumentCardPropertyIsShowed(folderName, cardProperties.DISPLAY_NAME);
|
|
||||||
contentServicesPage.checkDocumentCardPropertyIsShowed(folderName, cardProperties.SIZE);
|
|
||||||
contentServicesPage.checkDocumentCardPropertyIsShowed(folderName, cardProperties.CREATED_BY);
|
|
||||||
contentServicesPage.checkDocumentCardPropertyIsShowed(folderName, cardProperties.CREATED);
|
|
||||||
|
|
||||||
expect(contentServicesPage.getAttributeValueForElement(folderName, cardProperties.DISPLAY_NAME)).toBe(folderName);
|
|
||||||
expect(contentServicesPage.getAttributeValueForElement(folderName, cardProperties.CREATED_BY)).toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
|
||||||
|
|
||||||
expect(contentServicesPage.getAttributeValueForElement(folderName, cardProperties.CREATED)).toMatch(/(ago|few)/);
|
|
||||||
|
|
||||||
expect(contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.DISPLAY_NAME)).toBe(pdfFile.name);
|
|
||||||
expect(contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.SIZE)).toBe(`702.76 KB`);
|
|
||||||
expect(contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.CREATED_BY)).toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
|
||||||
|
|
||||||
expect(contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.CREATED)).toMatch(/(ago|few)/);
|
|
||||||
|
|
||||||
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.DISPLAY_NAME)).toBe(docxFile.name);
|
|
||||||
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.SIZE)).toBe(`81.05 KB`);
|
|
||||||
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.CREATED_BY)).toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
|
||||||
|
|
||||||
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.CREATED)).toMatch(/(ago|few)/);
|
|
||||||
|
|
||||||
expect(contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.DISPLAY_NAME)).toBe(testFile.name);
|
|
||||||
expect(contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.SIZE)).toBe(`14 Bytes`);
|
|
||||||
expect(contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.CREATED_BY)).toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
|
||||||
|
|
||||||
expect(contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.CREATED)).toMatch(/(ago|few)/);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C280129] Should keep Gallery View when accessing a folder', () => {
|
|
||||||
contentServicesPage.navigateToCardFolder(folderName);
|
|
||||||
expect(contentServicesPage.getCardElementShowedInPage()).toBe(1);
|
|
||||||
expect(contentServicesPage.getDocumentCardIconForElement(pdfFile.name)).toContain('/assets/images/ft_ic_pdf.svg');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C280130] Should be able to go back to List View', () => {
|
|
||||||
contentServicesPage.clickGridViewButton();
|
|
||||||
contentServicesPage.checkAcsContainer();
|
|
||||||
contentServicesPage.doubleClickRow(folderName);
|
|
||||||
contentServicesPage.checkRowIsDisplayed(pdfFile.name);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C261993] Should be able to sort Gallery Cards by display name', () => {
|
|
||||||
contentServicesPage.selectGridSortingFromDropdown(cardProperties.DISPLAY_NAME);
|
|
||||||
contentServicesPage.checkListIsSortedByNameColumn('asc');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C261994] Should be able to sort Gallery Cards by size', () => {
|
|
||||||
contentServicesPage.selectGridSortingFromDropdown(cardProperties.SIZE);
|
|
||||||
contentServicesPage.checkListIsSortedBySizeColumn('asc');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C261995] Should be able to sort Gallery Cards by author', () => {
|
|
||||||
contentServicesPage.selectGridSortingFromDropdown(cardProperties.CREATED_BY);
|
|
||||||
contentServicesPage.checkListIsSortedByAuthorColumn('asc');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C261996] Should be able to sort Gallery Cards by created date', () => {
|
|
||||||
contentServicesPage.selectGridSortingFromDropdown(cardProperties.CREATED);
|
|
||||||
contentServicesPage.checkListIsSortedByCreatedColumn('asc');
|
|
||||||
});
|
|
||||||
|
|
||||||
afterAll(async (done) => {
|
|
||||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
|
||||||
if (filePdfNode) {
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, filePdfNode.entry.id);
|
|
||||||
}
|
|
||||||
if (fileTestNode) {
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileTestNode.entry.id);
|
|
||||||
}
|
|
||||||
if (fileDocxNode) {
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileDocxNode.entry.id);
|
|
||||||
}
|
|
||||||
if (filePDFSubNode) {
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, filePDFSubNode.entry.id);
|
|
||||||
}
|
|
||||||
if (folderNode) {
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, folderNode.entry.id);
|
|
||||||
}
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('Column Template', () => {
|
describe('Column Template', () => {
|
||||||
|
|
||||||
const file0BytesModel = new FileModel({
|
const file0BytesModel = new FileModel({
|
||||||
@@ -700,7 +397,7 @@ describe('Document List Component', () => {
|
|||||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
file = await uploadActions.uploadFile(this.alfrescoJsApi, file0BytesModel.location, file0BytesModel.name, '-my-');
|
file = await uploadActions.uploadFile(this.alfrescoJsApi, file0BytesModel.location, file0BytesModel.name, '-my-');
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
contentServicesPage.goToDocumentList()
|
contentServicesPage.goToDocumentList()
|
||||||
.waitForTableBody();
|
.waitForTableBody();
|
||||||
done();
|
done();
|
||||||
|
|||||||
@@ -0,0 +1,191 @@
|
|||||||
|
/*!
|
||||||
|
* @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 { by, element } from 'protractor';
|
||||||
|
import { LoginPage, PaginationPage } from '@alfresco/adf-testing';
|
||||||
|
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
|
import { AcsUserModel } from '../../models/ACS/acsUserModel';
|
||||||
|
import TestConfig = require('../../test.config');
|
||||||
|
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||||
|
import { UploadActions } from '../../actions/ACS/upload.actions';
|
||||||
|
import { StringUtil } from '@alfresco/adf-testing';
|
||||||
|
import { ContentNodeSelectorDialogPage } from '@alfresco/adf-testing';
|
||||||
|
import { BreadCrumbDropdownPage } from '../../pages/adf/content-services/breadcrumb/breadCrumbDropdownPage';
|
||||||
|
import { FolderModel } from '../../models/ACS/folderModel';
|
||||||
|
import { BreadCrumbPage } from '../../pages/adf/content-services/breadcrumb/breadCrumbPage';
|
||||||
|
import { InfinitePaginationPage } from '../../pages/adf/core/infinitePaginationPage';
|
||||||
|
|
||||||
|
describe('Document List Component - Actions', () => {
|
||||||
|
|
||||||
|
const loginPage = new LoginPage();
|
||||||
|
const contentServicesPage = new ContentServicesPage();
|
||||||
|
const contentListPage = contentServicesPage.getDocumentList();
|
||||||
|
const contentNodeSelector = new ContentNodeSelectorDialogPage();
|
||||||
|
const paginationPage = new PaginationPage();
|
||||||
|
const breadCrumbDropdownPage = new BreadCrumbDropdownPage();
|
||||||
|
const breadCrumbPage = new BreadCrumbPage();
|
||||||
|
const uploadActions = new UploadActions();
|
||||||
|
const infinitePaginationPage = new InfinitePaginationPage(element(by.css('adf-content-node-selector')));
|
||||||
|
|
||||||
|
const alfrescoJsApi = new AlfrescoApi({
|
||||||
|
provider: 'ECM',
|
||||||
|
hostEcm: TestConfig.adf.url
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Folder Actions - Copy and Move', () => {
|
||||||
|
|
||||||
|
const folderModel1 = new FolderModel({ 'name': StringUtil.generateRandomString() });
|
||||||
|
const folderModel2 = new FolderModel({ 'name': StringUtil.generateRandomString() });
|
||||||
|
const folderModel3 = new FolderModel({ 'name': StringUtil.generateRandomString() });
|
||||||
|
const folderModel4 = new FolderModel({ 'name': StringUtil.generateRandomString() });
|
||||||
|
const folderModel5 = new FolderModel({ 'name': StringUtil.generateRandomString() });
|
||||||
|
const folderModel6 = new FolderModel({ 'name': StringUtil.generateRandomString() });
|
||||||
|
|
||||||
|
let folder1, folder2, folder3, folder4, folder5, folder6;
|
||||||
|
|
||||||
|
let folders;
|
||||||
|
const contentServicesUser = new AcsUserModel();
|
||||||
|
|
||||||
|
beforeAll(async (done) => {
|
||||||
|
|
||||||
|
await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
await alfrescoJsApi.core.peopleApi.addPerson(contentServicesUser);
|
||||||
|
await alfrescoJsApi.login(contentServicesUser.id, contentServicesUser.password);
|
||||||
|
folder1 = await uploadActions.createFolder(alfrescoJsApi, 'A' + folderModel1.name, '-my-');
|
||||||
|
folder2 = await uploadActions.createFolder(alfrescoJsApi, 'B' + folderModel2.name, '-my-');
|
||||||
|
folder3 = await uploadActions.createFolder(alfrescoJsApi, 'C' + folderModel3.name, '-my-');
|
||||||
|
folder4 = await uploadActions.createFolder(alfrescoJsApi, 'D' + folderModel4.name, '-my-');
|
||||||
|
folder5 = await uploadActions.createFolder(alfrescoJsApi, 'E' + folderModel5.name, '-my-');
|
||||||
|
folder6 = await uploadActions.createFolder(alfrescoJsApi, 'F' + folderModel6.name, '-my-');
|
||||||
|
folders = [folder1, folder2, folder3, folder4, folder5, folder6];
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(async (done) => {
|
||||||
|
await loginPage.loginToContentServicesUsingUserModel(contentServicesUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.waitForTableBody();
|
||||||
|
paginationPage.selectItemsPerPage('5');
|
||||||
|
contentServicesPage.checkAcsContainer();
|
||||||
|
contentListPage.waitForTableBody();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async (done) => {
|
||||||
|
await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
await folders.forEach(function (folder) {
|
||||||
|
uploadActions.deleteFilesOrFolder(alfrescoJsApi, folder.entry.id);
|
||||||
|
});
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C260132] Move action on folder with - Load more', () => {
|
||||||
|
|
||||||
|
expect(paginationPage.getCurrentItemsPerPage()).toEqual('5');
|
||||||
|
expect(paginationPage.getPaginationRange()).toEqual('Showing 1-' + 5 + ' of ' + 6);
|
||||||
|
contentListPage.rightClickOnRow('A' + folderModel1.name);
|
||||||
|
contentServicesPage.checkContextActionIsVisible('Move');
|
||||||
|
contentServicesPage.pressContextMenuActionNamed('Move');
|
||||||
|
contentNodeSelector.checkDialogIsDisplayed();
|
||||||
|
expect(contentNodeSelector.getDialogHeaderText()).toBe('Move \'' + 'A' + folderModel1.name + '\' to...');
|
||||||
|
contentNodeSelector.checkSearchInputIsDisplayed();
|
||||||
|
expect(contentNodeSelector.getSearchLabel()).toBe('Search');
|
||||||
|
contentNodeSelector.checkSelectedSiteIsDisplayed('My files');
|
||||||
|
contentNodeSelector.checkCancelButtonIsDisplayed();
|
||||||
|
contentNodeSelector.checkMoveCopyButtonIsDisplayed();
|
||||||
|
expect(contentNodeSelector.getMoveCopyButtonText()).toBe('MOVE');
|
||||||
|
expect(contentNodeSelector.numberOfResultsDisplayed()).toBe(5);
|
||||||
|
infinitePaginationPage.clickLoadMoreButton();
|
||||||
|
expect(contentNodeSelector.numberOfResultsDisplayed()).toBe(6);
|
||||||
|
infinitePaginationPage.checkLoadMoreButtonIsNotDisplayed();
|
||||||
|
contentNodeSelector.contentListPage().dataTablePage().selectRowByContent('F' + folderModel6.name);
|
||||||
|
contentNodeSelector.contentListPage().dataTablePage().checkRowByContentIsSelected('F' + folderModel6.name);
|
||||||
|
contentNodeSelector.clickCancelButton();
|
||||||
|
contentNodeSelector.checkDialogIsNotDisplayed();
|
||||||
|
contentServicesPage.checkContentIsDisplayed('A' + folderModel1.name);
|
||||||
|
|
||||||
|
contentListPage.rightClickOnRow('A' + folderModel1.name);
|
||||||
|
contentServicesPage.checkContextActionIsVisible('Move');
|
||||||
|
contentServicesPage.pressContextMenuActionNamed('Move');
|
||||||
|
contentNodeSelector.checkDialogIsDisplayed();
|
||||||
|
infinitePaginationPage.clickLoadMoreButton();
|
||||||
|
contentNodeSelector.contentListPage().dataTablePage().selectRowByContent('F' + folderModel6.name);
|
||||||
|
contentNodeSelector.contentListPage().dataTablePage().checkRowByContentIsSelected('F' + folderModel6.name);
|
||||||
|
contentNodeSelector.clickMoveCopyButton();
|
||||||
|
contentServicesPage.checkContentIsNotDisplayed('A' + folderModel1.name);
|
||||||
|
contentServicesPage.doubleClickRow('F' + folderModel6.name);
|
||||||
|
contentServicesPage.checkContentIsDisplayed('A' + folderModel1.name);
|
||||||
|
|
||||||
|
contentListPage.rightClickOnRow('A' + folderModel1.name);
|
||||||
|
contentServicesPage.checkContextActionIsVisible('Move');
|
||||||
|
contentServicesPage.pressContextMenuActionNamed('Move');
|
||||||
|
contentNodeSelector.checkDialogIsDisplayed();
|
||||||
|
breadCrumbDropdownPage.clickParentFolder();
|
||||||
|
breadCrumbDropdownPage.checkBreadCrumbDropdownIsDisplayed();
|
||||||
|
breadCrumbDropdownPage.choosePath(contentServicesUser.id);
|
||||||
|
contentNodeSelector.clickMoveCopyButton();
|
||||||
|
contentServicesPage.checkContentIsNotDisplayed('A' + folderModel1.name);
|
||||||
|
|
||||||
|
breadCrumbPage.chooseBreadCrumb(contentServicesUser.id);
|
||||||
|
contentServicesPage.waitForTableBody();
|
||||||
|
contentServicesPage.checkContentIsDisplayed('A' + folderModel1.name);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C305051] Copy action on folder with - Load more', () => {
|
||||||
|
|
||||||
|
expect(paginationPage.getCurrentItemsPerPage()).toEqual('5');
|
||||||
|
expect(paginationPage.getPaginationRange()).toEqual('Showing 1-' + 5 + ' of ' + 6);
|
||||||
|
contentListPage.rightClickOnRow('A' + folderModel1.name);
|
||||||
|
contentServicesPage.checkContextActionIsVisible('Copy');
|
||||||
|
contentServicesPage.pressContextMenuActionNamed('Copy');
|
||||||
|
contentNodeSelector.checkDialogIsDisplayed();
|
||||||
|
expect(contentNodeSelector.getDialogHeaderText()).toBe('Copy \'' + 'A' + folderModel1.name + '\' to...');
|
||||||
|
contentNodeSelector.checkSearchInputIsDisplayed();
|
||||||
|
expect(contentNodeSelector.getSearchLabel()).toBe('Search');
|
||||||
|
contentNodeSelector.checkSelectedSiteIsDisplayed('My files');
|
||||||
|
contentNodeSelector.checkCancelButtonIsDisplayed();
|
||||||
|
contentNodeSelector.checkMoveCopyButtonIsDisplayed();
|
||||||
|
expect(contentNodeSelector.getMoveCopyButtonText()).toBe('COPY');
|
||||||
|
expect(contentNodeSelector.numberOfResultsDisplayed()).toBe(5);
|
||||||
|
infinitePaginationPage.clickLoadMoreButton();
|
||||||
|
expect(contentNodeSelector.numberOfResultsDisplayed()).toBe(6);
|
||||||
|
infinitePaginationPage.checkLoadMoreButtonIsNotDisplayed();
|
||||||
|
contentNodeSelector.contentListPage().dataTablePage().selectRowByContent('F' + folderModel6.name);
|
||||||
|
contentNodeSelector.contentListPage().dataTablePage().checkRowByContentIsSelected('F' + folderModel6.name);
|
||||||
|
contentNodeSelector.clickCancelButton();
|
||||||
|
contentNodeSelector.checkDialogIsNotDisplayed();
|
||||||
|
contentServicesPage.checkContentIsDisplayed('A' + folderModel1.name);
|
||||||
|
|
||||||
|
contentListPage.rightClickOnRow('A' + folderModel1.name);
|
||||||
|
contentServicesPage.checkContextActionIsVisible('Copy');
|
||||||
|
contentServicesPage.pressContextMenuActionNamed('Copy');
|
||||||
|
contentNodeSelector.checkDialogIsDisplayed();
|
||||||
|
infinitePaginationPage.clickLoadMoreButton();
|
||||||
|
contentNodeSelector.contentListPage().dataTablePage().selectRowByContent('F' + folderModel6.name);
|
||||||
|
contentNodeSelector.contentListPage().dataTablePage().checkRowByContentIsSelected('F' + folderModel6.name);
|
||||||
|
contentNodeSelector.clickMoveCopyButton();
|
||||||
|
contentServicesPage.checkContentIsDisplayed('A' + folderModel1.name);
|
||||||
|
paginationPage.clickOnNextPage();
|
||||||
|
contentListPage.waitForTableBody();
|
||||||
|
contentServicesPage.doubleClickRow('F' + folderModel6.name);
|
||||||
|
contentServicesPage.checkContentIsDisplayed('A' + folderModel1.name);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,195 @@
|
|||||||
|
/*!
|
||||||
|
* @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 { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
|
import { AcsUserModel } from '../../models/ACS/acsUserModel';
|
||||||
|
import TestConfig = require('../../test.config');
|
||||||
|
import resources = require('../../util/resources');
|
||||||
|
import { LoginPage, StringUtil } from '@alfresco/adf-testing';
|
||||||
|
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||||
|
import { UploadActions } from '../../actions/ACS/upload.actions';
|
||||||
|
import { FileModel } from '../../models/ACS/fileModel';
|
||||||
|
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
||||||
|
|
||||||
|
describe('Document List Component', () => {
|
||||||
|
|
||||||
|
const loginPage = new LoginPage();
|
||||||
|
const contentServicesPage = new ContentServicesPage();
|
||||||
|
const uploadActions = new UploadActions();
|
||||||
|
let acsUser = null;
|
||||||
|
const navBar = new NavigationBarPage();
|
||||||
|
|
||||||
|
beforeAll(() => {
|
||||||
|
this.alfrescoJsApi = new AlfrescoApi({
|
||||||
|
provider: 'ECM',
|
||||||
|
hostEcm: TestConfig.adf.url
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Gallery View', () => {
|
||||||
|
|
||||||
|
const cardProperties = {
|
||||||
|
DISPLAY_NAME: 'Display name',
|
||||||
|
SIZE: 'Size',
|
||||||
|
LOCK: 'Lock',
|
||||||
|
CREATED_BY: 'Created by',
|
||||||
|
CREATED: 'Created'
|
||||||
|
};
|
||||||
|
|
||||||
|
let funnyUser;
|
||||||
|
|
||||||
|
const pdfFile = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.PDF.file_location
|
||||||
|
});
|
||||||
|
|
||||||
|
const testFile = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||||
|
});
|
||||||
|
|
||||||
|
const docxFile = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.DOCX.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.DOCX.file_location
|
||||||
|
});
|
||||||
|
const folderName = `MEESEEKS_${StringUtil.generateRandomString(5)}_LOOK_AT_ME`;
|
||||||
|
let filePdfNode, fileTestNode, fileDocxNode, folderNode, filePDFSubNode;
|
||||||
|
|
||||||
|
beforeAll(async (done) => {
|
||||||
|
acsUser = new AcsUserModel();
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
funnyUser = await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
filePdfNode = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFile.location, pdfFile.name, '-my-');
|
||||||
|
fileTestNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFile.location, testFile.name, '-my-');
|
||||||
|
fileDocxNode = await uploadActions.uploadFile(this.alfrescoJsApi, docxFile.location, docxFile.name, '-my-');
|
||||||
|
folderNode = await uploadActions.createFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||||
|
filePDFSubNode = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFile.location, pdfFile.name, folderNode.entry.id);
|
||||||
|
|
||||||
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
navBar.clickHomeButton();
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.clickGridViewButton();
|
||||||
|
contentServicesPage.checkCardViewContainerIsDisplayed();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C280016] Should be able to choose Gallery View', () => {
|
||||||
|
expect(contentServicesPage.getCardElementShowedInPage()).toBe(4);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C280023] Gallery Card should show details', () => {
|
||||||
|
expect(contentServicesPage.getDocumentCardIconForElement(folderName)).toContain('/assets/images/ft_ic_folder.svg');
|
||||||
|
expect(contentServicesPage.getDocumentCardIconForElement(pdfFile.name)).toContain('/assets/images/ft_ic_pdf.svg');
|
||||||
|
expect(contentServicesPage.getDocumentCardIconForElement(docxFile.name)).toContain('/assets/images/ft_ic_ms_word.svg');
|
||||||
|
expect(contentServicesPage.getDocumentCardIconForElement(testFile.name)).toContain('/assets/images/ft_ic_document.svg');
|
||||||
|
contentServicesPage.checkMenuIsShowedForElementIndex(0);
|
||||||
|
contentServicesPage.checkMenuIsShowedForElementIndex(1);
|
||||||
|
contentServicesPage.checkMenuIsShowedForElementIndex(2);
|
||||||
|
contentServicesPage.checkMenuIsShowedForElementIndex(3);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C280069] Gallery Card should show attributes', () => {
|
||||||
|
contentServicesPage.checkDocumentCardPropertyIsShowed(folderName, cardProperties.DISPLAY_NAME);
|
||||||
|
contentServicesPage.checkDocumentCardPropertyIsShowed(folderName, cardProperties.SIZE);
|
||||||
|
contentServicesPage.checkDocumentCardPropertyIsShowed(folderName, cardProperties.CREATED_BY);
|
||||||
|
contentServicesPage.checkDocumentCardPropertyIsShowed(folderName, cardProperties.CREATED);
|
||||||
|
|
||||||
|
expect(contentServicesPage.getAttributeValueForElement(folderName, cardProperties.DISPLAY_NAME)).toBe(folderName);
|
||||||
|
expect(contentServicesPage.getAttributeValueForElement(folderName, cardProperties.CREATED_BY)).toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
||||||
|
|
||||||
|
expect(contentServicesPage.getAttributeValueForElement(folderName, cardProperties.CREATED)).toMatch(/(ago|few)/);
|
||||||
|
|
||||||
|
expect(contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.DISPLAY_NAME)).toBe(pdfFile.name);
|
||||||
|
expect(contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.SIZE)).toBe(`105.02 KB`);
|
||||||
|
expect(contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.CREATED_BY)).toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
||||||
|
|
||||||
|
expect(contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.CREATED)).toMatch(/(ago|few)/);
|
||||||
|
|
||||||
|
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.DISPLAY_NAME)).toBe(docxFile.name);
|
||||||
|
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.SIZE)).toBe(`81.05 KB`);
|
||||||
|
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.CREATED_BY)).toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
||||||
|
|
||||||
|
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.CREATED)).toMatch(/(ago|few)/);
|
||||||
|
|
||||||
|
expect(contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.DISPLAY_NAME)).toBe(testFile.name);
|
||||||
|
expect(contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.SIZE)).toBe(`14 Bytes`);
|
||||||
|
expect(contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.CREATED_BY)).toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
||||||
|
|
||||||
|
expect(contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.CREATED)).toMatch(/(ago|few)/);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C280129] Should keep Gallery View when accessing a folder', () => {
|
||||||
|
contentServicesPage.navigateToCardFolder(folderName);
|
||||||
|
|
||||||
|
expect(contentServicesPage.getCardElementShowedInPage()).toBe(1);
|
||||||
|
expect(contentServicesPage.getDocumentCardIconForElement(pdfFile.name)).toContain('/assets/images/ft_ic_pdf.svg');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C280130] Should be able to go back to List View', () => {
|
||||||
|
contentServicesPage.clickGridViewButton();
|
||||||
|
contentServicesPage.checkAcsContainer();
|
||||||
|
contentServicesPage.doubleClickRow(folderName);
|
||||||
|
contentServicesPage.checkRowIsDisplayed(pdfFile.name);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C261993] Should be able to sort Gallery Cards by display name', () => {
|
||||||
|
contentServicesPage.selectGridSortingFromDropdown(cardProperties.DISPLAY_NAME);
|
||||||
|
contentServicesPage.checkListIsSortedByNameColumn('asc');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C261994] Should be able to sort Gallery Cards by size', () => {
|
||||||
|
contentServicesPage.selectGridSortingFromDropdown(cardProperties.SIZE);
|
||||||
|
contentServicesPage.checkListIsSortedBySizeColumn('asc');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C261995] Should be able to sort Gallery Cards by author', () => {
|
||||||
|
contentServicesPage.selectGridSortingFromDropdown(cardProperties.CREATED_BY);
|
||||||
|
contentServicesPage.checkListIsSortedByAuthorColumn('asc');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C261996] Should be able to sort Gallery Cards by created date', () => {
|
||||||
|
contentServicesPage.selectGridSortingFromDropdown(cardProperties.CREATED);
|
||||||
|
contentServicesPage.checkListIsSortedByCreatedColumn('asc');
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async (done) => {
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
if (filePdfNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, filePdfNode.entry.id);
|
||||||
|
}
|
||||||
|
if (fileTestNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileTestNode.entry.id);
|
||||||
|
}
|
||||||
|
if (fileDocxNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileDocxNode.entry.id);
|
||||||
|
}
|
||||||
|
if (filePDFSubNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, filePDFSubNode.entry.id);
|
||||||
|
}
|
||||||
|
if (folderNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, folderNode.entry.id);
|
||||||
|
}
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
@@ -86,16 +86,12 @@ describe('Document List - Pagination', function () {
|
|||||||
|
|
||||||
await uploadActions.createEmptyFiles(this.alfrescoJsApi, secondSetOfFiles, folderThreeUploadedModel.entry.id);
|
await uploadActions.createEmptyFiles(this.alfrescoJsApi, secondSetOfFiles, folderThreeUploadedModel.entry.id);
|
||||||
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
|
||||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260062] Should use default pagination settings', function () {
|
it('[C260062] Should use default pagination settings', () => {
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
contentServicesPage.doubleClickRow(newFolderModel.name);
|
contentServicesPage.doubleClickRow(newFolderModel.name);
|
||||||
contentServicesPage.checkAcsContainer();
|
contentServicesPage.checkAcsContainer();
|
||||||
@@ -110,7 +106,7 @@ describe('Document List - Pagination', function () {
|
|||||||
paginationPage.checkPreviousPageButtonIsDisabled();
|
paginationPage.checkPreviousPageButtonIsDisabled();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C274713] Should be able to set Items per page to 20', function () {
|
it('[C274713] Should be able to set Items per page to 20', () => {
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
contentServicesPage.doubleClickRow(newFolderModel.name);
|
contentServicesPage.doubleClickRow(newFolderModel.name);
|
||||||
contentServicesPage.checkAcsContainer();
|
contentServicesPage.checkAcsContainer();
|
||||||
@@ -132,7 +128,7 @@ describe('Document List - Pagination', function () {
|
|||||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.twenty);
|
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.twenty);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260069] Should be able to set Items per page to 5', function () {
|
it('[C260069] Should be able to set Items per page to 5', () => {
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
contentServicesPage.doubleClickRow(newFolderModel.name);
|
contentServicesPage.doubleClickRow(newFolderModel.name);
|
||||||
contentServicesPage.checkAcsContainer();
|
contentServicesPage.checkAcsContainer();
|
||||||
@@ -183,7 +179,7 @@ describe('Document List - Pagination', function () {
|
|||||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
|
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260067] Should be able to set Items per page to 10', function () {
|
it('[C260067] Should be able to set Items per page to 10', () => {
|
||||||
currentPage = 1;
|
currentPage = 1;
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
contentServicesPage.doubleClickRow(newFolderModel.name);
|
contentServicesPage.doubleClickRow(newFolderModel.name);
|
||||||
@@ -214,7 +210,7 @@ describe('Document List - Pagination', function () {
|
|||||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.ten);
|
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.ten);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260065] Should be able to set Items per page to 15', function () {
|
it('[C260065] Should be able to set Items per page to 15', () => {
|
||||||
currentPage = 1;
|
currentPage = 1;
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
contentServicesPage.doubleClickRow(newFolderModel.name);
|
contentServicesPage.doubleClickRow(newFolderModel.name);
|
||||||
@@ -246,7 +242,7 @@ describe('Document List - Pagination', function () {
|
|||||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.fifteen);
|
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.fifteen);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C91320] Pagination should preserve sorting', function () {
|
it('[C91320] Pagination should preserve sorting', () => {
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
contentServicesPage.doubleClickRow(newFolderModel.name);
|
contentServicesPage.doubleClickRow(newFolderModel.name);
|
||||||
contentServicesPage.checkAcsContainer();
|
contentServicesPage.checkAcsContainer();
|
||||||
@@ -286,7 +282,7 @@ describe('Document List - Pagination', function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260107] Should not display pagination bar when a folder is empty', function () {
|
it('[C260107] Should not display pagination bar when a folder is empty', () => {
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
paginationPage.selectItemsPerPage(itemsPerPage.five);
|
paginationPage.selectItemsPerPage(itemsPerPage.five);
|
||||||
contentServicesPage.checkAcsContainer();
|
contentServicesPage.checkAcsContainer();
|
||||||
@@ -302,7 +298,7 @@ describe('Document List - Pagination', function () {
|
|||||||
contentServicesPage.checkPaginationIsNotDisplayed();
|
contentServicesPage.checkPaginationIsNotDisplayed();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260071] Should be able to change pagination when having 25 files', function () {
|
it('[C260071] Should be able to change pagination when having 25 files', () => {
|
||||||
currentPage = 1;
|
currentPage = 1;
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
contentServicesPage.doubleClickRow(folderThreeModel.name);
|
contentServicesPage.doubleClickRow(folderThreeModel.name);
|
||||||
|
|||||||
@@ -0,0 +1,90 @@
|
|||||||
|
/*!
|
||||||
|
* @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 { browser } from 'protractor';
|
||||||
|
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
|
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
||||||
|
import { AcsUserModel } from '../../models/ACS/acsUserModel';
|
||||||
|
import TestConfig = require('../../test.config');
|
||||||
|
import { LoginPage, ErrorPage, StringUtil, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||||
|
|
||||||
|
describe('Document List Component', () => {
|
||||||
|
|
||||||
|
const loginPage = new LoginPage();
|
||||||
|
const contentServicesPage = new ContentServicesPage();
|
||||||
|
const navBar = new NavigationBarPage();
|
||||||
|
const errorPage = new ErrorPage();
|
||||||
|
let privateSite;
|
||||||
|
let acsUser = null;
|
||||||
|
|
||||||
|
beforeAll(() => {
|
||||||
|
this.alfrescoJsApi = new AlfrescoApi({
|
||||||
|
provider: 'ECM',
|
||||||
|
hostEcm: TestConfig.adf.url
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Permission Message', async () => {
|
||||||
|
|
||||||
|
beforeAll(async (done) => {
|
||||||
|
acsUser = new AcsUserModel();
|
||||||
|
const siteName = `PRIVATE_TEST_SITE_${StringUtil.generateRandomString(5)}`;
|
||||||
|
const privateSiteBody = { visibility: 'PRIVATE', title: siteName };
|
||||||
|
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
|
||||||
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
|
||||||
|
privateSite = await this.alfrescoJsApi.core.sitesApi.createSite(privateSiteBody);
|
||||||
|
|
||||||
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async (done) => {
|
||||||
|
await this.alfrescoJsApi.core.sitesApi.deleteSite(privateSite.entry.id);
|
||||||
|
navBar.openLanguageMenu();
|
||||||
|
navBar.chooseLanguage('English');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C217334] Should display a message when accessing file without permissions', () => {
|
||||||
|
BrowserActions.getUrl(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
||||||
|
expect(errorPage.getErrorCode()).toBe('403');
|
||||||
|
expect(errorPage.getErrorDescription()).toBe('You\'re not allowed access to this resource on the server.');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C279924] Should display custom message when accessing a file without permissions', () => {
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.enableCustomPermissionMessage();
|
||||||
|
BrowserActions.getUrl(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
||||||
|
expect(errorPage.getErrorCode()).toBe('403');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C279925] Should display translated message when accessing a file without permissions if language is changed', () => {
|
||||||
|
navBar.openLanguageMenu();
|
||||||
|
navBar.chooseLanguage('Italiano');
|
||||||
|
browser.sleep(2000);
|
||||||
|
BrowserActions.getUrl(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
||||||
|
expect(errorPage.getErrorDescription()).toBe('Accesso alla risorsa sul server non consentito.');
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
@@ -65,7 +65,7 @@ describe('Document List Component - Properties', () => {
|
|||||||
|
|
||||||
subFolder = await uploadActions.createFolder(this.alfrescoJsApi, 'subFolder', parentFolder.entry.id);
|
subFolder = await uploadActions.createFolder(this.alfrescoJsApi, 'subFolder', parentFolder.entry.id);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -0,0 +1,161 @@
|
|||||||
|
/*!
|
||||||
|
* @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 { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
|
import { AcsUserModel } from '../../models/ACS/acsUserModel';
|
||||||
|
import TestConfig = require('../../test.config');
|
||||||
|
import resources = require('../../util/resources');
|
||||||
|
import { LoginPage, StringUtil } from '@alfresco/adf-testing';
|
||||||
|
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||||
|
import { UploadActions } from '../../actions/ACS/upload.actions';
|
||||||
|
import { FileModel } from '../../models/ACS/fileModel';
|
||||||
|
|
||||||
|
describe('Document List Component', () => {
|
||||||
|
|
||||||
|
const loginPage = new LoginPage();
|
||||||
|
const contentServicesPage = new ContentServicesPage();
|
||||||
|
let uploadedFolder, uploadedFolderExtra;
|
||||||
|
const uploadActions = new UploadActions();
|
||||||
|
let acsUser = null;
|
||||||
|
let testFileNode, pdfBFileNode;
|
||||||
|
|
||||||
|
beforeAll(() => {
|
||||||
|
this.alfrescoJsApi = new AlfrescoApi({
|
||||||
|
provider: 'ECM',
|
||||||
|
hostEcm: TestConfig.adf.url
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(async (done) => {
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
if (uploadedFolder) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, uploadedFolder.entry.id);
|
||||||
|
uploadedFolder = null;
|
||||||
|
}
|
||||||
|
if (uploadedFolderExtra) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, uploadedFolderExtra.entry.id);
|
||||||
|
uploadedFolderExtra = null;
|
||||||
|
}
|
||||||
|
if (testFileNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, testFileNode.entry.id);
|
||||||
|
testFileNode = null;
|
||||||
|
}
|
||||||
|
if (pdfBFileNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, pdfBFileNode.entry.id);
|
||||||
|
pdfBFileNode = null;
|
||||||
|
}
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Thumbnails and tooltips', () => {
|
||||||
|
|
||||||
|
const pdfFile = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.PDF.file_location
|
||||||
|
});
|
||||||
|
|
||||||
|
const testFile = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||||
|
});
|
||||||
|
|
||||||
|
const docxFile = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.DOCX.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.DOCX.file_location
|
||||||
|
});
|
||||||
|
const folderName = `MEESEEKS_${StringUtil.generateRandomString(5)}_LOOK_AT_ME`;
|
||||||
|
let filePdfNode, fileTestNode, fileDocxNode, folderNode;
|
||||||
|
|
||||||
|
beforeAll(async (done) => {
|
||||||
|
acsUser = new AcsUserModel();
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
|
||||||
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
|
||||||
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
filePdfNode = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFile.location, pdfFile.name, '-my-');
|
||||||
|
fileTestNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFile.location, testFile.name, '-my-');
|
||||||
|
fileDocxNode = await uploadActions.uploadFile(this.alfrescoJsApi, docxFile.location, docxFile.name, '-my-');
|
||||||
|
folderNode = await uploadActions.createFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async (done) => {
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
if (filePdfNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, filePdfNode.entry.id);
|
||||||
|
}
|
||||||
|
if (fileTestNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileTestNode.entry.id);
|
||||||
|
}
|
||||||
|
if (fileDocxNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileDocxNode.entry.id);
|
||||||
|
}
|
||||||
|
if (folderNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, folderNode.entry.id);
|
||||||
|
}
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C260108] Should display tooltip for file\'s name', () => {
|
||||||
|
expect(contentServicesPage.getContentList().getTooltip(pdfFile.name)).toEqual(pdfFile.name);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C260109] Should display tooltip for folder\'s name', () => {
|
||||||
|
expect(contentServicesPage.getContentList().getTooltip(folderName)).toEqual(folderName);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C260119] Should have a specific thumbnail for folders', async (done) => {
|
||||||
|
const folderIconUrl = await contentServicesPage.getRowIconImageUrl(folderName);
|
||||||
|
expect(folderIconUrl).toContain('/assets/images/ft_ic_folder.svg');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C280066] Should have a specific thumbnail PDF files', async (done) => {
|
||||||
|
const fileIconUrl = await contentServicesPage.getRowIconImageUrl(pdfFile.name);
|
||||||
|
expect(fileIconUrl).toContain('/assets/images/ft_ic_pdf.svg');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C280067] Should have a specific thumbnail DOCX files', async (done) => {
|
||||||
|
const fileIconUrl = await contentServicesPage.getRowIconImageUrl(docxFile.name);
|
||||||
|
expect(fileIconUrl).toContain('/assets/images/ft_ic_ms_word.svg');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C280068] Should have a specific thumbnail files', async (done) => {
|
||||||
|
const fileIconUrl = await contentServicesPage.getRowIconImageUrl(testFile.name);
|
||||||
|
expect(fileIconUrl).toContain('/assets/images/ft_ic_document.svg');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C274701] Should be able to enable thumbnails', async (done) => {
|
||||||
|
contentServicesPage.enableThumbnails();
|
||||||
|
contentServicesPage.checkAcsContainer();
|
||||||
|
const fileIconUrl = await contentServicesPage.getRowIconImageUrl(pdfFile.name);
|
||||||
|
expect(fileIconUrl).toContain(`/versions/1/nodes/${filePdfNode.entry.id}/renditions`);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
@@ -98,34 +98,42 @@ describe('Lock File', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async (done) => {
|
||||||
const pngUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileModel.location, pngFileModel.name, documentLibrary);
|
try {
|
||||||
|
const pngUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileModel.location, pngFileModel.name, documentLibrary);
|
||||||
|
nodeId = pngUploadedFile.entry.id;
|
||||||
|
await loginPage.loginToContentServicesUsingUserModel(adminUser);
|
||||||
|
await navigationBarPage.openContentServicesFolder(documentLibrary);
|
||||||
|
|
||||||
nodeId = pngUploadedFile.entry.id;
|
contentServices.waitForTableBody();
|
||||||
|
} catch (error) {
|
||||||
loginPage.loginToContentServicesUsingUserModel(adminUser);
|
|
||||||
|
|
||||||
await navigationBarPage.openContentServicesFolder(documentLibrary);
|
|
||||||
|
|
||||||
contentServices.waitForTableBody();
|
|
||||||
|
|
||||||
|
}
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(async (done) => {
|
afterEach(async (done) => {
|
||||||
await this.alfrescoJsApi.login(adminUser.id, adminUser.password);
|
try {
|
||||||
|
await this.alfrescoJsApi.login(adminUser.id, adminUser.password);
|
||||||
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, nodeId);
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, nodeId);
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
|
||||||
|
}
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async (done) => {
|
||||||
await this.alfrescoJsApi.login(adminUser.id, adminUser.password);
|
try {
|
||||||
|
await this.alfrescoJsApi.login(adminUser.id, adminUser.password);
|
||||||
|
|
||||||
await this.alfrescoJsApi.core.nodesApi.unlockNode(lockedFileNodeId);
|
await this.alfrescoJsApi.core.nodesApi.unlockNode(lockedFileNodeId);
|
||||||
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, lockedFileNodeId);
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, lockedFileNodeId);
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
|
||||||
|
}
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -181,9 +189,9 @@ describe('Lock File', () => {
|
|||||||
|
|
||||||
nodeId = pngUploadedFile.entry.id;
|
nodeId = pngUploadedFile.entry.id;
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(managerUser);
|
await loginPage.loginToContentServicesUsingUserModel(managerUser);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(documentLibrary);
|
await navigationBarPage.openContentServicesFolder(documentLibrary);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
@@ -191,23 +199,24 @@ describe('Lock File', () => {
|
|||||||
afterEach(async (done) => {
|
afterEach(async (done) => {
|
||||||
await this.alfrescoJsApi.login(adminUser.id, adminUser.password);
|
await this.alfrescoJsApi.login(adminUser.id, adminUser.password);
|
||||||
|
|
||||||
await this.alfrescoJsApi.core.nodesApi.unlockNode(nodeId);
|
try {
|
||||||
|
await this.alfrescoJsApi.core.nodesApi.unlockNode(nodeId);
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, nodeId);
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, nodeId);
|
||||||
|
} catch (error) {
|
||||||
|
}
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286610] Should not be able to delete a locked file', async () => {
|
it('[C286610] Should not be able to delete a locked file', async () => {
|
||||||
await contentServices.lockContent(pngFileModel.name);
|
contentServices.lockContent(pngFileModel.name);
|
||||||
|
|
||||||
await lockFilePage.checkLockFileCheckboxIsDisplayed();
|
lockFilePage.checkLockFileCheckboxIsDisplayed();
|
||||||
await lockFilePage.clickLockFileCheckbox();
|
lockFilePage.clickLockFileCheckbox();
|
||||||
await lockFilePage.clickSaveButton();
|
lockFilePage.clickSaveButton();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await this.alfrescoJsApi.core.nodesApi.deleteNode(nodeId);
|
await this.alfrescoJsApi.core.nodesApi.deleteNode(nodeId);
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
expect(error.status).toEqual(409);
|
expect(error.status).toEqual(409);
|
||||||
}
|
}
|
||||||
@@ -215,11 +224,11 @@ describe('Lock File', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C286611] Should not be able to rename a locked file', async () => {
|
it('[C286611] Should not be able to rename a locked file', async () => {
|
||||||
await contentServices.lockContent(pngFileModel.name);
|
contentServices.lockContent(pngFileModel.name);
|
||||||
|
|
||||||
await lockFilePage.checkLockFileCheckboxIsDisplayed();
|
lockFilePage.checkLockFileCheckboxIsDisplayed();
|
||||||
await lockFilePage.clickLockFileCheckbox();
|
lockFilePage.clickLockFileCheckbox();
|
||||||
await lockFilePage.clickSaveButton();
|
lockFilePage.clickSaveButton();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await this.alfrescoJsApi.core.nodesApi.updateNode(nodeId, { name: 'My new name' });
|
await this.alfrescoJsApi.core.nodesApi.updateNode(nodeId, { name: 'My new name' });
|
||||||
@@ -231,11 +240,11 @@ describe('Lock File', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C286612] Should not be able to move a locked file', async () => {
|
it('[C286612] Should not be able to move a locked file', async () => {
|
||||||
await contentServices.lockContent(pngFileModel.name);
|
contentServices.lockContent(pngFileModel.name);
|
||||||
|
|
||||||
await lockFilePage.checkLockFileCheckboxIsDisplayed();
|
lockFilePage.checkLockFileCheckboxIsDisplayed();
|
||||||
await lockFilePage.clickLockFileCheckbox();
|
lockFilePage.clickLockFileCheckbox();
|
||||||
await lockFilePage.clickSaveButton();
|
lockFilePage.clickSaveButton();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await this.alfrescoJsApi.core.nodesApi.moveNode(nodeId, { targetParentId: '-my-' });
|
await this.alfrescoJsApi.core.nodesApi.moveNode(nodeId, { targetParentId: '-my-' });
|
||||||
@@ -246,11 +255,11 @@ describe('Lock File', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C286613] Should not be able to update a new version on a locked file', async () => {
|
it('[C286613] Should not be able to update a new version on a locked file', async () => {
|
||||||
await contentServices.lockContent(pngFileModel.name);
|
contentServices.lockContent(pngFileModel.name);
|
||||||
|
|
||||||
await lockFilePage.checkLockFileCheckboxIsDisplayed();
|
lockFilePage.checkLockFileCheckboxIsDisplayed();
|
||||||
await lockFilePage.clickLockFileCheckbox();
|
lockFilePage.clickLockFileCheckbox();
|
||||||
await lockFilePage.clickSaveButton();
|
lockFilePage.clickSaveButton();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await this.alfrescoJsApi.core.nodesApi.updateNodeContent(nodeId, 'NEW FILE CONTENT');
|
await this.alfrescoJsApi.core.nodesApi.updateNodeContent(nodeId, 'NEW FILE CONTENT');
|
||||||
@@ -267,73 +276,85 @@ describe('Lock File', () => {
|
|||||||
let pngFileToBeLocked;
|
let pngFileToBeLocked;
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
pngFileToBeLocked = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileToLock.location, pngFileToLock.name, documentLibrary);
|
try {
|
||||||
|
pngFileToBeLocked = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileToLock.location, pngFileToLock.name, documentLibrary);
|
||||||
lockedFileNodeId = pngFileToBeLocked.entry.id;
|
lockedFileNodeId = pngFileToBeLocked.entry.id;
|
||||||
|
} catch (error) {
|
||||||
|
}
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async (done) => {
|
||||||
const pngUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileModel.location, pngFileModel.name, documentLibrary);
|
try {
|
||||||
|
const pngUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileModel.location, pngFileModel.name, documentLibrary);
|
||||||
nodeId = pngUploadedFile.entry.id;
|
nodeId = pngUploadedFile.entry.id;
|
||||||
|
await loginPage.loginToContentServicesUsingUserModel(adminUser);
|
||||||
loginPage.loginToContentServicesUsingUserModel(adminUser);
|
navigationBarPage.openContentServicesFolder(documentLibrary);
|
||||||
|
} catch (error) {
|
||||||
navigationBarPage.openContentServicesFolder(documentLibrary);
|
}
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(async (done) => {
|
afterEach(async (done) => {
|
||||||
await this.alfrescoJsApi.login(adminUser.id, adminUser.password);
|
await this.alfrescoJsApi.login(adminUser.id, adminUser.password);
|
||||||
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, nodeId);
|
try {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, nodeId);
|
||||||
|
} catch (error) {
|
||||||
|
}
|
||||||
|
|
||||||
done();
|
done();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286614] Owner of the locked file should be able to rename if Allow owner to modify is checked', async () => {
|
it('[C286614] Owner of the locked file should be able to rename if Allow owner to modify is checked', async () => {
|
||||||
await contentServices.lockContent(pngFileModel.name);
|
contentServices.lockContent(pngFileModel.name);
|
||||||
|
|
||||||
await lockFilePage.checkLockFileCheckboxIsDisplayed();
|
lockFilePage.checkLockFileCheckboxIsDisplayed();
|
||||||
await lockFilePage.clickLockFileCheckbox();
|
lockFilePage.clickLockFileCheckbox();
|
||||||
await lockFilePage.clickAllowOwnerCheckbox();
|
lockFilePage.clickAllowOwnerCheckbox();
|
||||||
await lockFilePage.clickSaveButton();
|
lockFilePage.clickSaveButton();
|
||||||
|
|
||||||
const response = await this.alfrescoJsApi.core.nodesApi.updateNode(nodeId, { name: 'My new name' });
|
try {
|
||||||
|
const response = await this.alfrescoJsApi.core.nodesApi.updateNode(nodeId, { name: 'My new name' });
|
||||||
|
expect(response.entry.name).toEqual('My new name');
|
||||||
|
} catch (error) {
|
||||||
|
}
|
||||||
|
|
||||||
expect(response.entry.name).toEqual('My new name');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286615] Owner of the locked file should be able to update a new version if Allow owner to modify is checked', async () => {
|
it('[C286615] Owner of the locked file should be able to update a new version if Allow owner to modify is checked', async () => {
|
||||||
await contentServices.lockContent(pngFileModel.name);
|
contentServices.lockContent(pngFileModel.name);
|
||||||
|
|
||||||
await lockFilePage.checkLockFileCheckboxIsDisplayed();
|
lockFilePage.checkLockFileCheckboxIsDisplayed();
|
||||||
await lockFilePage.clickLockFileCheckbox();
|
lockFilePage.clickLockFileCheckbox();
|
||||||
await lockFilePage.clickAllowOwnerCheckbox();
|
lockFilePage.clickAllowOwnerCheckbox();
|
||||||
await lockFilePage.clickSaveButton();
|
lockFilePage.clickSaveButton();
|
||||||
|
|
||||||
const response = await this.alfrescoJsApi.core.nodesApi.updateNodeContent(nodeId, 'NEW FILE CONTENT');
|
try {
|
||||||
|
const response = await this.alfrescoJsApi.core.nodesApi.updateNodeContent(nodeId, 'NEW FILE CONTENT');
|
||||||
|
expect(response.entry.modifiedAt).toBeGreaterThan(response.entry.createdAt);
|
||||||
|
} catch (error) {
|
||||||
|
}
|
||||||
|
|
||||||
expect(response.entry.modifiedAt).toBeGreaterThan(response.entry.createdAt);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286616] Owner of the locked file should be able to move if Allow owner to modify is checked', async () => {
|
it('[C286616] Owner of the locked file should be able to move if Allow owner to modify is checked', async () => {
|
||||||
await contentServices.lockContent(pngFileModel.name);
|
contentServices.lockContent(pngFileModel.name);
|
||||||
|
|
||||||
await lockFilePage.checkLockFileCheckboxIsDisplayed();
|
lockFilePage.checkLockFileCheckboxIsDisplayed();
|
||||||
await lockFilePage.clickLockFileCheckbox();
|
lockFilePage.clickLockFileCheckbox();
|
||||||
await lockFilePage.clickAllowOwnerCheckbox();
|
lockFilePage.clickAllowOwnerCheckbox();
|
||||||
await lockFilePage.clickSaveButton();
|
lockFilePage.clickSaveButton();
|
||||||
|
|
||||||
await this.alfrescoJsApi.core.nodesApi.moveNode(nodeId, { targetParentId: '-my-' });
|
try {
|
||||||
|
await this.alfrescoJsApi.core.nodesApi.moveNode(nodeId, { targetParentId: '-my-' });
|
||||||
|
|
||||||
const movedFile = await this.alfrescoJsApi.core.nodesApi.getNode(nodeId);
|
const movedFile = await this.alfrescoJsApi.core.nodesApi.getNode(nodeId);
|
||||||
|
|
||||||
expect(movedFile.entry.parentId).not.toEqual(documentLibrary);
|
expect(movedFile.entry.parentId).not.toEqual(documentLibrary);
|
||||||
|
} catch (error) {
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ describe('Aspect oriented config', () => {
|
|||||||
|
|
||||||
const uploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileModel.location, pngFileModel.name, '-my-');
|
const uploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileModel.location, pngFileModel.name, '-my-');
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
const aspects = await this.alfrescoJsApi.core.nodesApi.getNode(uploadedFile.entry.id);
|
const aspects = await this.alfrescoJsApi.core.nodesApi.getNode(uploadedFile.entry.id);
|
||||||
|
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ describe('CardView Component - properties', () => {
|
|||||||
|
|
||||||
pngFileModel.update(pdfUploadedFile.entry);
|
pngFileModel.update(pdfUploadedFile.entry);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
navigationBarPage.clickContentServicesButton();
|
navigationBarPage.clickContentServicesButton();
|
||||||
contentServicesPage.waitForTableBody();
|
contentServicesPage.waitForTableBody();
|
||||||
|
|||||||
@@ -15,9 +15,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { browser } from 'protractor';
|
import { LoginPage, LocalStorageUtil, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
import { LoginPage, LocalStorageUtil } from '@alfresco/adf-testing';
|
|
||||||
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
import { ViewerPage } from '../../pages/adf/viewerPage';
|
import { ViewerPage } from '../../pages/adf/viewerPage';
|
||||||
import { MetadataViewPage } from '../../pages/adf/metadataViewPage';
|
import { MetadataViewPage } from '../../pages/adf/metadataViewPage';
|
||||||
@@ -65,8 +63,6 @@ describe('Metadata component', () => {
|
|||||||
|
|
||||||
const uploadActions = new UploadActions();
|
const uploadActions = new UploadActions();
|
||||||
|
|
||||||
let fileUrl;
|
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
|
|
||||||
this.alfrescoJsApi = new AlfrescoApi({
|
this.alfrescoJsApi = new AlfrescoApi({
|
||||||
@@ -86,16 +82,16 @@ describe('Metadata component', () => {
|
|||||||
|
|
||||||
pngFileModel.update(pngUploadedFile.entry);
|
pngFileModel.update(pngUploadedFile.entry);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
||||||
navigationBarPage.clickContentServicesButton();
|
|
||||||
contentServicesPage.waitForTableBody();
|
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Viewer Metadata', () => {
|
describe('Viewer Metadata', () => {
|
||||||
|
|
||||||
beforeAll(async() => {
|
beforeAll(async () => {
|
||||||
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
navigationBarPage.clickContentServicesButton();
|
||||||
|
contentServicesPage.waitForTableBody();
|
||||||
|
|
||||||
await LocalStorageUtil.setConfigField('content-metadata', JSON.stringify({
|
await LocalStorageUtil.setConfigField('content-metadata', JSON.stringify({
|
||||||
presets: {
|
presets: {
|
||||||
default: {
|
default: {
|
||||||
@@ -108,7 +104,6 @@ describe('Metadata component', () => {
|
|||||||
beforeEach(async (done) => {
|
beforeEach(async (done) => {
|
||||||
viewerPage.viewFile(pngFileModel.name);
|
viewerPage.viewFile(pngFileModel.name);
|
||||||
viewerPage.checkFileIsLoaded();
|
viewerPage.checkFileIsLoaded();
|
||||||
fileUrl = await browser.getCurrentUrl();
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -171,90 +166,56 @@ describe('Metadata component', () => {
|
|||||||
|
|
||||||
expect(viewerPage.getActiveTab()).toEqual(METADATA.PROPERTY_TAB);
|
expect(viewerPage.getActiveTab()).toEqual(METADATA.PROPERTY_TAB);
|
||||||
|
|
||||||
browser.controlFlow().execute(async () => {
|
metadataViewPage.editIconClick();
|
||||||
await metadataViewPage.editIconClick();
|
metadataViewPage.editPropertyIconIsDisplayed('name');
|
||||||
metadataViewPage.editPropertyIconIsDisplayed('name');
|
metadataViewPage.editPropertyIconIsDisplayed('properties.cm:title');
|
||||||
metadataViewPage.editPropertyIconIsDisplayed('properties.cm:title');
|
metadataViewPage.editPropertyIconIsDisplayed('properties.cm:description');
|
||||||
metadataViewPage.editPropertyIconIsDisplayed('properties.cm:description');
|
|
||||||
|
|
||||||
expect(metadataViewPage.getPropertyIconTooltip('name')).toEqual('Edit');
|
expect(metadataViewPage.getPropertyIconTooltip('name')).toEqual('Edit');
|
||||||
expect(metadataViewPage.getPropertyIconTooltip('properties.cm:title')).toEqual('Edit');
|
expect(metadataViewPage.getPropertyIconTooltip('properties.cm:title')).toEqual('Edit');
|
||||||
expect(metadataViewPage.getPropertyIconTooltip('properties.cm:description')).toEqual('Edit');
|
expect(metadataViewPage.getPropertyIconTooltip('properties.cm:description')).toEqual('Edit');
|
||||||
|
|
||||||
metadataViewPage.clickEditPropertyIcons('name');
|
metadataViewPage.clickEditPropertyIcons('name');
|
||||||
metadataViewPage.updatePropertyIconIsDisplayed('name');
|
metadataViewPage.updatePropertyIconIsDisplayed('name');
|
||||||
metadataViewPage.clearPropertyIconIsDisplayed('name');
|
metadataViewPage.clearPropertyIconIsDisplayed('name');
|
||||||
|
|
||||||
metadataViewPage.enterPropertyText('name', 'exampleText');
|
metadataViewPage.enterPropertyText('name', 'exampleText');
|
||||||
await metadataViewPage.clickClearPropertyIcon('name');
|
metadataViewPage.clickClearPropertyIcon('name');
|
||||||
expect(metadataViewPage.getPropertyText('name')).toEqual(resources.Files.ADF_DOCUMENTS.PNG.file_name);
|
expect(metadataViewPage.getPropertyText('name')).toEqual(resources.Files.ADF_DOCUMENTS.PNG.file_name);
|
||||||
|
|
||||||
metadataViewPage.clickEditPropertyIcons('name');
|
metadataViewPage.clickEditPropertyIcons('name');
|
||||||
metadataViewPage.enterPropertyText('name', 'exampleText.png');
|
metadataViewPage.enterPropertyText('name', 'exampleText.png');
|
||||||
await metadataViewPage.clickUpdatePropertyIcon('name');
|
metadataViewPage.clickUpdatePropertyIcon('name');
|
||||||
expect(metadataViewPage.getPropertyText('name')).toEqual('exampleText.png');
|
expect(metadataViewPage.getPropertyText('name')).toEqual('exampleText.png');
|
||||||
|
|
||||||
metadataViewPage.clickEditPropertyIcons('properties.cm:title');
|
metadataViewPage.clickEditPropertyIcons('properties.cm:title');
|
||||||
metadataViewPage.enterPropertyText('properties.cm:title', 'example title');
|
metadataViewPage.enterPropertyText('properties.cm:title', 'example title');
|
||||||
await metadataViewPage.clickUpdatePropertyIcon('properties.cm:title');
|
metadataViewPage.clickUpdatePropertyIcon('properties.cm:title');
|
||||||
expect(metadataViewPage.getPropertyText('properties.cm:title')).toEqual('example title');
|
expect(metadataViewPage.getPropertyText('properties.cm:title')).toEqual('example title');
|
||||||
|
|
||||||
metadataViewPage.clickEditPropertyIcons('properties.cm:description');
|
metadataViewPage.clickEditPropertyIcons('properties.cm:description');
|
||||||
metadataViewPage.enterDescriptionText('example description');
|
metadataViewPage.enterDescriptionText('example description');
|
||||||
await metadataViewPage.clickUpdatePropertyIcon('properties.cm:description');
|
metadataViewPage.clickUpdatePropertyIcon('properties.cm:description');
|
||||||
expect(metadataViewPage.getPropertyText('properties.cm:description')).toEqual('example description');
|
expect(metadataViewPage.getPropertyText('properties.cm:description')).toEqual('example description');
|
||||||
|
|
||||||
await viewerPage.clickCloseButton();
|
viewerPage.clickCloseButton();
|
||||||
contentServicesPage.waitForTableBody();
|
contentServicesPage.waitForTableBody();
|
||||||
|
|
||||||
viewerPage.viewFile('exampleText.png');
|
|
||||||
viewerPage.clickInfoButton();
|
|
||||||
viewerPage.checkInfoSideBarIsDisplayed();
|
|
||||||
metadataViewPage.clickOnPropertiesTab();
|
|
||||||
await metadataViewPage.editIconIsDisplayed();
|
|
||||||
|
|
||||||
expect(metadataViewPage.getPropertyText('name')).toEqual('exampleText.png');
|
|
||||||
expect(metadataViewPage.getPropertyText('properties.cm:title')).toEqual('example title');
|
|
||||||
expect(metadataViewPage.getPropertyText('properties.cm:description')).toEqual('example description');
|
|
||||||
|
|
||||||
await metadataViewPage.editIconClick();
|
|
||||||
metadataViewPage.clickEditPropertyIcons('name');
|
|
||||||
metadataViewPage.enterPropertyText('name', resources.Files.ADF_DOCUMENTS.PNG.file_name);
|
|
||||||
await metadataViewPage.clickUpdatePropertyIcon('name');
|
|
||||||
expect(metadataViewPage.getPropertyText('name')).toEqual(resources.Files.ADF_DOCUMENTS.PNG.file_name);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C279960] Should show the last username modifier when modify a File', () => {
|
|
||||||
loginPage.loginToContentServices(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
|
||||||
|
|
||||||
browser.get(fileUrl);
|
|
||||||
|
|
||||||
|
viewerPage.viewFile('exampleText.png');
|
||||||
viewerPage.clickInfoButton();
|
viewerPage.clickInfoButton();
|
||||||
viewerPage.checkInfoSideBarIsDisplayed();
|
viewerPage.checkInfoSideBarIsDisplayed();
|
||||||
metadataViewPage.clickOnPropertiesTab();
|
metadataViewPage.clickOnPropertiesTab();
|
||||||
metadataViewPage.editIconIsDisplayed();
|
metadataViewPage.editIconIsDisplayed();
|
||||||
|
|
||||||
expect(viewerPage.getActiveTab()).toEqual(METADATA.PROPERTY_TAB);
|
expect(metadataViewPage.getPropertyText('name')).toEqual('exampleText.png');
|
||||||
|
expect(metadataViewPage.getPropertyText('properties.cm:title')).toEqual('example title');
|
||||||
|
expect(metadataViewPage.getPropertyText('properties.cm:description')).toEqual('example description');
|
||||||
|
|
||||||
browser.controlFlow().execute(async () => {
|
metadataViewPage.editIconClick();
|
||||||
await metadataViewPage.editIconClick();
|
metadataViewPage.clickEditPropertyIcons('name');
|
||||||
metadataViewPage.clickEditPropertyIcons('properties.cm:description');
|
metadataViewPage.enterPropertyText('name', resources.Files.ADF_DOCUMENTS.PNG.file_name);
|
||||||
metadataViewPage.enterDescriptionText('check author example description');
|
metadataViewPage.clickUpdatePropertyIcon('name');
|
||||||
await metadataViewPage.clickUpdatePropertyIcon('properties.cm:description');
|
expect(metadataViewPage.getPropertyText('name')).toEqual(resources.Files.ADF_DOCUMENTS.PNG.file_name);
|
||||||
expect(metadataViewPage.getPropertyText('properties.cm:description')).toEqual('check author example description');
|
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
||||||
navigationBarPage.clickContentServicesButton();
|
|
||||||
|
|
||||||
await browser.get(fileUrl);
|
|
||||||
|
|
||||||
viewerPage.clickInfoButton();
|
|
||||||
viewerPage.checkInfoSideBarIsDisplayed();
|
|
||||||
metadataViewPage.clickOnPropertiesTab();
|
|
||||||
|
|
||||||
expect(metadataViewPage.getPropertyText('modifiedByUser.displayName')).toEqual('Administrator');
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260181] Should be possible edit all the metadata aspect', () => {
|
it('[C260181] Should be possible edit all the metadata aspect', () => {
|
||||||
@@ -269,24 +230,22 @@ describe('Metadata component', () => {
|
|||||||
|
|
||||||
metadataViewPage.clickMetadataGroup('EXIF');
|
metadataViewPage.clickMetadataGroup('EXIF');
|
||||||
|
|
||||||
browser.controlFlow().execute(async () => {
|
metadataViewPage.editIconClick();
|
||||||
await metadataViewPage.editIconClick();
|
|
||||||
|
|
||||||
metadataViewPage.clickEditPropertyIcons('properties.exif:software');
|
metadataViewPage.clickEditPropertyIcons('properties.exif:software');
|
||||||
metadataViewPage.enterPropertyText('properties.exif:software', 'test custom text software');
|
metadataViewPage.enterPropertyText('properties.exif:software', 'test custom text software');
|
||||||
await metadataViewPage.clickUpdatePropertyIcon('properties.exif:software');
|
metadataViewPage.clickUpdatePropertyIcon('properties.exif:software');
|
||||||
expect(metadataViewPage.getPropertyText('properties.exif:software')).toEqual('test custom text software');
|
expect(metadataViewPage.getPropertyText('properties.exif:software')).toEqual('test custom text software');
|
||||||
|
|
||||||
metadataViewPage.clickEditPropertyIcons('properties.exif:isoSpeedRatings');
|
metadataViewPage.clickEditPropertyIcons('properties.exif:isoSpeedRatings');
|
||||||
metadataViewPage.enterPropertyText('properties.exif:isoSpeedRatings', 'test custom text isoSpeedRatings');
|
metadataViewPage.enterPropertyText('properties.exif:isoSpeedRatings', 'test custom text isoSpeedRatings');
|
||||||
await metadataViewPage.clickUpdatePropertyIcon('properties.exif:isoSpeedRatings');
|
metadataViewPage.clickUpdatePropertyIcon('properties.exif:isoSpeedRatings');
|
||||||
expect(metadataViewPage.getPropertyText('properties.exif:isoSpeedRatings')).toEqual('test custom text isoSpeedRatings');
|
expect(metadataViewPage.getPropertyText('properties.exif:isoSpeedRatings')).toEqual('test custom text isoSpeedRatings');
|
||||||
|
|
||||||
metadataViewPage.clickEditPropertyIcons('properties.exif:fNumber');
|
metadataViewPage.clickEditPropertyIcons('properties.exif:fNumber');
|
||||||
metadataViewPage.enterPropertyText('properties.exif:fNumber', 22);
|
metadataViewPage.enterPropertyText('properties.exif:fNumber', 22);
|
||||||
await metadataViewPage.clickUpdatePropertyIcon('properties.exif:fNumber');
|
metadataViewPage.clickUpdatePropertyIcon('properties.exif:fNumber');
|
||||||
expect(metadataViewPage.getPropertyText('properties.exif:fNumber')).toEqual('22');
|
expect(metadataViewPage.getPropertyText('properties.exif:fNumber')).toEqual('22');
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -295,11 +254,11 @@ describe('Metadata component', () => {
|
|||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
await uploadActions.createFolder(this.alfrescoJsApi, folderName, '-my-');
|
await uploadActions.createFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
await browser.get(TestConfig.adf.url + '/files');
|
navigationBarPage.clickContentServicesButton();
|
||||||
|
contentServicesPage.waitForTableBody();
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -308,31 +267,65 @@ describe('Metadata component', () => {
|
|||||||
|
|
||||||
expect(metadataViewPage.getPropertyText('name')).toEqual(folderName);
|
expect(metadataViewPage.getPropertyText('name')).toEqual(folderName);
|
||||||
expect(metadataViewPage.getPropertyText('createdByUser.displayName')).toEqual(acsUser.firstName + ' ' + acsUser.lastName);
|
expect(metadataViewPage.getPropertyText('createdByUser.displayName')).toEqual(acsUser.firstName + ' ' + acsUser.lastName);
|
||||||
|
BrowserActions.closeMenuAndDialogs();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C261158] Should be possible edit the metadata When the node is a Folder', () => {
|
it('[C261158] Should be possible edit the metadata When the node is a Folder', () => {
|
||||||
contentServicesPage.metadataContent(folderName);
|
contentServicesPage.metadataContent(folderName);
|
||||||
|
|
||||||
browser.controlFlow().execute(async () => {
|
metadataViewPage.editIconClick();
|
||||||
await metadataViewPage.editIconClick();
|
|
||||||
|
|
||||||
metadataViewPage.clickEditPropertyIcons('name');
|
metadataViewPage.clickEditPropertyIcons('name');
|
||||||
metadataViewPage.enterPropertyText('name', 'newnameFolder');
|
metadataViewPage.enterPropertyText('name', 'newnameFolder');
|
||||||
await metadataViewPage.clickClearPropertyIcon('name');
|
metadataViewPage.clickClearPropertyIcon('name');
|
||||||
expect(metadataViewPage.getPropertyText('name')).toEqual(folderName);
|
expect(metadataViewPage.getPropertyText('name')).toEqual(folderName);
|
||||||
|
|
||||||
metadataViewPage.clickEditPropertyIcons('name');
|
metadataViewPage.clickEditPropertyIcons('name');
|
||||||
metadataViewPage.enterPropertyText('name', 'newnameFolder');
|
metadataViewPage.enterPropertyText('name', 'newnameFolder');
|
||||||
await metadataViewPage.clickUpdatePropertyIcon('name');
|
metadataViewPage.clickUpdatePropertyIcon('name');
|
||||||
expect(metadataViewPage.getPropertyText('name')).toEqual('newnameFolder');
|
expect(metadataViewPage.getPropertyText('name')).toEqual('newnameFolder');
|
||||||
|
|
||||||
metadataViewPage.clickEditPropertyIcons('name');
|
metadataViewPage.clickEditPropertyIcons('name');
|
||||||
metadataViewPage.enterPropertyText('name', folderName);
|
metadataViewPage.enterPropertyText('name', folderName);
|
||||||
await metadataViewPage.clickUpdatePropertyIcon('name');
|
metadataViewPage.clickUpdatePropertyIcon('name');
|
||||||
expect(metadataViewPage.getPropertyText('name')).toEqual(folderName);
|
expect(metadataViewPage.getPropertyText('name')).toEqual(folderName);
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('[C279960] Should show the last username modifier when modify a File', async () => {
|
||||||
|
await loginPage.loginToContentServices(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
|
||||||
|
BrowserActions.getUrl(TestConfig.adf.url + `/(overlay:files/${pngFileModel.id}/view)`);
|
||||||
|
|
||||||
|
viewerPage.clickInfoButton();
|
||||||
|
viewerPage.checkInfoSideBarIsDisplayed();
|
||||||
|
metadataViewPage.clickOnPropertiesTab();
|
||||||
|
metadataViewPage.editIconIsDisplayed();
|
||||||
|
|
||||||
|
expect(viewerPage.getActiveTab()).toEqual(METADATA.PROPERTY_TAB);
|
||||||
|
|
||||||
|
metadataViewPage.editIconClick();
|
||||||
|
|
||||||
|
metadataViewPage.clickEditPropertyIcons('properties.cm:description');
|
||||||
|
metadataViewPage.enterDescriptionText('check author example description');
|
||||||
|
metadataViewPage.clickUpdatePropertyIcon('properties.cm:description');
|
||||||
|
expect(metadataViewPage.getPropertyText('properties.cm:description')).toEqual('check author example description');
|
||||||
|
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
navigationBarPage.clickContentServicesButton();
|
||||||
|
|
||||||
|
viewerPage.viewFile(pngFileModel.name);
|
||||||
|
viewerPage.checkFileIsLoaded();
|
||||||
|
|
||||||
|
viewerPage.clickInfoButton();
|
||||||
|
viewerPage.checkInfoSideBarIsDisplayed();
|
||||||
|
metadataViewPage.clickOnPropertiesTab();
|
||||||
|
|
||||||
|
expect(metadataViewPage.getPropertyText('modifiedByUser.displayName')).toEqual('Administrator');
|
||||||
|
|
||||||
|
viewerPage.clickCloseButton();
|
||||||
|
contentServicesPage.waitForTableBody();
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ describe('Notifications Component', () => {
|
|||||||
|
|
||||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
notificationPage.goToNotificationsPage();
|
notificationPage.goToNotificationsPage();
|
||||||
|
|
||||||
@@ -98,6 +98,8 @@ describe('Notifications Component', () => {
|
|||||||
notificationPage.clickActionToggle();
|
notificationPage.clickActionToggle();
|
||||||
notificationPage.clickNotificationButton();
|
notificationPage.clickNotificationButton();
|
||||||
notificationPage.checkNotificationSnackBarIsDisplayedWithMessage('Notification test');
|
notificationPage.checkNotificationSnackBarIsDisplayedWithMessage('Notification test');
|
||||||
|
notificationPage.checkNotificationSnackBarIsNotDisplayed();
|
||||||
|
notificationPage.clickNotificationButton();
|
||||||
notificationPage.clickActionButton();
|
notificationPage.clickActionButton();
|
||||||
notificationPage.checkActionEvent();
|
notificationPage.checkActionEvent();
|
||||||
notificationPage.clickActionToggle();
|
notificationPage.clickActionToggle();
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ import resources = require('../../util/resources');
|
|||||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||||
import { FileModel } from '../../models/ACS/fileModel';
|
import { FileModel } from '../../models/ACS/fileModel';
|
||||||
import { UploadActions } from '../../actions/ACS/upload.actions';
|
import { UploadActions } from '../../actions/ACS/upload.actions';
|
||||||
import { StringUtil } from '@alfresco/adf-testing';
|
import { StringUtil, BrowserActions } from '@alfresco/adf-testing';
|
||||||
import { browser, protractor } from 'protractor';
|
import { browser } from 'protractor';
|
||||||
import { FolderModel } from '../../models/ACS/folderModel';
|
import { FolderModel } from '../../models/ACS/folderModel';
|
||||||
import { ViewerPage } from '../../pages/adf/viewerPage';
|
import { ViewerPage } from '../../pages/adf/viewerPage';
|
||||||
import { NotificationPage } from '../../pages/adf/notificationPage';
|
import { NotificationPage } from '../../pages/adf/notificationPage';
|
||||||
@@ -176,13 +176,12 @@ describe('Permissions Component', function () {
|
|||||||
await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
await folders.forEach(function (folder) {
|
await folders.forEach(function (folder) {
|
||||||
uploadActions.deleteFilesOrFolder(alfrescoJsApi, folder.entry.id);
|
uploadActions.deleteFilesOrFolder(alfrescoJsApi, folder.entry.id);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Inherit and assigning permissions', function () {
|
describe('Inherit and assigning permissions', () => {
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async (done) => {
|
||||||
|
|
||||||
@@ -190,7 +189,7 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
file = await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, fileModel.name, '-my-');
|
file = await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, fileModel.name, '-my-');
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(fileOwnerUser);
|
await loginPage.loginToContentServicesUsingUserModel(fileOwnerUser);
|
||||||
|
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
contentServicesPage.checkContentIsDisplayed(fileModel.name);
|
contentServicesPage.checkContentIsDisplayed(fileModel.name);
|
||||||
@@ -206,27 +205,25 @@ describe('Permissions Component', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterEach(async (done) => {
|
afterEach(async (done) => {
|
||||||
|
try {
|
||||||
await uploadActions.deleteFilesOrFolder(alfrescoJsApi, file.entry.id);
|
await uploadActions.deleteFilesOrFolder(alfrescoJsApi, file.entry.id);
|
||||||
|
} catch (error) {
|
||||||
|
}
|
||||||
|
|
||||||
done();
|
done();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C268974] Inherit Permission', () => {
|
it('[C268974] Inherit Permission', () => {
|
||||||
|
|
||||||
permissionsPage.checkPermissionInheritedButtonIsDisplayed();
|
permissionsPage.checkPermissionInheritedButtonIsDisplayed();
|
||||||
|
|
||||||
expect(permissionsPage.getPermissionInheritedButtonText()).toBe('Permission Inherited');
|
expect(permissionsPage.getPermissionInheritedButtonText()).toBe('Permission Inherited');
|
||||||
|
|
||||||
permissionsPage.checkPermissionsDatatableIsDisplayed();
|
permissionsPage.checkPermissionsDatatableIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.clickPermissionInheritedButton();
|
permissionsPage.clickPermissionInheritedButton();
|
||||||
|
|
||||||
expect(permissionsPage.getPermissionInheritedButtonText()).toBe('Inherit Permission');
|
expect(permissionsPage.getPermissionInheritedButtonText()).toBe('Inherit Permission');
|
||||||
|
|
||||||
permissionsPage.checkNoPermissionsIsDisplayed();
|
permissionsPage.checkNoPermissionsIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.clickPermissionInheritedButton();
|
permissionsPage.clickPermissionInheritedButton();
|
||||||
|
|
||||||
expect(permissionsPage.getPermissionInheritedButtonText()).toBe('Permission Inherited');
|
expect(permissionsPage.getPermissionInheritedButtonText()).toBe('Permission Inherited');
|
||||||
@@ -236,66 +233,43 @@ describe('Permissions Component', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C286272] Should be able to see results when searching for a user', () => {
|
it('[C286272] Should be able to see results when searching for a user', () => {
|
||||||
|
|
||||||
permissionsPage.checkAddPermissionButtonIsDisplayed();
|
permissionsPage.checkAddPermissionButtonIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.clickAddPermissionButton();
|
permissionsPage.clickAddPermissionButton();
|
||||||
|
|
||||||
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.checkSearchUserInputIsDisplayed();
|
permissionsPage.checkSearchUserInputIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.searchUserOrGroup('a');
|
permissionsPage.searchUserOrGroup('a');
|
||||||
|
|
||||||
permissionsPage.checkResultListIsDisplayed();
|
permissionsPage.checkResultListIsDisplayed();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C276979] Should be able to give permissions to a group of people', () => {
|
it('[C276979] Should be able to give permissions to a group of people', () => {
|
||||||
|
|
||||||
permissionsPage.checkAddPermissionButtonIsDisplayed();
|
permissionsPage.checkAddPermissionButtonIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.clickAddPermissionButton();
|
permissionsPage.clickAddPermissionButton();
|
||||||
|
|
||||||
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.checkSearchUserInputIsDisplayed();
|
permissionsPage.checkSearchUserInputIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.searchUserOrGroup('GROUP_' + groupBody.id);
|
permissionsPage.searchUserOrGroup('GROUP_' + groupBody.id);
|
||||||
|
|
||||||
permissionsPage.clickUserOrGroup('GROUP_' + groupBody.id);
|
permissionsPage.clickUserOrGroup('GROUP_' + groupBody.id);
|
||||||
|
|
||||||
permissionsPage.checkUserOrGroupIsAdded('GROUP_' + groupBody.id);
|
permissionsPage.checkUserOrGroupIsAdded('GROUP_' + groupBody.id);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C277100] Should display EVERYONE group in the search result set', () => {
|
it('[C277100] Should display EVERYONE group in the search result set', () => {
|
||||||
|
|
||||||
permissionsPage.checkAddPermissionButtonIsDisplayed();
|
permissionsPage.checkAddPermissionButtonIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.clickAddPermissionButton();
|
permissionsPage.clickAddPermissionButton();
|
||||||
|
|
||||||
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.checkSearchUserInputIsDisplayed();
|
permissionsPage.checkSearchUserInputIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.searchUserOrGroup(filePermissionUser.getId());
|
permissionsPage.searchUserOrGroup(filePermissionUser.getId());
|
||||||
|
|
||||||
permissionsPage.checkResultListIsDisplayed();
|
permissionsPage.checkResultListIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.checkUserOrGroupIsDisplayed('EVERYONE');
|
permissionsPage.checkUserOrGroupIsDisplayed('EVERYONE');
|
||||||
|
|
||||||
permissionsPage.searchUserOrGroup('somerandomtext');
|
permissionsPage.searchUserOrGroup('somerandomtext');
|
||||||
|
|
||||||
permissionsPage.checkResultListIsDisplayed();
|
permissionsPage.checkResultListIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.checkUserOrGroupIsDisplayed('EVERYONE');
|
permissionsPage.checkUserOrGroupIsDisplayed('EVERYONE');
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Changing and duplicate Permissions', function () {
|
describe('Changing and duplicate Permissions', () => {
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async (done) => {
|
||||||
|
|
||||||
@@ -303,12 +277,10 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
file = await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, fileModel.name, '-my-');
|
file = await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, fileModel.name, '-my-');
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(fileOwnerUser);
|
await loginPage.loginToContentServicesUsingUserModel(fileOwnerUser);
|
||||||
|
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
contentServicesPage.checkContentIsDisplayed(fileModel.name);
|
contentServicesPage.checkContentIsDisplayed(fileModel.name);
|
||||||
|
|
||||||
contentServicesPage.checkSelectedSiteIsDisplayed('My files');
|
contentServicesPage.checkSelectedSiteIsDisplayed('My files');
|
||||||
|
|
||||||
contentList.rightClickOnRow(fileModel.name);
|
contentList.rightClickOnRow(fileModel.name);
|
||||||
@@ -316,17 +288,11 @@ describe('Permissions Component', function () {
|
|||||||
contentServicesPage.pressContextMenuActionNamed('Permission');
|
contentServicesPage.pressContextMenuActionNamed('Permission');
|
||||||
|
|
||||||
permissionsPage.checkAddPermissionButtonIsDisplayed();
|
permissionsPage.checkAddPermissionButtonIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.clickAddPermissionButton();
|
permissionsPage.clickAddPermissionButton();
|
||||||
|
|
||||||
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.checkSearchUserInputIsDisplayed();
|
permissionsPage.checkSearchUserInputIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.searchUserOrGroup(filePermissionUser.getId());
|
permissionsPage.searchUserOrGroup(filePermissionUser.getId());
|
||||||
|
|
||||||
permissionsPage.clickUserOrGroup(filePermissionUser.getFirstName());
|
permissionsPage.clickUserOrGroup(filePermissionUser.getFirstName());
|
||||||
|
|
||||||
permissionsPage.checkUserOrGroupIsAdded(filePermissionUser.getId());
|
permissionsPage.checkUserOrGroupIsAdded(filePermissionUser.getId());
|
||||||
|
|
||||||
done();
|
done();
|
||||||
@@ -345,38 +311,30 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Contributor');
|
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Contributor');
|
||||||
|
|
||||||
permissionsPage.clickRoleDropdown();
|
permissionsPage.clickRoleDropdownByUserOrGroupName(filePermissionUser.getId());
|
||||||
|
|
||||||
expect(permissionsPage.getRoleDropdownOptions().count()).toBe(5);
|
expect(permissionsPage.getRoleDropdownOptions().count()).toBe(5);
|
||||||
|
|
||||||
expect(permissionsPage.getRoleDropdownOptions().get(0).getText()).toBe('Contributor');
|
expect(permissionsPage.getRoleDropdownOptions().get(0).getText()).toBe('Contributor');
|
||||||
|
|
||||||
expect(permissionsPage.getRoleDropdownOptions().get(1).getText()).toBe('Collaborator');
|
expect(permissionsPage.getRoleDropdownOptions().get(1).getText()).toBe('Collaborator');
|
||||||
|
|
||||||
expect(permissionsPage.getRoleDropdownOptions().get(2).getText()).toBe('Coordinator');
|
expect(permissionsPage.getRoleDropdownOptions().get(2).getText()).toBe('Coordinator');
|
||||||
|
|
||||||
expect(permissionsPage.getRoleDropdownOptions().get(3).getText()).toBe('Editor');
|
expect(permissionsPage.getRoleDropdownOptions().get(3).getText()).toBe('Editor');
|
||||||
|
|
||||||
expect(permissionsPage.getRoleDropdownOptions().get(4).getText()).toBe('Consumer');
|
expect(permissionsPage.getRoleDropdownOptions().get(4).getText()).toBe('Consumer');
|
||||||
|
|
||||||
permissionsPage.selectOption('Collaborator');
|
permissionsPage.selectOption('Collaborator');
|
||||||
|
|
||||||
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Collaborator');
|
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Collaborator');
|
||||||
|
|
||||||
permissionsPage.clickRoleDropdown();
|
permissionsPage.clickRoleDropdownByUserOrGroupName(filePermissionUser.getId());
|
||||||
|
|
||||||
permissionsPage.selectOption('Coordinator');
|
permissionsPage.selectOption('Coordinator');
|
||||||
|
|
||||||
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Coordinator');
|
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Coordinator');
|
||||||
|
|
||||||
permissionsPage.clickRoleDropdown();
|
permissionsPage.clickRoleDropdownByUserOrGroupName(filePermissionUser.getId());
|
||||||
|
|
||||||
permissionsPage.selectOption('Editor');
|
permissionsPage.selectOption('Editor');
|
||||||
|
|
||||||
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Editor');
|
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Editor');
|
||||||
|
|
||||||
permissionsPage.clickRoleDropdown();
|
permissionsPage.clickRoleDropdownByUserOrGroupName(filePermissionUser.getId());
|
||||||
|
|
||||||
permissionsPage.selectOption('Consumer');
|
permissionsPage.selectOption('Consumer');
|
||||||
|
|
||||||
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Consumer');
|
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Consumer');
|
||||||
@@ -384,17 +342,12 @@ describe('Permissions Component', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C276980] Should not be able to duplicate User or Group to the locally set permissions', () => {
|
it('[C276980] Should not be able to duplicate User or Group to the locally set permissions', () => {
|
||||||
|
|
||||||
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Contributor');
|
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Contributor');
|
||||||
|
|
||||||
permissionsPage.clickAddPermissionButton();
|
permissionsPage.clickAddPermissionButton();
|
||||||
|
|
||||||
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.checkSearchUserInputIsDisplayed();
|
permissionsPage.checkSearchUserInputIsDisplayed();
|
||||||
|
|
||||||
permissionsPage.searchUserOrGroup(filePermissionUser.getId());
|
permissionsPage.searchUserOrGroup(filePermissionUser.getId());
|
||||||
|
|
||||||
permissionsPage.clickUserOrGroup(filePermissionUser.getFirstName());
|
permissionsPage.clickUserOrGroup(filePermissionUser.getFirstName());
|
||||||
|
|
||||||
expect(permissionsPage.getAssignPermissionErrorText()).toBe(duplicateUserPermissionMessage);
|
expect(permissionsPage.getAssignPermissionErrorText()).toBe(duplicateUserPermissionMessage);
|
||||||
@@ -402,7 +355,6 @@ describe('Permissions Component', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C276982] Should be able to remove User or Group from the locally set permissions', () => {
|
it('[C276982] Should be able to remove User or Group from the locally set permissions', () => {
|
||||||
|
|
||||||
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Contributor');
|
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Contributor');
|
||||||
|
|
||||||
permissionsPage.clickDeletePermissionButton();
|
permissionsPage.clickDeletePermissionButton();
|
||||||
@@ -413,11 +365,11 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Role: Consumer, Contributor, Coordinator, Collaborator, Editor, No Permissions', function () {
|
describe('Role: Consumer, Contributor, Coordinator, Collaborator, Editor, No Permissions', () => {
|
||||||
|
|
||||||
it('[C276993] Role Consumer', () => {
|
it('[C276993] Role Consumer', async () => {
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
await loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(roleConsumerFolder.entry.id);
|
navigationBarPage.openContentServicesFolder(roleConsumerFolder.entry.id);
|
||||||
|
|
||||||
@@ -432,7 +384,7 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
contentServicesPage.checkDeleteIsDisabled('RoleConsumer' + fileModel.name);
|
contentServicesPage.checkDeleteIsDisabled('RoleConsumer' + fileModel.name);
|
||||||
|
|
||||||
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
|
BrowserActions.closeMenuAndDialogs();
|
||||||
|
|
||||||
contentList.checkActionMenuIsNotDisplayed();
|
contentList.checkActionMenuIsNotDisplayed();
|
||||||
|
|
||||||
@@ -446,9 +398,9 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C276996] Role Contributor', () => {
|
it('[C276996] Role Contributor', async () => {
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
await loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(roleContributorFolder.entry.id);
|
navigationBarPage.openContentServicesFolder(roleContributorFolder.entry.id);
|
||||||
|
|
||||||
@@ -463,7 +415,7 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
contentServicesPage.checkDeleteIsDisabled('RoleContributor' + fileModel.name);
|
contentServicesPage.checkDeleteIsDisabled('RoleContributor' + fileModel.name);
|
||||||
|
|
||||||
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
|
BrowserActions.closeMenuAndDialogs();
|
||||||
|
|
||||||
contentList.checkActionMenuIsNotDisplayed();
|
contentList.checkActionMenuIsNotDisplayed();
|
||||||
|
|
||||||
@@ -478,9 +430,9 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C277000] Role Editor', () => {
|
it('[C277000] Role Editor', async () => {
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
await loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(roleEditorFolder.entry.id);
|
navigationBarPage.openContentServicesFolder(roleEditorFolder.entry.id);
|
||||||
|
|
||||||
@@ -495,7 +447,7 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
contentServicesPage.checkDeleteIsDisabled('RoleEditor' + fileModel.name);
|
contentServicesPage.checkDeleteIsDisabled('RoleEditor' + fileModel.name);
|
||||||
|
|
||||||
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
|
BrowserActions.closeMenuAndDialogs();
|
||||||
|
|
||||||
browser.controlFlow().execute(async () => {
|
browser.controlFlow().execute(async () => {
|
||||||
|
|
||||||
@@ -525,9 +477,9 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C277003] Role Collaborator', () => {
|
it('[C277003] Role Collaborator', async () => {
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
await loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(roleCollaboratorFolder.entry.id);
|
navigationBarPage.openContentServicesFolder(roleCollaboratorFolder.entry.id);
|
||||||
|
|
||||||
@@ -542,7 +494,7 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
contentServicesPage.checkDeleteIsDisabled('RoleCollaborator' + fileModel.name);
|
contentServicesPage.checkDeleteIsDisabled('RoleCollaborator' + fileModel.name);
|
||||||
|
|
||||||
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
|
BrowserActions.closeMenuAndDialogs();
|
||||||
|
|
||||||
browser.controlFlow().execute(async () => {
|
browser.controlFlow().execute(async () => {
|
||||||
|
|
||||||
@@ -573,9 +525,9 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C277004] Role Coordinator', () => {
|
it('[C277004] Role Coordinator', async () => {
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
await loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(roleCoordinatorFolder.entry.id);
|
navigationBarPage.openContentServicesFolder(roleCoordinatorFolder.entry.id);
|
||||||
|
|
||||||
@@ -618,9 +570,9 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C279881] No Permission User', () => {
|
it('[C279881] No Permission User', async () => {
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
await loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(roleConsumerFolder.entry.id);
|
navigationBarPage.openContentServicesFolder(roleConsumerFolder.entry.id);
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { PermissionsPage } from '../../pages/adf/permissionsPage';
|
import { PermissionsPage } from '../../pages/adf/permissionsPage';
|
||||||
import { LoginPage } from '@alfresco/adf-testing';
|
import { LoginPage, BrowserActions } from '@alfresco/adf-testing';
|
||||||
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
import { AcsUserModel } from '../../models/ACS/acsUserModel';
|
import { AcsUserModel } from '../../models/ACS/acsUserModel';
|
||||||
import TestConfig = require('../../test.config');
|
import TestConfig = require('../../test.config');
|
||||||
@@ -25,7 +25,7 @@ import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
|||||||
import { FileModel } from '../../models/ACS/fileModel';
|
import { FileModel } from '../../models/ACS/fileModel';
|
||||||
import { UploadActions } from '../../actions/ACS/upload.actions';
|
import { UploadActions } from '../../actions/ACS/upload.actions';
|
||||||
import { StringUtil } from '@alfresco/adf-testing';
|
import { StringUtil } from '@alfresco/adf-testing';
|
||||||
import { browser, protractor } from 'protractor';
|
import { browser } from 'protractor';
|
||||||
import { ViewerPage } from '../../pages/adf/viewerPage';
|
import { ViewerPage } from '../../pages/adf/viewerPage';
|
||||||
import { NotificationPage } from '../../pages/adf/notificationPage';
|
import { NotificationPage } from '../../pages/adf/notificationPage';
|
||||||
import CONSTANTS = require('../../util/constants');
|
import CONSTANTS = require('../../util/constants');
|
||||||
@@ -160,12 +160,15 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
describe('Role Site Dropdown', function () {
|
describe('Role Site Dropdown', function () {
|
||||||
|
|
||||||
it('[C277002] Should display the Role Site dropdown', () => {
|
beforeAll(async (done) => {
|
||||||
|
await loginPage.loginToContentServicesUsingUserModel(folderOwnerUser);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(folderOwnerUser);
|
await BrowserActions.getUrl(TestConfig.adf.url + '/files/' + publicSite.entry.guid);
|
||||||
|
|
||||||
browser.get(TestConfig.adf.url + '/files/' + publicSite.entry.guid);
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C277002] Should display the Role Site dropdown', async () => {
|
||||||
contentServicesPage.checkContentIsDisplayed(folderName);
|
contentServicesPage.checkContentIsDisplayed(folderName);
|
||||||
|
|
||||||
contentServicesPage.checkSelectedSiteIsDisplayed('My files');
|
contentServicesPage.checkSelectedSiteIsDisplayed('My files');
|
||||||
@@ -188,7 +191,7 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
expect(permissionsPage.getRoleCellValue(consumerUser.getId())).toEqual('SiteCollaborator');
|
expect(permissionsPage.getRoleCellValue(consumerUser.getId())).toEqual('SiteCollaborator');
|
||||||
|
|
||||||
permissionsPage.clickRoleDropdown();
|
permissionsPage.clickRoleDropdownByUserOrGroupName(consumerUser.getId());
|
||||||
|
|
||||||
expect(permissionsPage.getRoleDropdownOptions().count()).toBe(4);
|
expect(permissionsPage.getRoleDropdownOptions().count()).toBe(4);
|
||||||
expect(permissionsPage.getRoleDropdownOptions().get(0).getText()).toBe('SiteCollaborator');
|
expect(permissionsPage.getRoleDropdownOptions().get(0).getText()).toBe('SiteCollaborator');
|
||||||
@@ -201,9 +204,9 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
describe('Roles: SiteConsumer, SiteCollaborator, SiteContributor, SiteManager', function () {
|
describe('Roles: SiteConsumer, SiteCollaborator, SiteContributor, SiteManager', function () {
|
||||||
|
|
||||||
it('[C276994] Role SiteConsumer', () => {
|
it('[C276994] Role SiteConsumer', async () => {
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(siteConsumerUser);
|
await loginPage.loginToContentServicesUsingUserModel(siteConsumerUser);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
|
navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
|
||||||
|
|
||||||
@@ -218,7 +221,7 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
contentServicesPage.checkDeleteIsDisabled('Site' + fileModel.name);
|
contentServicesPage.checkDeleteIsDisabled('Site' + fileModel.name);
|
||||||
|
|
||||||
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
|
BrowserActions.closeMenuAndDialogs();
|
||||||
|
|
||||||
contentList.checkActionMenuIsNotDisplayed();
|
contentList.checkActionMenuIsNotDisplayed();
|
||||||
|
|
||||||
@@ -232,8 +235,8 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C276997] Role SiteContributor', () => {
|
it('[C276997] Role SiteContributor', async () => {
|
||||||
loginPage.loginToContentServicesUsingUserModel(contributorUser);
|
await loginPage.loginToContentServicesUsingUserModel(contributorUser);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
|
navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
|
||||||
|
|
||||||
@@ -248,7 +251,7 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
contentServicesPage.checkDeleteIsDisabled('Site' + fileModel.name);
|
contentServicesPage.checkDeleteIsDisabled('Site' + fileModel.name);
|
||||||
|
|
||||||
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
|
BrowserActions.closeMenuAndDialogs();
|
||||||
|
|
||||||
contentList.checkActionMenuIsNotDisplayed();
|
contentList.checkActionMenuIsNotDisplayed();
|
||||||
|
|
||||||
@@ -263,9 +266,9 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C277005] Role SiteCollaborator', () => {
|
it('[C277005] Role SiteCollaborator', async () => {
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(collaboratorUser);
|
await loginPage.loginToContentServicesUsingUserModel(collaboratorUser);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
|
navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
|
||||||
|
|
||||||
@@ -280,7 +283,8 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
contentServicesPage.checkDeleteIsDisabled('Site' + fileModel.name);
|
contentServicesPage.checkDeleteIsDisabled('Site' + fileModel.name);
|
||||||
|
|
||||||
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
|
BrowserActions.closeMenuAndDialogs();
|
||||||
|
|
||||||
browser.controlFlow().execute(async () => {
|
browser.controlFlow().execute(async () => {
|
||||||
|
|
||||||
contentList.checkActionMenuIsNotDisplayed();
|
contentList.checkActionMenuIsNotDisplayed();
|
||||||
@@ -308,8 +312,8 @@ describe('Permissions Component', function () {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C277006] Role SiteManager', () => {
|
it('[C277006] Role SiteManager', async () => {
|
||||||
loginPage.loginToContentServicesUsingUserModel(managerUser);
|
await loginPage.loginToContentServicesUsingUserModel(managerUser);
|
||||||
navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
|
navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
|
||||||
contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name);
|
contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name);
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { LoginPage } from '@alfresco/adf-testing';
|
import { LoginPage, BrowserActions } from '@alfresco/adf-testing';
|
||||||
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
||||||
import { ViewerPage } from '../../pages/adf/viewerPage';
|
import { ViewerPage } from '../../pages/adf/viewerPage';
|
||||||
@@ -29,7 +29,6 @@ import resources = require('../../util/resources');
|
|||||||
|
|
||||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||||
import { UploadActions } from '../../actions/ACS/upload.actions';
|
import { UploadActions } from '../../actions/ACS/upload.actions';
|
||||||
import { browser } from 'protractor';
|
|
||||||
|
|
||||||
describe('Share file', () => {
|
describe('Share file', () => {
|
||||||
|
|
||||||
@@ -57,80 +56,61 @@ describe('Share file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
|
||||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
|
||||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
|
||||||
const pngUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileModel.location, pngFileModel.name, '-my-');
|
const pngUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileModel.location, pngFileModel.name, '-my-');
|
||||||
|
|
||||||
nodeId = pngUploadedFile.entry.id;
|
nodeId = pngUploadedFile.entry.id;
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
navigationBarPage.clickContentServicesButton();
|
navigationBarPage.clickContentServicesButton();
|
||||||
|
|
||||||
|
contentServicesPage.waitForTableBody();
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async (done) => {
|
||||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
try {
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, nodeId);
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, nodeId);
|
||||||
|
} catch (error) {
|
||||||
|
}
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Shared link dialog', () => {
|
describe('Shared link dialog', () => {
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(() => {
|
||||||
|
contentListPage.selectRow(pngFileModel.name);
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
||||||
|
|
||||||
navigationBarPage.clickContentServicesButton();
|
|
||||||
|
|
||||||
contentServicesPage.waitForTableBody();
|
|
||||||
|
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(async (done) => {
|
afterEach(() => {
|
||||||
await browser.refresh();
|
BrowserActions.closeMenuAndDialogs();
|
||||||
contentServicesPage.waitForTableBody();
|
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286549] Should check automatically toggle button in Share dialog', () => {
|
it('[C286549] Should check automatically toggle button in Share dialog', () => {
|
||||||
contentListPage.selectRow(pngFileModel.name);
|
|
||||||
contentServicesPage.clickShareButton();
|
contentServicesPage.clickShareButton();
|
||||||
shareDialog.checkDialogIsDisplayed();
|
shareDialog.checkDialogIsDisplayed();
|
||||||
shareDialog.shareToggleButtonIsChecked();
|
shareDialog.shareToggleButtonIsChecked();
|
||||||
shareDialog.clickCloseButton();
|
|
||||||
shareDialog.dialogIsClosed();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286544] Should display notification when clicking URL copy button', () => {
|
it('[C286544] Should display notification when clicking URL copy button', () => {
|
||||||
contentListPage.selectRow(pngFileModel.name);
|
|
||||||
contentServicesPage.clickShareButton();
|
contentServicesPage.clickShareButton();
|
||||||
shareDialog.checkDialogIsDisplayed();
|
shareDialog.checkDialogIsDisplayed();
|
||||||
shareDialog.clickShareLinkButton();
|
shareDialog.clickShareLinkButton();
|
||||||
shareDialog.checkNotificationWithMessage('Link copied to the clipboard');
|
shareDialog.checkNotificationWithMessage('Link copied to the clipboard');
|
||||||
shareDialog.waitForNotificationToClose();
|
|
||||||
shareDialog.clickShareLinkButton();
|
|
||||||
shareDialog.checkNotificationWithMessage('Link copied to the clipboard');
|
|
||||||
shareDialog.clickCloseButton();
|
|
||||||
shareDialog.dialogIsClosed();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286543] Should be possible to close Share dialog', () => {
|
it('[C286543] Should be possible to close Share dialog', () => {
|
||||||
contentListPage.selectRow(pngFileModel.name);
|
|
||||||
contentServicesPage.clickShareButton();
|
contentServicesPage.clickShareButton();
|
||||||
shareDialog.checkDialogIsDisplayed();
|
shareDialog.checkDialogIsDisplayed();
|
||||||
shareDialog.checkShareLinkIsDisplayed();
|
shareDialog.checkShareLinkIsDisplayed();
|
||||||
shareDialog.clickCloseButton();
|
|
||||||
shareDialog.dialogIsClosed();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286578] Should disable today option in expiration day calendar', () => {
|
it('[C286578] Should disable today option in expiration day calendar', () => {
|
||||||
contentListPage.selectRow(pngFileModel.name);
|
|
||||||
contentServicesPage.clickShareButton();
|
contentServicesPage.clickShareButton();
|
||||||
shareDialog.checkDialogIsDisplayed();
|
shareDialog.checkDialogIsDisplayed();
|
||||||
shareDialog.clickDateTimePickerButton();
|
shareDialog.clickDateTimePickerButton();
|
||||||
@@ -138,7 +118,6 @@ describe('Share file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C286548] Should be possible to set expiry date for link', async () => {
|
it('[C286548] Should be possible to set expiry date for link', async () => {
|
||||||
contentListPage.selectRow(pngFileModel.name);
|
|
||||||
contentServicesPage.clickShareButton();
|
contentServicesPage.clickShareButton();
|
||||||
shareDialog.checkDialogIsDisplayed();
|
shareDialog.checkDialogIsDisplayed();
|
||||||
shareDialog.clickDateTimePickerButton();
|
shareDialog.clickDateTimePickerButton();
|
||||||
@@ -152,12 +131,10 @@ describe('Share file', () => {
|
|||||||
contentServicesPage.clickShareButton();
|
contentServicesPage.clickShareButton();
|
||||||
shareDialog.checkDialogIsDisplayed();
|
shareDialog.checkDialogIsDisplayed();
|
||||||
shareDialog.expirationDateInputHasValue(value);
|
shareDialog.expirationDateInputHasValue(value);
|
||||||
shareDialog.clickCloseButton();
|
BrowserActions.closeMenuAndDialogs();
|
||||||
shareDialog.dialogIsClosed();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286578] Should disable today option in expiration day calendar', () => {
|
it('[C286578] Should disable today option in expiration day calendar', () => {
|
||||||
contentListPage.selectRow(pngFileModel.name);
|
|
||||||
contentServicesPage.clickShareButton();
|
contentServicesPage.clickShareButton();
|
||||||
shareDialog.checkDialogIsDisplayed();
|
shareDialog.checkDialogIsDisplayed();
|
||||||
shareDialog.clickDateTimePickerButton();
|
shareDialog.clickDateTimePickerButton();
|
||||||
@@ -166,18 +143,16 @@ describe('Share file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('Shared link preview', () => {
|
describe('Shared link preview', () => {
|
||||||
afterEach( (done) => {
|
afterEach((done) => {
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
navigationBarPage.clickContentServicesButton();
|
navigationBarPage.clickContentServicesButton();
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
navigationBarPage.clickContentServicesButton();
|
navigationBarPage.clickContentServicesButton();
|
||||||
|
|
||||||
contentServicesPage.waitForTableBody();
|
contentServicesPage.waitForTableBody();
|
||||||
|
|
||||||
done();
|
done();
|
||||||
@@ -190,7 +165,7 @@ describe('Share file', () => {
|
|||||||
shareDialog.clickShareLinkButton();
|
shareDialog.clickShareLinkButton();
|
||||||
shareDialog.checkNotificationWithMessage('Link copied to the clipboard');
|
shareDialog.checkNotificationWithMessage('Link copied to the clipboard');
|
||||||
const sharedLink = await shareDialog.getShareLink();
|
const sharedLink = await shareDialog.getShareLink();
|
||||||
browser.get(sharedLink);
|
BrowserActions.getUrl(sharedLink);
|
||||||
viewerPage.checkFileNameIsDisplayed(pngFileModel.name);
|
viewerPage.checkFileNameIsDisplayed(pngFileModel.name);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -208,7 +183,7 @@ describe('Share file', () => {
|
|||||||
shareDialog.checkNotificationWithMessage('Link copied to the clipboard');
|
shareDialog.checkNotificationWithMessage('Link copied to the clipboard');
|
||||||
const secondSharedLink = await shareDialog.getShareLink();
|
const secondSharedLink = await shareDialog.getShareLink();
|
||||||
expect(sharedLink).toEqual(secondSharedLink);
|
expect(sharedLink).toEqual(secondSharedLink);
|
||||||
browser.get(sharedLink);
|
BrowserActions.getUrl(sharedLink);
|
||||||
viewerPage.checkFileNameIsDisplayed(pngFileModel.name);
|
viewerPage.checkFileNameIsDisplayed(pngFileModel.name);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -220,7 +195,7 @@ describe('Share file', () => {
|
|||||||
const sharedLink = await shareDialog.getShareLink();
|
const sharedLink = await shareDialog.getShareLink();
|
||||||
shareDialog.clickCloseButton();
|
shareDialog.clickCloseButton();
|
||||||
navigationBarPage.clickLogoutButton();
|
navigationBarPage.clickLogoutButton();
|
||||||
browser.get(sharedLink);
|
BrowserActions.getUrl(sharedLink);
|
||||||
viewerPage.checkFileNameIsDisplayed(pngFileModel.name);
|
viewerPage.checkFileNameIsDisplayed(pngFileModel.name);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import CONSTANTS = require('../../util/constants');
|
import CONSTANTS = require('../../util/constants');
|
||||||
import { StringUtil } from '@alfresco/adf-testing';
|
import { StringUtil, BrowserActions } from '@alfresco/adf-testing';
|
||||||
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
||||||
import { LoginPage, ErrorPage } from '@alfresco/adf-testing';
|
import { LoginPage, ErrorPage } from '@alfresco/adf-testing';
|
||||||
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
@@ -99,7 +99,7 @@ describe('Unshare file', () => {
|
|||||||
const pngUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileModel.location, pngFileModel.name, '-my-');
|
const pngUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileModel.location, pngFileModel.name, '-my-');
|
||||||
nodeId = pngUploadedFile.entry.id;
|
nodeId = pngUploadedFile.entry.id;
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
navBar.clickContentServicesButton();
|
navBar.clickContentServicesButton();
|
||||||
contentServicesPage.waitForTableBody();
|
contentServicesPage.waitForTableBody();
|
||||||
done();
|
done();
|
||||||
@@ -153,7 +153,7 @@ describe('Unshare file', () => {
|
|||||||
shareDialog.confirmationDialogIsDisplayed();
|
shareDialog.confirmationDialogIsDisplayed();
|
||||||
shareDialog.clickConfirmationDialogRemoveButton();
|
shareDialog.clickConfirmationDialogRemoveButton();
|
||||||
shareDialog.dialogIsClosed();
|
shareDialog.dialogIsClosed();
|
||||||
browser.get(sharedLink);
|
BrowserActions.getUrl(sharedLink);
|
||||||
errorPage.checkErrorCode();
|
errorPage.checkErrorCode();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -92,8 +92,10 @@ describe('Tag component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async (done) => {
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, pdfUploadedFile.entry.id);
|
try {
|
||||||
browser.refresh();
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, pdfUploadedFile.entry.id);
|
||||||
|
} catch (error) {
|
||||||
|
}
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -125,17 +127,6 @@ describe('Tag component', () => {
|
|||||||
expect(tagPage.getErrorMessage()).toEqual('Tag already exists');
|
expect(tagPage.getErrorMessage()).toEqual('Tag already exists');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260378] Should be possible to add multiple tags', () => {
|
|
||||||
tagPage.insertNodeId(pdfFileModel.id);
|
|
||||||
tagPage.addTag(tagList[2]);
|
|
||||||
|
|
||||||
browser.driver.sleep(5000); // wait CS return tags
|
|
||||||
|
|
||||||
tagPage.checkTagListIsOrderedAscending();
|
|
||||||
tagPage.checkTagListByNodeIdIsOrderedAscending();
|
|
||||||
tagPage.checkTagListContentServicesIsOrderedAscending();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C91326] Should be possible to create a tag with different characters', () => {
|
it('[C91326] Should be possible to create a tag with different characters', () => {
|
||||||
tagPage.insertNodeId(pdfFileModel.id);
|
tagPage.insertNodeId(pdfFileModel.id);
|
||||||
|
|
||||||
@@ -214,4 +205,15 @@ describe('Tag component', () => {
|
|||||||
tagPage.checkShowLessButtonIsDisplayed();
|
tagPage.checkShowLessButtonIsDisplayed();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('[C260378] Should be possible to add multiple tags', () => {
|
||||||
|
tagPage.insertNodeId(pdfFileModel.id);
|
||||||
|
tagPage.addTag(tagList[2]);
|
||||||
|
|
||||||
|
browser.driver.sleep(5000); // wait CS return tags
|
||||||
|
|
||||||
|
tagPage.checkTagListIsOrderedAscending();
|
||||||
|
tagPage.checkTagListByNodeIdIsOrderedAscending();
|
||||||
|
tagPage.checkTagListContentServicesIsOrderedAscending();
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ describe('Trashcan - Pagination', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
navigationBarPage.clickTrashcanButton();
|
navigationBarPage.clickTrashcanButton();
|
||||||
trashcanPage.waitForTableBody();
|
trashcanPage.waitForTableBody();
|
||||||
|
|
||||||
|
|||||||
@@ -58,12 +58,24 @@ describe('Tree View Component', () => {
|
|||||||
|
|
||||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
|
||||||
treeFolder = await this.alfrescoJsApi.nodes.addNode(nodeNames.parentFolder, {name: nodeNames.folder, nodeType: 'cm:folder'});
|
treeFolder = await this.alfrescoJsApi.nodes.addNode(nodeNames.parentFolder, {
|
||||||
secondTreeFolder = await this.alfrescoJsApi.nodes.addNode(nodeNames.parentFolder, {name: nodeNames.secondFolder, nodeType: 'cm:folder'});
|
name: nodeNames.folder,
|
||||||
thirdTreeFolder = await this.alfrescoJsApi.nodes.addNode(secondTreeFolder.entry.id, {name: nodeNames.thirdFolder, nodeType: 'cm:folder'});
|
nodeType: 'cm:folder'
|
||||||
await this.alfrescoJsApi.nodes.addNode(thirdTreeFolder.entry.id, {name: nodeNames.document, nodeType: 'cm:content'});
|
});
|
||||||
|
secondTreeFolder = await this.alfrescoJsApi.nodes.addNode(nodeNames.parentFolder, {
|
||||||
|
name: nodeNames.secondFolder,
|
||||||
|
nodeType: 'cm:folder'
|
||||||
|
});
|
||||||
|
thirdTreeFolder = await this.alfrescoJsApi.nodes.addNode(secondTreeFolder.entry.id, {
|
||||||
|
name: nodeNames.thirdFolder,
|
||||||
|
nodeType: 'cm:folder'
|
||||||
|
});
|
||||||
|
await this.alfrescoJsApi.nodes.addNode(thirdTreeFolder.entry.id, {
|
||||||
|
name: nodeNames.document,
|
||||||
|
nodeType: 'cm:content'
|
||||||
|
});
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
navigationBarPage.clickTreeViewButton();
|
navigationBarPage.clickTreeViewButton();
|
||||||
|
|
||||||
@@ -71,11 +83,13 @@ describe('Tree View Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async (done) => {
|
||||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
try {
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, treeFolder.entry.id);
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, secondTreeFolder.entry.id);
|
|
||||||
|
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, treeFolder.entry.id);
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, secondTreeFolder.entry.id);
|
||||||
|
} catch (error) {
|
||||||
|
}
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ describe('Upload component', () => {
|
|||||||
|
|
||||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
@@ -80,18 +80,6 @@ describe('Upload component', () => {
|
|||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(async (done) => {
|
|
||||||
const nodesPromise = await contentServicesPage.getElementsDisplayedId();
|
|
||||||
|
|
||||||
nodesPromise.forEach(async (currentNode) => {
|
|
||||||
if (currentNode && currentNode !== 'Node id') {
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, currentNode);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C272792] Should be possible to cancel upload of a big file using row cancel icon', () => {
|
it('[C272792] Should be possible to cancel upload of a big file using row cancel icon', () => {
|
||||||
browser.executeScript(' setTimeout(() => {document.querySelector(\'mat-icon[class*="adf-file-uploading-row__action"]\').click();}, 3000)');
|
browser.executeScript(' setTimeout(() => {document.querySelector(\'mat-icon[class*="adf-file-uploading-row__action"]\').click();}, 3000)');
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ describe('Upload component - Excluded Files', () => {
|
|||||||
|
|
||||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
@@ -80,7 +80,8 @@ describe('Upload component - Excluded Files', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterEach(async (done) => {
|
afterEach(async (done) => {
|
||||||
await browser.refresh();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -119,19 +120,10 @@ describe('Upload component - Excluded Files', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C212862] Should not allow upload file excluded in the files extension of app.config.json', async () => {
|
it('[C212862] Should not allow upload file excluded in the files extension of app.config.json', async () => {
|
||||||
|
await LocalStorageUtil.setConfigField('files', JSON.stringify({
|
||||||
const filesConfig = {
|
excluded: ['.DS_Store', 'desktop.ini', '*.txt'],
|
||||||
'excluded': [
|
'match-options': { 'nocase': true }
|
||||||
'.DS_Store',
|
}));
|
||||||
'desktop.ini',
|
|
||||||
'*.txt'
|
|
||||||
],
|
|
||||||
'match-options': {
|
|
||||||
'nocase': true
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
await LocalStorageUtil.setConfigField('files', JSON.stringify(filesConfig));
|
|
||||||
|
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
@@ -141,21 +133,10 @@ describe('Upload component - Excluded Files', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C274688] Should extension type added as excluded and accepted not be uploaded', async () => {
|
it('[C274688] Should extension type added as excluded and accepted not be uploaded', async () => {
|
||||||
|
await LocalStorageUtil.setConfigField('files', JSON.stringify({
|
||||||
browser.refresh();
|
excluded: ['.DS_Store', 'desktop.ini', '*.png'],
|
||||||
|
'match-options': { 'nocase': true }
|
||||||
const filesConfig = {
|
}));
|
||||||
'excluded': [
|
|
||||||
'.DS_Store',
|
|
||||||
'desktop.ini',
|
|
||||||
'*.png'
|
|
||||||
],
|
|
||||||
'match-options': {
|
|
||||||
'nocase': true
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
await LocalStorageUtil.setConfigField('files', JSON.stringify(filesConfig));
|
|
||||||
|
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { LoginPage } from '@alfresco/adf-testing';
|
import { LoginPage, BrowserActions } from '@alfresco/adf-testing';
|
||||||
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
import { UploadDialog } from '../../pages/adf/dialog/uploadDialog';
|
import { UploadDialog } from '../../pages/adf/dialog/uploadDialog';
|
||||||
import { VersionManagePage } from '../../pages/adf/versionManagerPage';
|
import { VersionManagePage } from '../../pages/adf/versionManagerPage';
|
||||||
@@ -60,18 +60,13 @@ describe('Upload component', () => {
|
|||||||
|
|
||||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
contentServicesPage.goToDocumentList();
|
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
contentServicesPage.goToDocumentList();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should remove uploaded file', () => {
|
it('should remove uploaded file', () => {
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
contentServicesPage.uploadFile(docxFileModel.location);
|
contentServicesPage.uploadFile(docxFileModel.location);
|
||||||
uploadDialog.fileIsUploaded(docxFileModel.name);
|
uploadDialog.fileIsUploaded(docxFileModel.name);
|
||||||
uploadDialog
|
uploadDialog
|
||||||
@@ -81,12 +76,13 @@ describe('Upload component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should not have remove action if uploaded file is a file version', () => {
|
it('should not have remove action if uploaded file is a file version', () => {
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
contentServicesPage.uploadFile(docxFileModel.location);
|
contentServicesPage.uploadFile(docxFileModel.location);
|
||||||
uploadDialog.fileIsUploaded(docxFileModel.name);
|
uploadDialog.fileIsUploaded(docxFileModel.name);
|
||||||
contentServicesPage.checkContentIsDisplayed(docxFileModel.name);
|
contentServicesPage.checkContentIsDisplayed(docxFileModel.name);
|
||||||
|
|
||||||
contentServicesPage.versionManagerContent(docxFileModel.name);
|
contentServicesPage.versionManagerContent(docxFileModel.name);
|
||||||
versionManagePage.showNewVersionButton.click();
|
BrowserActions.click(versionManagePage.showNewVersionButton);
|
||||||
versionManagePage.uploadNewVersionFile(
|
versionManagePage.uploadNewVersionFile(
|
||||||
fileModelVersion.location
|
fileModelVersion.location
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ describe('Upload component', () => {
|
|||||||
|
|
||||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
|
|||||||
@@ -92,14 +92,11 @@ describe('Upload component', () => {
|
|||||||
|
|
||||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
||||||
|
|
||||||
contentServicesPage.goToDocumentList();
|
|
||||||
|
|
||||||
const pdfUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, firstPdfFileModel.location, firstPdfFileModel.name, '-my-');
|
const pdfUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, firstPdfFileModel.location, firstPdfFileModel.name, '-my-');
|
||||||
|
|
||||||
Object.assign(firstPdfFileModel, pdfUploadedFile.entry);
|
Object.assign(firstPdfFileModel, pdfUploadedFile.entry);
|
||||||
|
|
||||||
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -109,19 +106,17 @@ describe('Upload component', () => {
|
|||||||
|
|
||||||
describe('', () => {
|
describe('', () => {
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
contentServicesPage.goToDocumentList();
|
|
||||||
});
|
|
||||||
|
|
||||||
afterEach(async (done) => {
|
afterEach(async (done) => {
|
||||||
|
contentServicesPage.getElementsDisplayedId().then(async (nodeList) => {
|
||||||
|
for (let i = 0; i < nodeList.length; i++) {
|
||||||
|
try {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, nodeList[i]);
|
||||||
|
} catch (e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
contentServicesPage.getElementsDisplayedId().then((nodeList) => {
|
done();
|
||||||
nodeList.forEach(async (currentNode) => {
|
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, currentNode);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C272788] Should display upload button', () => {
|
it('[C272788] Should display upload button', () => {
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ describe('Upload - User permission', () => {
|
|||||||
|
|
||||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUserTwo);
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUserTwo);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
this.consumerSite = await this.alfrescoJsApi.core.sitesApi.createSite({
|
this.consumerSite = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||||
title: StringUtil.generateRandomString(),
|
title: StringUtil.generateRandomString(),
|
||||||
@@ -253,7 +253,7 @@ describe('Upload - User permission', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260175] Should two different user upload files in the proper User Home', () => {
|
it('[C260175] Should two different user upload files in the proper User Home', async () => {
|
||||||
contentServicesPage.uploadFile(emptyFile.location);
|
contentServicesPage.uploadFile(emptyFile.location);
|
||||||
|
|
||||||
uploadDialog.fileIsUploaded(emptyFile.name);
|
uploadDialog.fileIsUploaded(emptyFile.name);
|
||||||
@@ -261,7 +261,7 @@ describe('Upload - User permission', () => {
|
|||||||
contentServicesPage.checkContentIsDisplayed(emptyFile.name);
|
contentServicesPage.checkContentIsDisplayed(emptyFile.name);
|
||||||
|
|
||||||
navigationBarPage.clickLoginButton();
|
navigationBarPage.clickLoginButton();
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUserTwo);
|
await loginPage.loginToContentServicesUsingUserModel(acsUserTwo);
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
contentServicesPage.checkContentIsNotDisplayed(emptyFile.name);
|
contentServicesPage.checkContentIsNotDisplayed(emptyFile.name);
|
||||||
@@ -271,7 +271,7 @@ describe('Upload - User permission', () => {
|
|||||||
contentServicesPage.checkContentIsDisplayed(pngFile.name);
|
contentServicesPage.checkContentIsDisplayed(pngFile.name);
|
||||||
|
|
||||||
navigationBarPage.clickLoginButton();
|
navigationBarPage.clickLoginButton();
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
contentServicesPage.checkContentIsNotDisplayed(pngFile.name);
|
contentServicesPage.checkContentIsNotDisplayed(pngFile.name);
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ import path = require('path');
|
|||||||
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility } from '@alfresco/adf-testing';
|
||||||
import { UploadDialog } from '../../pages/adf/dialog/uploadDialog';
|
import { UploadDialog } from '../../pages/adf/dialog/uploadDialog';
|
||||||
import { TrashcanPage } from '../../pages/adf/trashcanPage';
|
|
||||||
|
|
||||||
describe('Version component actions', () => {
|
describe('Version component actions', () => {
|
||||||
|
|
||||||
@@ -42,7 +41,6 @@ describe('Version component actions', () => {
|
|||||||
const contentServicesPage = new ContentServicesPage();
|
const contentServicesPage = new ContentServicesPage();
|
||||||
const versionManagePage = new VersionManagePage();
|
const versionManagePage = new VersionManagePage();
|
||||||
const navigationBarPage = new NavigationBarPage();
|
const navigationBarPage = new NavigationBarPage();
|
||||||
const trashcanPage = new TrashcanPage();
|
|
||||||
|
|
||||||
const acsUser = new AcsUserModel();
|
const acsUser = new AcsUserModel();
|
||||||
|
|
||||||
@@ -82,7 +80,7 @@ describe('Version component actions', () => {
|
|||||||
|
|
||||||
txtFileModel.update(txtUploadedFile.entry);
|
txtFileModel.update(txtUploadedFile.entry);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
navigationBarPage.clickContentServicesButton();
|
navigationBarPage.clickContentServicesButton();
|
||||||
contentServicesPage.waitForTableBody();
|
contentServicesPage.waitForTableBody();
|
||||||
@@ -166,9 +164,7 @@ describe('Version component actions', () => {
|
|||||||
|
|
||||||
await expect(new UploadDialog().getTitleText()).toEqual('Upload canceled');
|
await expect(new UploadDialog().getTitleText()).toEqual('Upload canceled');
|
||||||
|
|
||||||
navigationBarPage.clickTrashcanButton();
|
await browser.refresh();
|
||||||
await trashcanPage.waitForTableBody();
|
|
||||||
trashcanPage.checkTrashcanIsEmpty();
|
|
||||||
|
|
||||||
navigationBarPage.clickContentServicesButton();
|
navigationBarPage.clickContentServicesButton();
|
||||||
await contentServicesPage.waitForTableBody();
|
await contentServicesPage.waitForTableBody();
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
import { element, by } from 'protractor';
|
import { element, by } from 'protractor';
|
||||||
|
|
||||||
import { LoginPage } from '@alfresco/adf-testing';
|
import { LoginPage, BrowserActions } from '@alfresco/adf-testing';
|
||||||
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
||||||
import { VersionManagePage } from '../../pages/adf/versionManagerPage';
|
import { VersionManagePage } from '../../pages/adf/versionManagerPage';
|
||||||
import { UploadDialog } from '../../pages/adf/dialog/uploadDialog';
|
import { UploadDialog } from '../../pages/adf/dialog/uploadDialog';
|
||||||
@@ -145,7 +145,7 @@ describe('Version component permissions', () => {
|
|||||||
const sameCreatorFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, sameCreatorFile.location, sameCreatorFile.name, site.entry.guid);
|
const sameCreatorFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, sameCreatorFile.location, sameCreatorFile.name, site.entry.guid);
|
||||||
Object.assign(sameCreatorFile, sameCreatorFileUploaded.entry);
|
Object.assign(sameCreatorFile, sameCreatorFileUploaded.entry);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(managerUser);
|
await loginPage.loginToContentServicesUsingUserModel(managerUser);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(site.entry.guid);
|
navigationBarPage.openContentServicesFolder(site.entry.guid);
|
||||||
|
|
||||||
@@ -160,7 +160,7 @@ describe('Version component permissions', () => {
|
|||||||
it('[C277200] should a user with Manager permission be able to upload a new version for a file with different creator', () => {
|
it('[C277200] should a user with Manager permission be able to upload a new version for a file with different creator', () => {
|
||||||
contentServices.versionManagerContent(differentCreatorFile.name);
|
contentServices.versionManagerContent(differentCreatorFile.name);
|
||||||
|
|
||||||
versionManagePage.showNewVersionButton.click();
|
BrowserActions.click(versionManagePage.showNewVersionButton);
|
||||||
|
|
||||||
versionManagePage.uploadNewVersionFile(newVersionFile.location);
|
versionManagePage.uploadNewVersionFile(newVersionFile.location);
|
||||||
|
|
||||||
@@ -188,7 +188,7 @@ describe('Version component permissions', () => {
|
|||||||
describe('Consumer', () => {
|
describe('Consumer', () => {
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
loginPage.loginToContentServicesUsingUserModel(consumerUser);
|
await loginPage.loginToContentServicesUsingUserModel(consumerUser);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(site.entry.guid);
|
navigationBarPage.openContentServicesFolder(site.entry.guid);
|
||||||
|
|
||||||
@@ -223,7 +223,7 @@ describe('Version component permissions', () => {
|
|||||||
const sameCreatorFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, sameCreatorFile.location, sameCreatorFile.name, site.entry.guid);
|
const sameCreatorFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, sameCreatorFile.location, sameCreatorFile.name, site.entry.guid);
|
||||||
Object.assign(sameCreatorFile, sameCreatorFileUploaded.entry);
|
Object.assign(sameCreatorFile, sameCreatorFileUploaded.entry);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(contributorUser);
|
await loginPage.loginToContentServicesUsingUserModel(contributorUser);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(site.entry.guid);
|
navigationBarPage.openContentServicesFolder(site.entry.guid);
|
||||||
|
|
||||||
@@ -238,7 +238,7 @@ describe('Version component permissions', () => {
|
|||||||
it('[C277177] Should a user with Contributor permission be able to upload a new version for the created file', () => {
|
it('[C277177] Should a user with Contributor permission be able to upload a new version for the created file', () => {
|
||||||
contentServices.versionManagerContent(sameCreatorFile.name);
|
contentServices.versionManagerContent(sameCreatorFile.name);
|
||||||
|
|
||||||
versionManagePage.showNewVersionButton.click();
|
BrowserActions.click(versionManagePage.showNewVersionButton);
|
||||||
|
|
||||||
versionManagePage.uploadNewVersionFile(newVersionFile.location);
|
versionManagePage.uploadNewVersionFile(newVersionFile.location);
|
||||||
|
|
||||||
@@ -283,7 +283,7 @@ describe('Version component permissions', () => {
|
|||||||
const sameCreatorFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, sameCreatorFile.location, sameCreatorFile.name, site.entry.guid);
|
const sameCreatorFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, sameCreatorFile.location, sameCreatorFile.name, site.entry.guid);
|
||||||
Object.assign(sameCreatorFile, sameCreatorFileUploaded.entry);
|
Object.assign(sameCreatorFile, sameCreatorFileUploaded.entry);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(collaboratorUser);
|
await loginPage.loginToContentServicesUsingUserModel(collaboratorUser);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(site.entry.guid);
|
navigationBarPage.openContentServicesFolder(site.entry.guid);
|
||||||
|
|
||||||
@@ -298,7 +298,7 @@ describe('Version component permissions', () => {
|
|||||||
it('[C277195] Should a user with Collaborator permission be able to upload a new version for the created file', () => {
|
it('[C277195] Should a user with Collaborator permission be able to upload a new version for the created file', () => {
|
||||||
contentServices.versionManagerContent(sameCreatorFile.name);
|
contentServices.versionManagerContent(sameCreatorFile.name);
|
||||||
|
|
||||||
versionManagePage.showNewVersionButton.click();
|
BrowserActions.click(versionManagePage.showNewVersionButton);
|
||||||
|
|
||||||
versionManagePage.uploadNewVersionFile(newVersionFile.location);
|
versionManagePage.uploadNewVersionFile(newVersionFile.location);
|
||||||
|
|
||||||
@@ -319,7 +319,7 @@ describe('Version component permissions', () => {
|
|||||||
it('[C277199] should a user with Collaborator permission be able to upload a new version for a file with different creator', () => {
|
it('[C277199] should a user with Collaborator permission be able to upload a new version for a file with different creator', () => {
|
||||||
contentServices.versionManagerContent(differentCreatorFile.name);
|
contentServices.versionManagerContent(differentCreatorFile.name);
|
||||||
|
|
||||||
versionManagePage.showNewVersionButton.click();
|
BrowserActions.click(versionManagePage.showNewVersionButton);
|
||||||
|
|
||||||
versionManagePage.uploadNewVersionFile(newVersionFile.location);
|
versionManagePage.uploadNewVersionFile(newVersionFile.location);
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import resources = require('../../util/resources');
|
|||||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||||
import { UploadActions } from '../../actions/ACS/upload.actions';
|
import { UploadActions } from '../../actions/ACS/upload.actions';
|
||||||
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
describe('Version Properties', () => {
|
describe('Version Properties', () => {
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ describe('Version Properties', () => {
|
|||||||
|
|
||||||
txtFileModel.update(txtUploadedFile.entry);
|
txtFileModel.update(txtUploadedFile.entry);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
navigationBarPage.clickContentServicesButton();
|
navigationBarPage.clickContentServicesButton();
|
||||||
contentServicesPage.waitForTableBody();
|
contentServicesPage.waitForTableBody();
|
||||||
@@ -104,7 +104,8 @@ describe('Version Properties', () => {
|
|||||||
it('[C269085] Should show/hide comments when showComments true/false', () => {
|
it('[C269085] Should show/hide comments when showComments true/false', () => {
|
||||||
versionManagePage.enableComments();
|
versionManagePage.enableComments();
|
||||||
|
|
||||||
versionManagePage.showNewVersionButton.click();
|
BrowserActions.click(versionManagePage.showNewVersionButton);
|
||||||
|
|
||||||
versionManagePage.enterCommentText('Example comment text');
|
versionManagePage.enterCommentText('Example comment text');
|
||||||
versionManagePage.uploadNewVersionFile(fileModelVersionTwo.location);
|
versionManagePage.uploadNewVersionFile(fileModelVersionTwo.location);
|
||||||
|
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ describe('Version component', () => {
|
|||||||
|
|
||||||
txtFileModel.update(txtUploadedFile.entry);
|
txtFileModel.update(txtUploadedFile.entry);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
navigationBarPage.clickContentServicesButton();
|
navigationBarPage.clickContentServicesButton();
|
||||||
contentServicesPage.waitForTableBody();
|
contentServicesPage.waitForTableBody();
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { ErrorPage, LoginSSOPage, SettingsPage } from '@alfresco/adf-testing';
|
import { ErrorPage, LoginSSOPage, SettingsPage, BrowserActions } from '@alfresco/adf-testing';
|
||||||
import TestConfig = require('../../test.config');
|
import TestConfig = require('../../test.config');
|
||||||
import { browser } from 'protractor';
|
import { browser } from 'protractor';
|
||||||
|
|
||||||
@@ -29,7 +29,8 @@ describe('Auth Guard SSO', () => {
|
|||||||
settingsPage.setProviderEcmSso(TestConfig.adf.url, TestConfig.adf.hostSso, TestConfig.adf.hostIdentity, false, true, 'alfresco');
|
settingsPage.setProviderEcmSso(TestConfig.adf.url, TestConfig.adf.hostSso, TestConfig.adf.hostIdentity, false, true, 'alfresco');
|
||||||
loginSSOPage.clickOnSSOButton();
|
loginSSOPage.clickOnSSOButton();
|
||||||
await loginSSOPage.loginSSOIdentityService(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
await loginSSOPage.loginSSOIdentityService(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
browser.get(TestConfig.adf.url + '/cloud/simple-app');
|
BrowserActions.getUrl(TestConfig.adf.url + '/cloud/simple-app');
|
||||||
|
browser.driver.sleep(1000);
|
||||||
expect(errorPage.getErrorCode()).toBe('403');
|
expect(errorPage.getErrorCode()).toBe('403');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -42,9 +42,9 @@ describe('Datatable component - selection', () => {
|
|||||||
|
|
||||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
navigationBarPage.navigateToDatatable();
|
await navigationBarPage.navigateToDatatable();
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
@@ -52,14 +52,10 @@ describe('Datatable component - selection', () => {
|
|||||||
it('[C213258] Should be possible change the selection modes when change the selectionMode property', () => {
|
it('[C213258] Should be possible change the selection modes when change the selectionMode property', () => {
|
||||||
dataTablePage.selectRow('2');
|
dataTablePage.selectRow('2');
|
||||||
dataTableComponent.checkRowIsSelected('Id', '2');
|
dataTableComponent.checkRowIsSelected('Id', '2');
|
||||||
dataTablePage.getNumberOfSelectedRows().then((result) => {
|
expect(dataTablePage.getNumberOfSelectedRows()).toEqual(1);
|
||||||
expect(result).toEqual(1);
|
|
||||||
});
|
|
||||||
dataTablePage.selectRow('3');
|
dataTablePage.selectRow('3');
|
||||||
dataTableComponent.checkRowIsSelected('Id', '3');
|
dataTableComponent.checkRowIsSelected('Id', '3');
|
||||||
dataTablePage.getNumberOfSelectedRows().then((result) => {
|
expect(dataTablePage.getNumberOfSelectedRows()).toEqual(1);
|
||||||
expect(result).toEqual(1);
|
|
||||||
});
|
|
||||||
dataTablePage.selectSelectionMode('Multiple');
|
dataTablePage.selectSelectionMode('Multiple');
|
||||||
dataTablePage.selectRow('1');
|
dataTablePage.selectRow('1');
|
||||||
dataTableComponent.checkRowIsSelected('Id', '1');
|
dataTableComponent.checkRowIsSelected('Id', '1');
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ describe('Datatable component', () => {
|
|||||||
|
|
||||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { LoginPage, ErrorPage } from '@alfresco/adf-testing';
|
import { LoginPage, ErrorPage, BrowserActions } from '@alfresco/adf-testing';
|
||||||
import { AcsUserModel } from '../models/ACS/acsUserModel';
|
import { AcsUserModel } from '../models/ACS/acsUserModel';
|
||||||
import TestConfig = require('../test.config');
|
import TestConfig = require('../test.config');
|
||||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||||
@@ -34,24 +34,22 @@ describe('Error Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
|
||||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
||||||
|
|
||||||
done();
|
done();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C277302] Should display the error 403 when access to unauthorized page - My Change', () => {
|
it('[C277302] Should display the error 403 when access to unauthorized page - My Change', () => {
|
||||||
browser.get(TestConfig.adf.url + '/error/403');
|
BrowserActions.getUrl(TestConfig.adf.url + '/error/403');
|
||||||
expect(errorPage.getErrorCode()).toBe('403');
|
expect(errorPage.getErrorCode()).toBe('403');
|
||||||
expect(errorPage.getErrorTitle()).toBe('You don\'t have permission to access this server.');
|
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.');
|
expect(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', () => {
|
it('[C280563] Should back home button navigate to the home page', () => {
|
||||||
browser.get(TestConfig.adf.url + '/error/404');
|
BrowserActions.getUrl(TestConfig.adf.url + '/error/404');
|
||||||
|
|
||||||
errorPage.clickBackButton();
|
errorPage.clickBackButton();
|
||||||
|
|
||||||
@@ -59,7 +57,7 @@ describe('Error Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C280564] Should secondary button by default redirect to report-issue URL', () => {
|
it('[C280564] Should secondary button by default redirect to report-issue URL', () => {
|
||||||
browser.get(TestConfig.adf.url + '/error/403');
|
BrowserActions.getUrl(TestConfig.adf.url + '/error/403');
|
||||||
|
|
||||||
errorPage.clickSecondButton();
|
errorPage.clickSecondButton();
|
||||||
|
|
||||||
@@ -67,14 +65,14 @@ describe('Error Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C277304] Should display the error 404 when access to not found page', () => {
|
it('[C277304] Should display the error 404 when access to not found page', () => {
|
||||||
browser.get(TestConfig.adf.url + '/error/404');
|
BrowserActions.getUrl(TestConfig.adf.url + '/error/404');
|
||||||
expect(errorPage.getErrorCode()).toBe('404');
|
expect(errorPage.getErrorCode()).toBe('404');
|
||||||
expect(errorPage.getErrorTitle()).toBe('An error occurred.');
|
expect(errorPage.getErrorTitle()).toBe('An error occurred.');
|
||||||
expect(errorPage.getErrorDescription()).toBe('We couldn’t find the page you were looking for.');
|
expect(errorPage.getErrorDescription()).toBe('We couldn’t find the page you were looking for.');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C307029] Should display Unknown message when error is undefined', () => {
|
it('[C307029] Should display Unknown message when error is undefined', () => {
|
||||||
browser.get(TestConfig.adf.url + '/error/501');
|
BrowserActions.getUrl(TestConfig.adf.url + '/error/501');
|
||||||
expect(errorPage.getErrorCode()).toBe('UNKNOWN');
|
expect(errorPage.getErrorCode()).toBe('UNKNOWN');
|
||||||
expect(errorPage.getErrorTitle()).toBe('We hit a problem.');
|
expect(errorPage.getErrorTitle()).toBe('We hit a problem.');
|
||||||
expect(errorPage.getErrorDescription()).toBe('Looks like something went wrong.');
|
expect(errorPage.getErrorDescription()).toBe('Looks like something went wrong.');
|
||||||
|
|||||||
@@ -62,23 +62,19 @@ describe('Header Component', () => {
|
|||||||
|
|
||||||
await this.alfrescoJsApi.login(user.email, user.password);
|
await this.alfrescoJsApi.login(user.email, user.password);
|
||||||
|
|
||||||
|
await loginPage.loginToProcessServicesUsingUserModel(user);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async(done) => {
|
beforeEach(async(done) => {
|
||||||
|
|
||||||
loginPage.loginToProcessServicesUsingUserModel(user);
|
|
||||||
|
|
||||||
navigationBarPage.clickHeaderDataButton();
|
navigationBarPage.clickHeaderDataButton();
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async(done) => {
|
afterAll(async(done) => {
|
||||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
|
||||||
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
|
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -94,33 +90,23 @@ describe('Header Component', () => {
|
|||||||
|
|
||||||
it('[C279996] Should be able to show/hide menu button', () => {
|
it('[C279996] Should be able to show/hide menu button', () => {
|
||||||
headerPage.clickShowMenuButton();
|
headerPage.clickShowMenuButton();
|
||||||
|
|
||||||
navigationBarPage.checkMenuButtonIsNotDisplayed();
|
navigationBarPage.checkMenuButtonIsNotDisplayed();
|
||||||
|
|
||||||
headerPage.clickShowMenuButton();
|
headerPage.clickShowMenuButton();
|
||||||
|
|
||||||
navigationBarPage.checkMenuButtonIsDisplayed();
|
navigationBarPage.checkMenuButtonIsDisplayed();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C279999] Should be able to change the colour between primary, accent and warn', () => {
|
it('[C279999] Should be able to change the colour between primary, accent and warn', () => {
|
||||||
headerPage.changeHeaderColor(names.color_accent);
|
headerPage.changeHeaderColor(names.color_accent);
|
||||||
|
|
||||||
navigationBarPage.checkToolbarColor(names.color_accent);
|
navigationBarPage.checkToolbarColor(names.color_accent);
|
||||||
|
|
||||||
headerPage.changeHeaderColor(names.color_primary);
|
headerPage.changeHeaderColor(names.color_primary);
|
||||||
|
|
||||||
navigationBarPage.checkToolbarColor(names.color_primary);
|
navigationBarPage.checkToolbarColor(names.color_primary);
|
||||||
|
|
||||||
headerPage.changeHeaderColor(names.color_warn);
|
headerPage.changeHeaderColor(names.color_warn);
|
||||||
|
|
||||||
navigationBarPage.checkToolbarColor(names.color_warn);
|
navigationBarPage.checkToolbarColor(names.color_warn);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280552] Should be able to change the colour of the header by typing a hex code', () => {
|
it('[C280552] Should be able to change the colour of the header by typing a hex code', () => {
|
||||||
headerPage.addHexCodeColor(names.color_custom);
|
headerPage.addHexCodeColor(names.color_custom);
|
||||||
|
|
||||||
navigationBarPage.checkToolbarColor(names.color_custom);
|
navigationBarPage.checkToolbarColor(names.color_custom);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C279997] Should be able to change the title of the app', () => {
|
it('[C279997] Should be able to change the title of the app', () => {
|
||||||
@@ -137,23 +123,18 @@ describe('Header Component', () => {
|
|||||||
|
|
||||||
it('[C280553] Should be able to set a hyperlink to the logo', () => {
|
it('[C280553] Should be able to set a hyperlink to the logo', () => {
|
||||||
headerPage.addLogoHyperlink(names.urlPath_logo_link);
|
headerPage.addLogoHyperlink(names.urlPath_logo_link);
|
||||||
|
|
||||||
navigationBarPage.clickAppLogo(names.logo_title);
|
navigationBarPage.clickAppLogo(names.logo_title);
|
||||||
|
|
||||||
settingsPage.checkProviderDropdownIsDisplayed();
|
settingsPage.checkProviderDropdownIsDisplayed();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286517] Should be able to set a hyperlink to the logo text', () => {
|
it('[C286517] Should be able to set a hyperlink to the logo text', () => {
|
||||||
headerPage.addLogoHyperlink(names.urlPath_logo_link);
|
headerPage.addLogoHyperlink(names.urlPath_logo_link);
|
||||||
|
|
||||||
navigationBarPage.clickAppLogoText();
|
navigationBarPage.clickAppLogoText();
|
||||||
|
|
||||||
settingsPage.checkProviderDropdownIsDisplayed();
|
settingsPage.checkProviderDropdownIsDisplayed();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280554] Should be able to customise the tooltip-text of the logo', () => {
|
it('[C280554] Should be able to customise the tooltip-text of the logo', () => {
|
||||||
headerPage.addLogoTooltip(names.logo_tooltip);
|
headerPage.addLogoTooltip(names.logo_tooltip);
|
||||||
|
|
||||||
navigationBarPage.checkLogoTooltip(names.logo_tooltip);
|
navigationBarPage.checkLogoTooltip(names.logo_tooltip);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -37,10 +37,8 @@ describe('Universal Icon component', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
|
||||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -15,10 +15,9 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { LoginPage } from '@alfresco/adf-testing';
|
import { LoginPage, LocalStorageUtil } from '@alfresco/adf-testing';
|
||||||
import { ContentServicesPage } from '../pages/adf/contentServicesPage';
|
import { ContentServicesPage } from '../pages/adf/contentServicesPage';
|
||||||
import { InfinitePaginationPage } from '../pages/adf/core/infinitePaginationPage';
|
import { InfinitePaginationPage } from '../pages/adf/core/infinitePaginationPage';
|
||||||
import { ConfigEditorPage } from '../pages/adf/configEditorPage';
|
|
||||||
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
|
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
|
||||||
|
|
||||||
import { AcsUserModel } from '../models/ACS/acsUserModel';
|
import { AcsUserModel } from '../models/ACS/acsUserModel';
|
||||||
@@ -35,7 +34,6 @@ describe('Enable infinite scrolling', () => {
|
|||||||
const loginPage = new LoginPage();
|
const loginPage = new LoginPage();
|
||||||
const contentServicesPage = new ContentServicesPage();
|
const contentServicesPage = new ContentServicesPage();
|
||||||
const infinitePaginationPage = new InfinitePaginationPage();
|
const infinitePaginationPage = new InfinitePaginationPage();
|
||||||
const configEditorPage = new ConfigEditorPage();
|
|
||||||
const navigationBarPage = new NavigationBarPage();
|
const navigationBarPage = new NavigationBarPage();
|
||||||
|
|
||||||
const acsUser = new AcsUserModel();
|
const acsUser = new AcsUserModel();
|
||||||
@@ -66,7 +64,7 @@ describe('Enable infinite scrolling', () => {
|
|||||||
|
|
||||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
fileNames = Util.generateSequenceFiles(1, nrOfFiles, files.base, files.extension);
|
fileNames = Util.generateSequenceFiles(1, nrOfFiles, files.base, files.extension);
|
||||||
deleteFileNames = Util.generateSequenceFiles(1, nrOfDeletedFiles, files.base, files.extension);
|
deleteFileNames = Util.generateSequenceFiles(1, nrOfDeletedFiles, files.base, files.extension);
|
||||||
@@ -133,14 +131,11 @@ describe('Enable infinite scrolling', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C299202] Should not display load more button when all the files are already displayed', () => {
|
it('[C299202] Should not display load more button when all the files are already displayed', () => {
|
||||||
navigationBarPage.clickConfigEditorButton();
|
LocalStorageUtil.setUserPreference('paginationSize', '30');
|
||||||
configEditorPage.clickInfinitePaginationConfiguration();
|
|
||||||
configEditorPage.clickClearButton();
|
|
||||||
configEditorPage.enterConfiguration('30');
|
|
||||||
configEditorPage.clickSaveButton();
|
|
||||||
|
|
||||||
navigationBarPage.clickContentServicesButton();
|
navigationBarPage.clickContentServicesButton();
|
||||||
contentServicesPage.checkAcsContainer();
|
contentServicesPage.checkAcsContainer();
|
||||||
|
|
||||||
contentServicesPage.doubleClickRow(folderModel.name);
|
contentServicesPage.doubleClickRow(folderModel.name);
|
||||||
|
|
||||||
contentServicesPage.enableInfiniteScrolling();
|
contentServicesPage.enableInfiniteScrolling();
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
import { browser } from 'protractor';
|
import { browser } from 'protractor';
|
||||||
|
|
||||||
import { LoginPage, SettingsPage, ErrorPage } from '@alfresco/adf-testing';
|
import { LoginPage, SettingsPage, ErrorPage, BrowserActions } from '@alfresco/adf-testing';
|
||||||
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
import { ProcessServicesPage } from '../../pages/adf/process-services/processServicesPage';
|
import { ProcessServicesPage } from '../../pages/adf/process-services/processServicesPage';
|
||||||
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
||||||
@@ -72,20 +72,20 @@ describe('Login component', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C276746] Should display the right information in user-info when a different users logs in', () => {
|
it('[C276746] Should display the right information in user-info when a different users logs in', async () => {
|
||||||
loginPage.loginToContentServicesUsingUserModel(userA);
|
await loginPage.loginToContentServicesUsingUserModel(userA);
|
||||||
userInfoPage.clickUserProfile();
|
userInfoPage.clickUserProfile();
|
||||||
expect(userInfoPage.getContentHeaderTitle()).toEqual(userA.firstName + ' ' + userA.lastName);
|
expect(userInfoPage.getContentHeaderTitle()).toEqual(userA.firstName + ' ' + userA.lastName);
|
||||||
expect(userInfoPage.getContentEmail()).toEqual(userA.email);
|
expect(userInfoPage.getContentEmail()).toEqual(userA.email);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(userB);
|
await loginPage.loginToContentServicesUsingUserModel(userB);
|
||||||
userInfoPage.clickUserProfile();
|
userInfoPage.clickUserProfile();
|
||||||
expect(userInfoPage.getContentHeaderTitle()).toEqual(userB.firstName + ' ' + userB.lastName);
|
expect(userInfoPage.getContentHeaderTitle()).toEqual(userB.firstName + ' ' + userB.lastName);
|
||||||
expect(userInfoPage.getContentEmail()).toEqual(userB.email);
|
expect(userInfoPage.getContentEmail()).toEqual(userB.email);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C299206] Should redirect the user without the right access role on a forbidden page', () => {
|
it('[C299206] Should redirect the user without the right access role on a forbidden page', async () => {
|
||||||
loginPage.loginToContentServicesUsingUserModel(userA);
|
await loginPage.loginToContentServicesUsingUserModel(userA);
|
||||||
navigationBarPage.navigateToProcessServicesCloudPage();
|
navigationBarPage.navigateToProcessServicesCloudPage();
|
||||||
expect(errorPage.getErrorCode()).toBe('403');
|
expect(errorPage.getErrorCode()).toBe('403');
|
||||||
expect(errorPage.getErrorTitle()).toBe('You don\'t have permission to access this server.');
|
expect(errorPage.getErrorTitle()).toBe('You don\'t have permission to access this server.');
|
||||||
@@ -177,6 +177,7 @@ describe('Login component', () => {
|
|||||||
it('[C260049] Should be possible to login to Process Services with Content Services disabled', () => {
|
it('[C260049] Should be possible to login to Process Services with Content Services disabled', () => {
|
||||||
loginPage.goToLoginPage();
|
loginPage.goToLoginPage();
|
||||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||||
|
loginPage.clickSettingsIcon();
|
||||||
settingsPage.setProviderBpm();
|
settingsPage.setProviderBpm();
|
||||||
loginPage.login(adminUserModel.id, adminUserModel.password);
|
loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||||
navigationBarPage.navigateToProcessServicesPage();
|
navigationBarPage.navigateToProcessServicesPage();
|
||||||
@@ -188,17 +189,19 @@ describe('Login component', () => {
|
|||||||
it('[C260050] Should be possible to login to Content Services with Process Services disabled', () => {
|
it('[C260050] Should be possible to login to Content Services with Process Services disabled', () => {
|
||||||
loginPage.goToLoginPage();
|
loginPage.goToLoginPage();
|
||||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||||
|
loginPage.clickSettingsIcon();
|
||||||
settingsPage.setProviderEcm();
|
settingsPage.setProviderEcm();
|
||||||
loginPage.login(TestConfig.adf.adminUser, TestConfig.adf.adminPassword);
|
loginPage.login(TestConfig.adf.adminUser, TestConfig.adf.adminPassword);
|
||||||
navigationBarPage.clickContentServicesButton();
|
navigationBarPage.clickContentServicesButton();
|
||||||
contentServicesPage.checkAcsContainer();
|
contentServicesPage.checkAcsContainer();
|
||||||
navigationBarPage.navigateToProcessServicesPage();
|
|
||||||
loginPage.waitForElements();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260051] Should be able to login to both Content Services and Process Services', () => {
|
it('[C260051] Should be able to login to both Content Services and Process Services', () => {
|
||||||
|
loginPage.goToLoginPage();
|
||||||
|
loginPage.clickSettingsIcon();
|
||||||
settingsPage.setProviderEcmBpm();
|
settingsPage.setProviderEcmBpm();
|
||||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||||
|
loginPage.clickSettingsIcon();
|
||||||
settingsPage.setProviderEcmBpm();
|
settingsPage.setProviderEcmBpm();
|
||||||
loginPage.login(adminUserModel.id, adminUserModel.password);
|
loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||||
navigationBarPage.navigateToProcessServicesPage();
|
navigationBarPage.navigateToProcessServicesPage();
|
||||||
@@ -210,16 +213,18 @@ describe('Login component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C277754] Should the user be redirect to the login page when the Content Service session expire', () => {
|
it('[C277754] Should the user be redirect to the login page when the Content Service session expire', () => {
|
||||||
|
loginPage.goToLoginPage();
|
||||||
|
loginPage.clickSettingsIcon();
|
||||||
settingsPage.setProviderEcmBpm();
|
settingsPage.setProviderEcmBpm();
|
||||||
loginPage.login(adminUserModel.id, adminUserModel.password);
|
loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||||
browser.executeScript('window.localStorage.removeItem("ticket-ECM");').then(async () => {
|
browser.executeScript('window.localStorage.removeItem("ticket-ECM");');
|
||||||
await browser.get(TestConfig.adf.url + '/files');
|
BrowserActions.getUrl(TestConfig.adf.url + '/files');
|
||||||
loginPage.waitForElements();
|
loginPage.waitForElements();
|
||||||
});
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C279932] Should successRoute property change the landing page when the user Login', () => {
|
it('[C279932] Should successRoute property change the landing page when the user Login', () => {
|
||||||
|
loginPage.goToLoginPage();
|
||||||
|
loginPage.clickSettingsIcon();
|
||||||
settingsPage.setProviderEcmBpm();
|
settingsPage.setProviderEcmBpm();
|
||||||
loginPage.enableSuccessRouteSwitch();
|
loginPage.enableSuccessRouteSwitch();
|
||||||
loginPage.enterSuccessRoute('activiti');
|
loginPage.enterSuccessRoute('activiti');
|
||||||
@@ -228,15 +233,18 @@ describe('Login component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C279931] Should the user be redirect to the login page when the Process Service session expire', () => {
|
it('[C279931] Should the user be redirect to the login page when the Process Service session expire', () => {
|
||||||
|
loginPage.goToLoginPage();
|
||||||
|
loginPage.clickSettingsIcon();
|
||||||
settingsPage.setProviderEcmBpm();
|
settingsPage.setProviderEcmBpm();
|
||||||
loginPage.login(adminUserModel.id, adminUserModel.password);
|
loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||||
browser.executeScript('window.localStorage.removeItem("ticket-BPM");').then(async () => {
|
browser.executeScript('window.localStorage.removeItem("ticket-BPM");');
|
||||||
await browser.get(TestConfig.adf.url + '/activiti');
|
BrowserActions.getUrl(TestConfig.adf.url + '/activiti');
|
||||||
loginPage.waitForElements();
|
loginPage.waitForElements();
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C279930] Should a user still be logged-in when open a new tab', () => {
|
it('[C279930] Should a user still be logged-in when open a new tab', () => {
|
||||||
|
loginPage.goToLoginPage();
|
||||||
|
loginPage.clickSettingsIcon();
|
||||||
settingsPage.setProviderEcmBpm();
|
settingsPage.setProviderEcmBpm();
|
||||||
loginPage.login(adminUserModel.id, adminUserModel.password);
|
loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||||
|
|
||||||
@@ -245,15 +253,17 @@ describe('Login component', () => {
|
|||||||
browser.getAllWindowHandles().then((handles) => {
|
browser.getAllWindowHandles().then((handles) => {
|
||||||
|
|
||||||
browser.switchTo().window(handles[1]).then(() => {
|
browser.switchTo().window(handles[1]).then(() => {
|
||||||
browser.get(TestConfig.adf.url + '/activiti');
|
BrowserActions.getUrl(TestConfig.adf.url + '/activiti');
|
||||||
processServicesPage.checkApsContainer();
|
processServicesPage.checkApsContainer();
|
||||||
browser.get(TestConfig.adf.url + '/files');
|
BrowserActions.getUrl(TestConfig.adf.url + '/files');
|
||||||
contentServicesPage.checkAcsContainer();
|
contentServicesPage.checkAcsContainer();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C279933] Should be possible change the login component logo when logoImageUrl is changed', () => {
|
it('[C279933] Should be possible change the login component logo when logoImageUrl is changed', () => {
|
||||||
|
loginPage.goToLoginPage();
|
||||||
|
loginPage.clickSettingsIcon();
|
||||||
settingsPage.setProviderEcmBpm();
|
settingsPage.setProviderEcmBpm();
|
||||||
loginPage.enableLogoSwitch();
|
loginPage.enableLogoSwitch();
|
||||||
loginPage.enterLogo('https://rawgit.com/Alfresco/alfresco-ng2-components/master/assets/angular2.png');
|
loginPage.enterLogo('https://rawgit.com/Alfresco/alfresco-ng2-components/master/assets/angular2.png');
|
||||||
@@ -261,7 +271,7 @@ describe('Login component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C291854] Should be possible login in valid credentials', () => {
|
it('[C291854] Should be possible login in valid credentials', () => {
|
||||||
browser.get(TestConfig.adf.url);
|
BrowserActions.getUrl(TestConfig.adf.url);
|
||||||
loginPage.waitForElements();
|
loginPage.waitForElements();
|
||||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||||
loginPage.enterUsername(invalidUsername);
|
loginPage.enterUsername(invalidUsername);
|
||||||
|
|||||||
@@ -52,10 +52,10 @@ describe('Login component - SSO', () => {
|
|||||||
|
|
||||||
describe('SSO Login Error for login component', () => {
|
describe('SSO Login Error for login component', () => {
|
||||||
|
|
||||||
it('[C299205] Should display the login error message when the SSO identity service is wrongly configured', () => {
|
it('[C299205] Should display the login error message when the SSO identity service is wrongly configured', async() => {
|
||||||
settingsPage.setProviderEcmSso(TestConfig.adf.url, 'http://aps22/auth/realms/alfresco', TestConfig.adf.hostIdentity, false, true, 'alfresco');
|
await settingsPage.setProviderEcmSso(TestConfig.adf.url, 'http://aps22/auth/realms/alfresco', TestConfig.adf.hostIdentity, false, true, 'alfresco');
|
||||||
loginSSOPage.clickOnSSOButton();
|
await loginSSOPage.clickOnSSOButton();
|
||||||
loginSSOPage.checkLoginErrorIsDisplayed();
|
await loginSSOPage.checkLoginErrorIsDisplayed();
|
||||||
expect(loginSSOPage.getLoginErrorMessage()).toContain('SSO Authentication server unreachable');
|
expect(loginSSOPage.getLoginErrorMessage()).toContain('SSO Authentication server unreachable');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -68,6 +68,8 @@ describe('Login component - Redirect', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C213838] Should after login in CS be redirect to Login page when try to access to PS', () => {
|
it('[C213838] Should after login in CS be redirect to Login page when try to access to PS', () => {
|
||||||
|
loginPage.goToLoginPage();
|
||||||
|
loginPage.clickSettingsIcon();
|
||||||
settingsPage.setProviderEcm();
|
settingsPage.setProviderEcm();
|
||||||
loginPage.login(user.id, user.password);
|
loginPage.login(user.id, user.password);
|
||||||
|
|
||||||
@@ -80,6 +82,8 @@ describe('Login component - Redirect', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C260085] Should after login in PS be redirect to Login page when try to access to CS', () => {
|
it('[C260085] Should after login in PS be redirect to Login page when try to access to CS', () => {
|
||||||
|
loginPage.goToLoginPage();
|
||||||
|
loginPage.clickSettingsIcon();
|
||||||
settingsPage.setProviderBpm();
|
settingsPage.setProviderBpm();
|
||||||
|
|
||||||
loginPage.enableSuccessRouteSwitch();
|
loginPage.enableSuccessRouteSwitch();
|
||||||
@@ -96,6 +100,9 @@ describe('Login component - Redirect', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C260081] Should after login in BOTH not be redirect to Login page when try to access to CS or PS', () => {
|
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();
|
||||||
|
|
||||||
settingsPage.setProviderEcmBpm();
|
settingsPage.setProviderEcmBpm();
|
||||||
|
|
||||||
loginPage.login(adminUserModel.id, adminUserModel.password);
|
loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||||
@@ -108,71 +115,66 @@ describe('Login component - Redirect', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C260088] Should be re-redirect to the request URL after login when try to access to a protect URL ', () => {
|
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();
|
settingsPage.setProviderEcm();
|
||||||
loginPage.login(user.id, user.password);
|
loginPage.login(user.id, user.password);
|
||||||
|
|
||||||
browser.controlFlow().execute(async () => {
|
navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
|
browser.getCurrentUrl().then((actualUrl) => {
|
||||||
|
expect(actualUrl).toEqual(TestConfig.adf.url + '/files/' + uploadedFolder.entry.id);
|
||||||
|
});
|
||||||
|
|
||||||
browser.getCurrentUrl().then((actualUrl) => {
|
contentServicesPage.waitForTableBody();
|
||||||
expect(actualUrl).toEqual(TestConfig.adf.url + '/files/' + uploadedFolder.entry.id);
|
|
||||||
});
|
|
||||||
|
|
||||||
contentServicesPage.waitForTableBody();
|
navigationBarPage.clickLogoutButton();
|
||||||
|
|
||||||
navigationBarPage.clickLogoutButton();
|
logoutPage.checkLogoutSectionIsDisplayed();
|
||||||
|
|
||||||
logoutPage.checkLogoutSectionIsDisplayed();
|
navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
|
loginPage.waitForElements();
|
||||||
|
|
||||||
loginPage.waitForElements();
|
loginPage.login(user.id, user.password);
|
||||||
loginPage.enterUsername(user.id);
|
|
||||||
loginPage.enterPassword(user.password);
|
|
||||||
loginPage.clickSignInButton();
|
|
||||||
|
|
||||||
navigationBarPage.checkMenuButtonIsDisplayed();
|
browser.getCurrentUrl().then((actualUrl) => {
|
||||||
|
expect(actualUrl).toEqual(TestConfig.adf.url + '/files/' + uploadedFolder.entry.id);
|
||||||
browser.getCurrentUrl().then((actualUrl) => {
|
|
||||||
expect(actualUrl).toEqual(TestConfig.adf.url + '/files/' + uploadedFolder.entry.id);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C299161] Should redirect user to requested URL after reloading login page', () => {
|
it('[C299161] Should redirect user to requested URL after reloading login page', () => {
|
||||||
|
loginPage.goToLoginPage();
|
||||||
|
loginPage.clickSettingsIcon();
|
||||||
settingsPage.setProviderEcm();
|
settingsPage.setProviderEcm();
|
||||||
loginPage.login(user.id, user.password);
|
loginPage.login(user.id, user.password);
|
||||||
|
|
||||||
browser.controlFlow().execute(async () => {
|
navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
|
browser.getCurrentUrl().then((actualUrl) => {
|
||||||
|
expect(actualUrl).toEqual(TestConfig.adf.url + '/files/' + uploadedFolder.entry.id);
|
||||||
|
});
|
||||||
|
|
||||||
browser.getCurrentUrl().then((actualUrl) => {
|
contentServicesPage.waitForTableBody();
|
||||||
expect(actualUrl).toEqual(TestConfig.adf.url + '/files/' + uploadedFolder.entry.id);
|
|
||||||
});
|
|
||||||
|
|
||||||
contentServicesPage.waitForTableBody();
|
navigationBarPage.clickLogoutButton();
|
||||||
|
|
||||||
navigationBarPage.clickLogoutButton();
|
logoutPage.checkLogoutSectionIsDisplayed();
|
||||||
|
|
||||||
logoutPage.checkLogoutSectionIsDisplayed();
|
navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
|
||||||
|
loginPage.waitForElements();
|
||||||
|
browser.refresh();
|
||||||
|
loginPage.waitForElements();
|
||||||
|
|
||||||
navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
|
loginPage.enterUsername(user.id);
|
||||||
loginPage.waitForElements();
|
loginPage.enterPassword(user.password);
|
||||||
browser.refresh();
|
loginPage.clickSignInButton();
|
||||||
loginPage.waitForElements();
|
|
||||||
|
|
||||||
loginPage.enterUsername(user.id);
|
navigationBarPage.checkMenuButtonIsDisplayed();
|
||||||
loginPage.enterPassword(user.password);
|
|
||||||
loginPage.clickSignInButton();
|
|
||||||
|
|
||||||
navigationBarPage.checkMenuButtonIsDisplayed();
|
browser.getCurrentUrl().then((actualUrl) => {
|
||||||
|
expect(actualUrl).toEqual(TestConfig.adf.url + '/files/' + uploadedFolder.entry.id);
|
||||||
browser.getCurrentUrl().then((actualUrl) => {
|
|
||||||
expect(actualUrl).toEqual(TestConfig.adf.url + '/files/' + uploadedFolder.entry.id);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ describe('Login component - Remember Me', () => {
|
|||||||
const loginPage = new LoginPage();
|
const loginPage = new LoginPage();
|
||||||
|
|
||||||
beforeAll((done) => {
|
beforeAll((done) => {
|
||||||
|
loginPage.goToLoginPage();
|
||||||
|
loginPage.clickSettingsIcon();
|
||||||
settingsPage.setProviderEcmBpm();
|
settingsPage.setProviderEcmBpm();
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ describe('Pagination - returns to previous page when current is empty', () => {
|
|||||||
|
|
||||||
pngFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileInfo.location, pngFileInfo.name, lastFolderResponse.entry.id);
|
pngFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileInfo.location, pngFileInfo.name, lastFolderResponse.entry.id);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { LoginPage, SettingsPage } from '@alfresco/adf-testing';
|
import { LoginPage, SettingsPage, BrowserActions } from '@alfresco/adf-testing';
|
||||||
import { browser, protractor } from 'protractor';
|
import { protractor } from 'protractor';
|
||||||
import { AcsUserModel } from '../models/ACS/acsUserModel';
|
import { AcsUserModel } from '../models/ACS/acsUserModel';
|
||||||
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
|
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
|
||||||
import { ProcessServicesPage } from '../pages/adf/process-services/processServicesPage';
|
import { ProcessServicesPage } from '../pages/adf/process-services/processServicesPage';
|
||||||
@@ -49,7 +49,7 @@ describe('Settings component', () => {
|
|||||||
loginPage.waitForElements();
|
loginPage.waitForElements();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C291946] Should not save BPM Settings changes when User clicks Back button', () => {
|
xit('[C291946] Should not save BPM Settings changes when User clicks Back button', () => {
|
||||||
settingsPage.setProvider(settingsPage.getBpmOption(), 'BPM');
|
settingsPage.setProvider(settingsPage.getBpmOption(), 'BPM');
|
||||||
settingsPage.setProcessServicesURL('http://myenvUrl.co.uk');
|
settingsPage.setProcessServicesURL('http://myenvUrl.co.uk');
|
||||||
settingsPage.clickBackButton();
|
settingsPage.clickBackButton();
|
||||||
@@ -60,7 +60,7 @@ describe('Settings component', () => {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C291947] Should not save ECM Settings changes when User clicks Back button', () => {
|
xit('[C291947] Should not save ECM Settings changes when User clicks Back button', () => {
|
||||||
settingsPage.setProvider(settingsPage.getEcmOption(), 'ECM');
|
settingsPage.setProvider(settingsPage.getEcmOption(), 'ECM');
|
||||||
settingsPage.setContentServicesURL('http://myenvUrl.co.uk');
|
settingsPage.setContentServicesURL('http://myenvUrl.co.uk');
|
||||||
settingsPage.clickBackButton();
|
settingsPage.clickBackButton();
|
||||||
@@ -72,6 +72,8 @@ describe('Settings component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C291948] Should save ALL Settings changes when User clicks Apply button', () => {
|
it('[C291948] Should save ALL Settings changes when User clicks Apply button', () => {
|
||||||
|
loginPage.goToLoginPage();
|
||||||
|
loginPage.clickSettingsIcon();
|
||||||
settingsPage.setProviderEcmBpm();
|
settingsPage.setProviderEcmBpm();
|
||||||
loginPage.waitForElements();
|
loginPage.waitForElements();
|
||||||
settingsPage.goToSettingsPage();
|
settingsPage.goToSettingsPage();
|
||||||
@@ -170,7 +172,7 @@ describe('Settings component', () => {
|
|||||||
expect(settingsPage.getApplyButton().isEnabled()).toBe(true);
|
expect(settingsPage.getApplyButton().isEnabled()).toBe(true);
|
||||||
settingsPage.clickBackButton();
|
settingsPage.clickBackButton();
|
||||||
loginPage.waitForElements();
|
loginPage.waitForElements();
|
||||||
browser.get(TestConfig.adf.url + '/activiti');
|
BrowserActions.getUrl(TestConfig.adf.url + '/activiti');
|
||||||
processServicesPage.checkApsContainer();
|
processServicesPage.checkApsContainer();
|
||||||
processServicesPage.checkAppIsDisplayed('Task App');
|
processServicesPage.checkAppIsDisplayed('Task App');
|
||||||
});
|
});
|
||||||
@@ -197,7 +199,7 @@ describe('Settings component', () => {
|
|||||||
expect(settingsPage.getApplyButton().isEnabled()).toBe(true);
|
expect(settingsPage.getApplyButton().isEnabled()).toBe(true);
|
||||||
settingsPage.clickBackButton();
|
settingsPage.clickBackButton();
|
||||||
loginPage.waitForElements();
|
loginPage.waitForElements();
|
||||||
browser.get(TestConfig.adf.url + '/files');
|
BrowserActions.getUrl(TestConfig.adf.url + '/files');
|
||||||
contentServicesPage.checkAcsContainer();
|
contentServicesPage.checkAcsContainer();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -227,9 +229,9 @@ describe('Settings component', () => {
|
|||||||
expect(settingsPage.getApplyButton().isEnabled()).toBe(true);
|
expect(settingsPage.getApplyButton().isEnabled()).toBe(true);
|
||||||
settingsPage.clickBackButton();
|
settingsPage.clickBackButton();
|
||||||
loginPage.waitForElements();
|
loginPage.waitForElements();
|
||||||
browser.get(TestConfig.adf.url + '/files');
|
BrowserActions.getUrl(TestConfig.adf.url + '/files');
|
||||||
contentServicesPage.checkAcsContainer();
|
contentServicesPage.checkAcsContainer();
|
||||||
browser.get(TestConfig.adf.url + '/activiti');
|
BrowserActions.getUrl(TestConfig.adf.url + '/activiti');
|
||||||
processServicesPage.checkApsContainer();
|
processServicesPage.checkApsContainer();
|
||||||
processServicesPage.checkAppIsDisplayed('Task App');
|
processServicesPage.checkAppIsDisplayed('Task App');
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ describe('User Info - SSO', () => {
|
|||||||
let silentLogin, identityUser;
|
let silentLogin, identityUser;
|
||||||
let identityService: IdentityService;
|
let identityService: IdentityService;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async (done) => {
|
||||||
const apiService = new ApiService('alfresco', TestConfig.adf.url, TestConfig.adf.hostSso, 'ECM');
|
const apiService = new ApiService('alfresco', TestConfig.adf.url, TestConfig.adf.hostSso, 'ECM');
|
||||||
await apiService.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
await apiService.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
|
||||||
@@ -39,17 +39,21 @@ describe('User Info - SSO', () => {
|
|||||||
|
|
||||||
silentLogin = false;
|
silentLogin = false;
|
||||||
settingsPage.setProviderEcmSso(TestConfig.adf.url, TestConfig.adf.hostSso, TestConfig.adf.hostIdentity, silentLogin, true, 'alfresco');
|
settingsPage.setProviderEcmSso(TestConfig.adf.url, TestConfig.adf.hostSso, TestConfig.adf.hostIdentity, silentLogin, true, 'alfresco');
|
||||||
|
|
||||||
loginSSOPage.clickOnSSOButton();
|
loginSSOPage.clickOnSSOButton();
|
||||||
|
|
||||||
loginSSOPage.loginSSOIdentityService(identityUser.email, identityUser.password);
|
loginSSOPage.loginSSOIdentityService(identityUser.email, identityUser.password);
|
||||||
|
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
await identityService.deleteIdentityUser(identityUser.idIdentityService);
|
if (identityService) {
|
||||||
|
await identityService.deleteIdentityUser(identityUser.idIdentityService);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C290066] Should display UserInfo when login using SSO', () => {
|
it('[C290066] Should display UserInfo when login using SSO', () => {
|
||||||
|
|
||||||
navigationBarPage.navigateToProcessServicesCloudPage();
|
navigationBarPage.navigateToProcessServicesCloudPage();
|
||||||
userInfoPage.clickUserProfile();
|
userInfoPage.clickUserProfile();
|
||||||
expect(userInfoPage.getSsoHeaderTitle()).toEqual(identityUser.firstName + ' ' + identityUser.lastName);
|
expect(userInfoPage.getSsoHeaderTitle()).toEqual(identityUser.firstName + ' ' + identityUser.lastName);
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { LoginPage, SettingsPage } from '@alfresco/adf-testing';
|
import { LoginPage } from '@alfresco/adf-testing';
|
||||||
import { UserInfoPage } from '@alfresco/adf-testing';
|
import { UserInfoPage } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
import { AcsUserModel } from '../models/ACS/acsUserModel';
|
import { AcsUserModel } from '../models/ACS/acsUserModel';
|
||||||
@@ -28,11 +28,9 @@ import resources = require('../util/resources');
|
|||||||
|
|
||||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||||
import { UsersActions } from '../actions/users.actions';
|
import { UsersActions } from '../actions/users.actions';
|
||||||
import { browser } from 'protractor';
|
|
||||||
|
|
||||||
describe('User Info component', () => {
|
describe('User Info component', () => {
|
||||||
|
|
||||||
const settingsPage = new SettingsPage();
|
|
||||||
const loginPage = new LoginPage();
|
const loginPage = new LoginPage();
|
||||||
const userInfoPage = new UserInfoPage();
|
const userInfoPage = new UserInfoPage();
|
||||||
let processUserModel, contentUserModel;
|
let processUserModel, contentUserModel;
|
||||||
@@ -71,10 +69,9 @@ describe('User Info component', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
xit('[C260111] Should display UserInfo when Process Services and Content Services are enabled', () => {
|
xit('[C260111] Should display UserInfo when Process Services and Content Services are enabled', async () => {
|
||||||
loginPage.goToLoginPage();
|
await loginPage.loginToAllUsingUserModel(contentUserModel);
|
||||||
settingsPage.setProviderEcmBpm();
|
|
||||||
loginPage.login(contentUserModel.id, contentUserModel.password);
|
|
||||||
userInfoPage.clickUserProfile();
|
userInfoPage.clickUserProfile();
|
||||||
|
|
||||||
expect(userInfoPage.getContentHeaderTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
|
expect(userInfoPage.getContentHeaderTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
|
||||||
@@ -108,10 +105,8 @@ describe('User Info component', () => {
|
|||||||
userInfoPage.closeUserProfile();
|
userInfoPage.closeUserProfile();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260113] Should display UserInfo when Content Services is enabled and Process Services is disabled', () => {
|
it('[C260113] Should display UserInfo when Content Services is enabled and Process Services is disabled', async () => {
|
||||||
loginPage.goToLoginPage();
|
await loginPage.loginToContentServicesUsingUserModel(contentUserModel);
|
||||||
settingsPage.setProviderEcm();
|
|
||||||
loginPage.login(contentUserModel.id, contentUserModel.password);
|
|
||||||
|
|
||||||
userInfoPage.clickUserProfile();
|
userInfoPage.clickUserProfile();
|
||||||
userInfoPage.dialogIsDisplayed();
|
userInfoPage.dialogIsDisplayed();
|
||||||
@@ -128,10 +123,8 @@ describe('User Info component', () => {
|
|||||||
userInfoPage.dialogIsNotDisplayed();
|
userInfoPage.dialogIsNotDisplayed();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260115] Should display UserInfo when Process Services is enabled and Content Services is disabled', () => {
|
it('[C260115] Should display UserInfo when Process Services is enabled and Content Services is disabled', async () => {
|
||||||
loginPage.goToLoginPage();
|
await loginPage.loginToProcessServicesUsingUserModel(contentUserModel);
|
||||||
settingsPage.setProviderBpm();
|
|
||||||
loginPage.login(processUserModel.email, processUserModel.password);
|
|
||||||
|
|
||||||
userInfoPage.clickUserProfile();
|
userInfoPage.clickUserProfile();
|
||||||
|
|
||||||
@@ -147,22 +140,18 @@ describe('User Info component', () => {
|
|||||||
userInfoPage.closeUserProfile();
|
userInfoPage.closeUserProfile();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260117] Should display UserInfo with profile image uploaded in ACS', async(done) => {
|
it('[C260117] Should display UserInfo with profile image uploaded in ACS', async () => {
|
||||||
browser.controlFlow().execute(async() => {
|
await PeopleAPI.updateAvatarViaAPI(contentUserModel, acsAvatarFileModel, '-me-');
|
||||||
await PeopleAPI.updateAvatarViaAPI(contentUserModel, acsAvatarFileModel, '-me-');
|
await PeopleAPI.getAvatarViaAPI(4, contentUserModel, '-me-', function () {
|
||||||
await PeopleAPI.getAvatarViaAPI(4, contentUserModel, '-me-', function () {});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
loginPage.goToLoginPage();
|
await loginPage.loginToContentServicesUsingUserModel(contentUserModel);
|
||||||
settingsPage.setProviderEcm();
|
|
||||||
loginPage.login(contentUserModel.id, contentUserModel.password);
|
|
||||||
userInfoPage.clickUserProfile();
|
userInfoPage.clickUserProfile();
|
||||||
|
|
||||||
userInfoPage.checkACSProfileImage();
|
userInfoPage.checkACSProfileImage();
|
||||||
userInfoPage.APSProfileImageNotDisplayed();
|
userInfoPage.APSProfileImageNotDisplayed();
|
||||||
userInfoPage.closeUserProfile();
|
userInfoPage.closeUserProfile();
|
||||||
|
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260118] Should display UserInfo with profile image uploaded in APS', async () => {
|
it('[C260118] Should display UserInfo with profile image uploaded in APS', async () => {
|
||||||
@@ -170,9 +159,8 @@ describe('User Info component', () => {
|
|||||||
await this.alfrescoJsApi.login(contentUserModel.email, contentUserModel.password);
|
await this.alfrescoJsApi.login(contentUserModel.email, contentUserModel.password);
|
||||||
await users.changeProfilePictureAps(this.alfrescoJsApi, apsAvatarFileModel.getLocation());
|
await users.changeProfilePictureAps(this.alfrescoJsApi, apsAvatarFileModel.getLocation());
|
||||||
|
|
||||||
loginPage.goToLoginPage();
|
await loginPage.loginToProcessServicesUsingUserModel(contentUserModel);
|
||||||
settingsPage.setProviderBpm();
|
|
||||||
loginPage.login(processUserModel.email, processUserModel.password);
|
|
||||||
userInfoPage.clickUserProfile();
|
userInfoPage.clickUserProfile();
|
||||||
|
|
||||||
userInfoPage.checkAPSProfileImage();
|
userInfoPage.checkAPSProfileImage();
|
||||||
@@ -181,13 +169,11 @@ describe('User Info component', () => {
|
|||||||
userInfoPage.closeUserProfile();
|
userInfoPage.closeUserProfile();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260120] Should not display profile image in UserInfo when deleted in ACS', () => {
|
it('[C260120] Should not display profile image in UserInfo when deleted in ACS', async () => {
|
||||||
PeopleAPI.deleteAvatarViaAPI(contentUserModel, '-me-');
|
await PeopleAPI.deleteAvatarViaAPI(contentUserModel, '-me-');
|
||||||
|
|
||||||
loginPage.goToLoginPage();
|
await loginPage.loginToContentServicesUsingUserModel(contentUserModel);
|
||||||
|
|
||||||
settingsPage.setProviderEcm();
|
|
||||||
loginPage.login(contentUserModel.id, contentUserModel.password);
|
|
||||||
userInfoPage.clickUserProfile();
|
userInfoPage.clickUserProfile();
|
||||||
|
|
||||||
userInfoPage.checkInitialImage();
|
userInfoPage.checkInitialImage();
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ describe('Viewer', () => {
|
|||||||
|
|
||||||
uploadedArchives = await uploadActions.uploadFolder(this.alfrescoJsApi, archiveFolderInfo.location, archiveFolderUploaded.entry.id);
|
uploadedArchives = await uploadActions.uploadFolder(this.alfrescoJsApi, archiveFolderInfo.location, archiveFolderUploaded.entry.id);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
done();
|
done();
|
||||||
|
|||||||
@@ -80,8 +80,8 @@ describe('Viewer', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C272813] Should be redirected to site when opening and closing a file in a site', () => {
|
it('[C272813] Should be redirected to site when opening and closing a file in a site', async () => {
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
navigationBarPage.goToSite(site);
|
navigationBarPage.goToSite(site);
|
||||||
contentServicesPage.checkAcsContainer();
|
contentServicesPage.checkAcsContainer();
|
||||||
@@ -103,7 +103,7 @@ describe('Viewer', () => {
|
|||||||
|
|
||||||
uploadedOthers = await uploadActions.uploadFolder(this.alfrescoJsApi, otherFolderInfo.location, otherFolderUploaded.entry.id);
|
uploadedOthers = await uploadActions.uploadFolder(this.alfrescoJsApi, otherFolderInfo.location, otherFolderUploaded.entry.id);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
done();
|
done();
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ describe('Viewer', () => {
|
|||||||
|
|
||||||
uploadedExcels = await uploadActions.uploadFolder(this.alfrescoJsApi, excelFolderInfo.location, excelFolderUploaded.entry.id);
|
uploadedExcels = await uploadActions.uploadFolder(this.alfrescoJsApi, excelFolderInfo.location, excelFolderUploaded.entry.id);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
done();
|
done();
|
||||||
@@ -96,7 +96,7 @@ describe('Viewer', () => {
|
|||||||
uploadedExcels.forEach((currentFile) => {
|
uploadedExcels.forEach((currentFile) => {
|
||||||
if (currentFile.entry.name !== '.DS_Store') {
|
if (currentFile.entry.name !== '.DS_Store') {
|
||||||
contentServicesPage.doubleClickRow(currentFile.entry.name);
|
contentServicesPage.doubleClickRow(currentFile.entry.name);
|
||||||
viewerPage.checkFileIsLoaded();
|
viewerPage.checkFileIsLoaded(currentFile.entry.name);
|
||||||
viewerPage.clickCloseButton();
|
viewerPage.clickCloseButton();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ describe('Viewer', () => {
|
|||||||
|
|
||||||
uploadedImgRenditionFolderInfo = await uploadActions.uploadFolder(this.alfrescoJsApi, imgRenditionFolderInfo.location, imgFolderRenditionUploaded.entry.id);
|
uploadedImgRenditionFolderInfo = await uploadActions.uploadFolder(this.alfrescoJsApi, imgRenditionFolderInfo.location, imgFolderRenditionUploaded.entry.id);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
done();
|
done();
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import { AcsUserModel } from '../../../models/ACS/acsUserModel';
|
|||||||
|
|
||||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||||
import { UploadActions } from '../../../actions/ACS/upload.actions';
|
import { UploadActions } from '../../../actions/ACS/upload.actions';
|
||||||
|
import { browser } from 'protractor';
|
||||||
|
|
||||||
describe('Viewer', () => {
|
describe('Viewer', () => {
|
||||||
|
|
||||||
@@ -80,9 +81,11 @@ describe('Viewer', () => {
|
|||||||
|
|
||||||
uploadedPpt = await uploadActions.uploadFolder(this.alfrescoJsApi, pptFolderInfo.location, pptFolderUploaded.entry.id);
|
uploadedPpt = await uploadActions.uploadFolder(this.alfrescoJsApi, pptFolderInfo.location, pptFolderUploaded.entry.id);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
|
browser.driver.sleep(15000);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -97,7 +100,7 @@ describe('Viewer', () => {
|
|||||||
uploadedPpt.forEach((currentFile) => {
|
uploadedPpt.forEach((currentFile) => {
|
||||||
if (currentFile.entry.name !== '.DS_Store') {
|
if (currentFile.entry.name !== '.DS_Store') {
|
||||||
contentServicesPage.doubleClickRow(currentFile.entry.name);
|
contentServicesPage.doubleClickRow(currentFile.entry.name);
|
||||||
viewerPage.checkFileIsLoaded();
|
viewerPage.checkFileIsLoaded(currentFile.entry.name);
|
||||||
viewerPage.clickCloseButton();
|
viewerPage.clickCloseButton();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ describe('Viewer', () => {
|
|||||||
|
|
||||||
uploadedTexts = await uploadActions.uploadFolder(this.alfrescoJsApi, textFolderInfo.location, textFolderUploaded.entry.id);
|
uploadedTexts = await uploadActions.uploadFolder(this.alfrescoJsApi, textFolderInfo.location, textFolderUploaded.entry.id);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
done();
|
done();
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ describe('Viewer', () => {
|
|||||||
|
|
||||||
uploadedWords = await uploadActions.uploadFolder(this.alfrescoJsApi, wordFolderInfo.location, wordFolderUploaded.entry.id);
|
uploadedWords = await uploadActions.uploadFolder(this.alfrescoJsApi, wordFolderInfo.location, wordFolderUploaded.entry.id);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
done();
|
done();
|
||||||
|
|||||||
@@ -80,8 +80,8 @@ describe('Info Drawer', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(async() => {
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
navigationBarPage.goToSite(site);
|
navigationBarPage.goToSite(site);
|
||||||
contentServicesPage.checkAcsContainer();
|
contentServicesPage.checkAcsContainer();
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ describe('Content Services Viewer', () => {
|
|||||||
const unsupportedFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, unsupportedFile.location, unsupportedFile.name, '-my-');
|
const unsupportedFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, unsupportedFile.location, unsupportedFile.name, '-my-');
|
||||||
Object.assign(unsupportedFile, unsupportedFileUploaded.entry);
|
Object.assign(unsupportedFile, unsupportedFileUploaded.entry);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
@@ -383,11 +383,9 @@ describe('Content Services Viewer', () => {
|
|||||||
viewerPage.clickCloseButton();
|
viewerPage.clickCloseButton();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C269109] Should not be able to open thumbnail pane before the pdf is loaded', () => {
|
it('[C269109] Should not be able to open thumbnail panel before the pdf is loaded', () => {
|
||||||
viewerPage.viewFile(pdfFile.name);
|
viewerPage.viewFile(pdfFile.name);
|
||||||
|
|
||||||
browser.driver.sleep(3000); // wait open file
|
|
||||||
|
|
||||||
viewerPage.checkThumbnailsBtnIsDisabled();
|
viewerPage.checkThumbnailsBtnIsDisabled();
|
||||||
|
|
||||||
viewerPage.checkCloseButtonIsDisplayed();
|
viewerPage.checkCloseButtonIsDisplayed();
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ describe('Viewer', () => {
|
|||||||
|
|
||||||
txtFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, txtFileInfo.location, txtFileInfo.name, '-my-');
|
txtFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, txtFileInfo.location, txtFileInfo.name, '-my-');
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ describe('Viewer', () => {
|
|||||||
|
|
||||||
jsFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, jsFileInfo.location, jsFileInfo.name, '-my-');
|
jsFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, jsFileInfo.location, jsFileInfo.name, '-my-');
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
@@ -88,7 +88,6 @@ describe('Viewer', () => {
|
|||||||
describe('Viewer extension', () => {
|
describe('Viewer extension', () => {
|
||||||
|
|
||||||
it('[C297698] Should be able to add an extension for code editor viewer', () => {
|
it('[C297698] Should be able to add an extension for code editor viewer', () => {
|
||||||
navigationBarPage.checkAboutButtonIsDisplayed();
|
|
||||||
navigationBarPage.clickAboutButton();
|
navigationBarPage.clickAboutButton();
|
||||||
|
|
||||||
monacoExtensionPage.checkMonacoPluginIsDisplayed();
|
monacoExtensionPage.checkMonacoPluginIsDisplayed();
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ describe('Viewer - properties', () => {
|
|||||||
pngFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, fileForOverlay.location, fileForOverlay.name, '-my-');
|
pngFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, fileForOverlay.location, fileForOverlay.name, '-my-');
|
||||||
Object.assign(fileForOverlay, pngFileUploaded.entry);
|
Object.assign(fileForOverlay, pngFileUploaded.entry);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import { ShareDialog } from '../../pages/adf/dialog/shareDialog';
|
|||||||
|
|
||||||
import CONSTANTS = require('../../util/constants');
|
import CONSTANTS = require('../../util/constants');
|
||||||
import resources = require('../../util/resources');
|
import resources = require('../../util/resources');
|
||||||
import { StringUtil } from '@alfresco/adf-testing';
|
import { StringUtil, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
import { FileModel } from '../../models/ACS/fileModel';
|
import { FileModel } from '../../models/ACS/fileModel';
|
||||||
import { AcsUserModel } from '../../models/ACS/acsUserModel';
|
import { AcsUserModel } from '../../models/ACS/acsUserModel';
|
||||||
@@ -98,16 +98,16 @@ describe('Viewer', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(async () => {
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260105] Should be able to open an image file shared via API', () => {
|
it('[C260105] Should be able to open an image file shared via API', () => {
|
||||||
browser.get(TestConfig.adf.url + '/preview/s/' + pngFileShared.entry.id);
|
BrowserActions.getUrl(TestConfig.adf.url + '/preview/s/' + pngFileShared.entry.id);
|
||||||
viewerPage.checkImgContainerIsDisplayed();
|
viewerPage.checkImgContainerIsDisplayed();
|
||||||
browser.get(TestConfig.adf.url);
|
BrowserActions.getUrl(TestConfig.adf.url);
|
||||||
navigationBarPage.clickLogoutButton();
|
navigationBarPage.clickLogoutButton();
|
||||||
browser.get(TestConfig.adf.url + '/preview/s/' + pngFileShared.entry.id);
|
BrowserActions.getUrl(TestConfig.adf.url + '/preview/s/' + pngFileShared.entry.id);
|
||||||
viewerPage.checkImgContainerIsDisplayed();
|
viewerPage.checkImgContainerIsDisplayed();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -122,13 +122,13 @@ describe('Viewer', () => {
|
|||||||
browser.controlFlow().execute(async () => {
|
browser.controlFlow().execute(async () => {
|
||||||
const sharedLink = await shareDialog.getShareLink();
|
const sharedLink = await shareDialog.getShareLink();
|
||||||
|
|
||||||
await browser.get(sharedLink);
|
await BrowserActions.getUrl(sharedLink);
|
||||||
viewerPage.checkFileIsLoaded();
|
viewerPage.checkFileIsLoaded();
|
||||||
viewerPage.checkFileNameIsDisplayed(wordFileInfo.name);
|
viewerPage.checkFileNameIsDisplayed(wordFileInfo.name);
|
||||||
|
|
||||||
await browser.get(TestConfig.adf.url);
|
await BrowserActions.getUrl(TestConfig.adf.url);
|
||||||
navigationBarPage.clickLogoutButton();
|
navigationBarPage.clickLogoutButton();
|
||||||
await browser.get(sharedLink);
|
await BrowserActions.getUrl(sharedLink);
|
||||||
viewerPage.checkFileIsLoaded();
|
viewerPage.checkFileIsLoaded();
|
||||||
viewerPage.checkFileNameIsDisplayed(wordFileInfo.name);
|
viewerPage.checkFileNameIsDisplayed(wordFileInfo.name);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ describe('Analytics Smoke Test', () => {
|
|||||||
|
|
||||||
await this.alfrescoJsApi.activiti.adminUsersApi.createNewUser(procUserModel);
|
await this.alfrescoJsApi.activiti.adminUsersApi.createNewUser(procUserModel);
|
||||||
|
|
||||||
loginPage.loginToProcessServicesUsingUserModel(procUserModel);
|
await loginPage.loginToProcessServicesUsingUserModel(procUserModel);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -16,7 +16,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { by, element } from 'protractor';
|
import { by, element } from 'protractor';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
import { ElementFinder } from 'protractor/built/element';
|
||||||
|
|
||||||
export class CardViewComponentPage {
|
export class CardViewComponentPage {
|
||||||
|
|
||||||
@@ -33,134 +34,111 @@ export class CardViewComponentPage {
|
|||||||
select = element(by.css('mat-select[data-automation-class="select-box"]'));
|
select = element(by.css('mat-select[data-automation-class="select-box"]'));
|
||||||
checkbox = element(by.css(`mat-checkbox[data-automation-id='card-boolean-boolean']`));
|
checkbox = element(by.css(`mat-checkbox[data-automation-id='card-boolean-boolean']`));
|
||||||
resetButton = element(by.css(`#adf-reset-card-log`));
|
resetButton = element(by.css(`#adf-reset-card-log`));
|
||||||
selectedValue = element(by.css('.mat-select-value-text span'));
|
|
||||||
listContent = element(by.css('.mat-select-panel'));
|
listContent = element(by.css('.mat-select-panel'));
|
||||||
editableSwitch = element(by.id('adf-toggle-editable'));
|
editableSwitch = element(by.id('adf-toggle-editable'));
|
||||||
|
|
||||||
clickOnAddButton() {
|
clickOnAddButton() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.addButton);
|
BrowserActions.click(this.addButton);
|
||||||
this.addButton.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnResetButton() {
|
clickOnResetButton() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.resetButton);
|
BrowserActions.click(this.resetButton);
|
||||||
this.resetButton.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnTextField() {
|
clickOnTextField() {
|
||||||
const toggleText = element(by.css(`div[data-automation-id='card-textitem-edit-toggle-name']`));
|
const toggleText = element(by.css(`div[data-automation-id='card-textitem-edit-toggle-name']`));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(toggleText);
|
BrowserActions.click(toggleText);
|
||||||
toggleText.click();
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.textField);
|
BrowserVisibility.waitUntilElementIsVisible(this.textField);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnTextClearIcon() {
|
clickOnTextClearIcon() {
|
||||||
const clearIcon = element(by.css(`mat-icon[data-automation-id="card-textitem-reset-name"]`));
|
const clearIcon = element(by.css(`mat-icon[data-automation-id="card-textitem-reset-name"]`));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(clearIcon);
|
BrowserActions.click(clearIcon);
|
||||||
return clearIcon.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnTextSaveIcon() {
|
clickOnTextSaveIcon() {
|
||||||
const saveIcon = element(by.css(`mat-icon[data-automation-id="card-textitem-update-name"]`));
|
const saveIcon = element(by.css(`mat-icon[data-automation-id="card-textitem-update-name"]`));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(saveIcon);
|
BrowserActions.click(saveIcon);
|
||||||
return saveIcon.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getTextFieldText() {
|
getTextFieldText() {
|
||||||
const textField = element(by.css(`span[data-automation-id="card-textitem-value-name"]`));
|
const textField = element(by.css(`span[data-automation-id="card-textitem-value-name"]`));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(textField);
|
return BrowserActions.getText(textField);
|
||||||
return textField.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enterTextField(text) {
|
enterTextField(text) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.textField);
|
BrowserVisibility.waitUntilElementIsVisible(this.textField);
|
||||||
this.textField.sendKeys('');
|
BrowserActions.clearSendKeys(this.textField, text);
|
||||||
this.textField.clear();
|
|
||||||
this.textField.sendKeys(text);
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnIntField() {
|
clickOnIntField() {
|
||||||
const toggleText = element(by.css('div[data-automation-id="card-textitem-edit-toggle-int"]'));
|
const toggleText = element(by.css('div[data-automation-id="card-textitem-edit-toggle-int"]'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(toggleText);
|
BrowserActions.click(toggleText);
|
||||||
toggleText.click();
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.intField);
|
BrowserVisibility.waitUntilElementIsVisible(this.intField);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnIntClearIcon() {
|
clickOnIntClearIcon() {
|
||||||
const clearIcon = element(by.css('mat-icon[data-automation-id="card-textitem-reset-int"]'));
|
const clearIcon = element(by.css('mat-icon[data-automation-id="card-textitem-reset-int"]'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(clearIcon);
|
BrowserActions.click(clearIcon);
|
||||||
return clearIcon.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnIntSaveIcon() {
|
clickOnIntSaveIcon() {
|
||||||
const saveIcon = element(by.css('mat-icon[data-automation-id="card-textitem-update-int"]'));
|
const saveIcon = element(by.css('mat-icon[data-automation-id="card-textitem-update-int"]'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(saveIcon);
|
BrowserActions.click(saveIcon);
|
||||||
return saveIcon.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enterIntField(text) {
|
enterIntField(text) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.intField);
|
BrowserVisibility.waitUntilElementIsVisible(this.intField);
|
||||||
this.intField.sendKeys('');
|
BrowserActions.clearSendKeys(this.intField, text);
|
||||||
this.intField.clear();
|
|
||||||
this.intField.sendKeys(text);
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
getIntFieldText() {
|
getIntFieldText() {
|
||||||
const textField = element(by.css('span[data-automation-id="card-textitem-value-int"]'));
|
const textField = element(by.css('span[data-automation-id="card-textitem-value-int"]'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(textField);
|
return BrowserActions.getText(textField);
|
||||||
return textField.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getErrorInt() {
|
getErrorInt() {
|
||||||
const errorElement = element(by.css('mat-error[data-automation-id="card-textitem-error-int"]'));
|
const errorElement = element(by.css('mat-error[data-automation-id="card-textitem-error-int"]'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(errorElement);
|
return BrowserActions.getText(errorElement);
|
||||||
return errorElement.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnFloatField() {
|
clickOnFloatField() {
|
||||||
const toggleText = element(by.css('div[data-automation-id="card-textitem-edit-toggle-float"]'));
|
const toggleText = element(by.css('div[data-automation-id="card-textitem-edit-toggle-float"]'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(toggleText);
|
BrowserActions.click(toggleText);
|
||||||
toggleText.click();
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.floatField);
|
BrowserVisibility.waitUntilElementIsVisible(this.floatField);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnFloatClearIcon() {
|
clickOnFloatClearIcon() {
|
||||||
const clearIcon = element(by.css(`mat-icon[data-automation-id="card-textitem-reset-float"]`));
|
const clearIcon = element(by.css(`mat-icon[data-automation-id="card-textitem-reset-float"]`));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(clearIcon);
|
BrowserActions.click(clearIcon);
|
||||||
return clearIcon.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnFloatSaveIcon() {
|
clickOnFloatSaveIcon() {
|
||||||
const saveIcon = element(by.css(`mat-icon[data-automation-id="card-textitem-update-float"]`));
|
const saveIcon = element(by.css(`mat-icon[data-automation-id="card-textitem-update-float"]`));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(saveIcon);
|
BrowserActions.click(saveIcon);
|
||||||
return saveIcon.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enterFloatField(text) {
|
enterFloatField(text) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.floatField);
|
BrowserVisibility.waitUntilElementIsVisible(this.floatField);
|
||||||
this.floatField.sendKeys('');
|
BrowserActions.clearSendKeys(this.floatField, text);
|
||||||
this.floatField.clear();
|
|
||||||
this.floatField.sendKeys(text);
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
getFloatFieldText() {
|
getFloatFieldText() {
|
||||||
const textField = element(by.css('span[data-automation-id="card-textitem-value-float"]'));
|
const textField = element(by.css('span[data-automation-id="card-textitem-value-float"]'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(textField);
|
return BrowserActions.getText(textField);
|
||||||
return textField.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getErrorFloat() {
|
getErrorFloat() {
|
||||||
const errorElement = element(by.css('mat-error[data-automation-id="card-textitem-error-float"]'));
|
const errorElement = element(by.css('mat-error[data-automation-id="card-textitem-error-float"]'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(errorElement);
|
return BrowserActions.getText(errorElement);
|
||||||
return errorElement.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setName(name) {
|
setName(name) {
|
||||||
@@ -181,48 +159,29 @@ export class CardViewComponentPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getOutputText(index) {
|
getOutputText(index) {
|
||||||
return this.consoleLog.all(by.css('p')).get(index).getText();
|
return BrowserActions.getText(this.consoleLog.all(by.css('p')).get(index));
|
||||||
}
|
}
|
||||||
|
|
||||||
deletePairsValues() {
|
deletePairsValues() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.deleteButton);
|
BrowserActions.click(this.deleteButton);
|
||||||
this.deleteButton.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
checkNameAndValueVisibility(index) {
|
|
||||||
BrowserVisibility.waitUntilElementIsNotOnPage(this.getKeyValueRow(index));
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
getKeyValueRow(index) {
|
|
||||||
return element.all(by.css(this.keyValueRow)).get(index);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
getMatSelectValue(index) {
|
|
||||||
return element.all(by.className(this.selectValue)).get(index);
|
|
||||||
}
|
|
||||||
|
|
||||||
clickSelectBox() {
|
clickSelectBox() {
|
||||||
this.select.click();
|
BrowserActions.click(this.select);
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.listContent);
|
BrowserVisibility.waitUntilElementIsVisible(this.listContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
checkboxClick() {
|
checkboxClick() {
|
||||||
this.checkbox.click();
|
BrowserActions.click(this.checkbox);
|
||||||
}
|
}
|
||||||
|
|
||||||
selectValueFromComboBox(index) {
|
selectValueFromComboBox(index) {
|
||||||
const value = this.getMatSelectValue(index).click();
|
const value: ElementFinder = element.all(by.className(this.selectValue)).get(index);
|
||||||
BrowserVisibility.waitUntilElementIsVisible(value);
|
BrowserActions.click(value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
getSelectionValue() {
|
|
||||||
return this.selectedValue.getText();
|
|
||||||
}
|
|
||||||
|
|
||||||
disableEdit() {
|
disableEdit() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.editableSwitch);
|
BrowserVisibility.waitUntilElementIsVisible(this.editableSwitch);
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
import { element, by } from 'protractor';
|
import { element, by } from 'protractor';
|
||||||
|
|
||||||
import { TabsPage } from '@alfresco/adf-testing';
|
import { TabsPage } from '@alfresco/adf-testing';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class CommentsPage {
|
export class CommentsPage {
|
||||||
|
|
||||||
@@ -32,28 +32,25 @@ export class CommentsPage {
|
|||||||
addCommentButton = element(by.css("[data-automation-id='comments-input-add']"));
|
addCommentButton = element(by.css("[data-automation-id='comments-input-add']"));
|
||||||
|
|
||||||
getTotalNumberOfComments() {
|
getTotalNumberOfComments() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.numberOfComments);
|
return BrowserActions.getText(this.numberOfComments);
|
||||||
return this.numberOfComments.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkUserIconIsDisplayed(position) {
|
checkUserIconIsDisplayed(position) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.commentUserIcon);
|
BrowserVisibility.waitUntilElementIsVisible(this.commentUserIcon.first());
|
||||||
return this.commentUserIcon.get(position);
|
return this.commentUserIcon.get(position);
|
||||||
}
|
}
|
||||||
|
|
||||||
getUserName(position) {
|
getUserName(position) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.commentUserName);
|
return BrowserActions.getText(this.commentUserName.get(position));
|
||||||
return this.commentUserName.get(position).getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getMessage(position) {
|
getMessage(position) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.commentMessage);
|
return BrowserActions.getText(this.commentMessage.get(position));
|
||||||
return this.commentMessage.get(position).getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getTime(position) {
|
getTime(position) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.commentTime);
|
return BrowserActions.getText(this.commentTime.get(position));
|
||||||
return this.commentTime.get(position).getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkCommentInputIsNotDisplayed() {
|
checkCommentInputIsNotDisplayed() {
|
||||||
@@ -63,7 +60,7 @@ export class CommentsPage {
|
|||||||
addComment(comment) {
|
addComment(comment) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.commentInput);
|
BrowserVisibility.waitUntilElementIsVisible(this.commentInput);
|
||||||
this.commentInput.sendKeys(comment);
|
this.commentInput.sendKeys(comment);
|
||||||
return this.addCommentButton.click();
|
BrowserActions.click(this.addCommentButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
checkCommentsTabIsSelected() {
|
checkCommentsTabIsSelected() {
|
||||||
|
|||||||
@@ -15,8 +15,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { element, by, browser } from 'protractor';
|
import { element, by } from 'protractor';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class ConfigEditorPage {
|
export class ConfigEditorPage {
|
||||||
|
|
||||||
@@ -27,74 +27,13 @@ export class ConfigEditorPage {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
enterBigConfigurationText(text) {
|
|
||||||
const textField = element(by.css('#adf-code-configuration-editor div.overflow-guard > textarea'));
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(textField);
|
|
||||||
|
|
||||||
browser.executeScript('this.monaco.editor.getModels()[0].setValue(`' + text + '`)');
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
clickSaveButton() {
|
clickSaveButton() {
|
||||||
const saveButton = element(by.id('adf-configuration-save'));
|
const saveButton = element(by.id('adf-configuration-save'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(saveButton);
|
BrowserActions.click(saveButton);
|
||||||
BrowserVisibility.waitUntilElementIsClickable(saveButton);
|
|
||||||
return saveButton.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clickClearButton() {
|
clickClearButton() {
|
||||||
const clearButton = element(by.id('adf-configuration-clear'));
|
const clearButton = element(by.id('adf-configuration-clear'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(clearButton);
|
BrowserActions.click(clearButton);
|
||||||
BrowserVisibility.waitUntilElementIsClickable(clearButton);
|
|
||||||
return clearButton.click();
|
|
||||||
}
|
|
||||||
|
|
||||||
clickFileConfiguration() {
|
|
||||||
const button = element(by.id('adf-file-conf'));
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(button);
|
|
||||||
BrowserVisibility.waitUntilElementIsClickable(button);
|
|
||||||
return button.click();
|
|
||||||
}
|
|
||||||
|
|
||||||
clickSearchConfiguration() {
|
|
||||||
const button = element(by.id('adf-search-conf'));
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(button);
|
|
||||||
BrowserVisibility.waitUntilElementIsClickable(button);
|
|
||||||
return button.click();
|
|
||||||
}
|
|
||||||
|
|
||||||
clickProcessListCloudConfiguration() {
|
|
||||||
const button = element(by.id('adf-process-list-cloud-conf'));
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(button);
|
|
||||||
BrowserVisibility.waitUntilElementIsClickable(button);
|
|
||||||
return button.click();
|
|
||||||
}
|
|
||||||
|
|
||||||
clickEditProcessCloudConfiguration() {
|
|
||||||
const button = element(by.id('adf-edit-process-filter-conf'));
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(button);
|
|
||||||
BrowserVisibility.waitUntilElementIsClickable(button);
|
|
||||||
return button.click();
|
|
||||||
}
|
|
||||||
|
|
||||||
clickEditTaskConfiguration() {
|
|
||||||
const button = element(by.id('adf-edit-task-filter-conf'));
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(button);
|
|
||||||
BrowserVisibility.waitUntilElementIsClickable(button);
|
|
||||||
return button.click();
|
|
||||||
}
|
|
||||||
|
|
||||||
clickTaskListCloudConfiguration() {
|
|
||||||
const button = element(by.id('adf-task-list-cloud-conf'));
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(button);
|
|
||||||
BrowserVisibility.waitUntilElementIsClickable(button);
|
|
||||||
return button.click();
|
|
||||||
}
|
|
||||||
|
|
||||||
clickInfinitePaginationConfiguration() {
|
|
||||||
const button = element(by.id('adf-infinite-pagination-conf'));
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(button);
|
|
||||||
BrowserVisibility.waitUntilElementIsClickable(button);
|
|
||||||
return button.click();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { element, by } from 'protractor';
|
import { element, by } from 'protractor';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class BreadCrumbDropdownPage {
|
export class BreadCrumbDropdownPage {
|
||||||
|
|
||||||
@@ -27,13 +27,12 @@ export class BreadCrumbDropdownPage {
|
|||||||
choosePath(pathName) {
|
choosePath(pathName) {
|
||||||
const path = this.breadCrumbDropdown.element(by.cssContainingText(`mat-option[data-automation-class='dropdown-breadcrumb-path-option'] span[class='mat-option-text']`,
|
const path = this.breadCrumbDropdown.element(by.cssContainingText(`mat-option[data-automation-class='dropdown-breadcrumb-path-option'] span[class='mat-option-text']`,
|
||||||
pathName));
|
pathName));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(path);
|
BrowserActions.click(path);
|
||||||
return path.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clickParentFolder() {
|
clickParentFolder() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.parentFolder);
|
BrowserActions.click(this.parentFolder);
|
||||||
return this.parentFolder.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkBreadCrumbDropdownIsDisplayed() {
|
checkBreadCrumbDropdownIsDisplayed() {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { element, by } from 'protractor';
|
import { element, by } from 'protractor';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class BreadCrumbPage {
|
export class BreadCrumbPage {
|
||||||
|
|
||||||
@@ -24,9 +24,7 @@ export class BreadCrumbPage {
|
|||||||
|
|
||||||
chooseBreadCrumb(breadCrumbItem) {
|
chooseBreadCrumb(breadCrumbItem) {
|
||||||
const path = this.breadCrumb.element(by.css(`a[data-automation-id='breadcrumb_${breadCrumbItem}']`));
|
const path = this.breadCrumb.element(by.css(`a[data-automation-id='breadcrumb_${breadCrumbItem}']`));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(path);
|
BrowserActions.click(path);
|
||||||
return path.click();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
import { by, protractor } from 'protractor';
|
import { by, protractor } from 'protractor';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class NumberRangeFilterPage {
|
export class NumberRangeFilterPage {
|
||||||
|
|
||||||
@@ -32,6 +32,7 @@ export class NumberRangeFilterPage {
|
|||||||
constructor(filter) {
|
constructor(filter) {
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
clearFromField() {
|
clearFromField() {
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.filter.element(this.fromInput));
|
BrowserVisibility.waitUntilElementIsClickable(this.filter.element(this.fromInput));
|
||||||
this.filter.element(this.fromInput).getAttribute('value').then((value) => {
|
this.filter.element(this.fromInput).getAttribute('value').then((value) => {
|
||||||
@@ -41,9 +42,11 @@ export class NumberRangeFilterPage {
|
|||||||
});
|
});
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
getFromNumber() {
|
getFromNumber() {
|
||||||
return this.filter.element(this.fromInput).getAttribute('value');
|
return this.filter.element(this.fromInput).getAttribute('value');
|
||||||
}
|
}
|
||||||
|
|
||||||
putFromNumber(value) {
|
putFromNumber(value) {
|
||||||
this.checkFromFieldIsDisplayed();
|
this.checkFromFieldIsDisplayed();
|
||||||
this.filter.element(this.fromInput).clear();
|
this.filter.element(this.fromInput).clear();
|
||||||
@@ -51,26 +54,33 @@ export class NumberRangeFilterPage {
|
|||||||
this.filter.element(this.fromInput).sendKeys(protractor.Key.ENTER);
|
this.filter.element(this.fromInput).sendKeys(protractor.Key.ENTER);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
getFromErrorRequired() {
|
getFromErrorRequired() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.fromErrorRequired));
|
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.fromErrorRequired));
|
||||||
return this.filter.element(this.fromErrorRequired).getText();
|
return BrowserActions.getText(this.filter.element(this.fromErrorRequired));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkFromErrorRequiredIsDisplayed() {
|
checkFromErrorRequiredIsDisplayed() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.fromErrorRequired));
|
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.fromErrorRequired));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
getFromErrorInvalid() {
|
getFromErrorInvalid() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.fromErrorInvalid));
|
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.fromErrorInvalid));
|
||||||
return this.filter.element(this.fromErrorInvalid).getText();
|
return BrowserActions.getText(this.filter.element(this.fromErrorInvalid));
|
||||||
}
|
}
|
||||||
|
|
||||||
checkFromErrorInvalidIsDisplayed() {
|
checkFromErrorInvalidIsDisplayed() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.fromErrorInvalid));
|
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.fromErrorInvalid));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
checkFromFieldIsDisplayed() {
|
checkFromFieldIsDisplayed() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.fromInput));
|
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.fromInput));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
clearToField() {
|
clearToField() {
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.filter.element(this.toInput));
|
BrowserVisibility.waitUntilElementIsClickable(this.filter.element(this.toInput));
|
||||||
this.filter.element(this.toInput).getAttribute('value').then((value) => {
|
this.filter.element(this.toInput).getAttribute('value').then((value) => {
|
||||||
@@ -80,9 +90,11 @@ export class NumberRangeFilterPage {
|
|||||||
});
|
});
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
getToNumber() {
|
getToNumber() {
|
||||||
return this.filter.element(this.toInput).getAttribute('value');
|
return this.filter.element(this.toInput).getAttribute('value');
|
||||||
}
|
}
|
||||||
|
|
||||||
putToNumber(value) {
|
putToNumber(value) {
|
||||||
this.checkToFieldIsDisplayed();
|
this.checkToFieldIsDisplayed();
|
||||||
this.filter.element(this.toInput).clear();
|
this.filter.element(this.toInput).clear();
|
||||||
@@ -90,47 +102,58 @@ export class NumberRangeFilterPage {
|
|||||||
this.filter.element(this.toInput).sendKeys(protractor.Key.ENTER);
|
this.filter.element(this.toInput).sendKeys(protractor.Key.ENTER);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
getToErrorRequired() {
|
getToErrorRequired() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.toErrorRequired));
|
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.toErrorRequired));
|
||||||
return this.filter.element(this.toErrorRequired).getText();
|
return BrowserActions.getText(this.filter.element(this.toErrorRequired));
|
||||||
}
|
}
|
||||||
|
|
||||||
checkToErrorRequiredIsDisplayed() {
|
checkToErrorRequiredIsDisplayed() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.toErrorRequired));
|
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.toErrorRequired));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
getToErrorInvalid() {
|
getToErrorInvalid() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.toErrorInvalid));
|
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.toErrorInvalid));
|
||||||
return this.filter.element(this.toErrorInvalid).getText();
|
return BrowserActions.getText(this.filter.element(this.toErrorInvalid));
|
||||||
}
|
}
|
||||||
|
|
||||||
checkToErrorInvalidIsDisplayed() {
|
checkToErrorInvalidIsDisplayed() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.toErrorInvalid));
|
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.toErrorInvalid));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
checkToFieldIsDisplayed() {
|
checkToFieldIsDisplayed() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.toInput));
|
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.toInput));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
clickApplyButton() {
|
clickApplyButton() {
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.filter.element(this.applyButton));
|
BrowserVisibility.waitUntilElementIsClickable(this.filter.element(this.applyButton));
|
||||||
this.filter.element(this.applyButton).click();
|
this.filter.element(this.applyButton).click();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
checkApplyButtonIsDisplayed() {
|
checkApplyButtonIsDisplayed() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.applyButton));
|
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.applyButton));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
checkApplyButtonIsEnabled() {
|
checkApplyButtonIsEnabled() {
|
||||||
return this.filter.element(this.applyButton).isEnabled();
|
return this.filter.element(this.applyButton).isEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
clickClearButton() {
|
clickClearButton() {
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.filter.element(this.clearButton));
|
BrowserVisibility.waitUntilElementIsClickable(this.filter.element(this.clearButton));
|
||||||
this.filter.element(this.clearButton).click();
|
this.filter.element(this.clearButton).click();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
checkClearButtonIsDisplayed() {
|
checkClearButtonIsDisplayed() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.clearButton));
|
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.clearButton));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
checkNoErrorMessageIsDisplayed() {
|
checkNoErrorMessageIsDisplayed() {
|
||||||
BrowserVisibility.waitUntilElementIsNotVisible(this.filter.element(this.fromErrorInvalid));
|
BrowserVisibility.waitUntilElementIsNotVisible(this.filter.element(this.fromErrorInvalid));
|
||||||
BrowserVisibility.waitUntilElementIsNotVisible(this.filter.element(this.fromErrorRequired));
|
BrowserVisibility.waitUntilElementIsNotVisible(this.filter.element(this.fromErrorRequired));
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { element, by, ElementFinder } from 'protractor';
|
import { element, by, ElementFinder } from 'protractor';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class SearchCheckListPage {
|
export class SearchCheckListPage {
|
||||||
|
|
||||||
@@ -33,9 +33,7 @@ export class SearchCheckListPage {
|
|||||||
clickCheckListOption(option) {
|
clickCheckListOption(option) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.filter);
|
BrowserVisibility.waitUntilElementIsVisible(this.filter);
|
||||||
const result = this.filter.all(by.css(`mat-checkbox[data-automation-id*='${option}'] .mat-checkbox-inner-container`)).first();
|
const result = this.filter.all(by.css(`mat-checkbox[data-automation-id*='${option}'] .mat-checkbox-inner-container`)).first();
|
||||||
BrowserVisibility.waitUntilElementIsVisible(result);
|
BrowserActions.click(result);
|
||||||
BrowserVisibility.waitUntilElementIsClickable(result);
|
|
||||||
result.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkChipIsDisplayed(option) {
|
checkChipIsDisplayed(option) {
|
||||||
@@ -50,8 +48,7 @@ export class SearchCheckListPage {
|
|||||||
|
|
||||||
removeFilterOption(option) {
|
removeFilterOption(option) {
|
||||||
const cancelChipButton = element(by.cssContainingText('mat-chip', option)).element(by.css('mat-icon'));
|
const cancelChipButton = element(by.cssContainingText('mat-chip', option)).element(by.css('mat-icon'));
|
||||||
BrowserVisibility.waitUntilElementIsClickable(cancelChipButton);
|
BrowserActions.click(cancelChipButton);
|
||||||
cancelChipButton.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -161,7 +158,8 @@ export class SearchCheckListPage {
|
|||||||
BrowserVisibility.waitUntilElementIsVisible(this.filter);
|
BrowserVisibility.waitUntilElementIsVisible(this.filter);
|
||||||
const result = this.filter.element(this.clearAllButton);
|
const result = this.filter.element(this.clearAllButton);
|
||||||
BrowserVisibility.waitUntilElementIsVisible(result);
|
BrowserVisibility.waitUntilElementIsVisible(result);
|
||||||
return result.click();
|
return BrowserActions.click(result);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getCheckListOptionsNumberOnPage() {
|
getCheckListOptionsNumberOnPage() {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { element, by, browser } from 'protractor';
|
import { element, by, browser } from 'protractor';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class SearchRadioPage {
|
export class SearchRadioPage {
|
||||||
|
|
||||||
@@ -64,13 +64,11 @@ export class SearchRadioPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickShowMoreButton() {
|
clickShowMoreButton() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.showMoreButton);
|
return BrowserActions.click(this.showMoreButton);
|
||||||
return this.showMoreButton.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clickShowLessButton() {
|
clickShowLessButton() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.showLessButton);
|
return BrowserActions.click(this.showLessButton);
|
||||||
return this.showLessButton.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { browser, by, element, protractor } from 'protractor';
|
import { browser, by, element, protractor } from 'protractor';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class SearchSortingPickerPage {
|
export class SearchSortingPickerPage {
|
||||||
|
|
||||||
@@ -25,12 +25,9 @@ export class SearchSortingPickerPage {
|
|||||||
optionsDropdown = element(by.css('div[class*="mat-select-panel"]'));
|
optionsDropdown = element(by.css('div[class*="mat-select-panel"]'));
|
||||||
|
|
||||||
sortBy(sortOrder, sortType) {
|
sortBy(sortOrder, sortType) {
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.sortingSelector);
|
BrowserActions.click(this.sortingSelector);
|
||||||
this.sortingSelector.click();
|
|
||||||
|
|
||||||
const selectedSortingOption = element(by.cssContainingText('span[class="mat-option-text"]', sortType));
|
const selectedSortingOption = element(by.cssContainingText('span[class="mat-option-text"]', sortType));
|
||||||
BrowserVisibility.waitUntilElementIsClickable(selectedSortingOption);
|
BrowserActions.click(selectedSortingOption);
|
||||||
selectedSortingOption.click();
|
|
||||||
|
|
||||||
this.sortByOrder(sortOrder);
|
this.sortByOrder(sortOrder);
|
||||||
}
|
}
|
||||||
@@ -52,14 +49,12 @@ export class SearchSortingPickerPage {
|
|||||||
|
|
||||||
clickSortingOption(option) {
|
clickSortingOption(option) {
|
||||||
const selectedSortingOption = element(by.cssContainingText('span[class="mat-option-text"]', option));
|
const selectedSortingOption = element(by.cssContainingText('span[class="mat-option-text"]', option));
|
||||||
BrowserVisibility.waitUntilElementIsClickable(selectedSortingOption);
|
BrowserActions.click(selectedSortingOption);
|
||||||
selectedSortingOption.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
clickSortingSelector() {
|
clickSortingSelector() {
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.sortingSelector);
|
BrowserActions.click(this.sortingSelector);
|
||||||
this.sortingSelector.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import { SearchRadioPage } from './components/search-radio';
|
|||||||
import { DateRangeFilterPage } from './components/dateRangeFilterPage';
|
import { DateRangeFilterPage } from './components/dateRangeFilterPage';
|
||||||
import { NumberRangeFilterPage } from './components/numberRangeFilterPage';
|
import { NumberRangeFilterPage } from './components/numberRangeFilterPage';
|
||||||
import { SearchSliderPage } from './components/search-slider.page';
|
import { SearchSliderPage } from './components/search-slider.page';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class SearchCategoriesPage {
|
export class SearchCategoriesPage {
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ export class SearchCategoriesPage {
|
|||||||
clickFilterHeader(filter: ElementFinder) {
|
clickFilterHeader(filter: ElementFinder) {
|
||||||
const fileSizeFilterHeader = filter.element(by.css('mat-expansion-panel-header'));
|
const fileSizeFilterHeader = filter.element(by.css('mat-expansion-panel-header'));
|
||||||
BrowserVisibility.waitUntilElementIsClickable(fileSizeFilterHeader);
|
BrowserVisibility.waitUntilElementIsClickable(fileSizeFilterHeader);
|
||||||
fileSizeFilterHeader.click();
|
BrowserActions.click(fileSizeFilterHeader);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { element, by, protractor } from 'protractor';
|
import { element, by, protractor } from 'protractor';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class TreeViewPage {
|
export class TreeViewPage {
|
||||||
|
|
||||||
@@ -36,8 +36,7 @@ export class TreeViewPage {
|
|||||||
|
|
||||||
clickNode(nodeName) {
|
clickNode(nodeName) {
|
||||||
const node = element(by.css('mat-tree-node[id="' + nodeName + '-tree-child-node"] button'));
|
const node = element(by.css('mat-tree-node[id="' + nodeName + '-tree-child-node"] button'));
|
||||||
BrowserVisibility.waitUntilElementIsClickable(node);
|
return BrowserActions.click(node);
|
||||||
return node.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkNodeIsDisplayedAsClosed(nodeName) {
|
checkNodeIsDisplayedAsClosed(nodeName) {
|
||||||
@@ -74,8 +73,7 @@ export class TreeViewPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addNodeId(nodeId) {
|
addNodeId(nodeId) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.nodeIdInput);
|
BrowserActions.click(this.nodeIdInput);
|
||||||
this.nodeIdInput.click();
|
|
||||||
this.nodeIdInput.clear();
|
this.nodeIdInput.clear();
|
||||||
this.nodeIdInput.sendKeys(nodeId + ' ');
|
this.nodeIdInput.sendKeys(nodeId + ' ');
|
||||||
this.nodeIdInput.sendKeys(protractor.Key.BACK_SPACE);
|
this.nodeIdInput.sendKeys(protractor.Key.BACK_SPACE);
|
||||||
|
|||||||
@@ -24,7 +24,8 @@ import { by, element, protractor, $$, browser } from 'protractor';
|
|||||||
|
|
||||||
import path = require('path');
|
import path = require('path');
|
||||||
import { DateUtil } from '../../util/dateUtil';
|
import { DateUtil } from '../../util/dateUtil';
|
||||||
import { BrowserVisibility, DocumentListPage } from '@alfresco/adf-testing';
|
import { BrowserVisibility, DocumentListPage, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
import { NavigationBarPage } from './navigationBarPage';
|
||||||
|
|
||||||
export class ContentServicesPage {
|
export class ContentServicesPage {
|
||||||
|
|
||||||
@@ -85,8 +86,7 @@ export class ContentServicesPage {
|
|||||||
multiSelectToggle = element(by.cssContainingText('span.mat-slide-toggle-content', ' Multiselect (with checkboxes) '));
|
multiSelectToggle = element(by.cssContainingText('span.mat-slide-toggle-content', ' Multiselect (with checkboxes) '));
|
||||||
|
|
||||||
pressContextMenuActionNamed(actionName) {
|
pressContextMenuActionNamed(actionName) {
|
||||||
const actionButton = this.checkContextActionIsVisible(actionName);
|
BrowserActions.clickExecuteScript(`button[data-automation-id="context-${actionName}"]`);
|
||||||
actionButton.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkContextActionIsVisible(actionName) {
|
checkContextActionIsVisible(actionName) {
|
||||||
@@ -101,7 +101,7 @@ export class ContentServicesPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
closeActionContext() {
|
closeActionContext() {
|
||||||
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
|
BrowserActions.closeMenuAndDialogs();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,29 +123,29 @@ export class ContentServicesPage {
|
|||||||
deleteContent(content) {
|
deleteContent(content) {
|
||||||
this.contentList.clickOnActionMenu(content);
|
this.contentList.clickOnActionMenu(content);
|
||||||
this.waitForContentOptions();
|
this.waitForContentOptions();
|
||||||
this.deleteContentElement.click();
|
BrowserActions.click(this.deleteContentElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
metadataContent(content) {
|
metadataContent(content) {
|
||||||
this.contentList.clickOnActionMenu(content);
|
this.contentList.clickOnActionMenu(content);
|
||||||
this.waitForContentOptions();
|
this.waitForContentOptions();
|
||||||
this.metadataAction.click();
|
BrowserActions.click(this.metadataAction);
|
||||||
}
|
}
|
||||||
|
|
||||||
versionManagerContent(content) {
|
versionManagerContent(content) {
|
||||||
this.contentList.clickOnActionMenu(content);
|
this.contentList.clickOnActionMenu(content);
|
||||||
this.waitForContentOptions();
|
this.waitForContentOptions();
|
||||||
this.versionManagerAction.click();
|
BrowserActions.click(this.versionManagerAction);
|
||||||
}
|
}
|
||||||
|
|
||||||
copyContent(content) {
|
copyContent(content) {
|
||||||
this.contentList.clickOnActionMenu(content);
|
this.contentList.clickOnActionMenu(content);
|
||||||
this.copyContentElement.click();
|
BrowserActions.click(this.copyContentElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
lockContent(content) {
|
lockContent(content) {
|
||||||
this.contentList.clickOnActionMenu(content);
|
this.contentList.clickOnActionMenu(content);
|
||||||
this.lockContentElement.click();
|
BrowserActions.click(this.lockContentElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
waitForContentOptions() {
|
waitForContentOptions() {
|
||||||
@@ -158,8 +158,7 @@ export class ContentServicesPage {
|
|||||||
clickFileHyperlink(fileName) {
|
clickFileHyperlink(fileName) {
|
||||||
const hyperlink = this.contentList.dataTablePage().getFileHyperlink(fileName);
|
const hyperlink = this.contentList.dataTablePage().getFileHyperlink(fileName);
|
||||||
|
|
||||||
BrowserVisibility.waitUntilElementIsClickable(hyperlink);
|
BrowserActions.click(hyperlink);
|
||||||
hyperlink.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,8 +170,7 @@ export class ContentServicesPage {
|
|||||||
|
|
||||||
clickHyperlinkNavigationToggle() {
|
clickHyperlinkNavigationToggle() {
|
||||||
const hyperlinkToggle = element(by.cssContainingText('.mat-slide-toggle-content', 'Hyperlink navigation'));
|
const hyperlinkToggle = element(by.cssContainingText('.mat-slide-toggle-content', 'Hyperlink navigation'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(hyperlinkToggle);
|
BrowserActions.click(hyperlinkToggle);
|
||||||
hyperlinkToggle.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -273,14 +271,14 @@ export class ContentServicesPage {
|
|||||||
expandRecentFiles() {
|
expandRecentFiles() {
|
||||||
this.checkRecentFileToBeShowed();
|
this.checkRecentFileToBeShowed();
|
||||||
this.checkRecentFileToBeClosed();
|
this.checkRecentFileToBeClosed();
|
||||||
this.recentFilesClosed.click();
|
BrowserActions.click(this.recentFilesClosed);
|
||||||
this.checkRecentFileToBeOpened();
|
this.checkRecentFileToBeOpened();
|
||||||
}
|
}
|
||||||
|
|
||||||
closeRecentFiles() {
|
closeRecentFiles() {
|
||||||
this.checkRecentFileToBeShowed();
|
this.checkRecentFileToBeShowed();
|
||||||
this.checkRecentFileToBeOpened();
|
this.checkRecentFileToBeOpened();
|
||||||
this.recentFilesExpanded.click();
|
BrowserActions.click(this.recentFilesExpanded);
|
||||||
this.checkRecentFileToBeClosed();
|
this.checkRecentFileToBeClosed();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -293,29 +291,25 @@ export class ContentServicesPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async getRecentFileIcon() {
|
async getRecentFileIcon() {
|
||||||
await BrowserVisibility.waitUntilElementIsVisible(this.recentFileIcon);
|
return BrowserActions.getText(this.recentFileIcon);
|
||||||
return this.recentFileIcon.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkAcsContainer() {
|
checkAcsContainer() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.uploadBorder);
|
return BrowserVisibility.waitUntilElementIsVisible(this.uploadBorder);
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
waitForTableBody() {
|
async waitForTableBody() {
|
||||||
this.contentList.waitForTableBody();
|
await this.contentList.waitForTableBody();
|
||||||
}
|
}
|
||||||
|
|
||||||
goToDocumentList() {
|
goToDocumentList() {
|
||||||
this.clickOnContentServices();
|
const navigationBarPage = new NavigationBarPage();
|
||||||
this.checkAcsContainer();
|
navigationBarPage.clickContentServicesButton();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnContentServices() {
|
clickOnContentServices() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.contentServices);
|
BrowserActions.click(this.contentServices);
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.contentServices);
|
|
||||||
this.contentServices.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
numberOfResultsDisplayed() {
|
numberOfResultsDisplayed() {
|
||||||
@@ -396,14 +390,12 @@ export class ContentServicesPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickOnCreateNewFolder() {
|
clickOnCreateNewFolder() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.createFolderButton);
|
BrowserActions.click(this.createFolderButton);
|
||||||
this.createFolderButton.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
openCreateLibraryDialog() {
|
openCreateLibraryDialog() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.createLibraryButton);
|
BrowserActions.click(this.createLibraryButton);
|
||||||
this.createLibraryButton.click();
|
|
||||||
this.createLibraryDialog.waitForDialogToOpen();
|
this.createLibraryDialog.waitForDialogToOpen();
|
||||||
return this.createLibraryDialog;
|
return this.createLibraryDialog;
|
||||||
}
|
}
|
||||||
@@ -500,29 +492,25 @@ export class ContentServicesPage {
|
|||||||
|
|
||||||
enableInfiniteScrolling() {
|
enableInfiniteScrolling() {
|
||||||
const infiniteScrollButton = element(by.cssContainingText('.mat-slide-toggle-content', 'Enable Infinite Scrolling'));
|
const infiniteScrollButton = element(by.cssContainingText('.mat-slide-toggle-content', 'Enable Infinite Scrolling'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(infiniteScrollButton);
|
BrowserActions.click(infiniteScrollButton);
|
||||||
infiniteScrollButton.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
enableCustomPermissionMessage() {
|
enableCustomPermissionMessage() {
|
||||||
const customPermissionMessage = element(by.cssContainingText('.mat-slide-toggle-content', 'Enable custom permission message'));
|
const customPermissionMessage = element(by.cssContainingText('.mat-slide-toggle-content', 'Enable custom permission message'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(customPermissionMessage);
|
BrowserActions.click(customPermissionMessage);
|
||||||
customPermissionMessage.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
enableMediumTimeFormat() {
|
enableMediumTimeFormat() {
|
||||||
const mediumTimeFormat = element(by.css('#enableMediumTimeFormat'));
|
const mediumTimeFormat = element(by.css('#enableMediumTimeFormat'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(mediumTimeFormat);
|
BrowserActions.click(mediumTimeFormat);
|
||||||
mediumTimeFormat.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
enableThumbnails() {
|
enableThumbnails() {
|
||||||
const thumbnailSlide = element(by.id('adf-thumbnails-upload-switch'));
|
const thumbnailSlide = element(by.id('adf-thumbnails-upload-switch'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(thumbnailSlide);
|
BrowserActions.click(thumbnailSlide);
|
||||||
thumbnailSlide.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -616,7 +604,7 @@ export class ContentServicesPage {
|
|||||||
|
|
||||||
clickGridViewButton() {
|
clickGridViewButton() {
|
||||||
this.checkGridViewButtonIsVisible();
|
this.checkGridViewButtonIsVisible();
|
||||||
this.gridViewButton.click();
|
BrowserActions.click(this.gridViewButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
checkCardViewContainerIsDisplayed() {
|
checkCardViewContainerIsDisplayed() {
|
||||||
@@ -641,7 +629,7 @@ export class ContentServicesPage {
|
|||||||
|
|
||||||
getAttributeValueForElement(elementName, propertyName) {
|
getAttributeValueForElement(elementName, propertyName) {
|
||||||
const elementSize = element(by.css(`.adf-document-list-container div.adf-datatable-cell[data-automation-id="${elementName}"][title="${propertyName}"] span`));
|
const elementSize = element(by.css(`.adf-document-list-container div.adf-datatable-cell[data-automation-id="${elementName}"][title="${propertyName}"] span`));
|
||||||
return elementSize.getText();
|
return BrowserActions.getText(elementSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
checkMenuIsShowedForElementIndex(elementIndex) {
|
checkMenuIsShowedForElementIndex(elementIndex) {
|
||||||
@@ -650,6 +638,7 @@ export class ContentServicesPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
navigateToCardFolder(folderName) {
|
navigateToCardFolder(folderName) {
|
||||||
|
BrowserActions.closeMenuAndDialogs();
|
||||||
const folderCard = element(by.css(`.adf-document-list-container div.adf-image-table-cell.adf-datatable-cell[data-automation-id="${folderName}"]`));
|
const folderCard = element(by.css(`.adf-document-list-container div.adf-image-table-cell.adf-datatable-cell[data-automation-id="${folderName}"]`));
|
||||||
folderCard.click();
|
folderCard.click();
|
||||||
const folderSelected = element(by.css(`.adf-datatable-row.adf-is-selected div[data-automation-id="${folderName}"].adf-datatable-cell--image`));
|
const folderSelected = element(by.css(`.adf-datatable-row.adf-is-selected div[data-automation-id="${folderName}"].adf-datatable-cell--image`));
|
||||||
@@ -664,11 +653,11 @@ export class ContentServicesPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
selectGridSortingFromDropdown(sortingChosen) {
|
selectGridSortingFromDropdown(sortingChosen) {
|
||||||
|
BrowserActions.closeMenuAndDialogs();
|
||||||
const dropdownSorting = this.getGridViewSortingDropdown();
|
const dropdownSorting = this.getGridViewSortingDropdown();
|
||||||
dropdownSorting.click();
|
BrowserActions.click(dropdownSorting);
|
||||||
const optionToClick = element(by.css(`mat-option[data-automation-id="grid-view-sorting-${sortingChosen}"]`));
|
const optionToClick = element(by.css(`mat-option[data-automation-id="grid-view-sorting-${sortingChosen}"]`));
|
||||||
BrowserVisibility.waitUntilElementIsPresent(optionToClick);
|
BrowserActions.click(optionToClick);
|
||||||
optionToClick.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkRowIsDisplayed(rowName) {
|
checkRowIsDisplayed(rowName) {
|
||||||
@@ -677,8 +666,8 @@ export class ContentServicesPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickShareButton() {
|
clickShareButton() {
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.shareNodeButton);
|
BrowserActions.closeMenuAndDialogs();
|
||||||
this.shareNodeButton.click();
|
BrowserActions.click(this.shareNodeButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
checkSelectedSiteIsDisplayed(siteName) {
|
checkSelectedSiteIsDisplayed(siteName) {
|
||||||
@@ -686,13 +675,13 @@ export class ContentServicesPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickDownloadButton() {
|
clickDownloadButton() {
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.downloadButton);
|
BrowserActions.closeMenuAndDialogs();
|
||||||
this.downloadButton.click();
|
BrowserActions.click(this.downloadButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
clickMultiSelectToggle() {
|
clickMultiSelectToggle() {
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.multiSelectToggle);
|
BrowserActions.closeMenuAndDialogs();
|
||||||
this.multiSelectToggle.click();
|
BrowserActions.click(this.multiSelectToggle);
|
||||||
}
|
}
|
||||||
|
|
||||||
getRowByName(rowName) {
|
getRowByName(rowName) {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
import { element, by, protractor } from 'protractor';
|
import { element, by, protractor } from 'protractor';
|
||||||
|
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class HeaderPage {
|
export class HeaderPage {
|
||||||
|
|
||||||
@@ -50,14 +50,14 @@ export class HeaderPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickShowMenuButton() {
|
clickShowMenuButton() {
|
||||||
const checkBox = element.all(by.css('mat-checkbox'));
|
const checkBox = element(by.css('mat-checkbox'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(checkBox);
|
BrowserVisibility.waitUntilElementIsVisible(checkBox);
|
||||||
return checkBox.get(0).click();
|
return checkBox.get(0).click();
|
||||||
}
|
}
|
||||||
|
|
||||||
changeHeaderColor(color) {
|
changeHeaderColor(color) {
|
||||||
const headerColor = element(by.css('option[value="' + color + '"]'));
|
const headerColor = element(by.css('option[value="' + color + '"]'));
|
||||||
return headerColor.click();
|
BrowserActions.click(headerColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
checkAppTitle(name) {
|
checkAppTitle(name) {
|
||||||
@@ -66,8 +66,7 @@ export class HeaderPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addTitle(title) {
|
addTitle(title) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.titleInput);
|
BrowserActions.click(this.titleInput);
|
||||||
this.titleInput.click();
|
|
||||||
this.titleInput.sendKeys(title);
|
this.titleInput.sendKeys(title);
|
||||||
this.titleInput.sendKeys(protractor.Key.ENTER);
|
this.titleInput.sendKeys(protractor.Key.ENTER);
|
||||||
}
|
}
|
||||||
@@ -78,8 +77,7 @@ export class HeaderPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addIcon(url) {
|
addIcon(url) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.iconInput);
|
BrowserActions.click(this.iconInput);
|
||||||
this.iconInput.click();
|
|
||||||
this.iconInput.sendKeys(url);
|
this.iconInput.sendKeys(url);
|
||||||
this.iconInput.sendKeys(protractor.Key.ENTER);
|
this.iconInput.sendKeys(protractor.Key.ENTER);
|
||||||
}
|
}
|
||||||
@@ -97,35 +95,29 @@ export class HeaderPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addHexCodeColor(hexCode) {
|
addHexCodeColor(hexCode) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.hexColorInput);
|
BrowserActions.click(this.hexColorInput);
|
||||||
this.hexColorInput.click();
|
|
||||||
this.hexColorInput.sendKeys(hexCode);
|
this.hexColorInput.sendKeys(hexCode);
|
||||||
return this.hexColorInput.sendKeys(protractor.Key.ENTER);
|
return this.hexColorInput.sendKeys(protractor.Key.ENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
addLogoHyperlink(hyperlink) {
|
addLogoHyperlink(hyperlink) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.logoHyperlinkInput);
|
BrowserActions.click(this.logoHyperlinkInput);
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.logoHyperlinkInput);
|
|
||||||
this.logoHyperlinkInput.click();
|
|
||||||
this.logoHyperlinkInput.sendKeys(hyperlink);
|
this.logoHyperlinkInput.sendKeys(hyperlink);
|
||||||
return this.logoHyperlinkInput.sendKeys(protractor.Key.ENTER);
|
return this.logoHyperlinkInput.sendKeys(protractor.Key.ENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
addLogoTooltip(tooltip) {
|
addLogoTooltip(tooltip) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.logoTooltipInput);
|
BrowserActions.click(this.logoTooltipInput);
|
||||||
this.logoTooltipInput.click();
|
|
||||||
this.logoTooltipInput.sendKeys(tooltip);
|
this.logoTooltipInput.sendKeys(tooltip);
|
||||||
return this.logoTooltipInput.sendKeys(protractor.Key.ENTER);
|
return this.logoTooltipInput.sendKeys(protractor.Key.ENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
sideBarPositionStart() {
|
sideBarPositionStart() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.positionStart);
|
BrowserActions.click(this.positionStart);
|
||||||
return this.positionStart.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sideBarPositionEnd() {
|
sideBarPositionEnd() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.positionEnd);
|
BrowserActions.click(this.positionEnd);
|
||||||
return this.positionEnd.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkSidebarPositionStart() {
|
checkSidebarPositionStart() {
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
import { element, by } from 'protractor';
|
import { element, by } from 'protractor';
|
||||||
import { ElementFinder } from 'protractor/built/element';
|
import { ElementFinder } from 'protractor/built/element';
|
||||||
|
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class InfinitePaginationPage {
|
export class InfinitePaginationPage {
|
||||||
|
|
||||||
@@ -31,16 +31,10 @@ export class InfinitePaginationPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickLoadMoreButton() {
|
clickLoadMoreButton() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.loadMoreButton);
|
BrowserActions.click(this.loadMoreButton);
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.loadMoreButton);
|
|
||||||
this.loadMoreButton.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
checkLoadMoreButtonIsDisplayed() {
|
|
||||||
return BrowserVisibility.waitUntilElementIsVisible(this.loadMoreButton);
|
|
||||||
}
|
|
||||||
|
|
||||||
checkLoadMoreButtonIsNotDisplayed() {
|
checkLoadMoreButtonIsNotDisplayed() {
|
||||||
return BrowserVisibility.waitUntilElementIsNotOnPage(this.loadMoreButton);
|
return BrowserVisibility.waitUntilElementIsNotOnPage(this.loadMoreButton);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility } from '@alfresco/adf-testing';
|
||||||
import { element, by } from 'protractor';
|
import { element, by } from 'protractor';
|
||||||
import { DataTableComponentPage } from '@alfresco/adf-testing';
|
import { DataTableComponentPage, BrowserActions } from '@alfresco/adf-testing';
|
||||||
import { NavigationBarPage } from '../navigationBarPage';
|
import { NavigationBarPage } from '../navigationBarPage';
|
||||||
|
|
||||||
const source = {
|
const source = {
|
||||||
@@ -57,13 +57,14 @@ export class CustomSources {
|
|||||||
this.navigationBarPage.navigateToCustomSources();
|
this.navigationBarPage.navigateToCustomSources();
|
||||||
this.waitForToolbarToBeVisible();
|
this.waitForToolbarToBeVisible();
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnSourceType() {
|
clickOnSourceType() {
|
||||||
return this.sourceTypeDropdown.click();
|
BrowserActions.click(this.sourceTypeDropdown);
|
||||||
}
|
}
|
||||||
|
|
||||||
selectMySitesSourceType() {
|
selectMySitesSourceType() {
|
||||||
this.clickOnSourceType();
|
this.clickOnSourceType();
|
||||||
this.getSourceType(source.mySites).click();
|
BrowserActions.click(this.getSourceType(source.mySites));
|
||||||
}
|
}
|
||||||
|
|
||||||
checkRowIsDisplayed(rowName) {
|
checkRowIsDisplayed(rowName) {
|
||||||
@@ -72,8 +73,7 @@ export class CustomSources {
|
|||||||
|
|
||||||
getStatusCell(rowName) {
|
getStatusCell(rowName) {
|
||||||
const cell = this.dataTable.getCellByRowContentAndColumn('Name', rowName, column.status);
|
const cell = this.dataTable.getCellByRowContentAndColumn('Name', rowName, column.status);
|
||||||
BrowserVisibility.waitUntilElementIsVisible(cell);
|
return BrowserActions.getText(cell);
|
||||||
return cell.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
import { browser, by, element, protractor } from 'protractor';
|
import { browser, by, element, protractor } from 'protractor';
|
||||||
import { DataTableComponentPage } from '@alfresco/adf-testing';
|
import { DataTableComponentPage } from '@alfresco/adf-testing';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class DataTablePage {
|
export class DataTablePage {
|
||||||
|
|
||||||
@@ -63,31 +63,27 @@ export class DataTablePage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addRow() {
|
addRow() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.addRowElement);
|
BrowserActions.click(this.addRowElement);
|
||||||
this.addRowElement.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
replaceRows(id) {
|
replaceRows(id) {
|
||||||
const rowID = this.dataTable.getCellElementByValue(this.columns.id, id);
|
const rowID = this.dataTable.getCellElementByValue(this.columns.id, id);
|
||||||
BrowserVisibility.waitUntilElementIsVisible(rowID);
|
BrowserVisibility.waitUntilElementIsVisible(rowID);
|
||||||
this.replaceRowsElement.click();
|
BrowserActions.click(this.replaceRowsElement);
|
||||||
BrowserVisibility.waitUntilElementIsNotVisible(rowID);
|
BrowserVisibility.waitUntilElementIsNotVisible(rowID);
|
||||||
}
|
}
|
||||||
|
|
||||||
replaceColumns() {
|
replaceColumns() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.replaceColumnsElement);
|
BrowserActions.click(this.replaceColumnsElement);
|
||||||
this.replaceColumnsElement.click();
|
|
||||||
BrowserVisibility.waitUntilElementIsNotOnPage(this.createdOnColumn);
|
BrowserVisibility.waitUntilElementIsNotOnPage(this.createdOnColumn);
|
||||||
}
|
}
|
||||||
|
|
||||||
clickMultiSelect() {
|
clickMultiSelect() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.multiSelect);
|
BrowserActions.click(this.multiSelect);
|
||||||
this.multiSelect.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clickReset() {
|
clickReset() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.reset);
|
BrowserActions.click(this.reset);
|
||||||
this.reset.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkRowIsNotSelected(rowNumber) {
|
checkRowIsNotSelected(rowNumber) {
|
||||||
@@ -101,8 +97,7 @@ export class DataTablePage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
checkAllRows() {
|
checkAllRows() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.selectAll);
|
BrowserActions.click(this.selectAll);
|
||||||
this.selectAll.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkRowIsChecked(rowNumber) {
|
checkRowIsChecked(rowNumber) {
|
||||||
@@ -118,17 +113,14 @@ export class DataTablePage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickCheckbox(rowNumber) {
|
clickCheckbox(rowNumber) {
|
||||||
|
BrowserActions.closeMenuAndDialogs();
|
||||||
const checkbox = this.dataTable.getCellElementByValue(this.columns.id, rowNumber)
|
const checkbox = this.dataTable.getCellElementByValue(this.columns.id, rowNumber)
|
||||||
.element(by.xpath(`ancestor::div[contains(@class, 'adf-datatable-row')]//mat-checkbox/label`));
|
.element(by.xpath(`ancestor::div[contains(@class, 'adf-datatable-row')]//mat-checkbox/label`));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(checkbox);
|
BrowserActions.click(checkbox);
|
||||||
checkbox.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
selectRow(rowNumber) {
|
async selectRow(rowNumber) {
|
||||||
const locator = this.dataTable.getCellElementByValue(this.columns.id, rowNumber);
|
BrowserActions.clickExecuteScript(`div[title="${this.columns.id}"] div[data-automation-id="text_${rowNumber}"] span`);
|
||||||
BrowserVisibility.waitUntilElementIsVisible(locator);
|
|
||||||
BrowserVisibility.waitUntilElementIsClickable(locator);
|
|
||||||
locator.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,9 +131,8 @@ export class DataTablePage {
|
|||||||
|
|
||||||
selectSelectionMode(selectionMode) {
|
selectSelectionMode(selectionMode) {
|
||||||
const selectMode = element(by.cssContainingText(`span[class='mat-option-text']`, selectionMode));
|
const selectMode = element(by.cssContainingText(`span[class='mat-option-text']`, selectionMode));
|
||||||
this.selectionButton.click();
|
BrowserActions.clickExecuteScript('div[class="mat-select-arrow"]');
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.selectionDropDown);
|
BrowserActions.click(selectMode);
|
||||||
selectMode.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getRowCheckbox(rowNumber) {
|
getRowCheckbox(rowNumber) {
|
||||||
@@ -194,8 +185,7 @@ export class DataTablePage {
|
|||||||
|
|
||||||
pasteClipboard() {
|
pasteClipboard() {
|
||||||
this.pasteClipboardInput.clear();
|
this.pasteClipboardInput.clear();
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.pasteClipboardInput);
|
BrowserActions.click(this.pasteClipboardInput);
|
||||||
this.pasteClipboardInput.click();
|
|
||||||
this.pasteClipboardInput.sendKeys(protractor.Key.chord(protractor.Key.SHIFT, protractor.Key.INSERT));
|
this.pasteClipboardInput.sendKeys(protractor.Key.chord(protractor.Key.SHIFT, protractor.Key.INSERT));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,6 @@ export class LogoutPage {
|
|||||||
logoutSection = element(by.css('div[data-automation-id="adf-logout-section"]'));
|
logoutSection = element(by.css('div[data-automation-id="adf-logout-section"]'));
|
||||||
|
|
||||||
checkLogoutSectionIsDisplayed() {
|
checkLogoutSectionIsDisplayed() {
|
||||||
return BrowserVisibility.waitUntilElementIsVisible(this.logoutSection);
|
BrowserVisibility.waitUntilElementIsVisible(this.logoutSection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,11 +16,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { by, element, protractor } from 'protractor';
|
import { by, element, protractor } from 'protractor';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class PeopleGroupCloudComponentPage {
|
export class PeopleGroupCloudComponentPage {
|
||||||
|
|
||||||
peopleCloudSingleSelection = element(by.css('mat-radio-button[data-automation-id="adf-people-single-mode"]'));
|
|
||||||
peopleCloudSingleSelectionChecked = element(by.css('mat-radio-button[data-automation-id="adf-people-single-mode"][class*="mat-radio-checked"]'));
|
peopleCloudSingleSelectionChecked = element(by.css('mat-radio-button[data-automation-id="adf-people-single-mode"][class*="mat-radio-checked"]'));
|
||||||
peopleCloudMultipleSelection = element(by.css('mat-radio-button[data-automation-id="adf-people-multiple-mode"]'));
|
peopleCloudMultipleSelection = element(by.css('mat-radio-button[data-automation-id="adf-people-multiple-mode"]'));
|
||||||
peopleCloudFilterRole = element(by.css('mat-radio-button[data-automation-id="adf-people-filter-role"]'));
|
peopleCloudFilterRole = element(by.css('mat-radio-button[data-automation-id="adf-people-filter-role"]'));
|
||||||
@@ -32,7 +31,6 @@ export class PeopleGroupCloudComponentPage {
|
|||||||
peoplePreselect = element(by.css('input[data-automation-id="adf-people-preselect-input"]'));
|
peoplePreselect = element(by.css('input[data-automation-id="adf-people-preselect-input"]'));
|
||||||
groupRoleInput = element(by.css('input[data-automation-id="adf-group-roles-input"]'));
|
groupRoleInput = element(by.css('input[data-automation-id="adf-group-roles-input"]'));
|
||||||
groupAppInput = element(by.css('input[data-automation-id="adf-group-app-input"]'));
|
groupAppInput = element(by.css('input[data-automation-id="adf-group-app-input"]'));
|
||||||
groupPreselect = element(by.css('input[data-automation-id="adf-group-preselect-input"]'));
|
|
||||||
peopleCloudComponentTitle = element(by.cssContainingText('mat-card-title', 'People Cloud Component'));
|
peopleCloudComponentTitle = element(by.cssContainingText('mat-card-title', 'People Cloud Component'));
|
||||||
groupCloudComponentTitle = element(by.cssContainingText('mat-card-title', 'Groups Cloud Component'));
|
groupCloudComponentTitle = element(by.cssContainingText('mat-card-title', 'Groups Cloud Component'));
|
||||||
preselectValidation = element(by.css('mat-checkbox.adf-preselect-value'));
|
preselectValidation = element(by.css('mat-checkbox.adf-preselect-value'));
|
||||||
@@ -51,13 +49,7 @@ export class PeopleGroupCloudComponentPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickPeopleCloudMultipleSelection() {
|
clickPeopleCloudMultipleSelection() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.peopleCloudMultipleSelection);
|
BrowserActions.click(this.peopleCloudMultipleSelection);
|
||||||
this.peopleCloudMultipleSelection.click();
|
|
||||||
}
|
|
||||||
|
|
||||||
clickPeopleCloudSingleSelection() {
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.peopleCloudSingleSelection);
|
|
||||||
this.peopleCloudSingleSelection.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkPeopleCloudSingleSelectionIsSelected() {
|
checkPeopleCloudSingleSelectionIsSelected() {
|
||||||
@@ -65,13 +57,11 @@ export class PeopleGroupCloudComponentPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickPeopleCloudFilterRole() {
|
clickPeopleCloudFilterRole() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.peopleCloudFilterRole);
|
BrowserActions.click(this.peopleCloudFilterRole);
|
||||||
this.peopleCloudFilterRole.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clickGroupCloudFilterRole() {
|
clickGroupCloudFilterRole() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.groupCloudFilterRole);
|
BrowserActions.click(this.groupCloudFilterRole);
|
||||||
this.groupCloudFilterRole.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enterPeopleRoles(roles) {
|
enterPeopleRoles(roles) {
|
||||||
@@ -98,13 +88,11 @@ export class PeopleGroupCloudComponentPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickGroupCloudSingleSelection() {
|
clickGroupCloudSingleSelection() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.groupCloudSingleSelection);
|
BrowserActions.click(this.groupCloudSingleSelection);
|
||||||
this.groupCloudSingleSelection.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clickGroupCloudMultipleSelection() {
|
clickGroupCloudMultipleSelection() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.groupCloudMultipleSelection);
|
BrowserActions.click(this.groupCloudMultipleSelection);
|
||||||
this.groupCloudMultipleSelection.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enterGroupRoles(roles) {
|
enterGroupRoles(roles) {
|
||||||
@@ -115,8 +103,7 @@ export class PeopleGroupCloudComponentPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickPreselectValidation() {
|
clickPreselectValidation() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.preselectValidation);
|
BrowserActions.click(this.preselectValidation);
|
||||||
this.preselectValidation.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getPreselectValidationStatus() {
|
getPreselectValidationStatus() {
|
||||||
@@ -125,13 +112,11 @@ export class PeopleGroupCloudComponentPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickPeopleFilerByApp() {
|
clickPeopleFilerByApp() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.peopleFilterByAppName);
|
return BrowserActions.click(this.peopleFilterByAppName);
|
||||||
return this.peopleFilterByAppName.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clickGroupFilerByApp() {
|
clickGroupFilerByApp() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.groupFilterByAppName);
|
return BrowserActions.click(this.groupFilterByAppName);
|
||||||
return this.groupFilterByAppName.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enterPeopleAppName(appName) {
|
enterPeopleAppName(appName) {
|
||||||
|
|||||||
@@ -17,7 +17,12 @@
|
|||||||
|
|
||||||
import { element, by } from 'protractor';
|
import { element, by } from 'protractor';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility } from '@alfresco/adf-testing';
|
||||||
import { ProcessFiltersCloudComponentPage, EditProcessFilterCloudComponentPage, ProcessListCloudComponentPage } from '@alfresco/adf-testing';
|
import {
|
||||||
|
ProcessFiltersCloudComponentPage,
|
||||||
|
EditProcessFilterCloudComponentPage,
|
||||||
|
ProcessListCloudComponentPage,
|
||||||
|
BrowserActions
|
||||||
|
} from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class ProcessCloudDemoPage {
|
export class ProcessCloudDemoPage {
|
||||||
|
|
||||||
@@ -33,10 +38,6 @@ export class ProcessCloudDemoPage {
|
|||||||
processListCloud = new ProcessListCloudComponentPage();
|
processListCloud = new ProcessListCloudComponentPage();
|
||||||
editProcessFilterCloud = new EditProcessFilterCloudComponentPage();
|
editProcessFilterCloud = new EditProcessFilterCloudComponentPage();
|
||||||
|
|
||||||
processFiltersCloudComponent(filter) {
|
|
||||||
return new ProcessFiltersCloudComponentPage(filter);
|
|
||||||
}
|
|
||||||
|
|
||||||
editProcessFilterCloudComponent() {
|
editProcessFilterCloudComponent() {
|
||||||
return this.editProcessFilterCloud;
|
return this.editProcessFilterCloud;
|
||||||
}
|
}
|
||||||
@@ -66,25 +67,17 @@ export class ProcessCloudDemoPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getActiveFilterName() {
|
getActiveFilterName() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.activeFilter);
|
return BrowserActions.getText(this.activeFilter);
|
||||||
return this.activeFilter.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnProcessFilters() {
|
clickOnProcessFilters() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.processFilters);
|
return BrowserActions.click(this.processFilters);
|
||||||
return this.processFilters.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
openNewProcessForm() {
|
openNewProcessForm() {
|
||||||
this.createButtonIsDisplayed();
|
|
||||||
this.clickOnCreateButton();
|
this.clickOnCreateButton();
|
||||||
this.newProcessButtonIsDisplayed();
|
this.newProcessButtonIsDisplayed();
|
||||||
this.newProcessButton.click();
|
BrowserActions.click(this.newProcessButton);
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
createButtonIsDisplayed() {
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.createButton);
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,8 +87,7 @@ export class ProcessCloudDemoPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickOnCreateButton() {
|
clickOnCreateButton() {
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.createButton);
|
BrowserActions.click(this.createButton);
|
||||||
this.createButton.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility } from '@alfresco/adf-testing';
|
||||||
import { DataTableComponentPage } from '@alfresco/adf-testing';
|
import { DataTableComponentPage, BrowserActions } from '@alfresco/adf-testing';
|
||||||
import { element, by, protractor } from 'protractor';
|
import { element, by, protractor } from 'protractor';
|
||||||
|
|
||||||
export class ProcessListDemoPage {
|
export class ProcessListDemoPage {
|
||||||
@@ -36,34 +36,29 @@ export class ProcessListDemoPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
selectSorting(sort) {
|
selectSorting(sort) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.stateSelector);
|
BrowserActions.click(this.sortSelector);
|
||||||
this.sortSelector.click();
|
|
||||||
const sortLocator = element(by.cssContainingText('mat-option span', sort));
|
const sortLocator = element(by.cssContainingText('mat-option span', sort));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(sortLocator);
|
BrowserActions.click(sortLocator);
|
||||||
sortLocator.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
selectStateFilter(state) {
|
selectStateFilter(state) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.stateSelector);
|
BrowserActions.click(this.stateSelector);
|
||||||
this.stateSelector.click();
|
|
||||||
const stateLocator = element(by.cssContainingText('mat-option span', state));
|
const stateLocator = element(by.cssContainingText('mat-option span', state));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(stateLocator);
|
BrowserActions.click(stateLocator);
|
||||||
stateLocator.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
addAppId(appId) {
|
addAppId(appId) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.appIdInput);
|
BrowserActions.click(this.appIdInput);
|
||||||
this.appIdInput.click();
|
|
||||||
this.appIdInput.sendKeys(protractor.Key.ENTER);
|
this.appIdInput.sendKeys(protractor.Key.ENTER);
|
||||||
this.appIdInput.clear();
|
this.appIdInput.clear();
|
||||||
return this.appIdInput.sendKeys(appId);
|
return this.appIdInput.sendKeys(appId);
|
||||||
}
|
}
|
||||||
|
|
||||||
clickResetButton() {
|
clickResetButton() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.resetButton);
|
return BrowserActions.click(this.resetButton);
|
||||||
return this.resetButton.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkErrorMessageIsDisplayed(error) {
|
checkErrorMessageIsDisplayed(error) {
|
||||||
@@ -104,15 +99,13 @@ export class ProcessListDemoPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addProcessDefinitionId(procDefinitionId) {
|
addProcessDefinitionId(procDefinitionId) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.processDefinitionInput);
|
BrowserActions.click(this.processDefinitionInput);
|
||||||
this.processDefinitionInput.click();
|
|
||||||
this.processDefinitionInput.clear();
|
this.processDefinitionInput.clear();
|
||||||
return this.processDefinitionInput.sendKeys(procDefinitionId);
|
return this.processDefinitionInput.sendKeys(procDefinitionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
addProcessInstanceId(procInstanceId) {
|
addProcessInstanceId(procInstanceId) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.processInstanceInput);
|
BrowserActions.click(this.processInstanceInput);
|
||||||
this.processInstanceInput.click();
|
|
||||||
this.processInstanceInput.clear();
|
this.processInstanceInput.clear();
|
||||||
return this.processInstanceInput.sendKeys(procInstanceId);
|
return this.processInstanceInput.sendKeys(procInstanceId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,22 +15,17 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
import { element, by } from 'protractor';
|
import { element, by } from 'protractor';
|
||||||
import { TaskHeaderCloudPage, TaskFormCloudComponent } from '@alfresco/adf-testing';
|
import { TaskFormCloudComponent } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class TaskDetailsCloudDemoPage {
|
export class TaskDetailsCloudDemoPage {
|
||||||
|
|
||||||
taskHeaderCloudPage = new TaskHeaderCloudPage();
|
|
||||||
taskFormCloudPage = new TaskFormCloudComponent();
|
taskFormCloudPage = new TaskFormCloudComponent();
|
||||||
|
|
||||||
taskDetailsHeader = element(by.css(`h4[data-automation-id='task-details-header']`));
|
taskDetailsHeader = element(by.css(`h4[data-automation-id='task-details-header']`));
|
||||||
releaseButton = element(by.css('button[adf-cloud-unclaim-task]'));
|
releaseButton = element(by.css('button[adf-cloud-unclaim-task]'));
|
||||||
|
|
||||||
taskHeaderCloud() {
|
|
||||||
return this.taskHeaderCloudPage;
|
|
||||||
}
|
|
||||||
|
|
||||||
taskFormCloud() {
|
taskFormCloud() {
|
||||||
return this.taskFormCloudPage;
|
return this.taskFormCloudPage;
|
||||||
}
|
}
|
||||||
@@ -41,12 +36,10 @@ export class TaskDetailsCloudDemoPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getTaskDetailsHeader() {
|
getTaskDetailsHeader() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.taskDetailsHeader);
|
return BrowserActions.getText(this.taskDetailsHeader);
|
||||||
return this.taskDetailsHeader.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getReleaseButtonText() {
|
getReleaseButtonText() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.releaseButton);
|
return BrowserActions.getText(this.releaseButton);
|
||||||
return this.releaseButton.getText();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,8 +15,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
import { element, by } from 'protractor';
|
import { element, by } from 'protractor';
|
||||||
import { TaskFiltersPage } from '../../process-services/taskFiltersPage';
|
import { TaskFiltersPage } from '../../process-services/taskFiltersPage';
|
||||||
|
|
||||||
@@ -28,10 +27,6 @@ export class TaskFiltersDemoPage {
|
|||||||
involvedTask = element(by.css('span[data-automation-id="Involved Tasks_filter"]'));
|
involvedTask = element(by.css('span[data-automation-id="Involved Tasks_filter"]'));
|
||||||
activeFilter = element(by.css("mat-list-item[class*='active']"));
|
activeFilter = element(by.css("mat-list-item[class*='active']"));
|
||||||
|
|
||||||
taskFiltersPage(filter) {
|
|
||||||
return new TaskFiltersPage(filter);
|
|
||||||
}
|
|
||||||
|
|
||||||
myTasksFilter() {
|
myTasksFilter() {
|
||||||
return new TaskFiltersPage(this.myTasks);
|
return new TaskFiltersPage(this.myTasks);
|
||||||
}
|
}
|
||||||
@@ -53,8 +48,7 @@ export class TaskFiltersDemoPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
checkActiveFilterActive () {
|
checkActiveFilterActive () {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.activeFilter);
|
return BrowserActions.getText(this.activeFilter);
|
||||||
return this.activeFilter.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
import { TasksListPage } from '../../process-services/tasksListPage';
|
import { TasksListPage } from '../../process-services/tasksListPage';
|
||||||
import { PaginationPage } from '@alfresco/adf-testing';
|
import { PaginationPage } from '@alfresco/adf-testing';
|
||||||
import { element, by } from 'protractor';
|
import { element, by } from 'protractor';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class TaskListDemoPage {
|
export class TaskListDemoPage {
|
||||||
|
|
||||||
@@ -56,8 +56,7 @@ export class TaskListDemoPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickAppId() {
|
clickAppId() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.appId);
|
BrowserActions.click(this.appId);
|
||||||
this.appId.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,11 +96,6 @@ export class TaskListDemoPage {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
getItemsPerPage() {
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.itemsPerPage);
|
|
||||||
return this.itemsPerPage.getAttribute('value');
|
|
||||||
}
|
|
||||||
|
|
||||||
typeProcessDefinitionId(input) {
|
typeProcessDefinitionId(input) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.processDefinitionId);
|
BrowserVisibility.waitUntilElementIsVisible(this.processDefinitionId);
|
||||||
this.clearText(this.processDefinitionId);
|
this.clearText(this.processDefinitionId);
|
||||||
@@ -129,8 +123,7 @@ export class TaskListDemoPage {
|
|||||||
getItemsPerPageFieldErrorMessage() {
|
getItemsPerPageFieldErrorMessage() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.itemsPerPageForm);
|
BrowserVisibility.waitUntilElementIsVisible(this.itemsPerPageForm);
|
||||||
const errorMessage = this.itemsPerPageForm.element(by.css('mat-error'));
|
const errorMessage = this.itemsPerPageForm.element(by.css('mat-error'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(errorMessage);
|
return BrowserActions.getText(errorMessage);
|
||||||
return errorMessage.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
typePage(input) {
|
typePage(input) {
|
||||||
@@ -148,8 +141,7 @@ export class TaskListDemoPage {
|
|||||||
getPageFieldErrorMessage() {
|
getPageFieldErrorMessage() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.pageForm);
|
BrowserVisibility.waitUntilElementIsVisible(this.pageForm);
|
||||||
const errorMessage = this.pageForm.element(by.css('mat-error'));
|
const errorMessage = this.pageForm.element(by.css('mat-error'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(errorMessage);
|
return BrowserActions.getText(errorMessage);
|
||||||
return errorMessage.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
typeDueAfter(input) {
|
typeDueAfter(input) {
|
||||||
@@ -172,23 +164,19 @@ export class TaskListDemoPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickResetButton() {
|
clickResetButton() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.resetButton);
|
BrowserActions.click(this.resetButton);
|
||||||
this.resetButton.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
selectSort(sort) {
|
selectSort(sort) {
|
||||||
this.clickOnSortDropDownArrow();
|
this.clickOnSortDropDownArrow();
|
||||||
|
|
||||||
const sortElement = element.all(by.cssContainingText('mat-option span', sort)).first();
|
const sortElement = element.all(by.cssContainingText('mat-option span', sort)).first();
|
||||||
BrowserVisibility.waitUntilElementIsClickable(sortElement);
|
BrowserActions.click(sortElement);
|
||||||
BrowserVisibility.waitUntilElementIsVisible(sortElement);
|
|
||||||
sortElement.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnSortDropDownArrow() {
|
clickOnSortDropDownArrow() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.sortDropDownArrow);
|
BrowserActions.click(this.sortDropDownArrow);
|
||||||
this.sortDropDownArrow.click();
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.sortSelector);
|
BrowserVisibility.waitUntilElementIsVisible(this.sortSelector);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -196,15 +184,12 @@ export class TaskListDemoPage {
|
|||||||
this.clickOnStateDropDownArrow();
|
this.clickOnStateDropDownArrow();
|
||||||
|
|
||||||
const stateElement = element.all(by.cssContainingText('mat-option span', state)).first();
|
const stateElement = element.all(by.cssContainingText('mat-option span', state)).first();
|
||||||
BrowserVisibility.waitUntilElementIsClickable(stateElement);
|
BrowserActions.click(stateElement);
|
||||||
BrowserVisibility.waitUntilElementIsVisible(stateElement);
|
|
||||||
stateElement.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnStateDropDownArrow() {
|
clickOnStateDropDownArrow() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.stateDropDownArrow);
|
BrowserActions.click(this.stateDropDownArrow);
|
||||||
this.stateDropDownArrow.click();
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.stateSelector);
|
BrowserVisibility.waitUntilElementIsVisible(this.stateSelector);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,14 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { element, by, browser } from 'protractor';
|
import { element, by, browser } from 'protractor';
|
||||||
import { FormControllersPage, TaskFiltersCloudComponentPage, EditTaskFilterCloudComponentPage, BrowserVisibility, TaskListCloudComponentPage } from '@alfresco/adf-testing';
|
import {
|
||||||
|
FormControllersPage,
|
||||||
|
TaskFiltersCloudComponentPage,
|
||||||
|
EditTaskFilterCloudComponentPage,
|
||||||
|
BrowserVisibility,
|
||||||
|
TaskListCloudComponentPage,
|
||||||
|
BrowserActions
|
||||||
|
} from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class TasksCloudDemoPage {
|
export class TasksCloudDemoPage {
|
||||||
|
|
||||||
@@ -24,7 +31,6 @@ export class TasksCloudDemoPage {
|
|||||||
completedTasks = element(by.css('span[data-automation-id="completed-tasks-filter"]'));
|
completedTasks = element(by.css('span[data-automation-id="completed-tasks-filter"]'));
|
||||||
activeFilter = element(by.css("mat-list-item[class*='active'] span"));
|
activeFilter = element(by.css("mat-list-item[class*='active'] span"));
|
||||||
|
|
||||||
taskFilters = element(by.css("mat-expansion-panel[data-automation-id='Task Filters']"));
|
|
||||||
defaultActiveFilter = element.all(by.css('.adf-filters__entry')).first();
|
defaultActiveFilter = element.all(by.css('.adf-filters__entry')).first();
|
||||||
|
|
||||||
createButton = element(by.css('button[data-automation-id="create-button"'));
|
createButton = element(by.css('button[data-automation-id="create-button"'));
|
||||||
@@ -77,49 +83,30 @@ export class TasksCloudDemoPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getActiveFilterName() {
|
getActiveFilterName() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.activeFilter);
|
return BrowserActions.getText(this.activeFilter);
|
||||||
return this.activeFilter.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
customTaskFilter(filterName) {
|
customTaskFilter(filterName) {
|
||||||
return new TaskFiltersCloudComponentPage(element(by.css(`span[data-automation-id="${filterName}-filter"]`)));
|
return new TaskFiltersCloudComponentPage(element(by.css(`span[data-automation-id="${filterName}-filter"]`)));
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnTaskFilters() {
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.taskFilters);
|
|
||||||
return this.taskFilters.click();
|
|
||||||
}
|
|
||||||
|
|
||||||
openNewTaskForm() {
|
openNewTaskForm() {
|
||||||
this.createButtonIsDisplayed();
|
BrowserActions.click(this.createButton);
|
||||||
this.clickOnCreateButton();
|
BrowserActions.click(this.newTaskButton);
|
||||||
this.newTaskButtonIsDisplayed();
|
|
||||||
this.newTaskButton.click();
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
createButtonIsDisplayed() {
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.createButton);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
newTaskButtonIsDisplayed() {
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.newTaskButton);
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnCreateButton() {
|
clickOnCreateButton() {
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.createButton);
|
BrowserActions.click(this.createButton);
|
||||||
this.createButton.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
firstFilterIsActive () {
|
firstFilterIsActive() {
|
||||||
return this.defaultActiveFilter.getAttribute('class').then((value) => value.includes('adf-active'));
|
return this.defaultActiveFilter.getAttribute('class').then((value) => value.includes('adf-active'));
|
||||||
}
|
}
|
||||||
|
|
||||||
clickSettingsButton() {
|
clickSettingsButton() {
|
||||||
this.settingsButton.click();
|
BrowserActions.click(this.settingsButton);
|
||||||
browser.driver.sleep(400);
|
browser.driver.sleep(400);
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.multiSelectionToggle);
|
BrowserVisibility.waitUntilElementIsVisible(this.multiSelectionToggle);
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.modeDropDownArrow);
|
BrowserVisibility.waitUntilElementIsVisible(this.modeDropDownArrow);
|
||||||
@@ -128,8 +115,7 @@ export class TasksCloudDemoPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickAppButton() {
|
clickAppButton() {
|
||||||
this.appButton.click();
|
BrowserActions.click(this.appButton);
|
||||||
this.createButtonIsDisplayed();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,16 +123,12 @@ export class TasksCloudDemoPage {
|
|||||||
this.clickOnSelectionModeDropDownArrow();
|
this.clickOnSelectionModeDropDownArrow();
|
||||||
|
|
||||||
const modeElement = element.all(by.cssContainingText('mat-option span', mode)).first();
|
const modeElement = element.all(by.cssContainingText('mat-option span', mode)).first();
|
||||||
BrowserVisibility.waitUntilElementIsClickable(modeElement);
|
BrowserActions.click(modeElement);
|
||||||
BrowserVisibility.waitUntilElementIsVisible(modeElement);
|
|
||||||
modeElement.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnSelectionModeDropDownArrow() {
|
clickOnSelectionModeDropDownArrow() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.modeDropDownArrow);
|
BrowserActions.click(this.modeDropDownArrow);
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.modeDropDownArrow);
|
|
||||||
this.modeDropDownArrow.click();
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.modeSelector);
|
BrowserVisibility.waitUntilElementIsVisible(this.modeSelector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { browser, by, element } from 'protractor';
|
import { browser, by, element } from 'protractor';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class CreateFolderDialog {
|
export class CreateFolderDialog {
|
||||||
folderNameField = element(by.id('adf-folder-name-input'));
|
folderNameField = element(by.id('adf-folder-name-input'));
|
||||||
@@ -25,9 +25,7 @@ export class CreateFolderDialog {
|
|||||||
cancelButton = element(by.id('adf-folder-cancel-button'));
|
cancelButton = element(by.id('adf-folder-cancel-button'));
|
||||||
|
|
||||||
clickOnCreateButton() {
|
clickOnCreateButton() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.createButton);
|
BrowserActions.click(this.createButton);
|
||||||
this.createButton.click();
|
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkCreateBtnIsDisabled() {
|
checkCreateBtnIsDisabled() {
|
||||||
@@ -42,23 +40,19 @@ export class CreateFolderDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickOnCancelButton() {
|
clickOnCancelButton() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.cancelButton);
|
BrowserActions.click(this.cancelButton);
|
||||||
this.cancelButton.click();
|
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
addFolderName(folderName) {
|
addFolderName(folderName) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.folderNameField);
|
BrowserVisibility.waitUntilElementIsVisible(this.folderNameField);
|
||||||
this.folderNameField.clear();
|
BrowserActions.clearSendKeys(this.folderNameField, folderName);
|
||||||
this.folderNameField.sendKeys(folderName);
|
|
||||||
browser.driver.sleep(500);
|
browser.driver.sleep(500);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
addFolderDescription(folderDescription) {
|
addFolderDescription(folderDescription) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.folderDescriptionField);
|
BrowserVisibility.waitUntilElementIsVisible(this.folderDescriptionField);
|
||||||
this.folderDescriptionField.clear();
|
BrowserActions.clearSendKeys(this.folderDescriptionField, folderDescription);
|
||||||
this.folderDescriptionField.sendKeys(folderDescription);
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { by, element, browser, protractor } from 'protractor';
|
import { by, element, browser, protractor } from 'protractor';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class CreateLibraryDialog {
|
export class CreateLibraryDialog {
|
||||||
libraryDialog = element(by.css('[role="dialog"]'));
|
libraryDialog = element(by.css('[role="dialog"]'));
|
||||||
@@ -35,8 +35,7 @@ export class CreateLibraryDialog {
|
|||||||
|
|
||||||
getSelectedRadio() {
|
getSelectedRadio() {
|
||||||
const radio = element(by.css('.mat-radio-button[class*="checked"]'));
|
const radio = element(by.css('.mat-radio-button[class*="checked"]'));
|
||||||
BrowserVisibility.waitUntilElementIsVisible(radio);
|
return BrowserActions.getText(radio);
|
||||||
return radio.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
waitForDialogToOpen() {
|
waitForDialogToOpen() {
|
||||||
@@ -54,7 +53,7 @@ export class CreateLibraryDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getTitle() {
|
getTitle() {
|
||||||
return this.libraryTitle.getText();
|
return BrowserActions.getText(this.libraryTitle);
|
||||||
}
|
}
|
||||||
|
|
||||||
getLibraryIdText() {
|
getLibraryIdText() {
|
||||||
@@ -66,22 +65,20 @@ export class CreateLibraryDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getErrorMessage() {
|
getErrorMessage() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.errorMessage);
|
return BrowserActions.getText(this.errorMessage);
|
||||||
return this.errorMessage.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getErrorMessages(position) {
|
getErrorMessages(position) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.errorMessages);
|
return BrowserActions.getText(this.errorMessages.get(position));
|
||||||
return this.errorMessages.get(position).getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
waitForLibraryNameHint() {
|
waitForLibraryNameHint() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.libraryNameHint);
|
BrowserVisibility.waitUntilElementIsVisible(this.libraryNameHint);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
getLibraryNameHint() {
|
getLibraryNameHint() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.libraryNameHint);
|
return BrowserActions.getText(this.libraryNameHint);
|
||||||
return this.libraryNameHint.getText();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
isNameDisplayed() {
|
isNameDisplayed() {
|
||||||
@@ -117,27 +114,23 @@ export class CreateLibraryDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickCreate() {
|
clickCreate() {
|
||||||
BrowserVisibility.waitUntilElementIsClickable(this.createButton);
|
BrowserActions.click(this.createButton);
|
||||||
this.createButton.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clickCancel() {
|
clickCancel() {
|
||||||
this.cancelButton.click();
|
BrowserActions.click(this.cancelButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
typeLibraryName(libraryName: string) {
|
typeLibraryName(libraryName: string) {
|
||||||
this.libraryNameField.clear();
|
BrowserActions.clearSendKeys(this.libraryNameField, libraryName);
|
||||||
this.libraryNameField.sendKeys(libraryName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
typeLibraryId(libraryId) {
|
typeLibraryId(libraryId) {
|
||||||
this.libraryIdField.clear();
|
BrowserActions.clearSendKeys(this.libraryIdField, libraryId);
|
||||||
this.libraryIdField.sendKeys(libraryId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
typeLibraryDescription(libraryDescription) {
|
typeLibraryDescription(libraryDescription) {
|
||||||
this.libraryDescriptionField.clear();
|
BrowserActions.clearSendKeys(this.libraryDescriptionField, libraryDescription);
|
||||||
this.libraryDescriptionField.sendKeys(libraryDescription);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clearLibraryName() {
|
clearLibraryName() {
|
||||||
@@ -150,20 +143,15 @@ export class CreateLibraryDialog {
|
|||||||
this.libraryIdField.sendKeys(' ', protractor.Key.CONTROL, 'a', protractor.Key.NULL, protractor.Key.BACK_SPACE);
|
this.libraryIdField.sendKeys(' ', protractor.Key.CONTROL, 'a', protractor.Key.NULL, protractor.Key.BACK_SPACE);
|
||||||
}
|
}
|
||||||
|
|
||||||
clearLibraryDescription() {
|
|
||||||
this.libraryDescriptionField.clear();
|
|
||||||
this.libraryDescriptionField.sendKeys(' ', protractor.Key.CONTROL, 'a', protractor.Key.NULL, protractor.Key.BACK_SPACE);
|
|
||||||
}
|
|
||||||
|
|
||||||
selectPublic() {
|
selectPublic() {
|
||||||
this.publicRadioButton.click();
|
BrowserActions.click(this.publicRadioButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
selectPrivate() {
|
selectPrivate() {
|
||||||
this.privateRadioButton.click();
|
BrowserActions.click(this.privateRadioButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
selectModerated() {
|
selectModerated() {
|
||||||
this.moderatedRadioButton.click();
|
BrowserActions.click(this.moderatedRadioButton);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { browser, by, element, protractor } from 'protractor';
|
import { browser, by, element, protractor } from 'protractor';
|
||||||
import { BrowserVisibility } from '@alfresco/adf-testing';
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
export class SearchDialog {
|
export class SearchDialog {
|
||||||
|
|
||||||
@@ -35,8 +35,7 @@ export class SearchDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickOnSearchIcon() {
|
clickOnSearchIcon() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.searchIcon);
|
BrowserActions.click(this.searchIcon);
|
||||||
this.searchIcon.click();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,14 +68,14 @@ export class SearchDialog {
|
|||||||
|
|
||||||
enterText(text) {
|
enterText(text) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.searchBar);
|
BrowserVisibility.waitUntilElementIsVisible(this.searchBar);
|
||||||
browser.executeScript(`document.querySelector("adf-search-control input").click();`);
|
BrowserActions.clickExecuteScript('adf-search-control input');
|
||||||
this.searchBar.sendKeys(text);
|
this.searchBar.sendKeys(text);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
enterTextAndPressEnter(text) {
|
enterTextAndPressEnter(text) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.searchBar);
|
BrowserVisibility.waitUntilElementIsVisible(this.searchBar);
|
||||||
browser.executeScript(`document.querySelector("adf-search-control input").click();`);
|
BrowserActions.clickExecuteScript('adf-search-control input');
|
||||||
this.searchBar.sendKeys(text);
|
this.searchBar.sendKeys(text);
|
||||||
this.searchBar.sendKeys(protractor.Key.ENTER);
|
this.searchBar.sendKeys(protractor.Key.ENTER);
|
||||||
return this;
|
return this;
|
||||||
@@ -99,15 +98,15 @@ export class SearchDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getSpecificRowsHighlightName(name) {
|
getSpecificRowsHighlightName(name) {
|
||||||
return this.getRowByRowName(name).element(this.highlightName).getText();
|
return BrowserActions.getText(this.getRowByRowName(name).element(this.highlightName));
|
||||||
}
|
}
|
||||||
|
|
||||||
getSpecificRowsCompleteName(name) {
|
getSpecificRowsCompleteName(name) {
|
||||||
return this.getRowByRowName(name).element(this.completeName).getText();
|
return BrowserActions.getText(this.getRowByRowName(name).element(this.completeName));
|
||||||
}
|
}
|
||||||
|
|
||||||
getSpecificRowsAuthor(name) {
|
getSpecificRowsAuthor(name) {
|
||||||
return this.getRowByRowName(name).element(this.rowsAuthor).getText();
|
return BrowserActions.getText(this.getRowByRowName(name).element(this.rowsAuthor));
|
||||||
}
|
}
|
||||||
|
|
||||||
clearText() {
|
clearText() {
|
||||||
|
|||||||
@@ -16,7 +16,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { element, by } from 'protractor';
|
import { element, by } from 'protractor';
|
||||||
import { BrowserVisibility, FormControllersPage } from '@alfresco/adf-testing';
|
import { BrowserVisibility, FormControllersPage, BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
import moment = require('moment');
|
||||||
|
|
||||||
export class ShareDialog {
|
export class ShareDialog {
|
||||||
|
|
||||||
@@ -25,7 +26,6 @@ export class ShareDialog {
|
|||||||
dialogTitle = element(by.css('[data-automation-id="adf-share-dialog-title"]'));
|
dialogTitle = element(by.css('[data-automation-id="adf-share-dialog-title"]'));
|
||||||
shareToggle = element(by.css('[data-automation-id="adf-share-toggle"] label'));
|
shareToggle = element(by.css('[data-automation-id="adf-share-toggle"] label'));
|
||||||
shareToggleChecked = element(by.css('mat-dialog-container mat-slide-toggle.mat-checked'));
|
shareToggleChecked = element(by.css('mat-dialog-container mat-slide-toggle.mat-checked'));
|
||||||
shareToggleUnchecked = element(by.css('mat-dialog-container mat-slide-toggle:not(.mat-checked)'));
|
|
||||||
shareToggleDisabled = element(by.css('mat-dialog-container mat-slide-toggle.mat-disabled'));
|
shareToggleDisabled = element(by.css('mat-dialog-container mat-slide-toggle.mat-disabled'));
|
||||||
shareLink = element(by.css('[data-automation-id="adf-share-link"]'));
|
shareLink = element(by.css('[data-automation-id="adf-share-link"]'));
|
||||||
closeButton = element(by.css('button[data-automation-id="adf-share-dialog-close"]'));
|
closeButton = element(by.css('button[data-automation-id="adf-share-dialog-close"]'));
|
||||||
@@ -50,13 +50,11 @@ export class ShareDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickConfirmationDialogCancelButton() {
|
clickConfirmationDialogCancelButton() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.confirmationCancelButton);
|
BrowserActions.click(this.confirmationCancelButton);
|
||||||
this.confirmationCancelButton.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clickConfirmationDialogRemoveButton() {
|
clickConfirmationDialogRemoveButton() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.confirmationRemoveButton);
|
BrowserActions.click(this.confirmationRemoveButton);
|
||||||
this.confirmationRemoveButton.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkShareLinkIsDisplayed() {
|
checkShareLinkIsDisplayed() {
|
||||||
@@ -69,13 +67,12 @@ export class ShareDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickCloseButton() {
|
clickCloseButton() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.closeButton);
|
return BrowserActions.click(this.closeButton);
|
||||||
return this.closeButton.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clickShareLinkButton() {
|
clickShareLinkButton() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.copySharedLinkButton);
|
return BrowserActions.click(this.copySharedLinkButton);
|
||||||
return this.copySharedLinkButton.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
shareToggleButtonIsChecked() {
|
shareToggleButtonIsChecked() {
|
||||||
@@ -86,39 +83,35 @@ export class ShareDialog {
|
|||||||
BrowserVisibility.waitUntilElementIsPresent(this.shareToggleDisabled);
|
BrowserVisibility.waitUntilElementIsPresent(this.shareToggleDisabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
shareToggleButtonIsUnchecked() {
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.shareToggleUnchecked);
|
|
||||||
}
|
|
||||||
|
|
||||||
checkNotificationWithMessage(message) {
|
checkNotificationWithMessage(message) {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(
|
BrowserVisibility.waitUntilElementIsPresent(
|
||||||
element(by.cssContainingText('simple-snack-bar', message))
|
element(by.cssContainingText('simple-snack-bar', message))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
waitForNotificationToClose() {
|
|
||||||
BrowserVisibility.waitUntilElementIsStale(element(by.css('simple-snack-bar')));
|
|
||||||
}
|
|
||||||
|
|
||||||
dialogIsClosed() {
|
dialogIsClosed() {
|
||||||
BrowserVisibility.waitUntilElementIsStale(this.shareDialog);
|
BrowserVisibility.waitUntilElementIsStale(this.shareDialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
clickDateTimePickerButton() {
|
clickDateTimePickerButton() {
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.timeDatePickerButton);
|
BrowserActions.click(this.timeDatePickerButton);
|
||||||
this.timeDatePickerButton.click();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
calendarTodayDayIsDisabled() {
|
calendarTodayDayIsDisabled() {
|
||||||
const today: any = this.dayPicker.element(by.css('.mat-datetimepicker-calendar-body-today')).getText();
|
const tomorrow = moment().add(1, 'days').format('D');
|
||||||
BrowserVisibility.waitUntilElementIsPresent(element(by.cssContainingText('.mat-datetimepicker-calendar-body-disabled', today)));
|
|
||||||
|
if (tomorrow !== '1') {
|
||||||
|
const today: any = this.dayPicker.element(by.css('.mat-datetimepicker-calendar-body-today')).getText();
|
||||||
|
BrowserVisibility.waitUntilElementIsPresent(element(by.cssContainingText('.mat-datetimepicker-calendar-body-disabled', today)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setDefaultDay() {
|
setDefaultDay() {
|
||||||
const selector = '.mat-datetimepicker-calendar-body-cell:not(.mat-datetimepicker-calendar-body-disabled)';
|
|
||||||
BrowserVisibility.waitUntilElementIsVisible(this.dayPicker);
|
BrowserVisibility.waitUntilElementIsVisible(this.dayPicker);
|
||||||
const tomorrow = new Date(new Date().getTime() + 48 * 60 * 60 * 1000).getDate().toString();
|
|
||||||
this.dayPicker.element(by.cssContainingText(selector, tomorrow)).click();
|
const tomorrow = moment().add(1, 'days').format('MMM D, YYYY');
|
||||||
|
BrowserVisibility.waitUntilElementIsClickable(this.dayPicker.element(by.css(`td[aria-label="${tomorrow}"]`)));
|
||||||
|
this.dayPicker.element(by.css(`td[aria-label="${tomorrow}"]`)).click();
|
||||||
}
|
}
|
||||||
|
|
||||||
setDefaultHour() {
|
setDefaultHour() {
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user