fix route url special characters (#1000)

This commit is contained in:
Cilibiu Bogdan
2019-03-06 16:29:17 +02:00
committed by Denys Vuika
parent 3641e0168f
commit 003cadfd86
5 changed files with 117 additions and 9 deletions

View File

@@ -131,7 +131,9 @@ export class SearchInputComponent implements OnInit, OnDestroy {
if (urlSegmentGroup) {
const urlSegments: UrlSegment[] = urlSegmentGroup.segments;
this.searchedWord = urlSegments[0].parameters['q'] || '';
this.searchedWord = urlSegments[0].parameters['q']
? decodeURIComponent(urlSegments[0].parameters['q'])
: '';
}
}

View File

@@ -8,6 +8,7 @@ import { Store } from '@ngrx/store';
import { NavigateToFolder } from '../../../store/actions';
import { Pagination } from '@alfresco/js-api';
import { SearchQueryBuilderService } from '@alfresco/adf-content-services';
import { ActivatedRoute } from '@angular/router';
describe('SearchComponent', () => {
let component: SearchResultsComponent;
@@ -18,7 +19,25 @@ describe('SearchComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [CoreModule.forRoot(), AppTestingModule, AppSearchResultsModule]
imports: [CoreModule.forRoot(), AppTestingModule, AppSearchResultsModule],
providers: [
{
provide: ActivatedRoute,
useValue: {
snapshot: {
data: {
sortingPreferenceKey: ''
}
},
params: [
{
q:
'TYPE: "cm:folder" AND %28=cm: name: email OR cm: name: budget%29'
}
]
}
}
]
});
config = TestBed.get(AppConfigService);
@@ -27,9 +46,18 @@ describe('SearchComponent', () => {
fixture = TestBed.createComponent(SearchResultsComponent);
component = fixture.componentInstance;
spyOn(queryBuilder, 'update').and.stub();
fixture.detectChanges();
}));
it('should decode encoded URI', () => {
expect(queryBuilder.userQuery).toEqual(
'(TYPE: "cm:folder" AND (=cm: name: email OR cm: name: budget))'
);
});
it('should return null if formatting invalid query', () => {
expect(component.formatSearchQuery(null)).toBeNull();
expect(component.formatSearchQuery('')).toBeNull();
@@ -169,8 +197,6 @@ describe('SearchComponent', () => {
skipCount: 0
});
spyOn(queryBuilder, 'update').and.stub();
component.onPaginationChanged(page);
expect(queryBuilder.paging).toEqual({

View File

@@ -102,7 +102,7 @@ export class SearchResultsComponent extends PageComponent implements OnInit {
const query = this.formatSearchQuery(this.searchedWord);
if (query) {
this.queryBuilder.userQuery = query;
this.queryBuilder.userQuery = decodeURIComponent(query);
this.queryBuilder.update();
} else {
this.queryBuilder.userQuery = null;