mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-21 04:05:45 +00:00
Move dead submodules in-tree
Signed-off-by: swurl <swurl@swurl.xyz>
This commit is contained in:
parent
c0cceff365
commit
6c655321e6
4081 changed files with 1185566 additions and 45 deletions
246
externals/simpleini/tests/ts-roundtrip.cpp
vendored
Normal file
246
externals/simpleini/tests/ts-roundtrip.cpp
vendored
Normal file
|
@ -0,0 +1,246 @@
|
|||
#include "pch.h"
|
||||
#include <algorithm>
|
||||
#include "../SimpleIni.h"
|
||||
|
||||
class TestRoundTrip : public ::testing::Test {
|
||||
protected:
|
||||
void SetUp() override;
|
||||
void TestMulti();
|
||||
void TestBOM(bool useBOM);
|
||||
|
||||
protected:
|
||||
CSimpleIniA ini;
|
||||
std::string input;
|
||||
std::string output;
|
||||
};
|
||||
|
||||
void TestRoundTrip::SetUp() {
|
||||
ini.SetUnicode();
|
||||
}
|
||||
|
||||
TEST_F(TestRoundTrip, TestStandard) {
|
||||
input =
|
||||
"; File comment\n"
|
||||
"\n"
|
||||
"\n"
|
||||
"; Section 1 comment\n"
|
||||
"[section1]\n"
|
||||
"\n"
|
||||
"\n"
|
||||
"; Section 2 comment\n"
|
||||
"[section2]\n"
|
||||
"\n"
|
||||
"; key1 comment\n"
|
||||
"key1 = string\n"
|
||||
"\n"
|
||||
"; key 2 comment\n"
|
||||
"key2 = true\n"
|
||||
"key3 = 3.1415\n"
|
||||
;
|
||||
|
||||
SI_Error rc = ini.LoadData(input);
|
||||
ASSERT_EQ(rc, SI_OK);
|
||||
|
||||
const char* result = ini.GetValue("section2", "key1");
|
||||
ASSERT_STREQ(result, "string");
|
||||
|
||||
rc = ini.Save(output);
|
||||
ASSERT_EQ(rc, SI_OK);
|
||||
|
||||
output.erase(std::remove(output.begin(), output.end(), '\r'), output.end());
|
||||
ASSERT_STREQ(input.c_str(), output.c_str());
|
||||
}
|
||||
|
||||
void TestRoundTrip::TestMulti() {
|
||||
input =
|
||||
"[section]\n"
|
||||
"key = string1\n"
|
||||
"key = string2\n"
|
||||
;
|
||||
|
||||
SI_Error rc = ini.LoadData(input);
|
||||
ASSERT_EQ(rc, SI_OK);
|
||||
|
||||
rc = ini.Save(output);
|
||||
ASSERT_EQ(rc, SI_OK);
|
||||
|
||||
output.erase(std::remove(output.begin(), output.end(), '\r'), output.end());
|
||||
}
|
||||
|
||||
TEST_F(TestRoundTrip, TestMultiGood) {
|
||||
ini.SetMultiKey(true);
|
||||
TestMulti();
|
||||
ASSERT_STREQ(input.c_str(), output.c_str());
|
||||
}
|
||||
|
||||
TEST_F(TestRoundTrip, TestMultiBad) {
|
||||
std::string expected =
|
||||
"[section]\n"
|
||||
"key = string2\n";
|
||||
|
||||
ini.SetMultiKey(false);
|
||||
TestMulti();
|
||||
ASSERT_STRNE(input.c_str(), output.c_str());
|
||||
ASSERT_STREQ(expected.c_str(), output.c_str());
|
||||
}
|
||||
|
||||
TEST_F(TestRoundTrip, TestSpacesTrue) {
|
||||
input =
|
||||
"[section]\n"
|
||||
"key = string1\n";
|
||||
|
||||
SI_Error rc = ini.LoadData(input);
|
||||
ASSERT_EQ(rc, SI_OK);
|
||||
|
||||
ini.SetSpaces(true);
|
||||
rc = ini.Save(output);
|
||||
ASSERT_EQ(rc, SI_OK);
|
||||
|
||||
output.erase(std::remove(output.begin(), output.end(), '\r'), output.end());
|
||||
|
||||
ASSERT_STREQ(input.c_str(), output.c_str());
|
||||
}
|
||||
|
||||
TEST_F(TestRoundTrip, TestSpacesFalse) {
|
||||
input =
|
||||
"[section]\n"
|
||||
"key = string1\n";
|
||||
|
||||
SI_Error rc = ini.LoadData(input);
|
||||
ASSERT_EQ(rc, SI_OK);
|
||||
|
||||
ini.SetSpaces(false);
|
||||
rc = ini.Save(output);
|
||||
ASSERT_EQ(rc, SI_OK);
|
||||
|
||||
output.erase(std::remove(output.begin(), output.end(), '\r'), output.end());
|
||||
|
||||
ASSERT_STRNE(input.c_str(), output.c_str());
|
||||
|
||||
std::string expected =
|
||||
"[section]\n"
|
||||
"key=string1\n";
|
||||
|
||||
ASSERT_STREQ(expected.c_str(), output.c_str());
|
||||
}
|
||||
|
||||
void TestRoundTrip::TestBOM(bool useBOM) {
|
||||
const char bom[] = "\xEF\xBB\xBF";
|
||||
const char input8[] =
|
||||
u8"[テスト1]\n"
|
||||
u8"テスト2 = テスト3\n";
|
||||
|
||||
input = bom;
|
||||
input += input8;
|
||||
|
||||
ini.Reset();
|
||||
ini.SetUnicode(false);
|
||||
SI_Error rc = ini.LoadData(input);
|
||||
ASSERT_EQ(rc, SI_OK);
|
||||
|
||||
const char tesuto1[] = u8"テスト1";
|
||||
const char tesuto2[] = u8"テスト2";
|
||||
const char tesuto3[] = u8"テスト3";
|
||||
|
||||
const char* result = ini.GetValue(tesuto1, tesuto2);
|
||||
ASSERT_STREQ(result, tesuto3);
|
||||
|
||||
rc = ini.Save(output, useBOM);
|
||||
ASSERT_EQ(rc, SI_OK);
|
||||
|
||||
output.erase(std::remove(output.begin(), output.end(), '\r'), output.end());
|
||||
}
|
||||
|
||||
TEST_F(TestRoundTrip, TestWithBOM) {
|
||||
TestBOM(true);
|
||||
|
||||
ASSERT_STREQ(input.c_str(), output.c_str());
|
||||
}
|
||||
|
||||
TEST_F(TestRoundTrip, TestWithoutBOM) {
|
||||
TestBOM(false);
|
||||
|
||||
ASSERT_STRNE(input.c_str(), output.c_str());
|
||||
|
||||
std::string expected(input, 3);
|
||||
ASSERT_STREQ(expected.c_str(), output.c_str());
|
||||
}
|
||||
|
||||
TEST_F(TestRoundTrip, TestAllowKeyOnly1) {
|
||||
ini.SetAllowKeyOnly(false);
|
||||
|
||||
input =
|
||||
"[section1]\n"
|
||||
"key1 = string\n"
|
||||
"key2 = \n"
|
||||
"key3= \n"
|
||||
"key4=\n"
|
||||
"key5\n"
|
||||
"\n"
|
||||
"Never going to give you up\n"
|
||||
"Never going to let you down\n"
|
||||
;
|
||||
|
||||
std::string expect =
|
||||
"[section1]\n"
|
||||
"key1 = string\n"
|
||||
"key2 = \n"
|
||||
"key3 = \n"
|
||||
"key4 = \n"
|
||||
;
|
||||
|
||||
SI_Error rc = ini.LoadData(input);
|
||||
ASSERT_EQ(rc, SI_OK);
|
||||
|
||||
rc = ini.Save(output);
|
||||
ASSERT_EQ(rc, SI_OK);
|
||||
|
||||
output.erase(std::remove(output.begin(), output.end(), '\r'), output.end());
|
||||
ASSERT_STREQ(expect.c_str(), output.c_str());
|
||||
}
|
||||
|
||||
TEST_F(TestRoundTrip, TestAllowKeyOnly2) {
|
||||
ini.SetAllowKeyOnly(true);
|
||||
|
||||
input =
|
||||
"[section1]\n"
|
||||
"key1\n"
|
||||
"key2\n"
|
||||
"[section2]\n"
|
||||
"key1 = string\n"
|
||||
"key2 = \n"
|
||||
"key3= \n"
|
||||
"key4=\n"
|
||||
"\n"
|
||||
"key5\n"
|
||||
"\n"
|
||||
"Never going to give you up\n"
|
||||
"\n"
|
||||
"Never going to let you down\n"
|
||||
;
|
||||
|
||||
std::string expect =
|
||||
"[section1]\n"
|
||||
"key1\n"
|
||||
"key2\n"
|
||||
"\n\n"
|
||||
"[section2]\n"
|
||||
"key1 = string\n"
|
||||
"key2\n"
|
||||
"key3\n"
|
||||
"key4\n"
|
||||
"key5\n"
|
||||
"Never going to give you up\n"
|
||||
"Never going to let you down\n"
|
||||
;
|
||||
|
||||
SI_Error rc = ini.LoadData(input);
|
||||
ASSERT_EQ(rc, SI_OK);
|
||||
|
||||
rc = ini.Save(output);
|
||||
ASSERT_EQ(rc, SI_OK);
|
||||
|
||||
output.erase(std::remove(output.begin(), output.end(), '\r'), output.end());
|
||||
ASSERT_STREQ(expect.c_str(), output.c_str());
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue