mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-11-06 15:42:06 +00:00
.github
dAuthServer
dChatFilter
dChatServer
dCommon
dDatabase
dGame
dMasterServer
dNavigation
dNet
dPhysics
dScripts
dWorldServer
dZoneManager
docker
docs
migrations
resources
tests
dCommonTests
TestBitStreams
AMFDeserializeTests.cpp
Amf3Tests.cpp
CMakeLists.txt
HeaderSkipTest.cpp
TestEncoding.cpp
TestLDFFormat.cpp
TestNiPoint3.cpp
dCommonDependencies.cpp
dCommonDependencies.h
dGameTests
CMakeLists.txt
thirdparty
vanity
.dockerignore
.editorconfig
.env.example
.git-blame-ignore-revs
.gitattributes
.gitignore
.gitmodules
CMakeLists.txt
CMakePresets.json
CMakeVariables.txt
CONTRIBUTING.md
Docker.md
Docker_Windows.md
LICENSE
README.md
SECURITY.md
build.sh
docker-compose.yml
logo.png
versions.txt
Implement GTest as a testing infrastructure. Make windows output binaries to the build folder instead of the release type folder (potentially issue further down the line) Add a simple unit test for DestroyableComponent
69 lines
2.6 KiB
C++
69 lines
2.6 KiB
C++
#include <string>
|
|
#include <gtest/gtest.h>
|
|
#include <string_view>
|
|
|
|
#include "GeneralUtils.h"
|
|
|
|
class EncodingTest : public ::testing::Test {
|
|
protected:
|
|
std::string originalWord;
|
|
std::string_view originalWordSv;
|
|
uint32_t out;
|
|
};
|
|
|
|
TEST_F(EncodingTest, TestEncodingHello) {
|
|
originalWord = "Hello World!";
|
|
originalWordSv = originalWord;
|
|
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, 'H');
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, 'e');
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, 'l');
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, 'l');
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, 'o');
|
|
EXPECT_EQ(GeneralUtils::_NextUTF8Char(originalWordSv, out), true);
|
|
|
|
EXPECT_EQ(GeneralUtils::UTF8ToUTF16("Hello World!"), u"Hello World!");
|
|
};
|
|
|
|
TEST_F(EncodingTest, TestEncodingUmlaut) {
|
|
originalWord = u8"Frühling";
|
|
originalWordSv = originalWord;
|
|
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, U'F');
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, U'r');
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, U'ü');
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, U'h');
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, U'l');
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, U'i');
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, U'n');
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, U'g');
|
|
EXPECT_EQ(GeneralUtils::_NextUTF8Char(originalWordSv, out), false);
|
|
|
|
EXPECT_EQ(GeneralUtils::UTF8ToUTF16("Frühling"), u"Frühling");
|
|
};
|
|
|
|
TEST_F(EncodingTest, TestEncodingChinese) {
|
|
originalWord = "中文字";
|
|
originalWordSv = originalWord;
|
|
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, U'中');
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, U'文');
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, U'字');
|
|
EXPECT_EQ(GeneralUtils::_NextUTF8Char(originalWordSv, out), false);
|
|
|
|
EXPECT_EQ(GeneralUtils::UTF8ToUTF16("中文字"), u"中文字");
|
|
};
|
|
|
|
TEST_F(EncodingTest, TestEncodingEmoji) {
|
|
originalWord = "👨⚖️";
|
|
originalWordSv = originalWord;
|
|
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, 0x1F468);
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, 0x200D);
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, 0x2696);
|
|
GeneralUtils::_NextUTF8Char(originalWordSv, out); EXPECT_EQ(out, 0xFE0F);
|
|
EXPECT_EQ(GeneralUtils::_NextUTF8Char(originalWordSv, out), false);
|
|
|
|
EXPECT_EQ(GeneralUtils::UTF8ToUTF16("👨⚖️"), u"👨⚖️");
|
|
};
|