wxWidgets/tests/config/config.cpp
Vadim Zeitlin 3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00

213 lines
6.2 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: tests/config/config.cpp
// Purpose: wxConfig unit test
// Author: Marcin Wojdyr
// Created: 2007-07-07
// Copyright: (c) 2007 Marcin Wojdyr
///////////////////////////////////////////////////////////////////////////////
// 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
// ----------------------------------------------------------------------------
#include "testprec.h"
#if wxUSE_CONFIG
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif // WX_PRECOMP
#include "wx/config.h"
#include "wx/colour.h"
// --------------------------------------------------------------------------
// test class
// --------------------------------------------------------------------------
class ConfigTestCase : public CppUnit::TestCase
{
public:
ConfigTestCase() {}
private:
CPPUNIT_TEST_SUITE( ConfigTestCase );
CPPUNIT_TEST( ReadWriteLocalTest );
CPPUNIT_TEST( RecordingDefaultsTest );
CPPUNIT_TEST_SUITE_END();
void ReadWriteLocalTest();
void RecordingDefaultsTest();
// return the number of values we (attempted to) read
int ReadValues(wxConfig *config, bool has_values);
DECLARE_NO_COPY_CLASS(ConfigTestCase)
};
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( ConfigTestCase );
// also include in its own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ConfigTestCase, "ConfigTestCase" );
void ConfigTestCase::ReadWriteLocalTest()
{
wxString app = wxT("wxConfigTestCase");
wxString vendor = wxT("wxWidgets");
wxConfig *config = new wxConfig(app, vendor, wxT(""), wxT(""),
wxCONFIG_USE_LOCAL_FILE);
config->DeleteAll();
config->Write(wxT("string1"), wxT("abc"));
config->Write(wxT("string2"), wxString(wxT("def")));
config->Write(wxT("int1"), 123);
config->Write(wxString(wxT("long1")), 234L);
config->Write(wxT("double1"), 345.67);
config->Write(wxT("bool1"), true);
#ifdef wxHAS_CONFIG_TEMPLATE_RW
config->Write(wxT("color1"), wxColour(11,22,33,44));
#endif // wxHAS_CONFIG_TEMPLATE_RW
config->Flush();
delete config;
config = new wxConfig(app, vendor, wxT(""), wxT(""),
wxCONFIG_USE_LOCAL_FILE);
wxString string1 = config->Read(wxT("string1"));
CPPUNIT_ASSERT_EQUAL( "abc", string1 );
string1 = config->Read(wxT("string1"), wxT("defaultvalue"));
CPPUNIT_ASSERT_EQUAL( "abc", string1 );
wxString string2;
bool r = config->Read(wxT("string2"), &string2);
CPPUNIT_ASSERT( r );
CPPUNIT_ASSERT_EQUAL( "def", string2 );
r = config->Read(wxT("string2"), &string2, wxT("defaultvalue"));
CPPUNIT_ASSERT( r );
CPPUNIT_ASSERT_EQUAL( "def", string2 );
int int1 = config->Read(wxT("int1"), 5);
CPPUNIT_ASSERT_EQUAL( 123, int1 );
long long1;
r = config->Read(wxT("long1"), &long1);
CPPUNIT_ASSERT( r );
CPPUNIT_ASSERT_EQUAL( 234L, long1 );
CPPUNIT_ASSERT( config->ReadLong(wxT("long1"), 0) == 234 );
double double1;
r = config->Read(wxT("double1"), &double1);
CPPUNIT_ASSERT( r );
CPPUNIT_ASSERT_EQUAL( 345.67, double1 );
CPPUNIT_ASSERT( config->ReadDouble(wxT("double1"), 0) == double1 );
bool bool1;
r = config->Read(wxT("foo"), &bool1); // there is no "foo" key
CPPUNIT_ASSERT( !r );
r = config->Read(wxT("bool1"), &bool1);
CPPUNIT_ASSERT( r );
CPPUNIT_ASSERT_EQUAL( true, bool1 );
CPPUNIT_ASSERT( config->ReadBool(wxT("bool1"), false) == bool1 );
#ifdef wxHAS_CONFIG_TEMPLATE_RW
wxColour color1;
r = config->Read(wxT("color1"), &color1);
CPPUNIT_ASSERT( r );
CPPUNIT_ASSERT( color1 == wxColour(11,22,33,44) );
CPPUNIT_ASSERT( config->ReadObject(wxT("color1"), wxNullColour) == color1 );
#endif // wxHAS_CONFIG_TEMPLATE_RW
config->DeleteAll();
delete config;
}
int ConfigTestCase::ReadValues(wxConfig *config, bool has_values)
{
int read = 0;
bool r;
wxString string1 = config->Read(wxT("string1"), wxT("abc"));
read++;
wxString string2 = config->Read(wxT("string2"), wxString(wxT("def")));
read++;
wxString string3;
r = config->Read(wxT("string3"), &string3, wxT("abc"));
CPPUNIT_ASSERT_EQUAL( has_values, r );
read++;
wxString string4;
r = config->Read(wxT("string4"), &string4, wxString(wxT("def")));
CPPUNIT_ASSERT_EQUAL( has_values, r );
read++;
int int1;
r = config->Read(wxT("int1"), &int1, 123);
CPPUNIT_ASSERT_EQUAL( has_values, r );
read++;
int int2 = config->Read(wxT("int2"), 1234);
CPPUNIT_ASSERT_EQUAL( int2, 1234 );
read++;
long long1;
r = config->Read(wxString(wxT("long1")), &long1, 234L);
CPPUNIT_ASSERT_EQUAL( has_values, r );
read++;
double double1;
r = config->Read(wxT("double1"), &double1, 345.67);
CPPUNIT_ASSERT_EQUAL( has_values, r );
read++;
bool bool1;
r = config->Read(wxT("bool1"), &bool1, true);
CPPUNIT_ASSERT_EQUAL( has_values, r );
read++;
#ifdef wxHAS_CONFIG_TEMPLATE_RW
wxColour color1;
r = config->Read(wxT("color1"), &color1, wxColour(11,22,33,44));
CPPUNIT_ASSERT_EQUAL( has_values, r );
read++;
#endif // wxHAS_CONFIG_TEMPLATE_RW
return read;
}
void ConfigTestCase::RecordingDefaultsTest()
{
wxString app = wxT("wxConfigTestCaseRD");
wxString vendor = wxT("wxWidgets");
wxConfig *config = new wxConfig(app, vendor, wxT(""), wxT(""),
wxCONFIG_USE_LOCAL_FILE);
config->DeleteAll();
config->SetRecordDefaults(false); // by default it is false
ReadValues(config, false);
CPPUNIT_ASSERT_EQUAL( 0, config->GetNumberOfEntries() );
config->SetRecordDefaults(true);
int read = ReadValues(config, false);
CPPUNIT_ASSERT_EQUAL( read, config->GetNumberOfEntries() );
ReadValues(config, true);
config->DeleteAll();
delete config;
}
#endif //wxUSE_CONFIG