/* * Copyright (c) 2021 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "string_ex.h" #include #include using namespace testing::ext; using namespace std; namespace OHOS { namespace { class UtilsStringTest : public testing::Test { public : static void SetUpTestCase(void); static void TearDownTestCase(void); void SetUp(); void TearDown(); }; void UtilsStringTest::SetUpTestCase(void) { } void UtilsStringTest::TearDownTestCase(void) { } void UtilsStringTest::SetUp(void) { } void UtilsStringTest::TearDown(void) { } /* * Feature: string_ex * Function: UpperStr * SubFunction: NA * FunctionPoints: * EnvConditions: NA * CaseDescription: test for convert all letters of str to uppercase */ HWTEST_F(UtilsStringTest, test_strupper_01, TestSize.Level0) { string strBase = "strbase"; string strTemp = "STRBASE"; string result = UpperStr(strBase); EXPECT_EQ(result, strTemp); strBase = "StrBase"; result = UpperStr(strBase); EXPECT_EQ(result, strTemp); } HWTEST_F(UtilsStringTest, test_strupper_02, TestSize.Level0) { string strBase = ""; string strTemp = ""; string result = UpperStr(strBase); EXPECT_EQ(result, strTemp); } /* * Feature: string_ex * Function: LowerStr * SubFunction: NA * FunctionPoints: * EnvConditions: NA * CaseDescription: test for convert all letters of str to lowercase */ HWTEST_F(UtilsStringTest, test_strlower_01, TestSize.Level0) { string strBase = "STRbase"; string strTemp = "strbase"; string result = LowerStr(strBase); EXPECT_EQ(result, strTemp); strBase = "StrBase"; result = LowerStr(strBase); EXPECT_EQ(result, strTemp); } HWTEST_F(UtilsStringTest, test_strlower_02, TestSize.Level0) { string strBase = ""; string strTemp = ""; string result = LowerStr(strBase); EXPECT_EQ(result, strTemp); } /* * Feature: string_ex * Function: ReplaceStr * SubFunction: NA * FunctionPoints: * EnvConditions: NA * CaseDescription: test for replace src with dst int strBase */ HWTEST_F(UtilsStringTest, test_strreplace_01, TestSize.Level0) { string strBase = "test for replace"; string src = "for"; string dst = "with"; string strTemp = "test with replace"; string result = ReplaceStr(strBase, src, dst); EXPECT_EQ(result, strTemp); src = "test for replace"; dst = "test"; strTemp = "test"; result = ReplaceStr(strBase, src, dst); EXPECT_EQ(result, strTemp); src = ""; dst = "test"; result = ReplaceStr(strBase, src, dst); EXPECT_EQ(result, strBase); src = "for"; dst = ""; strTemp = "test replace"; result = ReplaceStr(strBase, src, dst); EXPECT_EQ(result, strTemp); } /* * Feature: string_ex * Function: TrimStr * SubFunction: NA * FunctionPoints: * EnvConditions: NA * CaseDescription: test for trim str front and end */ HWTEST_F(UtilsStringTest, test_strtrim_01, TestSize.Level0) { string strBase = " test for trim "; string strTemp = "test for trim"; string result = TrimStr(strBase); EXPECT_EQ(result, strTemp); } HWTEST_F(UtilsStringTest, test_strtrim_02, TestSize.Level0) { string strBase = "test"; string strTemp = "es"; string result = TrimStr(strBase, 't'); EXPECT_EQ(result, strTemp); } /* * Feature: string_ex * Function: SplitStr * SubFunction: NA * FunctionPoints: * EnvConditions: NA * CaseDescription: test for split str by strSep */ HWTEST_F(UtilsStringTest, test_strsplit_01, TestSize.Level0) { string strBase = "test for split"; string strSep = " "; string splitResult[3] = { "test", "for", "split" }; vector strsRet; SplitStr(strBase, strSep, strsRet); for (int i = 0; i < 3; i++) { EXPECT_EQ(splitResult[i], strsRet[i]); } } HWTEST_F(UtilsStringTest, test_strsplit_02, TestSize.Level0) { string strBase = "test for split"; string strSep = "for"; string splitResult[2] = { "test", "split" }; vector strsRet; SplitStr(strBase, strSep, strsRet); for (int i = 0; i < 2; i++) { EXPECT_EQ(splitResult[i], strsRet[i]); } splitResult[0] = "test "; splitResult[1] = " split"; SplitStr(strBase, strSep, strsRet, false, false); for (int i = 0; i < 2; i++) { EXPECT_EQ(splitResult[i], strsRet[i]); } } HWTEST_F(UtilsStringTest, test_strsplit_03, TestSize.Level0) { string strBase = "test for for split"; string strSep = "for"; string splitResult[3] = { "test", "", "split" }; vector strsRet; SplitStr(strBase, strSep, strsRet, true); for (int i = 0; i < (int)strsRet.size(); i++) { EXPECT_EQ(splitResult[i], strsRet[i]); } } /* * Feature: string_ex * Function: SplitStr * SubFunction: NA * FunctionPoints: * EnvConditions: NA * CaseDescription: test splitting a null string with a null seperator */ HWTEST_F(UtilsStringTest, test_strsplit_04, TestSize.Level0) { string strBase = ""; string strSep = ""; vector strsRet1; SplitStr(strBase, strSep, strsRet1); EXPECT_EQ(strsRet1.size(), 0); vector strsRet2; SplitStr(strBase, strSep, strsRet2, true); EXPECT_EQ(strsRet2[0], ""); } /* * Feature: string_ex * Function: IsNumericStr * SubFunction: NA * FunctionPoints: * EnvConditions: NA * CaseDescription: test for judge all characters of the string are numbers */ HWTEST_F(UtilsStringTest, test_strisnumeric_01, TestSize.Level0) { string strBase = "1234556"; bool result = IsNumericStr(strBase); EXPECT_EQ(result, true); strBase = "1234,a"; result = IsNumericStr(strBase); EXPECT_EQ(result, false); strBase = ""; result = IsNumericStr(strBase); EXPECT_EQ(result, false); } /* * Feature: string_ex * Function: IsAlphaStr * SubFunction: NA * FunctionPoints: * EnvConditions: NA * CaseDescription: test for judge all characters of the string are alphabet */ HWTEST_F(UtilsStringTest, test_strisalpha_01, TestSize.Level0) { string strBase = "1234556"; bool result = IsAlphaStr(strBase); EXPECT_EQ(result, false); strBase = "Acedafe"; result = IsAlphaStr(strBase); EXPECT_EQ(result, true); strBase = "Acedafe "; result = IsAlphaStr(strBase); EXPECT_EQ(result, false); strBase = "Acedafe3"; result = IsAlphaStr(strBase); EXPECT_EQ(result, false); strBase = ""; result = IsAlphaStr(strBase); EXPECT_EQ(result, false); } /* * Feature: string_ex * Function: IsUpperStr * SubFunction: NA * FunctionPoints: * EnvConditions: NA * CaseDescription: test for judge all characters of the string are uppercase */ HWTEST_F(UtilsStringTest, test_IsUpperStr_01, TestSize.Level0) { string strBase = "ABSEFAD"; bool result = IsUpperStr(strBase); EXPECT_EQ(result, true); strBase = "Afaefadf"; result = IsUpperStr(strBase); EXPECT_EQ(result, false); strBase = "12e13eaefd "; result = IsUpperStr(strBase); EXPECT_EQ(result, false); strBase = ""; result = IsUpperStr(strBase); EXPECT_EQ(result, false); } /* * Feature: string_ex * Function: IsLowerStr * SubFunction: NA * FunctionPoints: * EnvConditions: NA * CaseDescription: test for judge all characters of the string are lowercase */ HWTEST_F(UtilsStringTest, test_IsLowerStr_01, TestSize.Level0) { string strBase = "testlower"; bool result = IsLowerStr(strBase); EXPECT_EQ(result, true); strBase = "AAFDeadfkl"; result = IsLowerStr(strBase); EXPECT_EQ(result, false); strBase = "12e"; result = IsLowerStr(strBase); EXPECT_EQ(result, false); strBase = ""; result = IsLowerStr(strBase); EXPECT_EQ(result, false); } /* * Feature: string_ex * Function: IsSubStr * SubFunction: NA * FunctionPoints: * EnvConditions: NA * CaseDescription: test for judge the sub_str in base_str */ HWTEST_F(UtilsStringTest, test_IsSubStr_01, TestSize.Level0) { string strBase = "test for issubstr"; string strSub = "for"; bool result = IsSubStr(strBase, strSub); EXPECT_EQ(result, true); strBase = ""; strSub = ""; result = IsSubStr(strBase, strSub); EXPECT_EQ(result, false); strSub = "fori"; result = IsSubStr(strBase, strSub); EXPECT_EQ(result, false); } /* * Feature: string_ex * Function: IsSameTextStr * SubFunction: NA * FunctionPoints: * EnvConditions: NA * CaseDescription: test for judge the strFirst's letter is same with strSecond */ HWTEST_F(UtilsStringTest, test_IsSameTextStr_01, TestSize.Level0) { string strFirst = "Test For StrSameText"; string strSecond = "test for strsametext"; bool result = IsSameTextStr(strFirst, strSecond); EXPECT_EQ(result, true); strSecond = "test for strsametex"; result = IsSameTextStr(strFirst, strSecond); EXPECT_EQ(result, false); } /* * Feature: string_ex * Function: ToString * SubFunction: NA * FunctionPoints: * EnvConditions: NA * CaseDescription: test for convert int to str */ HWTEST_F(UtilsStringTest, test_ToString_01, TestSize.Level0) { int ivalue = 12345; string strValue = "12345"; string result = ToString(ivalue); EXPECT_EQ(result, strValue); ivalue = -15; result = ToString(ivalue); EXPECT_EQ(result, "-15"); } /* * Feature: string_ex * Function: StrToInt * SubFunction: NA * FunctionPoints: * EnvConditions: NA * CaseDescription: test for convert str to int */ HWTEST_F(UtilsStringTest, test_StrToInt_01, TestSize.Level0) { string strValue = "12345"; int iValue = 0; bool result = StrToInt(strValue, iValue); EXPECT_EQ(result, true); EXPECT_EQ(iValue, 12345); strValue = "123r54"; result = StrToInt(strValue, iValue); EXPECT_EQ(result, false); } HWTEST_F(UtilsStringTest, test_StrToInt_02, TestSize.Level0) { string strValue = "-12345"; int iValue = 0; bool result = StrToInt(strValue, iValue); EXPECT_EQ(result, true); EXPECT_EQ(iValue, -12345); strValue = "123= 54"; result = StrToInt(strValue, iValue); EXPECT_EQ(result, false); string strvalue2; result = StrToInt(strvalue2, iValue); EXPECT_EQ(result, false); } HWTEST_F(UtilsStringTest, test_StrToInt_03, TestSize.Level0) { string strValue = "2147483648"; int ivalue = 0; bool result = StrToInt(strValue, ivalue); EXPECT_EQ(result, false); } HWTEST_F(UtilsStringTest, test_StrToInt_04, TestSize.Level0) { string strValue = " "; int iValue = 0; bool result = StrToInt(strValue, iValue); EXPECT_EQ(result, false); } HWTEST_F(UtilsStringTest, test_strcovertfailed_01, TestSize.Level0) { char test[] = {192, 157, 47, 106, 97, 18, 97, 47, 115, 1, 2}; string strValue(test); bool ret = IsAsciiString(strValue); EXPECT_EQ(ret, false); strValue = "1234"; ret = IsAsciiString(strValue); EXPECT_EQ(ret, true); strValue = "abcde"; ret = IsAsciiString(strValue); EXPECT_EQ(ret, true); } HWTEST_F(UtilsStringTest, test_strcovert_01, TestSize.Level0) { string strValue = "hello world!"; u16string str16 = Str8ToStr16(strValue); EXPECT_EQ(0, strValue.compare(Str16ToStr8(str16))); } HWTEST_F(UtilsStringTest, test_strcovert_02, TestSize.Level0) { string str8Value = "hello world!"; u16string str16Result = u"hello world!"; u16string str16Value = Str8ToStr16(str8Value); EXPECT_EQ(0, str16Result.compare(str16Value)); str16Result = u"你好"; string str8Result = Str16ToStr8(str16Result); str16Value = Str8ToStr16(str8Result); EXPECT_EQ(0, str16Result.compare(str16Value)); str16Result = u"某某技术有限公司"; str8Result = Str16ToStr8(str16Result); str16Value = Str8ToStr16(str8Result); EXPECT_EQ(0, str16Result.compare(str16Value)); } HWTEST_F(UtilsStringTest, test_strcovert_03, TestSize.Level0) { string str8Value = "1234567890!@#$%^&*()."; u16string str16Result = u"1234567890!@#$%^&*()."; u16string str16Value = Str8ToStr16(str8Value); EXPECT_EQ(0, str16Result.compare(str16Value)); string str8Result = Str16ToStr8(str16Value); EXPECT_EQ(0, str8Result.compare(str8Value)); } HWTEST_F(UtilsStringTest, test_strcovert_04, TestSize.Level0) { string str8Value = "1234567890!@#$%^&*().qazxswedcvfr,./;']["; u16string str16Result = u"1234567890!@#$%^&*().qazxswedcvfr,./;']["; u16string str16Value = Str8ToStr16(str8Value); EXPECT_EQ(0, str16Result.compare(str16Value)); string str8Result = Str16ToStr8(str16Value); EXPECT_EQ(0, str8Result.compare(str8Value)); } HWTEST_F(UtilsStringTest, test_getintstrcovert_01, TestSize.Level0) { u16string str16Value = u"你好"; string str8Result = Str16ToStr8(str16Value); int str8Length = str8Result.length(); int bufferLen = 255; char buffer[bufferLen]; memset_s(buffer, sizeof(buffer), 0, sizeof(buffer)); int int8Result = Char16ToChar8(str16Value, buffer, bufferLen); EXPECT_EQ(0, str8Result.compare(buffer)); EXPECT_EQ(str8Length + 1, int8Result); } HWTEST_F(UtilsStringTest, test_getintstrcovert_02, TestSize.Level0) { u16string str16Value = u"某某技术有限公司"; string str8Result = Str16ToStr8(str16Value); int str8Length = str8Result.length(); int bufferLen = 255; char buffer[bufferLen]; memset_s(buffer, sizeof(buffer), 0, sizeof(buffer)); int int8Result = Char16ToChar8(str16Value, buffer, bufferLen); EXPECT_EQ(0, str8Result.compare(buffer)); EXPECT_EQ(str8Length + 1, int8Result); } HWTEST_F(UtilsStringTest, test_getintstrcovert_03, TestSize.Level0) { u16string str16Value = u"hello world!"; string str8Result = Str16ToStr8(str16Value); int str8Length = str8Result.length(); int bufferLen = 255; char buffer[bufferLen]; memset_s(buffer, sizeof(buffer), 0, sizeof(buffer)); int int8Result = Char16ToChar8(str16Value, buffer, bufferLen); EXPECT_EQ(0, str8Result.compare(buffer)); EXPECT_EQ(str8Length + 1, int8Result); } HWTEST_F(UtilsStringTest, test_getintstrcovert_04, TestSize.Level0) { u16string str16Value = u"1234567890!@#$%^&*()."; string str8Result = Str16ToStr8(str16Value); int str8Length = str8Result.length(); int bufferLen = 255; char buffer[bufferLen]; memset_s(buffer, sizeof(buffer), 0, sizeof(buffer)); int int8Result = Char16ToChar8(str16Value, buffer, bufferLen); EXPECT_EQ(0, str8Result.compare(buffer)); EXPECT_EQ(str8Length + 1, int8Result); } HWTEST_F(UtilsStringTest, test_getsubstr_01, TestSize.Level0) { string strBase = "test for {sub str} {sub str1}"; string left = "{"; string right = "}"; string strResult = "sub str"; string strValue; string::size_type pos = GetFirstSubStrBetween(strBase, left, right, strValue); EXPECT_EQ(17, (int)pos); EXPECT_EQ(strResult, strValue); strBase = "test for sub str} {sub str1}"; strResult = "sub str1"; pos = GetFirstSubStrBetween(strBase, left, right, strValue); EXPECT_EQ(27, (int)pos); EXPECT_EQ(strResult, strValue); } HWTEST_F(UtilsStringTest, test_getsubstr_02, TestSize.Level0) { string strBase = "test for} {sub str {sub str1"; string left = "{"; string right = "}"; string strValue; string::size_type pos = GetFirstSubStrBetween(strBase, left, right, strValue); EXPECT_EQ(pos, string::npos); } HWTEST_F(UtilsStringTest, test_getsubstr_03, TestSize.Level0) { string strBase = "test for {sub str} {sub str1}"; string left = "{"; string right = "}"; string strResult[2] = { "sub str", "sub str1" }; vector strValue; GetSubStrBetween(strBase, left, right, strValue); for (int i = 0; i < 2; i++) { EXPECT_EQ(strResult[i], strValue[i]); } } HWTEST_F(UtilsStringTest, test_getsubstr_04, TestSize.Level0) { string strBase = "test for } {sub str {sub str1"; string left = "{"; string right = "}"; string strResult[2] = { "sub str", "sub str1" }; vector strValue; GetSubStrBetween(strBase, left, right, strValue); EXPECT_EQ(0, static_cast(strValue.size())); } HWTEST_F(UtilsStringTest, DexToHexString_01, TestSize.Level0) { string result = DexToHexString(0); EXPECT_EQ(result, "0"); result = DexToHexString(14); EXPECT_EQ(result, "E"); result = DexToHexString(14, false); EXPECT_EQ(result, "e"); result = DexToHexString(-14, false); EXPECT_EQ(result, "fffffff2"); result = DexToHexString(-14); EXPECT_EQ(result, "FFFFFFF2"); result = DexToHexString(11259375); EXPECT_EQ(result, "ABCDEF"); result = DexToHexString(11259375, false); EXPECT_EQ(result, "abcdef"); } } // namespace } // namespace OHOS