mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
[ADF-3442] create library dialog (#4018)
* library dialog * integrate with demo shell * update resources * fix license * auto focus for the first input * update e2e tests * try close the dialog between tests * fix afterEach * Revert "try close the dialog between tests" This reverts commit 63464f2b03c226c606d09b18c7d2782e3bb52c0a. * update code due to css lint issues * csslint settings for vs code * missing import lint fix remove not used import convert errorPage js to ts convert tasklistpage js to ts fix redirection creation folder in root fix lint issue fix e2e * e2e fix * fix PS tests * navigation import * fix tests tooltip convert paginapage to ts * fix lint * fix lock files e2e filterspage to ts * fix lint * fix cs cre git dept 3 and not 50 as default in travis * quiet log git download * add some delay and change the delete lock * fix node entry * convert searchDialog to typescript parallel protractor * disable browser execute * restote test * change search tests * move search in a separate e2e folder * experiment fix e2e * change util presence change protractor conf * fix unshare test * improve query viewerPage using css over xpath * waitForAngularEnabled before browser redirect * convert util to ts and more * convert other files to ts * convert to ts other files * trigger build * function fixes use arrow function * process service fixes * lint fix review timeout default * fix failing tests * restore timeout * share dialog fix * remove * use configuration admin * fix APS 2 login sso
This commit is contained in:
committed by
Eugenio Romano
parent
9fd564a78e
commit
058d23d57f
232
e2e/search/components/search-date-range.e2e.ts
Normal file
232
e2e/search/components/search-date-range.e2e.ts
Normal file
@@ -0,0 +1,232 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2016 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage } from '../../pages/adf/loginPage';
|
||||
import { SearchDialog } from '../../pages/adf/dialog/searchDialog';
|
||||
import { DataTablePage } from '../../pages/adf/dataTablePage';
|
||||
import { SearchResultsPage } from '../../pages/adf/searchResultsPage';
|
||||
import { DatePickerPage } from '../../pages/adf/material/datePickerPage';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
||||
import { ConfigEditorPage } from '../../pages/adf/configEditorPage';
|
||||
import { SearchFiltersPage } from '../../pages/adf/searchFiltersPage';
|
||||
import { SearchConfiguration } from '../search.config';
|
||||
|
||||
import TestConfig = require('../../test.config');
|
||||
|
||||
import AlfrescoApi = require('alfresco-js-api-node');
|
||||
import { browser } from 'protractor';
|
||||
|
||||
describe('Search Date Range Filter', () => {
|
||||
|
||||
let loginPage = new LoginPage();
|
||||
let searchDialog = new SearchDialog();
|
||||
let searchFilters = new SearchFiltersPage();
|
||||
let dateRangeFilter = searchFilters.createdDateRangeFilterPage();
|
||||
let searchResults = new SearchResultsPage();
|
||||
let datePicker = new DatePickerPage();
|
||||
let navigationBar = new NavigationBarPage();
|
||||
let configEditor = new ConfigEditorPage();
|
||||
let dataTable = new DataTablePage();
|
||||
|
||||
beforeAll(async (done) => {
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
|
||||
loginPage.loginToContentServices(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
|
||||
searchDialog.checkSearchIconIsVisible()
|
||||
.clickOnSearchIcon()
|
||||
.enterTextAndPressEnter('*');
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
searchFilters.checkCreatedRangeFilterIsDisplayed()
|
||||
.clickCreatedRangeFilterHeader()
|
||||
.checkCreatedRangeFilterIsExpanded();
|
||||
});
|
||||
|
||||
afterEach(async (done) => {
|
||||
await browser.refresh();
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C277106] Should display default values for Date Range widget', () => {
|
||||
dateRangeFilter.checkFromFieldIsDisplayed()
|
||||
.checkFromDateToggleIsDisplayed()
|
||||
.checkToFieldIsDisplayed()
|
||||
.checkToDateToggleIsDisplayed()
|
||||
.checkApplyButtonIsDisplayed()
|
||||
.checkApplyButtonIsDisabled()
|
||||
.checkClearButtonIsDisplayed();
|
||||
});
|
||||
|
||||
it('[C277104] Should be able to set dates using date pickers', () => {
|
||||
dateRangeFilter.checkFromDateToggleIsDisplayed().openFromDatePicker()
|
||||
.selectTodayDate();
|
||||
browser.controlFlow().execute(async () => {
|
||||
await expect(dateRangeFilter.getFromDate()).toEqual(dateRangeFilter.getFromCalendarSelectedDate());
|
||||
});
|
||||
});
|
||||
|
||||
it('[C277105] Should be able to type a date', () => {
|
||||
let date = '01-May-18';
|
||||
dateRangeFilter.putFromDate(date);
|
||||
browser.controlFlow().execute(async () => {
|
||||
await expect(dateRangeFilter.getFromCalendarSelectedDate()).toEqual(dateRangeFilter.getFromDate());
|
||||
});
|
||||
});
|
||||
|
||||
it('[C277119] FROM and TO dates should depend on each other', () => {
|
||||
dateRangeFilter.checkFromDateToggleIsDisplayed().openFromDatePicker()
|
||||
.checkDatesAfterDateAreDisabled(new Date())
|
||||
.closeDatePicker();
|
||||
|
||||
dateRangeFilter.checkToDateToggleIsDisplayed().openToDatePicker()
|
||||
.checkDatesAfterDateAreDisabled(new Date())
|
||||
.closeDatePicker();
|
||||
|
||||
dateRangeFilter.checkFromDateToggleIsDisplayed().openFromDatePicker()
|
||||
.selectTodayDate()
|
||||
.checkDatePickerIsNotDisplayed();
|
||||
|
||||
dateRangeFilter.checkToDateToggleIsDisplayed().openToDatePicker()
|
||||
.checkDatesBeforeDateAreDisabled(new Date())
|
||||
.checkDatesAfterDateAreDisabled(new Date());
|
||||
});
|
||||
|
||||
it('[C277107] Should be able to apply a date range', () => {
|
||||
let fromDate, toDate;
|
||||
dateRangeFilter.checkFromDateToggleIsDisplayed().openFromDatePicker()
|
||||
.selectTodayDate()
|
||||
.checkDatePickerIsNotDisplayed();
|
||||
dateRangeFilter.getFromDate().then((date) => {
|
||||
fromDate = datePicker.convertDefaultFormatToDate(date);
|
||||
});
|
||||
|
||||
dateRangeFilter.checkApplyButtonIsDisabled();
|
||||
|
||||
dateRangeFilter.checkToDateToggleIsDisplayed().openToDatePicker()
|
||||
.selectTodayDate()
|
||||
.checkDatePickerIsNotDisplayed();
|
||||
dateRangeFilter.getToDate().then((date) => {
|
||||
toDate = datePicker.convertDefaultFormatToDate(date);
|
||||
});
|
||||
|
||||
dateRangeFilter.checkApplyButtonIsEnabled()
|
||||
.clickApplyButton();
|
||||
|
||||
searchResults.sortByCreated(true);
|
||||
browser.controlFlow().execute(async () => {
|
||||
let firstResult = await dataTable.getNodeIdFirstElement();
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.nodesApi.getNode(firstResult).then(async (node) => {
|
||||
let nodeCreation = new Date(node.entry.createdAt);
|
||||
nodeCreation.setHours(0, 0, 0, 0);
|
||||
await expect(nodeCreation.getTime() >= fromDate.getTime()).toBe(true);
|
||||
await expect(nodeCreation.getTime() <= toDate.getTime()).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
searchResults.sortByCreated(false);
|
||||
browser.controlFlow().execute(async () => {
|
||||
let firstResult = await dataTable.getNodeIdFirstElement();
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.nodesApi.getNode(firstResult).then(async (node) => {
|
||||
let nodeCreation = new Date(node.entry.createdAt);
|
||||
nodeCreation.setHours(0, 0, 0, 0);
|
||||
await expect(nodeCreation.getTime() >= fromDate.getTime()).toBe(true);
|
||||
await expect(nodeCreation.getTime() <= toDate.getTime()).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('[C277108] Should display a warning message when user doesn\'t set the date range at all', () => {
|
||||
dateRangeFilter.checkFromFieldIsDisplayed()
|
||||
.clickFromField()
|
||||
.clickToField()
|
||||
.checkFromErrorMessageIsDisplayed('Required value')
|
||||
.clickFromField()
|
||||
.checkToErrorMessageIsDisplayed('Required value');
|
||||
});
|
||||
|
||||
it('[C277114] Should display warning message if user doesn\'t set the date range properly', () => {
|
||||
let toDate = '01-May-18';
|
||||
let fromDate = '16-May-18';
|
||||
|
||||
dateRangeFilter.checkToFieldIsDisplayed()
|
||||
.putToDate(toDate)
|
||||
.checkFromFieldIsDisplayed()
|
||||
.putFromDate(fromDate)
|
||||
.clickFromField()
|
||||
.checkToErrorMessageIsDisplayed('No days selected.');
|
||||
});
|
||||
|
||||
it('[C277115] Should display warning message if user types a date later than today\'s date', () => {
|
||||
let tomorrowDate = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);
|
||||
dateRangeFilter.checkFromFieldIsDisplayed()
|
||||
.putFromDate(datePicker.convertDateToDefaultFormat(tomorrowDate))
|
||||
.checkFromErrorMessageIsDisplayed('The date is beyond the maximum date.');
|
||||
});
|
||||
|
||||
it('[C277108] Should display a warning message when user doesn\'t set the date range at all', () => {
|
||||
dateRangeFilter.checkFromFieldIsDisplayed()
|
||||
.putFromDate('Wrong Format')
|
||||
.clickToField()
|
||||
.checkFromErrorMessageIsDisplayed('Invalid date. The date must be in the format \'DD-MMM-YY\'')
|
||||
.putFromDate('01-May-18')
|
||||
.checkFromErrorMessageIsNotDisplayed();
|
||||
});
|
||||
|
||||
describe('configuration change', () => {
|
||||
|
||||
let jsonFile;
|
||||
|
||||
beforeAll(() => {
|
||||
let searchConfiguration = new SearchConfiguration();
|
||||
jsonFile = searchConfiguration.getConfiguration();
|
||||
});
|
||||
|
||||
it('[C277117] Should be able to change date format', () => {
|
||||
jsonFile.categories[4].component.settings.dateFormat = 'MM-DD-YY';
|
||||
|
||||
navigationBar.clickConfigEditorButton();
|
||||
configEditor.clickSearchConfiguration();
|
||||
configEditor.clickClearButton();
|
||||
configEditor.enterConfiguration(JSON.stringify(jsonFile));
|
||||
configEditor.clickSaveButton();
|
||||
|
||||
searchDialog.clickOnSearchIcon().enterTextAndPressEnter('*');
|
||||
searchFilters.checkCreatedRangeFilterIsDisplayed()
|
||||
.clickCreatedRangeFilterHeader()
|
||||
.checkCreatedRangeFilterIsExpanded();
|
||||
dateRangeFilter.checkFromFieldIsDisplayed()
|
||||
.openFromDatePicker();
|
||||
|
||||
let todayDate = datePicker.convertDateToNewFormat(new Date());
|
||||
datePicker.selectTodayDate();
|
||||
|
||||
browser.controlFlow().execute(async () => {
|
||||
await expect(dateRangeFilter.getFromDate()).toEqual(todayDate);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user