xref: /aosp_15_r20/external/libchrome/base/strings/strcat_unittest.cc (revision 635a864187cb8b6c713ff48b7e790a6b21769273)
1*635a8641SAndroid Build Coastguard Worker // Copyright 2017 The Chromium Authors. All rights reserved.
2*635a8641SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*635a8641SAndroid Build Coastguard Worker // found in the LICENSE file.
4*635a8641SAndroid Build Coastguard Worker 
5*635a8641SAndroid Build Coastguard Worker #include "base/strings/strcat.h"
6*635a8641SAndroid Build Coastguard Worker #include "base/strings/utf_string_conversions.h"
7*635a8641SAndroid Build Coastguard Worker #include "testing/gtest/include/gtest/gtest.h"
8*635a8641SAndroid Build Coastguard Worker 
9*635a8641SAndroid Build Coastguard Worker namespace base {
10*635a8641SAndroid Build Coastguard Worker 
11*635a8641SAndroid Build Coastguard Worker TEST(StrCat, 8Bit) {
12*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ("", StrCat({""}));
13*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ("1", StrCat({"1"}));
14*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ("122", StrCat({"1", "22"}));
15*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ("122333", StrCat({"1", "22", "333"}));
16*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ("1223334444", StrCat({"1", "22", "333", "4444"}));
17*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ("122333444455555", StrCat({"1", "22", "333", "4444", "55555"}));
18*635a8641SAndroid Build Coastguard Worker }
19*635a8641SAndroid Build Coastguard Worker 
20*635a8641SAndroid Build Coastguard Worker TEST(StrCat, 16Bit) {
21*635a8641SAndroid Build Coastguard Worker   string16 arg1 = ASCIIToUTF16("1");
22*635a8641SAndroid Build Coastguard Worker   string16 arg2 = ASCIIToUTF16("22");
23*635a8641SAndroid Build Coastguard Worker   string16 arg3 = ASCIIToUTF16("333");
24*635a8641SAndroid Build Coastguard Worker 
25*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ(ASCIIToUTF16(""), StrCat({string16()}));
26*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ(ASCIIToUTF16("1"), StrCat({arg1}));
27*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ(ASCIIToUTF16("122"), StrCat({arg1, arg2}));
28*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ(ASCIIToUTF16("122333"), StrCat({arg1, arg2, arg3}));
29*635a8641SAndroid Build Coastguard Worker }
30*635a8641SAndroid Build Coastguard Worker 
31*635a8641SAndroid Build Coastguard Worker TEST(StrAppend, 8Bit) {
32*635a8641SAndroid Build Coastguard Worker   std::string result;
33*635a8641SAndroid Build Coastguard Worker 
34*635a8641SAndroid Build Coastguard Worker   result = "foo";
35*635a8641SAndroid Build Coastguard Worker   StrAppend(&result, {std::string()});
36*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ("foo", result);
37*635a8641SAndroid Build Coastguard Worker 
38*635a8641SAndroid Build Coastguard Worker   result = "foo";
39*635a8641SAndroid Build Coastguard Worker   StrAppend(&result, {"1"});
40*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ("foo1", result);
41*635a8641SAndroid Build Coastguard Worker 
42*635a8641SAndroid Build Coastguard Worker   result = "foo";
43*635a8641SAndroid Build Coastguard Worker   StrAppend(&result, {"1", "22", "333"});
44*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ("foo122333", result);
45*635a8641SAndroid Build Coastguard Worker }
46*635a8641SAndroid Build Coastguard Worker 
47*635a8641SAndroid Build Coastguard Worker TEST(StrAppend, 16Bit) {
48*635a8641SAndroid Build Coastguard Worker   string16 arg1 = ASCIIToUTF16("1");
49*635a8641SAndroid Build Coastguard Worker   string16 arg2 = ASCIIToUTF16("22");
50*635a8641SAndroid Build Coastguard Worker   string16 arg3 = ASCIIToUTF16("333");
51*635a8641SAndroid Build Coastguard Worker 
52*635a8641SAndroid Build Coastguard Worker   string16 result;
53*635a8641SAndroid Build Coastguard Worker 
54*635a8641SAndroid Build Coastguard Worker   result = ASCIIToUTF16("foo");
55*635a8641SAndroid Build Coastguard Worker   StrAppend(&result, {string16()});
56*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ(ASCIIToUTF16("foo"), result);
57*635a8641SAndroid Build Coastguard Worker 
58*635a8641SAndroid Build Coastguard Worker   result = ASCIIToUTF16("foo");
59*635a8641SAndroid Build Coastguard Worker   StrAppend(&result, {arg1});
60*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ(ASCIIToUTF16("foo1"), result);
61*635a8641SAndroid Build Coastguard Worker 
62*635a8641SAndroid Build Coastguard Worker   result = ASCIIToUTF16("foo");
63*635a8641SAndroid Build Coastguard Worker   StrAppend(&result, {arg1, arg2, arg3});
64*635a8641SAndroid Build Coastguard Worker   EXPECT_EQ(ASCIIToUTF16("foo122333"), result);
65*635a8641SAndroid Build Coastguard Worker }
66*635a8641SAndroid Build Coastguard Worker 
67*635a8641SAndroid Build Coastguard Worker }  // namespace base
68