47 lines
1.4 KiB
C++
47 lines
1.4 KiB
C++
#include "precompiled_unittests_core.h"
|
|
|
|
#include <core/file/URL.h>
|
|
|
|
namespace ITF
|
|
{
|
|
|
|
TEST(URL, ResourceParsing)
|
|
{
|
|
URL url1("http://server");
|
|
URL url2("http://server/");
|
|
URL url3("//host:8080/test");
|
|
URL url4("anything:://server/resource/path/dir/?param=0&str=test%20with%20spaces&empty=&plop=42");
|
|
URL url5("anything:://server?no_resource_but_query_string=10");
|
|
URL url6("anything:://server/resource%20with%20spaces"); // should NOT be decoded
|
|
|
|
EXPECT_EQ(url1.parseResource(), "");
|
|
EXPECT_EQ(url2.parseResource(), "/");
|
|
EXPECT_EQ(url3.parseResource(), "/test");
|
|
EXPECT_EQ(url4.parseResource(), "/resource/path/dir/");
|
|
EXPECT_EQ(url5.parseResource(), "");
|
|
EXPECT_EQ(url6.parseResource(), "/resource%20with%20spaces");
|
|
}
|
|
|
|
TEST(URL, QueryStringParsing)
|
|
{
|
|
URL url1("http://server");
|
|
URL url2("test?val=42");
|
|
URL url3("anything:://server/resource/path/dir/?param=0&str=test%20with%20spaces&empty=&plop=42");
|
|
|
|
URL::QueryString qs1 = url1.parseQueryString();
|
|
URL::QueryString qs2 = url2.parseQueryString();
|
|
URL::QueryString qs3 = url3.parseQueryString();
|
|
|
|
ASSERT_EQ(0U, qs1.size());
|
|
ASSERT_EQ(1U, qs2.size());
|
|
ASSERT_EQ(4U, qs3.size());
|
|
|
|
ASSERT_EQ(qs2["val"], "42");
|
|
|
|
ASSERT_EQ(qs3["param"], "0");
|
|
ASSERT_EQ(qs3["str"], "test with spaces");
|
|
ASSERT_EQ(qs3["empty"], "");
|
|
ASSERT_EQ(qs3["plop"], "42");
|
|
}
|
|
|
|
}
|