| 415 | } |
| 416 | |
| 417 | void SC::HttpURLParserTest::testRequestTargetView() |
| 418 | { |
| 419 | HttpRequestTargetView target; |
| 420 | StringSpan value; |
| 421 | |
| 422 | SC_TEST_EXPECT(target.parse("/api/users?name=first&empty=&flag&name=second#section")); |
| 423 | SC_TEST_EXPECT(target.raw == "/api/users?name=first&empty=&flag&name=second#section"); |
| 424 | SC_TEST_EXPECT(target.path == "/api/users"); |
| 425 | SC_TEST_EXPECT(target.search == "?name=first&empty=&flag&name=second"); |
| 426 | SC_TEST_EXPECT(target.hash == "#section"); |
| 427 | SC_TEST_EXPECT(target.getQueryValue("name", value)); |
| 428 | SC_TEST_EXPECT(value == "first"); |
| 429 | SC_TEST_EXPECT(target.getQueryValue("empty", value)); |
| 430 | SC_TEST_EXPECT(value.isEmpty()); |
| 431 | SC_TEST_EXPECT(target.getQueryValue("flag", value)); |
| 432 | SC_TEST_EXPECT(value.isEmpty()); |
| 433 | |
| 434 | SC_TEST_EXPECT(target.parse("/only-path")); |
| 435 | SC_TEST_EXPECT(target.path == "/only-path"); |
| 436 | SC_TEST_EXPECT(target.search.isEmpty()); |
| 437 | SC_TEST_EXPECT(target.hash.isEmpty()); |
| 438 | |
| 439 | SC_TEST_EXPECT(target.parse("/empty-query?")); |
| 440 | SC_TEST_EXPECT(target.path == "/empty-query"); |
| 441 | SC_TEST_EXPECT(target.search == "?"); |
| 442 | SC_TEST_EXPECT(not target.getQueryValue("missing", value)); |
| 443 | |
| 444 | SC_TEST_EXPECT(target.parse("/fragment#only")); |
| 445 | SC_TEST_EXPECT(target.path == "/fragment"); |
| 446 | SC_TEST_EXPECT(target.search.isEmpty()); |
| 447 | SC_TEST_EXPECT(target.hash == "#only"); |
| 448 | |
| 449 | SC_TEST_EXPECT(target.parse("*")); |
| 450 | SC_TEST_EXPECT(target.path == "*"); |
| 451 | SC_TEST_EXPECT(target.search.isEmpty()); |
| 452 | |
| 453 | SC_TEST_EXPECT(not target.parse("")); |
| 454 | SC_TEST_EXPECT(not target.parse("http://example.com/path")); |
| 455 | SC_TEST_EXPECT(not target.parse("relative/path")); |
| 456 | SC_TEST_EXPECT(not target.parse("/bad path")); |
| 457 | SC_TEST_EXPECT(not target.parse("/bad\tpath")); |
| 458 | } |
| 459 | |
| 460 | void SC::HttpURLParserTest::testDiagnosticMessages() |
| 461 | { |
nothing calls this directly
no test coverage detected