From 89851d7c88f6aa91d9deb225018738a01c780586 Mon Sep 17 00:00:00 2001 From: Charles Wahome Date: Fri, 9 Dec 2022 15:39:36 +0800 Subject: [PATCH] Fix: % symbol crash (#2267) --- src/modules/validation/abnf.spec.ts | 4 +++- src/modules/validation/abnf.ts | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/modules/validation/abnf.spec.ts b/src/modules/validation/abnf.spec.ts index 7ec8fa85e9..222dca8587 100644 --- a/src/modules/validation/abnf.spec.ts +++ b/src/modules/validation/abnf.spec.ts @@ -20,7 +20,9 @@ const validUrls = [ const invalidUrls = [ 'https://graph.microsoft.com/me+you', - 'https://graph.microsoft.com/v1.0/me/messages?$$select=id' + 'https://graph.microsoft.com/v1.0/me/messages?$$select=id', + 'https://graph.microsoft.com/v1.0/me/drive/root:/Encoded%', + 'https://graph.microsoft.com/v1.0/me/drive/root:/Encoded%2' ]; /* diff --git a/src/modules/validation/abnf.ts b/src/modules/validation/abnf.ts index 07e162aa95..98b486f2c8 100644 --- a/src/modules/validation/abnf.ts +++ b/src/modules/validation/abnf.ts @@ -38,10 +38,12 @@ export class ValidatedUrl { } public validate(graphUrl: string): ValidationResult { + let decodedGraphUrl = graphUrl; + try { decodedGraphUrl = decodeURI(graphUrl); } catch (error) { /* empty */ } const result = ValidatedUrl.parser.parse( ValidatedUrl.getGrammar(), 'odataUri', - decodeURI(graphUrl) + decodedGraphUrl ); return result; }