/* * Copyright (C) 1996-2023 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. * Please see the COPYING and CONTRIBUTORS files for details. */ #include "squid.h" #include #include "anyp/Uri.h" #include "Debug.h" #include "tests/testURL.h" #include "unitTestMain.h" #include CPPUNIT_TEST_SUITE_REGISTRATION( testURL ); /* init memory pools */ void testURL::setUp() { Mem::Init(); AnyP::UriScheme::Init(); } /* * we can construct a URL with a AnyP::UriScheme. * This creates a URL for that scheme. */ void testURL::testConstructScheme() { AnyP::UriScheme empty_scheme; AnyP::Uri protoless_url(AnyP::PROTO_NONE); CPPUNIT_ASSERT_EQUAL(empty_scheme, protoless_url.getScheme()); AnyP::UriScheme ftp_scheme(AnyP::PROTO_FTP); AnyP::Uri ftp_url(AnyP::PROTO_FTP); CPPUNIT_ASSERT_EQUAL(ftp_scheme, ftp_url.getScheme()); } /* * a default constructed URL has scheme "NONE". * Also, we should be able to use new and delete on * scheme instances. */ void testURL::testDefaultConstructor() { AnyP::UriScheme aScheme; AnyP::Uri aUrl; CPPUNIT_ASSERT_EQUAL(aScheme, aUrl.getScheme()); auto *urlPointer = new AnyP::Uri; CPPUNIT_ASSERT(urlPointer != NULL); delete urlPointer; }