diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 074bfff..aa64e4e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -23,6 +23,11 @@ else() ) endif() -target_link_libraries(${FRNETLIB_TEST} ${CMAKE_THREAD_LIBS_INIT}) +#Link tests +target_link_libraries(${FRNETLIB_TEST} -lgtest -lfrnetlib) +add_test(test1 ${FRNETLIB_TEST}) -add_test(test1 ${FRNETLIB_TEST}) \ No newline at end of file +#Run tests automatically +add_custom_command(TARGET ${FRNETLIB_TEST} + POST_BUILD + COMMAND ${PROJECT_SOURCE_DIR}/tests/_test) \ No newline at end of file diff --git a/tests/URLTest.cpp b/tests/URLTest.cpp new file mode 100644 index 0000000..e865608 --- /dev/null +++ b/tests/URLTest.cpp @@ -0,0 +1,44 @@ +// +// Created by fred.nicolson on 30/05/17. +// + +#include +#include +#include + +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"); +} \ No newline at end of file