#define TEST_MODULE
#define TEST_PATHLIST
#define TEST_PRINTF
- #define TEST_REGCONF
#define TEST_REGEX
- #define TEST_REGISTRY
#else // #if TEST_ALL
#define TEST_DATETIME
#define TEST_VOLUME
#endif // TEST_PRINTF
-// ----------------------------------------------------------------------------
-// registry and related stuff
-// ----------------------------------------------------------------------------
-
-// this is for MSW only
-#ifndef __WXMSW__
- #undef TEST_REGCONF
- #undef TEST_REGISTRY
-#endif
-
-#ifdef TEST_REGCONF
-
-#include "wx/confbase.h"
-#include "wx/msw/regconf.h"
-
-#if 0
-static void TestRegConfWrite()
-{
- wxConfig *config = new wxConfig(wxT("myapp"));
- config->SetPath(wxT("/group1"));
- config->Write(wxT("entry1"), wxT("foo"));
- config->SetPath(wxT("/group2"));
- config->Write(wxT("entry1"), wxT("bar"));
-}
-#endif
-
-static void TestRegConfRead()
-{
- wxRegConfig *config = new wxRegConfig(wxT("myapp"));
-
- wxString str;
- long dummy;
- config->SetPath(wxT("/"));
- wxPuts(wxT("Enumerating / subgroups:"));
- bool bCont = config->GetFirstGroup(str, dummy);
- while(bCont)
- {
- wxPuts(str);
- bCont = config->GetNextGroup(str, dummy);
- }
-}
-
-#endif // TEST_REGCONF
-
-#ifdef TEST_REGISTRY
-
-#include "wx/msw/registry.h"
-
-// I chose this one because I liked its name, but it probably only exists under
-// NT
-static const wxChar *TESTKEY =
- wxT("HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Control\\CrashControl");
-
-static void TestRegistryRead()
-{
- wxPuts(wxT("*** testing registry reading ***"));
-
- wxRegKey key(TESTKEY);
- wxPrintf(wxT("The test key name is '%s'.\n"), key.GetName().c_str());
- if ( !key.Open() )
- {
- wxPuts(wxT("ERROR: test key can't be opened, aborting test."));
-
- return;
- }
-
- size_t nSubKeys, nValues;
- if ( key.GetKeyInfo(&nSubKeys, NULL, &nValues, NULL) )
- {
- wxPrintf(wxT("It has %u subkeys and %u values.\n"), nSubKeys, nValues);
- }
-
- wxPrintf(wxT("Enumerating values:\n"));
-
- long dummy;
- wxString value;
- bool cont = key.GetFirstValue(value, dummy);
- while ( cont )
- {
- wxPrintf(wxT("Value '%s': type "), value.c_str());
- switch ( key.GetValueType(value) )
- {
- case wxRegKey::Type_None: wxPrintf(wxT("ERROR (none)")); break;
- case wxRegKey::Type_String: wxPrintf(wxT("SZ")); break;
- case wxRegKey::Type_Expand_String: wxPrintf(wxT("EXPAND_SZ")); break;
- case wxRegKey::Type_Binary: wxPrintf(wxT("BINARY")); break;
- case wxRegKey::Type_Dword: wxPrintf(wxT("DWORD")); break;
- case wxRegKey::Type_Multi_String: wxPrintf(wxT("MULTI_SZ")); break;
- default: wxPrintf(wxT("other (unknown)")); break;
- }
-
- wxPrintf(wxT(", value = "));
- if ( key.IsNumericValue(value) )
- {
- long val;
- key.QueryValue(value, &val);
- wxPrintf(wxT("%ld"), val);
- }
- else // string
- {
- wxString val;
- key.QueryValue(value, val);
- wxPrintf(wxT("'%s'"), val.c_str());
-
- key.QueryRawValue(value, val);
- wxPrintf(wxT(" (raw value '%s')"), val.c_str());
- }
-
- wxPutchar('\n');
-
- cont = key.GetNextValue(value, dummy);
- }
-}
-
-static void TestRegistryAssociation()
-{
- /*
- The second call to deleteself genertaes an error message, with a
- messagebox saying .flo is crucial to system operation, while the .ddf
- call also fails, but with no error message
- */
-
- wxRegKey key;
-
- key.SetName(wxT("HKEY_CLASSES_ROOT\\.ddf") );
- key.Create();
- key = wxT("ddxf_auto_file") ;
- key.SetName(wxT("HKEY_CLASSES_ROOT\\.flo") );
- key.Create();
- key = wxT("ddxf_auto_file") ;
- key.SetName(wxT("HKEY_CLASSES_ROOT\\ddxf_auto_file\\DefaultIcon"));
- key.Create();
- key = wxT("program,0") ;
- key.SetName(wxT("HKEY_CLASSES_ROOT\\ddxf_auto_file\\shell\\open\\command"));
- key.Create();
- key = wxT("program \"%1\"") ;
-
- key.SetName(wxT("HKEY_CLASSES_ROOT\\.ddf") );
- key.DeleteSelf();
- key.SetName(wxT("HKEY_CLASSES_ROOT\\.flo") );
- key.DeleteSelf();
- key.SetName(wxT("HKEY_CLASSES_ROOT\\ddxf_auto_file\\DefaultIcon"));
- key.DeleteSelf();
- key.SetName(wxT("HKEY_CLASSES_ROOT\\ddxf_auto_file\\shell\\open\\command"));
- key.DeleteSelf();
-}
-
-#endif // TEST_REGISTRY
-
// ----------------------------------------------------------------------------
// FTP
// ----------------------------------------------------------------------------
TestPrintf();
#endif // TEST_PRINTF
-#ifdef TEST_REGCONF
- #if 0
- TestRegConfWrite();
- #endif
- TestRegConfRead();
-#endif // TEST_REGCONF
-
#if defined TEST_REGEX && TEST_INTERACTIVE
TestRegExInteractive();
#endif // defined TEST_REGEX && TEST_INTERACTIVE
-#ifdef TEST_REGISTRY
- TestRegistryRead();
- TestRegistryAssociation();
-#endif // TEST_REGISTRY
-
#ifdef TEST_DATETIME
#if TEST_INTERACTIVE
TestDateTimeInteractive();
test_base64.o \
test_cmdlinetest.o \
test_fileconf.o \
+ test_regconf.o \
test_datetimetest.o \
test_evthandler.o \
test_evtsource.o \
test_fileconf.o: $(srcdir)/config/fileconf.cpp $(TEST_ODEP)
$(CXXC) -c -o $@ $(TEST_CXXFLAGS) $(srcdir)/config/fileconf.cpp
+test_regconf.o: $(srcdir)/config/regconf.cpp $(TEST_ODEP)
+ $(CXXC) -c -o $@ $(TEST_CXXFLAGS) $(srcdir)/config/regconf.cpp
+
test_datetimetest.o: $(srcdir)/datetime/datetimetest.cpp $(TEST_ODEP)
$(CXXC) -c -o $@ $(TEST_CXXFLAGS) $(srcdir)/datetime/datetimetest.cpp
// Copyright: (c) 2007 Marcin Wojdyr
///////////////////////////////////////////////////////////////////////////////
-// see also tests/fileconf/fileconftest.cpp for wxFileConfig specific tests
+// NOTE: this test is compiled in test_gui because it uses wxColour for
+// its testing purpose.
+// See also tests/config/fileconf.cpp for wxFileConfig specific tests and
+// tests/config/regconf.cpp for wxRegConfig specific tests.
// ----------------------------------------------------------------------------
// headers
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: tests/config/regconf.cpp
+// Purpose: wxRegConfig unit test
+// Author: Francesco Montorsi (extracted from console sample)
+// Created: 2010-06-02
+// RCS-ID: $Id$
+// Copyright: (c) 2010 wxWidgets team
+///////////////////////////////////////////////////////////////////////////////
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#include "testprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_CONFIG && wxUSE_REGKEY
+
+#ifndef WX_PRECOMP
+#endif // WX_PRECOMP
+
+#include "wx/msw/regconf.h"
+
+// ----------------------------------------------------------------------------
+// test class
+// ----------------------------------------------------------------------------
+
+class RegConfigTestCase : public CppUnit::TestCase
+{
+public:
+ RegConfigTestCase() { }
+
+private:
+ CPPUNIT_TEST_SUITE( RegConfigTestCase );
+ CPPUNIT_TEST( ReadWrite );
+ CPPUNIT_TEST_SUITE_END();
+
+ void ReadWrite();
+
+ DECLARE_NO_COPY_CLASS(RegConfigTestCase)
+};
+
+// register in the unnamed registry so that these tests are run by default
+CPPUNIT_TEST_SUITE_REGISTRATION( RegConfigTestCase );
+
+// also include in it's own registry so that these tests can be run alone
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( RegConfigTestCase, "RegConfigTestCase" );
+
+void RegConfigTestCase::ReadWrite()
+{
+ wxString app = wxT("wxRegConfigTestCase");
+ wxString vendor = wxT("wxWidgets");
+
+ // NOTE: we use wxCONFIG_USE_LOCAL_FILE explicitly to test wxRegConfig
+ // with something different from the default value wxCONFIG_USE_GLOBAL_FILE
+ wxConfigBase *config = new wxRegConfig(app, vendor, wxT(""), wxT(""),
+ wxCONFIG_USE_LOCAL_FILE);
+
+ // test writing
+ config->SetPath(wxT("/group1"));
+ CPPUNIT_ASSERT( config->Write(wxT("entry1"), wxT("foo")) );
+ config->SetPath(wxT("/group2"));
+ CPPUNIT_ASSERT( config->Write(wxT("entry1"), wxT("bar")) );
+
+ // test reading
+ wxString str;
+ long dummy;
+
+ config->SetPath(wxT("/"));
+ CPPUNIT_ASSERT( config->GetFirstGroup(str, dummy) );
+ CPPUNIT_ASSERT( str == "group1" );
+ CPPUNIT_ASSERT( config->Read(wxT("group1/entry1"), wxT("INVALID DEFAULT")) == "foo" );
+ CPPUNIT_ASSERT( config->GetNextGroup(str, dummy) );
+ CPPUNIT_ASSERT( str == "group2" );
+ CPPUNIT_ASSERT( config->Read(wxT("group2/entry1"), wxT("INVALID DEFAULT")) == "bar" );
+
+ config->DeleteAll();
+ delete config;
+}
+
+#endif // wxUSE_CONFIG && wxUSE_REGKEY
+
$(OBJS)\test_base64.obj \\r
$(OBJS)\test_cmdlinetest.obj \\r
$(OBJS)\test_fileconf.obj \\r
+ $(OBJS)\test_regconf.obj \\r
$(OBJS)\test_datetimetest.obj \\r
$(OBJS)\test_evthandler.obj \\r
$(OBJS)\test_evtsource.obj \\r
$(OBJS)\test_fileconf.obj: .\config\fileconf.cpp\r
$(CXX) -q -c -P -o$@ $(TEST_CXXFLAGS) .\config\fileconf.cpp\r
\r
+$(OBJS)\test_regconf.obj: .\config\regconf.cpp\r
+ $(CXX) -q -c -P -o$@ $(TEST_CXXFLAGS) .\config\regconf.cpp\r
+\r
$(OBJS)\test_datetimetest.obj: .\datetime\datetimetest.cpp\r
$(CXX) -q -c -P -o$@ $(TEST_CXXFLAGS) .\datetime\datetimetest.cpp\r
\r
$(OBJS)\test_base64.o \\r
$(OBJS)\test_cmdlinetest.o \\r
$(OBJS)\test_fileconf.o \\r
+ $(OBJS)\test_regconf.o \\r
$(OBJS)\test_datetimetest.o \\r
$(OBJS)\test_evthandler.o \\r
$(OBJS)\test_evtsource.o \\r
$(OBJS)\test_fileconf.o: ./config/fileconf.cpp\r
$(CXX) -c -o $@ $(TEST_CXXFLAGS) $(CPPDEPS) $<\r
\r
+$(OBJS)\test_regconf.o: ./config/regconf.cpp\r
+ $(CXX) -c -o $@ $(TEST_CXXFLAGS) $(CPPDEPS) $<\r
+\r
$(OBJS)\test_datetimetest.o: ./datetime/datetimetest.cpp\r
$(CXX) -c -o $@ $(TEST_CXXFLAGS) $(CPPDEPS) $<\r
\r
$(OBJS)\test_base64.obj \\r
$(OBJS)\test_cmdlinetest.obj \\r
$(OBJS)\test_fileconf.obj \\r
+ $(OBJS)\test_regconf.obj \\r
$(OBJS)\test_datetimetest.obj \\r
$(OBJS)\test_evthandler.obj \\r
$(OBJS)\test_evtsource.obj \\r
$(OBJS)\test_fileconf.obj: .\config\fileconf.cpp\r
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\config\fileconf.cpp\r
\r
+$(OBJS)\test_regconf.obj: .\config\regconf.cpp\r
+ $(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\config\regconf.cpp\r
+\r
$(OBJS)\test_datetimetest.obj: .\datetime\datetimetest.cpp\r
$(CXX) /c /nologo /TP /Fo$@ $(TEST_CXXFLAGS) .\datetime\datetimetest.cpp\r
\r
$(OBJS)\test_base64.obj &\r
$(OBJS)\test_cmdlinetest.obj &\r
$(OBJS)\test_fileconf.obj &\r
+ $(OBJS)\test_regconf.obj &\r
$(OBJS)\test_datetimetest.obj &\r
$(OBJS)\test_evthandler.obj &\r
$(OBJS)\test_evtsource.obj &\r
$(OBJS)\test_fileconf.obj : .AUTODEPEND .\config\fileconf.cpp\r
$(CXX) -bt=nt -zq -fo=$^@ $(TEST_CXXFLAGS) $<\r
\r
+$(OBJS)\test_regconf.obj : .AUTODEPEND .\config\regconf.cpp\r
+ $(CXX) -bt=nt -zq -fo=$^@ $(TEST_CXXFLAGS) $<\r
+\r
$(OBJS)\test_datetimetest.obj : .AUTODEPEND .\datetime\datetimetest.cpp\r
$(CXX) -bt=nt -zq -fo=$^@ $(TEST_CXXFLAGS) $<\r
\r
base64/base64.cpp
cmdline/cmdlinetest.cpp
config/fileconf.cpp
+ config/regconf.cpp
datetime/datetimetest.cpp
events/evthandler.cpp
events/evtsource.cpp
# End Source File\r
# Begin Source File\r
\r
+SOURCE=.\config\regconf.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
SOURCE=.\regex\regextest.cpp\r
# End Source File\r
# Begin Source File\r
<File\r
RelativePath=".\thread\queue.cpp">\r
</File>\r
+ <File\r
+ RelativePath=".\config\regconf.cpp">\r
+ </File>\r
<File\r
RelativePath=".\regex\regextest.cpp">\r
</File>\r
RelativePath=".\thread\queue.cpp"\r
>\r
</File>\r
+ <File\r
+ RelativePath=".\config\regconf.cpp"\r
+ >\r
+ </File>\r
<File\r
RelativePath=".\regex\regextest.cpp"\r
>\r
Name="VCCLCompilerTool"\r
AdditionalOptions="/MP"\r
Optimization="0"\r
- AdditionalIncludeDirectories=".\..\lib\vc_lib\mswud;.\..\include;F:\cppunit\include;."\r
+ AdditionalIncludeDirectories=".\..\lib\vc_lib\mswud;.\..\include;.;F:\cppunit\include"\r
PreprocessorDefinitions="WIN32;_DEBUG;__WXMSW__;_UNICODE;_CONSOLE;wxUSE_GUI=0"\r
ExceptionHandling="1"\r
BasicRuntimeChecks="3"\r
RelativePath=".\thread\queue.cpp"\r
>\r
</File>\r
+ <File\r
+ RelativePath=".\config\regconf.cpp"\r
+ >\r
+ </File>\r
<File\r
RelativePath=".\regex\regextest.cpp"\r
>\r
<?xml version="1.0" encoding="Windows-1252"?>\r
-<!--\r
-\r
- This project was generated by\r
- Bakefile 0.2.8 (http://www.bakefile.org)\r
- Do not modify, all changes will be overwritten!\r
-\r
--->\r
<VisualStudioProject\r
ProjectType="Visual C++"\r
- Version="9.00"\r
+ Version="9,00"\r
Name="test_gui"\r
ProjectGUID="{9BB295D9-A6AA-510D-AA0D-9375B5D91025}"\r
+ TargetFrameworkVersion="0"\r
>\r
<Platforms>\r
<Platform\r
/>\r
</Platforms>\r
<ToolFiles>\r
- \r
</ToolFiles>\r
<Configurations>\r
<Configuration\r
Name="VCCLCompilerTool"\r
AdditionalOptions="/MP"\r
Optimization="0"\r
- AdditionalIncludeDirectories=".\..\lib\vc_lib\mswud;.\..\include;.;.\..\samples"\r
+ AdditionalIncludeDirectories=".\..\lib\vc_lib\mswud;.\..\include;.;.\..\samples;f:\cppunit\include"\r
PreprocessorDefinitions="WIN32;_DEBUG;__WXMSW__;_UNICODE;NOPCH;_CONSOLE"\r
ExceptionHandling="1"\r
BasicRuntimeChecks="3"\r
OutputFile="vc_mswud\test_gui.exe"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
- AdditionalLibraryDirectories=".\..\lib\vc_lib"\r
+ AdditionalLibraryDirectories=".\..\lib\vc_lib;f:\cppunit\lib"\r
GenerateManifest="true"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile="vc_mswud\test_gui.pdb"\r
/>\r
<Tool\r
Name="VCBscMakeTool"\r
- OutputFile="vc_mswud\test_vc9_test_gui.bsc"\r
SuppressStartupBanner="true"\r
+ OutputFile="vc_mswud\test_vc9_test_gui.bsc"\r
/>\r
<Tool\r
Name="VCFxCopTool"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile="vc_mswu\test_gui.pdb"\r
SubSystem="1"\r
- TargetMachine="1"\r
OptimizeReferences="2"\r
EnableCOMDATFolding="2"\r
+ TargetMachine="1"\r
/>\r
<Tool\r
Name="VCALinkTool"\r
/>\r
<Tool\r
Name="VCBscMakeTool"\r
- OutputFile="vc_mswu\test_vc9_test_gui.bsc"\r
SuppressStartupBanner="true"\r
+ OutputFile="vc_mswu\test_vc9_test_gui.bsc"\r
/>\r
<Tool\r
Name="VCFxCopTool"\r
/>\r
<Tool\r
Name="VCBscMakeTool"\r
- OutputFile="vc_mswunivud\test_vc9_test_gui.bsc"\r
SuppressStartupBanner="true"\r
+ OutputFile="vc_mswunivud\test_vc9_test_gui.bsc"\r
/>\r
<Tool\r
Name="VCFxCopTool"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile="vc_mswunivu\test_gui.pdb"\r
SubSystem="1"\r
- TargetMachine="1"\r
OptimizeReferences="2"\r
EnableCOMDATFolding="2"\r
+ TargetMachine="1"\r
/>\r
<Tool\r
Name="VCALinkTool"\r
/>\r
<Tool\r
Name="VCBscMakeTool"\r
- OutputFile="vc_mswunivu\test_vc9_test_gui.bsc"\r
SuppressStartupBanner="true"\r
+ OutputFile="vc_mswunivu\test_vc9_test_gui.bsc"\r
/>\r
<Tool\r
Name="VCFxCopTool"\r
/>\r
<Tool\r
Name="VCBscMakeTool"\r
- OutputFile="vc_mswuddll\test_vc9_test_gui.bsc"\r
SuppressStartupBanner="true"\r
+ OutputFile="vc_mswuddll\test_vc9_test_gui.bsc"\r
/>\r
<Tool\r
Name="VCFxCopTool"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile="vc_mswudll\test_gui.pdb"\r
SubSystem="1"\r
- TargetMachine="1"\r
OptimizeReferences="2"\r
EnableCOMDATFolding="2"\r
+ TargetMachine="1"\r
/>\r
<Tool\r
Name="VCALinkTool"\r
/>\r
<Tool\r
Name="VCBscMakeTool"\r
- OutputFile="vc_mswudll\test_vc9_test_gui.bsc"\r
SuppressStartupBanner="true"\r
+ OutputFile="vc_mswudll\test_vc9_test_gui.bsc"\r
/>\r
<Tool\r
Name="VCFxCopTool"\r
/>\r
<Tool\r
Name="VCBscMakeTool"\r
- OutputFile="vc_mswunivuddll\test_vc9_test_gui.bsc"\r
SuppressStartupBanner="true"\r
+ OutputFile="vc_mswunivuddll\test_vc9_test_gui.bsc"\r
/>\r
<Tool\r
Name="VCFxCopTool"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile="vc_mswunivudll\test_gui.pdb"\r
SubSystem="1"\r
- TargetMachine="1"\r
OptimizeReferences="2"\r
EnableCOMDATFolding="2"\r
+ TargetMachine="1"\r
/>\r
<Tool\r
Name="VCALinkTool"\r
/>\r
<Tool\r
Name="VCBscMakeTool"\r
- OutputFile="vc_mswunivudll\test_vc9_test_gui.bsc"\r
SuppressStartupBanner="true"\r
+ OutputFile="vc_mswunivudll\test_vc9_test_gui.bsc"\r
/>\r
<Tool\r
Name="VCFxCopTool"\r
</Configuration>\r
</Configurations>\r
<References>\r
- \r
</References>\r
<Files>\r
<Filter\r
</Filter>\r
</Files>\r
<Globals>\r
- \r
</Globals>\r
</VisualStudioProject>\r
-\r