]> git.saurik.com Git - wxWidgets.git/blob - tests/config/regconf.cpp
296b208f679f94a1f5c4fe841858893b82ee1626
[wxWidgets.git] / tests / config / regconf.cpp
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: tests/config/regconf.cpp
3 // Purpose: wxRegConfig unit test
4 // Author: Francesco Montorsi (extracted from console sample)
5 // Created: 2010-06-02
6 // RCS-ID: $Id$
7 // Copyright: (c) 2010 wxWidgets team
8 ///////////////////////////////////////////////////////////////////////////////
9
10 // ----------------------------------------------------------------------------
11 // headers
12 // ----------------------------------------------------------------------------
13
14 #include "testprec.h"
15
16 #ifdef __BORLANDC__
17 #pragma hdrstop
18 #endif
19
20 #if wxUSE_CONFIG && wxUSE_REGKEY
21
22 #ifndef WX_PRECOMP
23 #endif // WX_PRECOMP
24
25 #include "wx/msw/regconf.h"
26
27 // ----------------------------------------------------------------------------
28 // test class
29 // ----------------------------------------------------------------------------
30
31 class RegConfigTestCase : public CppUnit::TestCase
32 {
33 public:
34 RegConfigTestCase() { }
35
36 private:
37 CPPUNIT_TEST_SUITE( RegConfigTestCase );
38 CPPUNIT_TEST( ReadWrite );
39 CPPUNIT_TEST_SUITE_END();
40
41 void ReadWrite();
42
43 DECLARE_NO_COPY_CLASS(RegConfigTestCase)
44 };
45
46 // register in the unnamed registry so that these tests are run by default
47 CPPUNIT_TEST_SUITE_REGISTRATION( RegConfigTestCase );
48
49 // also include in its own registry so that these tests can be run alone
50 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( RegConfigTestCase, "RegConfigTestCase" );
51
52 void RegConfigTestCase::ReadWrite()
53 {
54 wxString app = wxT("wxRegConfigTestCase");
55 wxString vendor = wxT("wxWidgets");
56
57 // NOTE: we use wxCONFIG_USE_LOCAL_FILE explicitly to test wxRegConfig
58 // with something different from the default value wxCONFIG_USE_GLOBAL_FILE
59 wxConfigBase *config = new wxRegConfig(app, vendor, wxT(""), wxT(""),
60 wxCONFIG_USE_LOCAL_FILE);
61
62 // test writing
63 config->SetPath(wxT("/group1"));
64 CPPUNIT_ASSERT( config->Write(wxT("entry1"), wxT("foo")) );
65 config->SetPath(wxT("/group2"));
66 CPPUNIT_ASSERT( config->Write(wxT("entry1"), wxT("bar")) );
67
68 // test reading
69 wxString str;
70 long dummy;
71
72 config->SetPath(wxT("/"));
73 CPPUNIT_ASSERT( config->GetFirstGroup(str, dummy) );
74 CPPUNIT_ASSERT( str == "group1" );
75 CPPUNIT_ASSERT( config->Read(wxT("group1/entry1"), wxT("INVALID DEFAULT")) == "foo" );
76 CPPUNIT_ASSERT( config->GetNextGroup(str, dummy) );
77 CPPUNIT_ASSERT( str == "group2" );
78 CPPUNIT_ASSERT( config->Read(wxT("group2/entry1"), wxT("INVALID DEFAULT")) == "bar" );
79
80 config->DeleteAll();
81 delete config;
82 }
83
84 #endif // wxUSE_CONFIG && wxUSE_REGKEY
85