Socket mutexes are no longer really required, and so have been removed. Added more tests for network encoding functions, and the URL parser. The URL parser now returns a path preceeded with a '/' instead of cutting it out. Added get_uri() to URL, for getting the whole URI, so users don't have to concat it themselves from the more specialised functions. Fixed default socket connect timeout checking for the wrong value. Fixed request_type_strings not containing all of the possible request types. Fixed README using old socket close syntax. Cleaned up the examples a bit.
67 lines
1.6 KiB
C++
67 lines
1.6 KiB
C++
//
|
|
// Created by fred.nicolson on 30/05/17.
|
|
//
|
|
|
|
#include <gtest/gtest.h>
|
|
#include <frnetlib/URL.h>
|
|
|
|
TEST(URLTest, full_parse)
|
|
{
|
|
fr::URL url("http://example.com:80/path/path?query=10&bob=20#frag");
|
|
ASSERT_EQ(url.get_host(), "example.com");
|
|
ASSERT_EQ(url.get_scheme(), fr::URL::HTTP);
|
|
ASSERT_EQ(url.get_path(), "/path/path");
|
|
ASSERT_EQ(url.get_query(), "query=10&bob=20");
|
|
ASSERT_EQ(url.get_fragment(), "frag");
|
|
}
|
|
|
|
TEST(URLTest, port_guess)
|
|
{
|
|
fr::URL url("https://example.com");
|
|
ASSERT_EQ(url.get_port(), "443");
|
|
}
|
|
|
|
TEST(URLTest, partial_parse)
|
|
{
|
|
fr::URL url("example.com/?query=10#frag");
|
|
ASSERT_EQ(url.get_host(), "example.com");
|
|
ASSERT_EQ(url.get_query(), "query=10");
|
|
ASSERT_EQ(url.get_fragment(), "frag");
|
|
}
|
|
|
|
TEST(URLTest, fragment_test)
|
|
{
|
|
fr::URL url("example.com/#frag");
|
|
ASSERT_EQ(url.get_fragment(), "frag");
|
|
}
|
|
|
|
TEST(URLTest, path_test)
|
|
{
|
|
fr::URL url("example.com/path/hey#frag");
|
|
ASSERT_EQ(url.get_path(), "/path/hey");
|
|
ASSERT_EQ(url.get_fragment(), "frag");
|
|
}
|
|
|
|
TEST(URLTest, uri_test)
|
|
{
|
|
fr::URL url("http://example.com:80/path/path?query=10#frag");
|
|
ASSERT_EQ(url.get_uri(), "/path/path?query=10#frag");
|
|
}
|
|
|
|
TEST(URLTest, uri_test2)
|
|
{
|
|
fr::URL url("http://example.com:80/path/path?query=10");
|
|
ASSERT_EQ(url.get_uri(), "/path/path?query=10");
|
|
}
|
|
|
|
TEST(URLTest, uri_test3)
|
|
{
|
|
fr::URL url("http://example.com:80/path/path#frag");
|
|
ASSERT_EQ(url.get_uri(), "/path/path#frag");
|
|
}
|
|
|
|
TEST(URLTest, uri_test4)
|
|
{
|
|
fr::URL url("http://example.com:80/?bob=10#frag");
|
|
ASSERT_EQ(url.get_uri(), "/?bob=10#frag");
|
|
} |