| 66 | } |
| 67 | |
| 68 | void test() |
| 69 | { |
| 70 | String e; |
| 71 | String s = String::FromUtf8("abcdABCDАБВГДабвгд"); |
| 72 | |
| 73 | EXPECT_EQ(s.Size(), 18U); |
| 74 | EXPECT_TRUE(!s.IsEmpty()); |
| 75 | EXPECT_EQ(e.Size(), 0U); |
| 76 | EXPECT_TRUE(e.IsEmpty()); |
| 77 | |
| 78 | e = s; |
| 79 | s.Clear(); |
| 80 | |
| 81 | EXPECT_EQ(s.Size(), 0U); |
| 82 | EXPECT_TRUE(s.IsEmpty()); |
| 83 | EXPECT_EQ(e.Size(), 18U); |
| 84 | EXPECT_TRUE(!e.IsEmpty()); |
| 85 | |
| 86 | EXPECT_EQ(e[1], U'b'); |
| 87 | EXPECT_EQ(e[9], U'Б'); |
| 88 | |
| 89 | s = String::FromUtf8("acdABCАВГДабвгд"); |
| 90 | s = String::FromUtf8("abcdABCDАБВГДабвгд"); |
| 91 | |
| 92 | EXPECT_EQ(s[3], U'd'); |
| 93 | EXPECT_EQ(s[11], U'Г'); |
| 94 | |
| 95 | s = '0'; |
| 96 | |
| 97 | EXPECT_EQ(s.Size(), 1U); |
| 98 | |
| 99 | String::Utf8 utf = String::FromUtf8("abcdABCDАБВГДабвгд").utf8_str(); |
| 100 | EXPECT_EQ(strcmp(utf.GetData(), "abcdABCDАБВГДабвгд"), 0); |
| 101 | |
| 102 | EXPECT_EQ(utf.Size(), 29U); |
| 103 | EXPECT_EQ(utf.At(0), 0x61); |
| 104 | EXPECT_EQ(utf.At(4), 0x41); |
| 105 | EXPECT_EQ(utf.At(16), (char)0xD0); |
| 106 | EXPECT_EQ(utf.At(17), (char)0x94); |
| 107 | |
| 108 | String::Utf8 cp866 = String::FromUtf8("abcABCАБВабвЭЮЯэюя╫▓").cp866_str(); |
| 109 | |
| 110 | EXPECT_EQ(cp866.Size(), 21U); |
| 111 | EXPECT_EQ(cp866.At(0), 0x61); |
| 112 | EXPECT_EQ(cp866.At(3), 0x41); |
| 113 | EXPECT_EQ(cp866.At(9), (char)0xA0); |
| 114 | EXPECT_EQ(cp866.At(19), (char)0xB2); |
| 115 | |
| 116 | String ss = String::FromUtf8("abcd"); |
| 117 | ss += String::FromUtf8("efgh"); |
| 118 | EXPECT_EQ(strcmp(ss.utf8_str().GetData(), "abcdefgh"), 0); |
| 119 | |
| 120 | String sum1 = String::FromUtf8("ab1") + String::FromUtf8("cd2"); |
| 121 | String sum2 = sum1 + U"cd2" + U"апр"; |
| 122 | |
| 123 | EXPECT_TRUE(sum2 == "ab1cd2cd2апр"); |
| 124 | EXPECT_TRUE(sum2.EqualNoCase("AB1CD2CD2АПР")); |
| 125 | EXPECT_TRUE(sum2 != "ab1cd2cd2апР"); |
no test coverage detected