util/UriQueryParser: new library

This commit is contained in:
Max Kellermann
2019-08-09 16:27:42 +02:00
parent e4612ecb66
commit 7654038d65
5 changed files with 133 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
/*
* Unit tests for src/util/
*/
#include "util/UriQueryParser.hxx"
#include "util/StringView.hxx"
#include <gtest/gtest.h>
static bool
operator==(StringView a, StringView b)
{
if (a.IsNull() || b.IsNull())
return a.IsNull() == b.IsNull();
return a.Equals(b);
}
TEST(UriQueryParser, UriFindRawQueryParameter)
{
const char *q = "foo=1&bar=2&quoted=%20%00+%%&empty1&empty2=";
EXPECT_EQ(UriFindRawQueryParameter(q, "doesntexist"),
(const char *)nullptr);
EXPECT_EQ(UriFindRawQueryParameter(q, "foo"),
"1");
EXPECT_EQ(UriFindRawQueryParameter(q, "bar"),
"2");
EXPECT_EQ(UriFindRawQueryParameter(q, "quoted"),
"%20%00+%%");
EXPECT_EQ(UriFindRawQueryParameter(q, "empty1"),
"");
EXPECT_EQ(UriFindRawQueryParameter(q, "empty2"),
"");
}

View File

@@ -38,6 +38,7 @@ test('TestUtil', executable(
'TestMimeType.cxx',
'TestSplitString.cxx',
'TestUriExtract.cxx',
'TestUriQueryParser.cxx',
'TestUriUtil.cxx',
'test_byte_reverse.cxx',
include_directories: inc,