This commit is contained in:
		
							
								
								
									
										96
									
								
								support/3rd_party/test/src/utils/string_test.cpp
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								support/3rd_party/test/src/utils/string_test.cpp
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,96 @@ | |||||||
|  | /* | ||||||
|  |   Copyright <2018-2024> <scott.e.graves@protonmail.com> | ||||||
|  |  | ||||||
|  |   Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
|  |   of this software and associated documentation files (the "Software"), to deal | ||||||
|  |   in the Software without restriction, including without limitation the rights | ||||||
|  |   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||||
|  |   copies of the Software, and to permit persons to whom the Software is | ||||||
|  |   furnished to do so, subject to the following conditions: | ||||||
|  |  | ||||||
|  |   The above copyright notice and this permission notice shall be included in all | ||||||
|  |   copies or substantial portions of the Software. | ||||||
|  |  | ||||||
|  |   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||||
|  |   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||||
|  |   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||||
|  |   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||||
|  |   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||||
|  |   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||||
|  |   SOFTWARE. | ||||||
|  | */ | ||||||
|  | #include "gtest/gtest.h" | ||||||
|  |  | ||||||
|  | #include "utils/string.hpp" | ||||||
|  |  | ||||||
|  | namespace repertory { | ||||||
|  | TEST(utils_string, begins_with) { | ||||||
|  |   std::string str{"moose"}; | ||||||
|  |   EXPECT_TRUE(utils::string::begins_with(str, "m")); | ||||||
|  |   EXPECT_TRUE(utils::string::begins_with(str, "mo")); | ||||||
|  |   EXPECT_TRUE(utils::string::begins_with(str, "moo")); | ||||||
|  |   EXPECT_TRUE(utils::string::begins_with(str, "moos")); | ||||||
|  |   EXPECT_TRUE(utils::string::begins_with(str, "moose")); | ||||||
|  |  | ||||||
|  |   EXPECT_FALSE(utils::string::begins_with(str, "a")); | ||||||
|  |   EXPECT_FALSE(utils::string::begins_with(str, "ma")); | ||||||
|  |   EXPECT_FALSE(utils::string::begins_with(str, "moose1")); | ||||||
|  |  | ||||||
|  |   std::wstring str_w{L"moose"}; | ||||||
|  |   EXPECT_TRUE(utils::string::begins_with(str_w, L"m")); | ||||||
|  |   EXPECT_TRUE(utils::string::begins_with(str_w, L"mo")); | ||||||
|  |   EXPECT_TRUE(utils::string::begins_with(str_w, L"moo")); | ||||||
|  |   EXPECT_TRUE(utils::string::begins_with(str_w, L"moos")); | ||||||
|  |   EXPECT_TRUE(utils::string::begins_with(str_w, L"moose")); | ||||||
|  |  | ||||||
|  |   EXPECT_FALSE(utils::string::begins_with(str_w, L"a")); | ||||||
|  |   EXPECT_FALSE(utils::string::begins_with(str_w, L"ma")); | ||||||
|  |   EXPECT_FALSE(utils::string::begins_with(str_w, L"moose1")); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | TEST(utils_string, contains) { | ||||||
|  |   std::string str{R"(\\)"}; | ||||||
|  |   EXPECT_TRUE(utils::string::contains(str, "\\")); | ||||||
|  |   EXPECT_FALSE(utils::string::contains(str, "/")); | ||||||
|  |  | ||||||
|  |   std::wstring str_w{LR"(\\)"}; | ||||||
|  |   EXPECT_TRUE(utils::string::contains(str_w, L"\\")); | ||||||
|  |   EXPECT_FALSE(utils::string::contains(str_w, L"/")); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | TEST(utils_string, replace) { | ||||||
|  |   std::string str{"moose"}; | ||||||
|  |   utils::string::replace(str, 'o', '0'); | ||||||
|  |   EXPECT_STREQ("m00se", str.c_str()); | ||||||
|  |  | ||||||
|  |   std::wstring str_w{L"moose"}; | ||||||
|  |   utils::string::replace(str_w, 'o', '0'); | ||||||
|  |   EXPECT_STREQ(L"m00se", str_w.c_str()); | ||||||
|  |  | ||||||
|  |   std::string str2{"\\\\\\"}; | ||||||
|  |   utils::string::replace(str2, '\\', '/'); | ||||||
|  |   EXPECT_STREQ("///", str2.c_str()); | ||||||
|  |  | ||||||
|  |   std::wstring str_w2{L"\\\\\\"}; | ||||||
|  |   utils::string::replace(str_w2, '\\', '/'); | ||||||
|  |   EXPECT_STREQ(L"///", str_w2.c_str()); | ||||||
|  |  | ||||||
|  |   std::string str3{"///"}; | ||||||
|  |   utils::string::replace(str3, '/', '\\'); | ||||||
|  |   EXPECT_STREQ("\\\\\\", str3.c_str()); | ||||||
|  |  | ||||||
|  |   std::wstring str_w3{L"///"}; | ||||||
|  |   utils::string::replace(str_w3, '/', '\\'); | ||||||
|  |   EXPECT_STREQ(L"\\\\\\", str_w3.c_str()); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | TEST(utils_string, replace_string) { | ||||||
|  |   std::string str{"moose"}; | ||||||
|  |   utils::string::replace(str, "o", "0"); | ||||||
|  |   EXPECT_STREQ("m00se", str.c_str()); | ||||||
|  |  | ||||||
|  |   std::wstring str_w{L"moose"}; | ||||||
|  |   utils::string::replace(str_w, L"o", L"0"); | ||||||
|  |   EXPECT_STREQ(L"m00se", str_w.c_str()); | ||||||
|  | } | ||||||
|  | } // namespace repertory | ||||||
		Reference in New Issue
	
	Block a user