1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
//
// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
// Official repository: https://github.com/boostorg/url
//
// Test that header file is self-contained.
#include <boost/url/parse.hpp>
#include "test_suite.hpp"
namespace boost {
namespace urls {
struct parse_test
{
void
run()
{
// issue 497
{
auto r = parse_uri_reference("?~");
BOOST_TEST_NO_THROW(r.value());
BOOST_TEST(r->query() == "~");
}
// issue 665
{
{
auto r = parse_uri_reference("A:\\");
BOOST_TEST_THROWS(r.value(), system::system_error);
}
{
auto r = parse_uri_reference("A:\"");
BOOST_TEST_THROWS(r.value(), system::system_error);
}
}
// reg-name might have ipv4 prefix
{
BOOST_TEST_NOT(parse_relative_ref("//0.1.0.1%"));
}
// parse docs
{
system::result< url_view > r = parse_relative_ref( "//www.boost.org/index.html?field=value#downloads" );
if ( r.has_value() )
{
url_view u = *r;
assert(u.encoded_path() == "/index.html");
}
}
{
system::result< url_view > r = parse_uri_reference( "https://www.example.com/path/to/file.txt" );
if ( r.has_value() )
{
url_view u = *r;
assert(u.encoded_path() == "/path/to/file.txt");
}
}
}
};
TEST_SUITE(
parse_test,
"boost.url.parse");
} // urls
} // boost
|