diff options
Diffstat (limited to 'externals/simpleini/tests/ts-snippets.cpp')
| -rw-r--r-- | externals/simpleini/tests/ts-snippets.cpp | 303 |
1 files changed, 0 insertions, 303 deletions
diff --git a/externals/simpleini/tests/ts-snippets.cpp b/externals/simpleini/tests/ts-snippets.cpp deleted file mode 100644 index 773642c8cb..0000000000 --- a/externals/simpleini/tests/ts-snippets.cpp +++ /dev/null @@ -1,303 +0,0 @@ -#include "pch.h" -#include "../SimpleIni.h" - - -// ### SIMPLE USAGE - -TEST(TestSnippets, TestSimple) { - // simple demonstration - - CSimpleIniA ini; - ini.SetUnicode(); - - SI_Error rc = ini.LoadFile("example.ini"); - if (rc < 0) { /* handle error */ }; - ASSERT_EQ(rc, SI_OK); - - const char* pv; - pv = ini.GetValue("section", "key", "default"); - ASSERT_STREQ(pv, "value"); - - ini.SetValue("section", "key", "newvalue"); - - pv = ini.GetValue("section", "key", "default"); - ASSERT_STREQ(pv, "newvalue"); -} - - -// ### LOADING DATA - -TEST(TestSnippets, TestLoadFile) { - // load from a data file - CSimpleIniA ini; - SI_Error rc = ini.LoadFile("example.ini"); - if (rc < 0) { /* handle error */ }; - ASSERT_EQ(rc, SI_OK); -} - -TEST(TestSnippets, TestLoadString) { - // load from a string - const std::string example = "[section]\nkey = value\n"; - CSimpleIniA ini; - SI_Error rc = ini.LoadData(example); - if (rc < 0) { /* handle error */ }; - ASSERT_EQ(rc, SI_OK); -} - - -// ### GETTING SECTIONS AND KEYS - -TEST(TestSnippets, TestSectionsAndKeys) { - const std::string example = - "[section1]\n" - "key1 = value1\n" - "key2 = value2\n" - "\n" - "[section2]\n" - "[section3]\n"; - - CSimpleIniA ini; - SI_Error rc = ini.LoadData(example); - ASSERT_EQ(rc, SI_OK); - - - - // get all sections - CSimpleIniA::TNamesDepend sections; - ini.GetAllSections(sections); - - // get all keys in a section - CSimpleIniA::TNamesDepend keys; - ini.GetAllKeys("section1", keys); - - - - const char* expectedSections[] = { "section1", "section2", "section3", nullptr }; - const char* expectedKeys[] = { "key1", "key2", nullptr }; - - CSimpleIniA::TNamesDepend::const_iterator it; - int i; - - for (i = 0, it = sections.begin(); it != sections.end(); ++i, ++it) { - ASSERT_NE(expectedSections[i], nullptr); - ASSERT_STREQ(expectedSections[i], it->pItem); - } - ASSERT_EQ(expectedSections[i], nullptr); - - for (i = 0, it = keys.begin(); it != keys.end(); ++i, ++it) { - ASSERT_NE(expectedKeys[i], nullptr); - ASSERT_STREQ(expectedKeys[i], it->pItem); - } - ASSERT_EQ(expectedKeys[i], nullptr); -} - - -// ### GETTING VALUES - -TEST(TestSnippets, TestGettingValues) { - const std::string example = - "[section1]\n" - "key1 = value1\n" - "key2 = value2.1\n" - "key2 = value2.2\n" - "\n" - "[section2]\n" - "[section3]\n"; - - bool utf8 = true; - bool multiKey = true; - CSimpleIniA ini(utf8, multiKey); - SI_Error rc = ini.LoadData(example); - ASSERT_EQ(rc, SI_OK); - - - // get the value of a key that doesn't exist - const char* pv; - pv = ini.GetValue("section1", "key99"); - ASSERT_EQ(pv, nullptr); - - // get the value of a key that does exist - pv = ini.GetValue("section1", "key1"); - ASSERT_STREQ(pv, "value1"); - - // get the value of a key which may have multiple - // values. If hasMultiple is true, then there are - // multiple values and just one value has been returned - bool hasMulti; - pv = ini.GetValue("section1", "key1", nullptr, &hasMulti); - ASSERT_STREQ(pv, "value1"); - ASSERT_EQ(hasMulti, false); - - pv = ini.GetValue("section1", "key2", nullptr, &hasMulti); - ASSERT_STREQ(pv, "value2.1"); - ASSERT_EQ(hasMulti, true); - - // get all values of a key with multiple values - CSimpleIniA::TNamesDepend values; - ini.GetAllValues("section1", "key2", values); - - // sort the values into a known order, in this case we want - // the original load order - values.sort(CSimpleIniA::Entry::LoadOrder()); - - // output all of the items - CSimpleIniA::TNamesDepend::const_iterator it; - for (it = values.begin(); it != values.end(); ++it) { - //printf("value = '%s'\n", it->pItem); - } - - - int i; - const char* expectedValues[] = { "value2.1", "value2.2", nullptr }; - for (i = 0, it = values.begin(); it != values.end(); ++it, ++i) { - ASSERT_NE(expectedValues[i], nullptr); - ASSERT_STREQ(expectedValues[i], it->pItem); - } - ASSERT_EQ(expectedValues[i], nullptr); -} - -// ### VALUE EXISTS - -TEST(TestSnippets, TestExists) -{ - const std::string example = - "[section1]\n" - "key1 = value1\n" - "key2 = value2.1\n" - "key2 = value2.2\n" - "\n" - "[section2]\n" - "key1\n" - "key2\n" - "[section3]\n"; - - CSimpleIniA ini; - ini.SetUnicode(); - ini.SetMultiKey(); - ini.SetAllowKeyOnly(); - - SI_Error rc = ini.LoadData(example); - ASSERT_EQ(rc, SI_OK); - - - // check for section doesn't exist - EXPECT_FALSE(ini.SectionExists("")); - EXPECT_FALSE(ini.SectionExists("section4")); - - // check for section does exist - EXPECT_TRUE(ini.SectionExists("section1")); - EXPECT_TRUE(ini.SectionExists("section2")); - EXPECT_TRUE(ini.SectionExists("section3")); - - // check for key doesn't exist - EXPECT_FALSE(ini.KeyExists("", "key")); - EXPECT_FALSE(ini.KeyExists("section1", "key")); - EXPECT_FALSE(ini.KeyExists("section2", "key")); - - // check for key does exist - EXPECT_TRUE(ini.KeyExists("section1", "key1")); - EXPECT_TRUE(ini.KeyExists("section1", "key2")); - EXPECT_TRUE(ini.KeyExists("section2", "key1")); - EXPECT_TRUE(ini.KeyExists("section2", "key2")); -} - -// ### MODIFYING DATA - -TEST(TestSnippets, TestModifyingData) { - bool utf8 = true; - bool multiKey = false; - CSimpleIniA ini(utf8, multiKey); - SI_Error rc; - - - // add a new section - rc = ini.SetValue("section1", nullptr, nullptr); - if (rc < 0) { /* handle error */ }; - ASSERT_EQ(rc, SI_INSERTED); - - // not an error to add one that already exists - rc = ini.SetValue("section1", nullptr, nullptr); - if (rc < 0) { /* handle error */ }; - ASSERT_EQ(rc, SI_UPDATED); - - // get the value of a key that doesn't exist - const char* pv; - pv = ini.GetValue("section2", "key1", "default-value"); - ASSERT_STREQ(pv, "default-value"); - - // adding a key (the section will be added if needed) - rc = ini.SetValue("section2", "key1", "value1"); - if (rc < 0) { /* handle error */ }; - ASSERT_EQ(rc, SI_INSERTED); - - // ensure it is set to expected value - pv = ini.GetValue("section2", "key1", nullptr); - ASSERT_STREQ(pv, "value1"); - - // change the value of a key - rc = ini.SetValue("section2", "key1", "value2"); - if (rc < 0) { /* handle error */ }; - ASSERT_EQ(rc, SI_UPDATED); - - // ensure it is set to expected value - pv = ini.GetValue("section2", "key1", nullptr); - ASSERT_STREQ(pv, "value2"); -} - - -// ### DELETING DATA - -TEST(TestSnippets, TestDeletingData) { - const std::string example = - "[section1]\n" - "key1 = value1\n" - "key2 = value2\n" - "\n" - "[section2]\n" - "key1 = value1\n" - "key2 = value2\n" - "\n" - "[section3]\n"; - - bool utf8 = true; - CSimpleIniA ini(utf8); - SI_Error rc = ini.LoadData(example); - ASSERT_EQ(rc, SI_OK); - - - // deleting a key from a section. Optionally the entire - // section may be deleted if it is now empty. - bool done, deleteSectionIfEmpty = true; - done = ini.Delete("section1", "key1", deleteSectionIfEmpty); - ASSERT_EQ(done, true); - done = ini.Delete("section1", "key1"); - ASSERT_EQ(done, false); - - // deleting an entire section and all keys in it - done = ini.Delete("section2", nullptr); - ASSERT_EQ(done, true); - done = ini.Delete("section2", nullptr); - ASSERT_EQ(done, false); -} - - -// ### SAVING DATA - -TEST(TestSnippets, TestSavingData) { - bool utf8 = true; - CSimpleIniA ini(utf8); - SI_Error rc; - - - // save the data to a string - std::string data; - rc = ini.Save(data); - if (rc < 0) { /* handle error */ }; - ASSERT_EQ(rc, SI_OK); - - // save the data back to the file - rc = ini.SaveFile("example2.ini"); - if (rc < 0) { /* handle error */ }; - ASSERT_EQ(rc, SI_OK); -} - |
