Utils: Improve and fix operators in SmallString

Change-Id: I51f4e647cbd3ada0c3a86d16f40fd8044acead33
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Marco Bubke
2017-01-31 15:42:32 +01:00
parent c02df443a2
commit 9b4afa01a1
2 changed files with 133 additions and 51 deletions

View File

@@ -601,6 +601,14 @@ TEST(SmallString, EqualSmallStringOperator)
ASSERT_FALSE(SmallString("text") == SmallString("text2"));
}
TEST(SmallString, EqualSmallStringOperatorWithDifferenceClassSizes)
{
ASSERT_TRUE(SmallString() == PathString(""));
ASSERT_FALSE(SmallString() == PathString("text"));
ASSERT_TRUE(SmallString("text") == PathString("text"));
ASSERT_FALSE(SmallString("text") == PathString("text2"));
}
TEST(SmallString, EqualCStringArrayOperator)
{
ASSERT_TRUE(SmallString() == "");
@@ -687,6 +695,16 @@ TEST(SmallString, SmallerOperatorWithStringViewLeft)
ASSERT_FALSE(SmallStringView("text") < SmallString("text"));
}
TEST(SmallString, SmallerOperatorForDifferenceClassSizes)
{
ASSERT_TRUE(SmallString() < PathString("text"));
ASSERT_TRUE(SmallString("some") < PathString("text"));
ASSERT_TRUE(SmallString("text") < PathString("texta"));
ASSERT_FALSE(SmallString("texta") < PathString("text"));
ASSERT_FALSE(SmallString("text") < PathString("some"));
ASSERT_FALSE(SmallString("text") < PathString("text"));
}
TEST(SmallString, IsEmpty)
{
ASSERT_FALSE(SmallString("text").isEmpty());
@@ -1129,3 +1147,42 @@ TEST(SmallString, CompareTextWithDifferentLineEndings)
ASSERT_THAT(unixText, convertedText);
}
TEST(SmallString, ConstSubscriptOperator)
{
const SmallString text = {"some text"};
auto &&sign = text[5];
ASSERT_THAT(sign, 't');
}
TEST(SmallString, NonConstSubscriptOperator)
{
SmallString text = {"some text"};
auto &&sign = text[5];
ASSERT_THAT(sign, 't');
}
TEST(SmallString, ManipulateConstSubscriptOperator)
{
const SmallString text = {"some text"};
auto &&sign = text[5];
sign = 'q';
ASSERT_THAT(text, SmallString{"some text"});
}
TEST(SmallString, ManipulateNonConstSubscriptOperator)
{
char rawText[] = "some text";
SmallString text{rawText};
auto &&sign = text[5];
sign = 'q';
ASSERT_THAT(text, SmallString{"some qext"});
}