diff --git a/.travis.yml b/.travis.yml index 551135414e..27c1600f3b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -53,64 +53,66 @@ jobs: - ./scripts/lint.sh || exit 1 - npm run spellcheck || exit 1 - npm run stylelint || exit 1 - - rm -rf tmp && (./scripts/smart-build.sh -b $TRAVIS_BRANCH || exit 1;); + - rm -rf tmp && mkdir tmp + - git merge-base origin/$TRAVIS_BRANCH HEAD > ./tmp/devhead.txt + - (./scripts/smart-build.sh -b $TRAVIS_BRANCH || exit 1;); - npm run build:dist || exit 1 - ./scripts/license-list-generator.sh - stage: Unit test name: core script: - AFFECTED_LIBS="$(./scripts/affected-libs.sh -b -gnu $TRAVIS_BRANCH)"; + AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)"; if [[ $AFFECTED_LIBS =~ "core$" || $TRAVIS_PULL_REQUEST == "false" ]]; then ng test core --watch=false || exit 1; - fi + fi; - stage: Unit test name: extensions script: - AFFECTED_LIBS="$(./scripts/affected-libs.sh -b -gnu $TRAVIS_BRANCH)"; + 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 + fi; - stage: Unit test name: process-services script: - AFFECTED_LIBS="$(./scripts/affected-libs.sh -b -gnu $TRAVIS_BRANCH)"; + 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 + fi; - stage: Unit test name: insights script: - AFFECTED_LIBS="$(./scripts/affected-libs.sh -b -gnu $TRAVIS_BRANCH)"; + 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 + fi; - stage: Unit test name: content-services script: - AFFECTED_LIBS="$(./scripts/affected-libs.sh -b -gnu $TRAVIS_BRANCH)"; + 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 + fi; - stage: Unit test name: process-services-cloud script: - AFFECTED_LIBS="$(./scripts/affected-libs.sh -b -gnu $TRAVIS_BRANCH)"; + 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 + fi; - stage: Unit test name: demo-shell script: if ([ "$TRAVIS_BRANCH" = "master" ]); then (./scripts/start.sh -t -ss || exit 1;); else - (./scripts/start.sh -dev -t -ss -vjsapi alpha || exit 1;); - fi + (./scripts/start.sh -dev -t -ss -si || exit 1;); + fi; - stage: Update children projects dependency #Update generator-ng2-alfresco-app name: Update Generator if: tag =~ .*beta.* @@ -139,7 +141,7 @@ jobs: if [[ $AFFECTED_LIBS =~ "core$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]]; then (./scripts/test-e2e-lib.sh -host localhost:4200 --host_sso "$E2E_HOST_SSO" --host_bpm "$E2E_HOST_BPM" --host_identity "$E2E_HOST_IDENTITY" -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e $E2E_EMAIL -b --folder core --skip-lint --use-dist || exit 1;); - fi + fi; - stage: e2e Test # Test process-services name: process-services script: @@ -148,7 +150,7 @@ jobs: if [[ $AFFECTED_LIBS =~ "process-services$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]]; then (./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e $E2E_EMAIL -b --folder process-services --skip-lint --use-dist || exit 1;); - fi + fi; - stage: e2e Test # Test content-services name: content-services script: @@ -157,38 +159,40 @@ jobs: if [[ $AFFECTED_LIBS =~ "content-services$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]]; then (./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e $E2E_EMAIL -b --folder content-services --skip-lint --use-dist || exit 1;); - fi + fi; - stage: e2e Test # Test search name: search script: AFFECTED_E2E="$(./scripts/affected-folder.sh -b $TRAVIS_BRANCH -f "e2e")"; - AFFECTED_LIBS="$(./scripts/affected-libs.sh -b -gnu $TRAVIS_BRANCH)"; + AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)"; if [[ $AFFECTED_LIBS =~ "content-services$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]]; then (./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e $E2E_EMAIL -b --folder search --skip-lint --use-dist || exit 1;); - fi + 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 -b -gnu $TRAVIS_BRANCH)"; + AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)"; if [[ $AFFECTED_LIBS =~ "process-services-cloud$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]]; then (./scripts/test-e2e-lib.sh -host localhost:4200 --host_sso "$E2E_HOST_SSO" --host_bpm "$E2E_HOST_BPM" --host_identity "$E2E_HOST_IDENTITY" -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e $E2E_EMAIL -b --folder process-services-cloud --skip-lint --use-dist || exit 1;); - fi + 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 -b -gnu $TRAVIS_BRANCH)"; + AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)"; if [[ $AFFECTED_LIBS =~ "process-services-cloud$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]]; then (./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e $E2E_EMAIL -b --folder insights --skip-lint --use-dist || exit 1;); - fi + fi; - stage: Create Docker PR - script: 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) + script: + 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); - stage: Deploy Docker PR - script: 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 + script: + 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; # Send coverage data to codecov after_success: diff --git a/e2e/pages/adf/searchFiltersPage.ts b/e2e/pages/adf/searchFiltersPage.ts index e6ca30a0fb..8bc5724e3c 100644 --- a/e2e/pages/adf/searchFiltersPage.ts +++ b/e2e/pages/adf/searchFiltersPage.ts @@ -148,6 +148,7 @@ export class SearchFiltersPage { this.searchCategoriesPage.clickFilterHeader(this.fileSizeFilter); return this; } + checkFileSizeFilterIsCollapsed() { this.searchCategoriesPage.checkFilterIsCollapsed(this.fileSizeFilter); return this; @@ -280,4 +281,15 @@ export class SearchFiltersPage { this.searchCategoriesPage.clickFilterHeader(this.facetIntervalsByModified); return this; } + + checkFileTypeFacetLabelIsDisplayed(fileType) { + Util.waitUntilElementIsVisible(this.fileTypeFilter.element(by.cssContainingText('.adf-facet-label', fileType))); + return this; + } + + checkFileTypeFacetLabelIsNotDisplayed(fileType) { + Util.waitUntilElementIsNotVisible(this.fileTypeFilter.element(by.cssContainingText('.adf-facet-label', fileType))); + return this; + } + } diff --git a/e2e/search/search-filters.e2e.ts b/e2e/search/search-filters.e2e.ts index 5369f5eafa..a3b3f4f074 100644 --- a/e2e/search/search-filters.e2e.ts +++ b/e2e/search/search-filters.e2e.ts @@ -51,6 +51,10 @@ describe('Search Filters', () => { let acsUser = new AcsUserModel(); let filename = Util.generateRandomString(16); + let fileNamePrefix = Util.generateRandomString(5); + let uniqueFileName1 = fileNamePrefix + Util.generateRandomString(5); + let uniqueFileName2 = fileNamePrefix + Util.generateRandomString(5); + let uniqueFileName3 = fileNamePrefix + Util.generateRandomString(5); let fileModel = new FileModel({ 'name': filename, 'shortName': filename.substring(0, 8) @@ -61,7 +65,22 @@ describe('Search Filters', () => { 'location': resources.Files.ADF_DOCUMENTS.PNG.file_location }); - let fileUploaded, fileTypePng; + let txtFileModel1 = new FileModel({ + 'location': resources.Files.ADF_DOCUMENTS.TXT_0B.file_location, + 'name': `${uniqueFileName1}.txt` + }); + + let jpgFileModel = new FileModel({ + 'location': resources.Files.ADF_DOCUMENTS.JPG.file_location, + 'name': `${uniqueFileName2}.jpg` + }); + + let txtFileModel2 = new FileModel({ + 'location': resources.Files.ADF_DOCUMENTS.TXT_0B.file_location, + 'name': `${uniqueFileName3}.txt` + }); + + let fileUploaded, fileTypePng, fileTypeTxt1, fileTypeJpg, fileTypeTxt2; let filter = { type: 'TYPE-PNG Image' }; @@ -84,6 +103,12 @@ describe('Search Filters', () => { fileTypePng = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileModel.location, pngFileModel.name, '-my-'); + fileTypeTxt1 = await uploadActions.uploadFile(this.alfrescoJsApi, txtFileModel1.location, txtFileModel1.name, '-my-'); + + fileTypeJpg = await uploadActions.uploadFile(this.alfrescoJsApi, jpgFileModel.location, jpgFileModel.name, '-my-'); + + fileTypeTxt2 = await uploadActions.uploadFile(this.alfrescoJsApi, txtFileModel2.location, txtFileModel2.name, '-my-'); + loginPage.loginToContentServicesUsingUserModel(acsUser); await browser.driver.sleep(30000); // wait search index previous file/folder uploaded @@ -102,6 +127,9 @@ describe('Search Filters', () => { await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileUploaded.entry.id); await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileTypePng.entry.id); + await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileTypeTxt1.entry.id); + await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileTypeTxt2.entry.id); + await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileTypeJpg.entry.id); done(); }); @@ -225,6 +253,26 @@ describe('Search Filters', () => { .checkFacetIntervalsByModifiedIsExpanded(); }); + it('[C299200] Should reset the filters facet with search query', () => { + searchDialog.enterTextAndPressEnter(fileTypeTxt1.entry.name); + + searchFiltersPage.checkSearchFiltersIsDisplayed(); + searchResults.tableIsLoaded(); + searchResults.checkContentIsDisplayed(fileTypeTxt1.entry.name); + searchFiltersPage.checkFileTypeFacetLabelIsDisplayed('Plain Text (1)'); + searchFiltersPage.checkFileTypeFacetLabelIsNotDisplayed('JPEG Image'); + + searchDialog.enterTextAndPressEnter(fileNamePrefix); + searchFiltersPage.checkSearchFiltersIsDisplayed(); + searchResults.tableIsLoaded(); + searchResults.checkContentIsDisplayed(fileTypeTxt1.entry.name); + searchResults.checkContentIsDisplayed(fileTypeTxt2.entry.name); + searchResults.checkContentIsDisplayed(fileTypeJpg.entry.name); + searchFiltersPage.checkFileTypeFacetLabelIsDisplayed('Plain Text (2)'); + searchFiltersPage.checkFileTypeFacetLabelIsDisplayed('JPEG Image (1)'); + + }); + it('[C299124] Should be able to parse escaped empty spaced labels inside facetFields', () => { navigationBar.clickConfigEditorButton(); configEditor.clickSearchConfiguration(); diff --git a/scripts/affected-folder.sh b/scripts/affected-folder.sh index 433a989ba7..fd450c6b28 100755 --- a/scripts/affected-folder.sh +++ b/scripts/affected-folder.sh @@ -3,6 +3,7 @@ eval BRANCH_NAME="" eval HEAD_SHA_BRANCH="" eval SHA_2="HEAD" +eval DIRECTORY="tmp" show_help() { echo "Usage: affected-folder.sh" @@ -39,6 +40,10 @@ then exit 0 fi +if [ ! -f ./$DIRECTORY/devhead.txt ]; then + git merge-base origin/$BRANCH_NAME HEAD > ./$DIRECTORY/devhead.txt +fi + HEAD_SHA_BRANCH="$(git merge-base origin/$BRANCH_NAME HEAD)" #echo "Branch name $BRANCH_NAME HEAD sha " $HEAD_SHA_BRANCH diff --git a/scripts/affected-libs.sh b/scripts/affected-libs.sh index 7eba357a97..cccb9a9f06 100755 --- a/scripts/affected-libs.sh +++ b/scripts/affected-libs.sh @@ -43,8 +43,11 @@ then exit 0 fi -#HEAD_SHA_BRANCH=(`git merge-base origin/$BRANCH_NAME HEAD`) -HEAD_SHA_BRANCH="$(git merge-base origin/$BRANCH_NAME HEAD)" +if [ ! -f ./$DIRECTORY/devhead.txt ]; then +git merge-base origin/$BRANCH_NAME HEAD > ./$DIRECTORY/devhead.txt +fi + +HEAD_SHA_BRANCH="$(cat ./$DIRECTORY/devhead.txt)" echo "Branch name $BRANCH_NAME HEAD sha " $HEAD_SHA_BRANCH # tmp folder doesn't exist. diff --git a/scripts/smart-build.sh b/scripts/smart-build.sh index 62545781f2..aa965ebe76 100755 --- a/scripts/smart-build.sh +++ b/scripts/smart-build.sh @@ -26,8 +26,7 @@ then fi #reset the tmp folder -rm -rf tmp -affected="$(./scripts/affected-libs.sh -b "$BRANCH_NAME")" +affected="$(./scripts/affected-libs.sh -gnu -b "$BRANCH_NAME")" echo $affected libs=(`echo $affected | sed 's/^$/\n/g'`) @@ -85,4 +84,4 @@ do if [ "$i" == "testing$" ] ; then ./scripts/build-testing.sh || exit 1; fi -done \ No newline at end of file +done