Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
fix(ontology): fix regex pattern in ontology form (DSP-1139) (#483)
* fix(ontology): fix regex pattern in ontology form (DSP-1139)

* fix(ontology): fix regex pattern for onto name

* test(ontology): test onto name regex pattern
  • Loading branch information
kilchenmann committed Jul 13, 2021
1 parent d916b4b commit 4d0703f
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 2 deletions.
Expand Up @@ -2,7 +2,7 @@
<!-- auto complete list to select resource classes -->
<div class="form-content">
<mat-form-field class="large-field ontology-name">
<input matInput class="ontology-name" [maxlength]="nameMaxLength" [formControl]="ontologyForm.controls['name']"
<input matInput class="ontology-name" autocomplete="off" [maxlength]="nameMaxLength" [formControl]="ontologyForm.controls['name']"
[placeholder]="'Set a unique name *'">
<mat-icon matSuffix [matTooltip]="ontologyNameInfo" matTooltipPosition="above" matTooltipClass="multi-line-tooltip">help</mat-icon>
<mat-hint *ngIf="formErrors.name" class="medium-field">
Expand Down
Expand Up @@ -126,6 +126,50 @@ describe('OntologyFormComponent', () => {

});

it('should test form validity with not allowed names', () => {
const form = ontologyFormComponent.ontologyForm;
expect(form.valid).toBeFalsy();

const nameInput = form.controls.name;

nameInput.setValue('v2onto');
expect(form.valid).toBeFalsy();

nameInput.setValue('my-onto');
expect(form.valid).toBeFalsy();

nameInput.setValue('2ndOnto');
expect(form.valid).toBeFalsy();

nameInput.setValue('-notAllowed');
expect(form.valid).toBeFalsy();

nameInput.setValue('_notAllowed');
expect(form.valid).toBeFalsy();

nameInput.setValue('not-allowed');
expect(form.valid).toBeFalsy();

nameInput.setValue('not_allowed');
expect(form.valid).toBeFalsy();

nameInput.setValue('not.allowed');
expect(form.valid).toBeFalsy();

nameInput.setValue('no$or€');
expect(form.valid).toBeFalsy();

nameInput.setValue('no spaces');
expect(form.valid).toBeFalsy();

nameInput.setValue('ältereOnto');
expect(form.valid).toBeFalsy();

nameInput.setValue('bestOnto');
expect(form.valid).toBeTruthy();

});

it('should test form validity without label', () => {
const form = ontologyFormComponent.ontologyForm;
expect(form.valid).toBeFalsy();
Expand Down
Expand Up @@ -51,8 +51,10 @@ export class OntologyFormComponent implements OnInit {

lastModificationDate: string;

nameRegex = /^(?![vV][0-9]|[0-9]|[\u00C0-\u017F]).[a-zA-Z0-9]+\S*$/;
// regex to check ontology name: shouldn't start with a number or with 'v' followed by a number, spaces or special characters are not allowed
nameRegex = /^(?![vV]+[0-9])+^([a-zA-Z])[a-zA-Z0-9]*$/;

// ontology name must not contain one of the following words
forbiddenNames: string[] = [
'knora',
'salsah',
Expand Down

0 comments on commit 4d0703f

Please sign in to comment.