Make "*" method actually catch all methods, tweak priority order a bit

This commit is contained in:
Alex Hultman
2023-12-19 03:18:44 +01:00
parent 85c6f0fb69
commit 97e8099bc2
3 changed files with 36 additions and 22 deletions
+9 -9
View File
@@ -8,7 +8,7 @@ void testMethodPriority() {
uWS::HttpRouter<int> r;
std::string result;
r.add(r.upperCasedMethods, "/static/route", [&result](auto *) {
r.add({"*"}, "/static/route", [&result](auto *) {
std::cout << "ANY static route" << std::endl;
result += "AS";
return true;
@@ -26,9 +26,9 @@ void testMethodPriority() {
return true;
});
assert(r.route("nonsense", "/static/route") == false);
assert(r.route("nonsense", "/static/route") == true);
assert(r.route("GET", "/static") == false);
assert(result == "");
assert(result == "AS");
/* Should end up directly in ANY handler */
result.clear();
@@ -51,7 +51,7 @@ void testPatternPriority() {
uWS::HttpRouter<int> r;
std::string result;
r.add(r.upperCasedMethods, "/a/b/c", [&result](auto *) {
r.add({"*"}, "/a/b/c", [&result](auto *) {
std::cout << "ANY static route" << std::endl;
result += "AS";
return false;
@@ -81,18 +81,18 @@ void testPatternPriority() {
return false;
});
r.add(r.upperCasedMethods, "/a/:b/c", [&result](auto *) {
r.add({"*"}, "/a/:b/c", [&result](auto *) {
std::cout << "ANY parameter route" << std::endl;
result += "AP";
return false;
}, r.LOW_PRIORITY);
assert(r.route("POST", "/a/b/c") == false);
assert(result == "ASPPAP");
assert(result == "PPASAP");
result.clear();
assert(r.route("GET", "/a/b/c") == false);
assert(result == "GSASGPAPGW");
assert(result == "GSGPGWASAP");
}
void testUpgrade() {
@@ -224,7 +224,7 @@ void testBugReports() {
}, r.MEDIUM_PRIORITY);
/* ANY on /* */
r.add(r.upperCasedMethods, "/*", [&result](auto *) {
r.add({"*"}, "/*", [&result](auto *) {
result += "AW";
return false;
}, r.LOW_PRIORITY);
@@ -256,7 +256,7 @@ void testBugReports() {
}, r.MEDIUM_PRIORITY);
/* ANY on /* */
r.add(r.upperCasedMethods, "/*", [&result](auto *) {
r.add({"*"}, "/*", [&result](auto *) {
result += "AW";
return false;
}, r.LOW_PRIORITY);