2
0
mirror of https://github.com/boostorg/url.git synced 2026-02-13 12:52:14 +00:00
Files
url/test/unit/url_view_base.cpp
Vinnie Falco 230022e7d5 fix warnings
2022-08-05 05:54:35 -07:00

349 lines
7.8 KiB
C++

//
// Copyright (c) 2022 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/CPPAlliance/url
//
// Test that header file is self-contained.
#include <boost/url/url_view_base.hpp>
#include <boost/url/url_view.hpp>
#include "test_suite.hpp"
namespace boost {
namespace urls {
struct url_view_base_test
{
void
run()
{
//
// javadocs
//
// size()
{
url_view u( "file:///Program%20Files" );
assert( u.size() == 23 );
}
// empty()
{
url_view u;
assert( u.empty() );
}
// persist()
{
std::shared_ptr< url_view const > sp;
{
std::string s( "http://example.com" );
url_view u( s ); // u references characters in s
assert( u.data() == s.data() ); // same buffer
sp = u.persist();
assert( sp->data() != s.data() ); // different buffer
assert( sp->string() == s); // same contents
// s is destroyed and thus u
// becomes invalid, but sp remains valid.
}
}
//----------------------------------------
//
// Scheme
//
//----------------------------------------
// has_scheme()
{
url_view u( "http://www.example.com" );
assert( u.has_scheme() );
}
// scheme()
{
url_view u( "http://www.example.com" );
assert( u.scheme() == "http" );
}
// scheme_id()
{
url_view u( "wss://www.example.com/crypto.cgi" );
assert( u.scheme_id() == scheme::wss );
}
//----------------------------------------
//
// Authority
//
//----------------------------------------
// has_authority()
{
url_view u( "http://www.example.com/index.htm" );
assert( u.has_authority() );
}
// encoded_authority()
{
url_view u( "file://Network%20Drive/My%2DFiles" );
assert( u.encoded_authority() == "Network%20Drive" );
}
// authority()
{
url_view u( "https://www.example.com:8080/index.htm" );
authority_view a = u.authority();
}
// has_userinfo()
{
url_view u( "http://jane%2Ddoe:pass@example.com" );
assert( u.has_userinfo() );
}
// encoded_userinfo()
{
url_view u( "http://jane%2Ddoe:pass@example.com" );
assert( u.encoded_userinfo() == "jane%2Ddoe:pass" );
}
// userinfo()
{
url_view u( "http://jane%2Ddoe:pass@example.com" );
assert( u.userinfo() == "jane-doe:pass" );
}
// encoded_user()
{
url_view u( "http://jane%2Ddoe:pass@example.com" );
assert( u.encoded_user() == "jane%2Ddoe" );
}
// user()
{
url_view u( "http://jane%2Ddoe:pass@example.com" );
assert( u.user() == "jane-doe" );
}
// has_password()
{
url_view u( "http://jane%2Ddoe:pass@example.com" );
assert( u.has_password() );
}
// encoded_password
{
url_view u( "http://jane%2Ddoe:pass@example.com" );
assert( u.encoded_password() == "pass" );
}
// password
{
url_view u( "http://jane%2Ddoe:pass@example.com" );
assert( u.password() == "pass" );
}
// host_type
{
url_view u( "https://192.168.0.1/local.htm" );
assert( u.host_type() == host_type::ipv4 );
}
// encoded_host()
{
url_view u( "https://www%2droot.example.com/" );
assert( u.encoded_host() == "www%2droot.example.com" );
}
// encoded_hostname()
{
url_view u( "wss://[2001:0db8::0370:7334]/index.htm" );
assert( u.encoded_hostname() == "2001:0db8::0370:7334" );
}
// hostname()
{
url_view u( "https://www%2droot.example.com/" );
assert( u.hostname() == "www-root.example.com" );
}
// host
{
url_view u( "https://www%2droot.example.com/" );
assert( u.host() == "www-root.example.com" );
}
// ipv4_address()
{
url_view u( "http://127.0.0.1/index.htm?user=win95" );
ipv4_address ip = u.ipv4_address();
(void)ip;
}
// ipv6_address
{
url_view u( "ftp://[::1]" );
ipv6_address ip = u.ipv6_address();
assert( ip.is_loopback() );
(void)ip;
}
// ipvfuture()
{
url_view u( "http://[v1fe.d:9]" );
assert( u.ipvfuture() == "v1fe.d:9" );
}
// has_port()
{
url_view u( "wss://www.example.com:443" );
assert( u.has_port() );
}
// port()
{
url_view u( "http://localhost.com:8080" );
assert( u.port() == "8080" );
}
// port_number()
{
url_view u( "http://localhost.com:8080" );
assert( u.port_number() == 8080 );
}
// encoded_host_and_port()
{
url_view u( "http://www.example.com:8080/index.htm" );
assert( u.encoded_host_and_port() == "www.example.com:8080" );
}
//----------------------------------------
//
// Path
//
//----------------------------------------
// is_path_absolute()
{
url_view u( "/path/to/file.txt" );
assert( u.is_path_absolute() );
}
// encoded_path()
{
url_view u( "file:///Program%20Files/Games/config.ini" );
assert( u.encoded_path() == "/Program%20Files/Games/config.ini" );
}
// path()
{
url_view u( "file:///Program%20Files/Games/config.ini" );
assert( u.path() == "/Program Files/Games/config.ini" );
}
//----------------------------------------
//
// Query
//
//----------------------------------------
// has_query()
{
url_view u( "/sql?id=42&col=name&page-size=20" );
assert( u.has_query() );
}
// encoded_query()
{
url_view u( "/sql?id=42&name=jane%2Ddoe&page+size=20" );
assert( u.encoded_query() == "id=42&name=jane%2Ddoe&page+size=20" );
}
// query
{
url_view u( "/sql?id=42&name=jane%2Ddoe&page+size=20" );
assert( u.query() == "id=42&name=jane-doe&page size=20" );
}
//----------------------------------------
//
// Fragment
//
//----------------------------------------
// has_fragment()
{
url_view u( "http://www.example.com/index.htm#a%2D1" );
assert( u.has_fragment() );
}
// encoded_fragment()
{
url_view u( "http://www.example.com/index.htm#a%2D1" );
assert( u.encoded_fragment() == "a%2D1" );
}
// fragment()
{
url_view u( "http://www.example.com/index.htm#a%2D1" );
assert( u.fragment() == "a-1" );
}
}
};
TEST_SUITE(
url_view_base_test,
"boost.url.url_view_base");
} // urls
} // boost