forked from qt-creator/qt-creator
Improve naming and introduce googletest.h. Change-Id: I445c13db4c23d6dd5682ce0db3b83055cc6b8a89 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
283 lines
7.1 KiB
C++
283 lines
7.1 KiB
C++
/****************************************************************************
|
|
**
|
|
** Copyright (C) 2016 The Qt Company Ltd.
|
|
** Contact: https://www.qt.io/licensing/
|
|
**
|
|
** This file is part of Qt Creator.
|
|
**
|
|
** Commercial License Usage
|
|
** Licensees holding valid commercial Qt licenses may use this file in
|
|
** accordance with the commercial license agreement provided with the
|
|
** Software or, alternatively, in accordance with the terms contained in
|
|
** a written agreement between you and The Qt Company. For licensing terms
|
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
** information use the contact form at https://www.qt.io/contact-us.
|
|
**
|
|
** GNU General Public License Usage
|
|
** Alternatively, this file may be used under the terms of the GNU
|
|
** General Public License version 3 as published by the Free Software
|
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
** included in the packaging of this file. Please review the following
|
|
** information to ensure the GNU General Public License requirements will
|
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
**
|
|
****************************************************************************/
|
|
|
|
#include "googletest.h"
|
|
|
|
#include <QString>
|
|
|
|
#include <utf8stringvector.h>
|
|
|
|
using namespace ::testing;
|
|
|
|
TEST(Utf8, QStringConversionConstructor)
|
|
{
|
|
ASSERT_THAT(Utf8String(QStringLiteral("text")), Utf8StringLiteral("text"));
|
|
}
|
|
|
|
TEST(Utf8, QByteArrayConversionFunction)
|
|
{
|
|
ASSERT_THAT(Utf8String::fromByteArray("text"), Utf8StringLiteral("text"));
|
|
}
|
|
|
|
TEST(Utf8, QStringConversionFunction)
|
|
{
|
|
ASSERT_THAT(Utf8String::fromString(QStringLiteral("text")), Utf8StringLiteral("text"));
|
|
}
|
|
|
|
TEST(Utf8, Utf8ConversationFunction)
|
|
{
|
|
ASSERT_THAT(Utf8String::fromUtf8("text"), Utf8StringLiteral("text"));
|
|
}
|
|
|
|
TEST(Utf8, Mid)
|
|
{
|
|
Utf8String text(Utf8StringLiteral("some text"));
|
|
|
|
ASSERT_THAT(text.mid(5, 4), Utf8StringLiteral("text"));
|
|
ASSERT_THAT(text.mid(5), Utf8StringLiteral("text"));
|
|
}
|
|
|
|
TEST(Utf8, ByteSize)
|
|
{
|
|
ASSERT_THAT(Utf8StringLiteral("text").byteSize(), 4);
|
|
}
|
|
|
|
TEST(Utf8, Append)
|
|
{
|
|
Utf8String text(Utf8StringLiteral("some "));
|
|
text.append(Utf8StringLiteral("text"));
|
|
|
|
ASSERT_THAT(text, Utf8StringLiteral("some text"));
|
|
}
|
|
|
|
TEST(Utf8, ToByteArray)
|
|
{
|
|
Utf8String text(Utf8StringLiteral("some text"));
|
|
|
|
ASSERT_THAT(text.toByteArray(), QByteArrayLiteral("some text"));
|
|
}
|
|
|
|
TEST(Utf8, ToString)
|
|
{
|
|
Utf8String text(Utf8StringLiteral("some text"));
|
|
|
|
ASSERT_THAT(text.toString(), QStringLiteral("some text"));
|
|
}
|
|
|
|
|
|
TEST(Utf8, Contains)
|
|
{
|
|
Utf8String text(Utf8StringLiteral("some text"));
|
|
|
|
ASSERT_TRUE(text.contains(Utf8StringLiteral("text")));
|
|
ASSERT_TRUE(text.contains("text"));
|
|
ASSERT_TRUE(text.contains('x'));
|
|
}
|
|
|
|
TEST(Utf8, EqualOperator)
|
|
{
|
|
ASSERT_TRUE(Utf8StringLiteral("text") == Utf8StringLiteral("text"));
|
|
ASSERT_FALSE(Utf8StringLiteral("text") == Utf8StringLiteral("text2"));
|
|
}
|
|
|
|
TEST(Utf8, SmallerOperator)
|
|
{
|
|
ASSERT_TRUE(Utf8StringLiteral("some") < Utf8StringLiteral("text"));
|
|
ASSERT_TRUE(Utf8StringLiteral("text") < Utf8StringLiteral("texta"));
|
|
ASSERT_FALSE(Utf8StringLiteral("text") < Utf8StringLiteral("some"));
|
|
ASSERT_FALSE(Utf8StringLiteral("text") < Utf8StringLiteral("text"));
|
|
}
|
|
|
|
TEST(Utf8, UnequalOperator)
|
|
{
|
|
ASSERT_FALSE(Utf8StringLiteral("text") != Utf8StringLiteral("text"));
|
|
ASSERT_TRUE(Utf8StringLiteral("text") != Utf8StringLiteral("text2"));
|
|
}
|
|
|
|
TEST(Utf8, Join)
|
|
{
|
|
Utf8StringVector vector;
|
|
|
|
vector.append(Utf8StringLiteral("some"));
|
|
vector.append(Utf8StringLiteral("text"));
|
|
|
|
ASSERT_THAT(Utf8StringLiteral("some, text"), vector.join(Utf8StringLiteral(", ")));
|
|
}
|
|
|
|
TEST(Utf8, Split)
|
|
{
|
|
Utf8String test(Utf8StringLiteral("some text"));
|
|
|
|
Utf8StringVector splittedText = test.split(' ');
|
|
|
|
ASSERT_THAT(splittedText.at(0), Utf8StringLiteral("some"));
|
|
ASSERT_THAT(splittedText.at(1), Utf8StringLiteral("text"));
|
|
}
|
|
|
|
TEST(Utf8, IsEmpty)
|
|
{
|
|
ASSERT_FALSE(Utf8StringLiteral("text").isEmpty());
|
|
ASSERT_TRUE(Utf8String().isEmpty());
|
|
}
|
|
|
|
TEST(Utf8, HasContent)
|
|
{
|
|
ASSERT_TRUE(Utf8StringLiteral("text").hasContent());
|
|
ASSERT_FALSE(Utf8String().hasContent());
|
|
}
|
|
|
|
TEST(Utf8, Replace)
|
|
{
|
|
Utf8String text(Utf8StringLiteral("some text"));
|
|
|
|
text.replace(Utf8StringLiteral("some"), Utf8StringLiteral("any"));
|
|
|
|
ASSERT_THAT(text, Utf8StringLiteral("any text"));
|
|
}
|
|
|
|
TEST(Utf8, ReplaceNBytesFromIndexPosition)
|
|
{
|
|
Utf8String text(Utf8StringLiteral("min"));
|
|
|
|
text.replace(1, 1, Utf8StringLiteral("aa"));
|
|
|
|
ASSERT_THAT(text, Utf8StringLiteral("maan"));
|
|
}
|
|
|
|
TEST(Utf8, StartsWith)
|
|
{
|
|
Utf8String text(Utf8StringLiteral("$column"));
|
|
|
|
ASSERT_TRUE(text.startsWith(Utf8StringLiteral("$col")));
|
|
ASSERT_FALSE(text.startsWith(Utf8StringLiteral("col")));
|
|
ASSERT_TRUE(text.startsWith("$col"));
|
|
ASSERT_FALSE(text.startsWith("col"));
|
|
ASSERT_TRUE(text.startsWith('$'));
|
|
ASSERT_FALSE(text.startsWith('@'));
|
|
}
|
|
|
|
TEST(Utf8, EndsWith)
|
|
{
|
|
Utf8String text(Utf8StringLiteral("/my/path"));
|
|
|
|
ASSERT_TRUE(text.endsWith(Utf8StringLiteral("path")));
|
|
}
|
|
|
|
TEST(Utf8, Clear)
|
|
{
|
|
Utf8String text(Utf8StringLiteral("$column"));
|
|
|
|
text.clear();
|
|
|
|
ASSERT_TRUE(text.isEmpty());
|
|
}
|
|
|
|
TEST(Utf8, Number)
|
|
{
|
|
ASSERT_THAT(Utf8String::number(20), Utf8StringLiteral("20"));
|
|
}
|
|
|
|
TEST(Utf8, FromIntegerVector)
|
|
{
|
|
QVector<int> integers({1, 2, 3});
|
|
|
|
ASSERT_THAT(Utf8StringVector::fromIntegerVector(integers).join(Utf8StringLiteral(", ")), Utf8StringLiteral("1, 2, 3"));
|
|
}
|
|
|
|
TEST(Utf8, PlusOperator)
|
|
{
|
|
auto text = Utf8StringLiteral("foo") + Utf8StringLiteral("bar");
|
|
|
|
ASSERT_THAT(text, Utf8StringLiteral("foobar"));
|
|
}
|
|
|
|
TEST(Utf8, PlusAssignmentOperator)
|
|
{
|
|
Utf8String text("foo", 3);
|
|
|
|
text += Utf8StringLiteral("bar");
|
|
|
|
ASSERT_THAT(text, Utf8StringLiteral("foobar"));
|
|
}
|
|
|
|
TEST(Utf8, CompareCharPointer)
|
|
{
|
|
Utf8String text("foo", 3);
|
|
|
|
ASSERT_TRUE(text == "foo");
|
|
ASSERT_FALSE(text == "foo2");
|
|
}
|
|
|
|
TEST(Utf8, RemoveFastFromVectorFailed)
|
|
{
|
|
Utf8StringVector values({Utf8StringLiteral("a"),
|
|
Utf8StringLiteral("b"),
|
|
Utf8StringLiteral("c"),
|
|
Utf8StringLiteral("d")});
|
|
|
|
ASSERT_FALSE(values.removeFast(Utf8StringLiteral("e")));
|
|
}
|
|
|
|
TEST(Utf8, RemoveFastFromVector)
|
|
{
|
|
Utf8StringVector values({Utf8StringLiteral("a"),
|
|
Utf8StringLiteral("b"),
|
|
Utf8StringLiteral("c"),
|
|
Utf8StringLiteral("d")});
|
|
|
|
bool removed = values.removeFast(Utf8StringLiteral("b"));
|
|
|
|
ASSERT_TRUE(removed);
|
|
ASSERT_THAT(values, Not(Contains(Utf8StringLiteral("b"))));
|
|
}
|
|
|
|
TEST(Utf8, ConverteAutomaticallyFromQString)
|
|
{
|
|
QString text(QStringLiteral("foo"));
|
|
|
|
Utf8String utf8Text(text);
|
|
|
|
ASSERT_THAT(utf8Text, Utf8StringLiteral("foo"));
|
|
}
|
|
|
|
TEST(Utf8, ConverteAutomaticallyToQString)
|
|
{
|
|
Utf8String utf8Text(Utf8StringLiteral("foo"));
|
|
|
|
QString text = utf8Text;
|
|
|
|
ASSERT_THAT(text, QStringLiteral("foo"));
|
|
}
|
|
|
|
TEST(Utf8, ConverteAutomaticallyToQByteArray)
|
|
{
|
|
Utf8String utf8Text(Utf8StringLiteral("foo"));
|
|
|
|
QByteArray bytes = utf8Text;
|
|
|
|
ASSERT_THAT(bytes, QByteArrayLiteral("foo"));
|
|
}
|
|
|