19#include <cppunit/TestAssert.h>
26class TestUri :
public CPPUNIT_NS::TestFixture
65 CPPUNIT_ASSERT_EQUAL(empty_scheme, protoless_url.
getScheme());
69 CPPUNIT_ASSERT_EQUAL(ftp_scheme, ftp_url.
getScheme());
82 CPPUNIT_ASSERT_EQUAL(aScheme, aUrl.
getScheme());
85 CPPUNIT_ASSERT(urlPointer !=
nullptr);
92 const std::vector< std::pair<SBuf, SBuf> > basicTestCases = {
106 for (
const auto &testCase: basicTestCases) {
108 CPPUNIT_ASSERT(decoded);
109 CPPUNIT_ASSERT_EQUAL(testCase.first, *decoded);
113 const auto invalidEncodings = {
126 for (
const auto &invalidEncoding: invalidEncodings) {
static void Init()
initializes down-cased protocol scheme names array
AnyP::UriScheme const & getScheme() const
static SBuf DecodeOrDupe(const SBuf &input)
static std::optional< SBuf > Decode(const SBuf &)
static SBuf Encode(const SBuf &, const CharacterSet &expected)
static const CharacterSet & RFC3986_UNRESERVED()
allowed URI characters that do not have a reserved purpose, RFC 3986
customizes our test setup
implements test program's main() function while enabling customization
int run(int argc, char *argv[])
void testDefaultConstructor()
CPPUNIT_TEST(testEncoding)
void testConstructScheme()
CPPUNIT_TEST(testDefaultConstructor)
CPPUNIT_TEST_SUITE(TestUri)
CPPUNIT_TEST(testConstructScheme)
SBuf ToSBuf(Args &&... args)
slowly stream-prints all arguments into a freshly allocated SBuf
CPPUNIT_TEST_SUITE_REGISTRATION(TestUri)