MCPcopy Create free account
hub / github.com/Pagghiu/SaneCppLibraries / testRequestTargetView

Method testRequestTargetView

Tests/Libraries/Http/HttpURLParserTest.cpp:417–458  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

415}
416
417void 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
460void SC::HttpURLParserTest::testDiagnosticMessages()
461{

Callers

nothing calls this directly

Calls 3

getQueryValueMethod · 0.80
parseMethod · 0.45
isEmptyMethod · 0.45

Tested by

no test coverage detected