blob: 2085add23e23e20fcf7ccf052aa7ed3b73f62ca6 [file] [log] [blame]
// Copyright 2018 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "core/fxcrt/cfx_widetextbuf.h"
#include <utility>
#include "testing/gtest/include/gtest/gtest.h"
namespace fxcrt {
TEST(WideTextBuf, EmptyBuf) {
CFX_WideTextBuf wtb;
EXPECT_TRUE(wtb.GetWideSpan().empty());
EXPECT_TRUE(wtb.AsStringView().IsEmpty());
EXPECT_TRUE(wtb.MakeString().IsEmpty());
}
TEST(WideTextBuf, OperatorLtLt) {
CFX_WideTextBuf wtb;
wtb << "clams" << L"\u208c\u208e";
EXPECT_EQ(wtb.MakeString(), L"clams\u208c\u208e");
}
TEST(WideTextBuf, Deletion) {
CFX_WideTextBuf 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(WideTextBuf, Move) {
CFX_WideTextBuf wtb;
wtb << "clams";
EXPECT_EQ(wtb.MakeString(), L"clams");
CFX_WideTextBuf wtb2(std::move(wtb));
EXPECT_EQ(wtb.MakeString(), L"");
EXPECT_EQ(wtb2.MakeString(), L"clams");
CFX_WideTextBuf wtb3;
wtb3 = std::move(wtb2);
EXPECT_EQ(wtb2.MakeString(), L"");
EXPECT_EQ(wtb3.MakeString(), L"clams");
}
} // namespace fxcrt