]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/config/fileconf.cpp
Enable vc++ 9 quick builds.
[wxWidgets.git] / tests / config / fileconf.cpp
index d3694190478543c84f83da72e89a9f74d1f357da..a7f67216a3f83d192719fc8d49e4ede314f42ab2 100644 (file)
@@ -70,6 +70,7 @@ private:
         CPPUNIT_TEST( Binary );
         CPPUNIT_TEST( Save );
         CPPUNIT_TEST( DeleteEntry );
+        CPPUNIT_TEST( DeleteAndWriteEntry );
         CPPUNIT_TEST( DeleteGroup );
         CPPUNIT_TEST( DeleteAll );
         CPPUNIT_TEST( RenameEntry );
@@ -78,6 +79,7 @@ private:
         CPPUNIT_TEST( CreateSubgroupAndEntries );
         CPPUNIT_TEST( DeleteLastGroup );
         CPPUNIT_TEST( DeleteAndRecreateGroup );
+        CPPUNIT_TEST( AddToExistingRoot );
     CPPUNIT_TEST_SUITE_END();
 
     void Path();
@@ -89,6 +91,7 @@ private:
     void Binary();
     void Save();
     void DeleteEntry();
+    void DeleteAndWriteEntry();
     void DeleteGroup();
     void DeleteAll();
     void RenameEntry();
@@ -97,6 +100,8 @@ private:
     void CreateSubgroupAndEntries();
     void DeleteLastGroup();
     void DeleteAndRecreateGroup();
+    void AddToExistingRoot();
+
 
     static wxString ChangePath(wxFileConfig& fc, const wxChar *path)
     {
@@ -324,6 +329,47 @@ void FileConfigTestCase::DeleteEntry()
                          fc );
 }
 
+void FileConfigTestCase::DeleteAndWriteEntry()
+{
+    wxStringInputStream sis(
+            "[root/group1]\n"
+            "subentry=subvalue\n"
+            "subentry2=subvalue2\n"
+            "subentry3=subvalue3\n"
+    );
+
+    wxFileConfig fc(sis);
+
+    fc.DeleteEntry("/root/group1/subentry2");
+    fc.Write("/root/group1/subentry2", "testvalue");
+    fc.DeleteEntry("/root/group2/subentry2");
+    fc.Write("/root/group2/subentry2", "testvalue2");
+    fc.DeleteEntry("/root/group1/subentry2");
+    fc.Write("/root/group1/subentry2", "testvalue");
+    fc.DeleteEntry("/root/group2/subentry2");
+    fc.Write("/root/group2/subentry2", "testvalue2");
+
+    wxVERIFY_FILECONFIG( "[root/group1]\n"
+                         "subentry=subvalue\n"
+                         "subentry3=subvalue3\n"
+                         "subentry2=testvalue\n"
+                         "[root/group2]\n"
+                         "subentry2=testvalue2\n",
+                         fc );
+
+    fc.DeleteEntry("/root/group2/subentry2");
+    wxVERIFY_FILECONFIG( "[root/group1]\n"
+                         "subentry=subvalue\n"
+                         "subentry3=subvalue3\n"
+                         "subentry2=testvalue\n",
+                         fc );
+
+    fc.DeleteEntry("/root/group1/subentry2");
+    fc.DeleteEntry("/root/group1/subentry");
+    fc.DeleteEntry("/root/group1/subentry3");
+    wxVERIFY_FILECONFIG( "", fc );
+}
+
 void FileConfigTestCase::DeleteGroup()
 {
     wxStringInputStream sis(testconfig);
@@ -564,5 +610,23 @@ void FileConfigTestCase::DeleteAndRecreateGroup()
                          fc );
 }
 
+void FileConfigTestCase::AddToExistingRoot()
+{
+    static const wxChar *confInitial =
+        _T("[Group]\n")
+        _T("value1=foo\n");
+
+    wxStringInputStream sis(confInitial);
+    wxFileConfig fc(sis);
+
+    fc.Write(_T("/value1"), _T("bar"));
+    wxVERIFY_FILECONFIG(
+        _T("value1=bar\n")
+        _T("[Group]\n")
+        _T("value1=foo\n"),
+        fc
+    );
+}
+
 #endif // wxUSE_FILECONFIG