Changeset - 8891166382bb
[Not reviewed]
0 3 0
Vitaly Takmazov - 8 years ago 2017-01-19 12:43:21
vitalyster@gmail.com
libpurple: read boolean values from config as bool. Fixes #166 and #177
3 files changed with 16 insertions and 3 deletions:
0 comments (0 inline, 0 general)
backends/libpurple/main.cpp
Show inline comments
 
@@ -278,7 +278,7 @@ class SpectrumNetworkPlugin : public NetworkPlugin {
 
					found = true;
 
					switch (type) {
 
						case PURPLE_PREF_BOOLEAN:
 
							purple_account_set_bool_wrapped(account, strippedKey.c_str(), fromString<bool>(keyItem.second.as<std::string>()));
 
							purple_account_set_bool_wrapped(account, strippedKey.c_str(), keyItem.second.as<bool>());
 
							break;
 

	
 
						case PURPLE_PREF_INT:
libtransport/Config.cpp
Show inline comments
 
@@ -222,7 +222,7 @@ bool Config::load(std::istream &ifs, boost::program_options::options_description
 
				if (opt.value[0] == "true" || opt.value[0] == "1") {
 
					m_unregistered[opt.string_key] = variable_value(true, false);
 
				}
 
				else if (opt.value[0] == "true" || opt.value[0] == "1") {
 
				else if (opt.value[0] == "false" || opt.value[0] == "0") {
 
					m_unregistered[opt.string_key] = variable_value(false, false);
 
				}
 
				else {
tests/libtransport/config.cpp
Show inline comments
 
@@ -17,6 +17,7 @@ class ConfigTest : public CPPUNIT_NS :: TestFixture{
 
	CPPUNIT_TEST_SUITE(ConfigTest);
 
	CPPUNIT_TEST(setStringTwice);
 
	CPPUNIT_TEST(setUnknownBool);
 
	CPPUNIT_TEST(enumerateConfigSection);
 
	CPPUNIT_TEST(updateBackendConfig);
 
	CPPUNIT_TEST(updateBackendConfigJIDEscaping);
 
	CPPUNIT_TEST(unregisteredList);
 
@@ -44,9 +45,21 @@ class ConfigTest : public CPPUNIT_NS :: TestFixture{
 
	void setUnknownBool() {
 
		char *argv[3] = {"binary", "--service.jids=localhost", NULL};
 
		Config cfg(2, argv);
 
		std::istringstream ifs("service.irc_send_pass = 1\n");
 
		std::istringstream ifs("service.irc_send_pass = 1\npurple.group-chat-open=0\n");
 
		cfg.load(ifs);
 
		CPPUNIT_ASSERT_EQUAL(true, CONFIG_BOOL_DEFAULTED(&cfg, "service.irc_send_pass", false));
 
		CPPUNIT_ASSERT_EQUAL(false, CONFIG_BOOL_DEFAULTED(&cfg, "purple.group-chat-open", true));
 
	}
 

	
 
	void enumerateConfigSection() {
 
		char *argv[3] = {"binary", "--service.jids=localhost", NULL};
 
		Config cfg(2, argv);
 
		std::istringstream ifs("purple.irc_send_pass=1\npurple.group-chat-open=false\npurple.test=passed");
 
		cfg.load(ifs);
 
		Config::SectionValuesCont purpleConfigValues = cfg.getSectionValues("purple");
 
		CPPUNIT_ASSERT_EQUAL(true, purpleConfigValues["purple.irc_send_pass"].as<bool>());
 
		CPPUNIT_ASSERT_EQUAL(false, purpleConfigValues["purple.group-chat-open"].as<bool>());
 
		CPPUNIT_ASSERT_EQUAL(std::string("passed"), purpleConfigValues["purple.test"].as<std::string>());
 
	}
 

	
 
	void updateBackendConfig() {
0 comments (0 inline, 0 general)