blob: 81c889d8bba92bc2ce2bcd27d49e3b05e27908d3 [file] [log] [blame]
// Copyright 2018 The PDFium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "core/fxcrt/widetext_buffer.h"
#include <utility>
#include "testing/gtest/include/gtest/gtest.h"
namespace fxcrt {
TEST(WideTextBuffer, EmptyBuf) {
WideTextBuffer wtb;
EXPECT_TRUE(wtb.GetWideSpan().empty());
EXPECT_TRUE(wtb.AsStringView().IsEmpty());
EXPECT_TRUE(wtb.MakeString().IsEmpty());
}
TEST(WideTextBuffer, OperatorLtLt) {
WideTextBuffer wtb;
wtb << "clams" << L"\u208c\u208e";
EXPECT_EQ(wtb.MakeString(), L"clams\u208c\u208e");
}
TEST(WideTextBuffer, Deletion) {
WideTextBuffer wtb;
wtb << L"ABCDEFG";
EXPECT_TRUE(wtb.AsStringView().EqualsASCII("ABCDEFG"));
wtb.Delete(1, 3);
EXPECT_TRUE(wtb.AsStringView().EqualsASCII("AEFG"));
wtb.Delete(1, 0);
EXPECT_TRUE(wtb.AsStringView().EqualsASCII("AEFG"));
wtb.Delete(0, 2);
EXPECT_TRUE(wtb.AsStringView().EqualsASCII("FG"));
wtb.Delete(0, 2);
EXPECT_TRUE(wtb.AsStringView().EqualsASCII(""));
wtb.Delete(0, 0);
EXPECT_TRUE(wtb.AsStringView().EqualsASCII(""));
}
TEST(WideTextBuffer, Move) {
WideTextBuffer wtb;
wtb << "clams";
EXPECT_EQ(wtb.MakeString(), L"clams");
WideTextBuffer wtb2(std::move(wtb));
EXPECT_EQ(wtb.MakeString(), L"");
EXPECT_EQ(wtb2.MakeString(), L"clams");
WideTextBuffer wtb3;
wtb3 = std::move(wtb2);
EXPECT_EQ(wtb2.MakeString(), L"");
EXPECT_EQ(wtb3.MakeString(), L"clams");
}
} // namespace fxcrt