From 5ffc25bfe66d29d151415974cf9c84887c42d680 Mon Sep 17 00:00:00 2001 From: Ashita Prasad Date: Sun, 10 Nov 2024 03:19:51 +0530 Subject: [PATCH] closes #207 header suggestions sorted by relevance --- lib/utils/header_utils.dart | 11 +++++++---- test/utils/header_utils_test.dart | 10 +++++----- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/utils/header_utils.dart b/lib/utils/header_utils.dart index 07c09e75..9ab760f9 100644 --- a/lib/utils/header_utils.dart +++ b/lib/utils/header_utils.dart @@ -1,9 +1,12 @@ import '../consts.dart'; List getHeaderSuggestions(String pattern) { - return kHttpHeadersMap.keys - .where( - (element) => element.toLowerCase().contains(pattern.toLowerCase()), - ) + var matches = kHttpHeadersMap.keys + .map((item) => (item.toLowerCase().indexOf(pattern.toLowerCase()), item)) + .where((element) => element.$1 >= 0) .toList(); + + matches.sort((a, b) => a.$1.compareTo(b.$1)); + + return matches.map((item) => item.$2).toList(); } diff --git a/test/utils/header_utils_test.dart b/test/utils/header_utils_test.dart index 139ba553..189ab8cd 100644 --- a/test/utils/header_utils_test.dart +++ b/test/utils/header_utils_test.dart @@ -114,15 +114,15 @@ void main() { test("Testing using 'x-' pattern", () { String pattern = "x-"; List expected = [ - "Access-Control-Max-Age", - "Max-Forwards", "X-Api-Key", "X-Content-Type-Options", "X-CSRF-Token", "X-Forwarded-For", "X-Frame-Options", "X-Requested-With", - "X-XSS-Protection" + "X-XSS-Protection", + "Max-Forwards", + "Access-Control-Max-Age", ]; expect(getHeaderSuggestions(pattern), expected); }); @@ -130,11 +130,11 @@ void main() { test("Testing for 'origin' pattern", () { String pattern = "origin"; List expected = [ - 'Access-Control-Allow-Origin', + 'Origin', 'Cross-Origin-Embedder-Policy', 'Cross-Origin-Opener-Policy', 'Cross-Origin-Resource-Policy', - 'Origin' + 'Access-Control-Allow-Origin', ]; expect(getHeaderSuggestions(pattern), expected); });