Adds a test for defaults and fixes bug relating to it

master
Jonathan Hodgson 3 years ago
parent e42705280c
commit 8bed39700e
  1. 4
      src/config.c
  2. 42
      tests/config.test.c

@ -37,7 +37,7 @@ Config* configDefaults(){
conf->database = "proxy.sqlite"; conf->database = "proxy.sqlite";
conf->port = 8080; conf->port = 8080;
conf->localConfig = "proxy.conf"; conf->localConfig = "proxy.conf";
//conf->userConfig = getDefaultUserConfigLoc(); conf->userConfig = getDefaultUserConfigLoc();
return conf; return conf;
} }
@ -58,7 +58,7 @@ char* getDefaultUserConfigLoc(){
strcpy( configFile, configDir ); strcpy( configFile, configDir );
strcat( configFile, configDir ); strcat( configFile, "/proxy.conf" );
return strdup(configFile); return strdup(configFile);
} }

@ -6,7 +6,7 @@
/* /*
* Ensures that path_exists returns true on current working dir (should to exist) * Ensures that path_exists returns true on current working dir (should to exist)
*/ */
MunitResult path_that_exists(const MunitParameter params[], MunitResult pathThatExists(const MunitParameter params[],
void* user_data_or_fixture){ void* user_data_or_fixture){
char cwd[500] = {'\0'}; char cwd[500] = {'\0'};
getcwd(cwd,500); getcwd(cwd,500);
@ -14,7 +14,7 @@ MunitResult path_that_exists(const MunitParameter params[],
return MUNIT_OK; return MUNIT_OK;
} }
MunitResult path_that_doesnt_exist(const MunitParameter params[], MunitResult pathThatDoesntExist(const MunitParameter params[],
void* user_data_or_fixture){ void* user_data_or_fixture){
char cwd[500] = {'\0'}; char cwd[500] = {'\0'};
getcwd(cwd,500); getcwd(cwd,500);
@ -23,14 +23,14 @@ MunitResult path_that_doesnt_exist(const MunitParameter params[],
return MUNIT_OK; return MUNIT_OK;
} }
MunitResult tilde_resolves_correctly(const MunitParameter params[], MunitResult tildeResolvesCorrectly(const MunitParameter params[],
void* user_data_or_fixture){ void* user_data_or_fixture){
munit_assert_string_equal( getenv("HOME"), resolveTilde("~") ); munit_assert_string_equal( getenv("HOME"), resolveTilde("~") );
return MUNIT_OK; return MUNIT_OK;
} }
MunitResult check_config_dir_with_xdg(const MunitParameter params[], MunitResult checkConfigDirWithXdg(const MunitParameter params[],
void* user_data_or_fixture){ void* user_data_or_fixture){
char directory[] = "/testing/xdg/directory"; char directory[] = "/testing/xdg/directory";
setenv( "XDG_CONFIG_HOME",directory, 1 ); setenv( "XDG_CONFIG_HOME",directory, 1 );
@ -38,7 +38,7 @@ MunitResult check_config_dir_with_xdg(const MunitParameter params[],
return MUNIT_OK; return MUNIT_OK;
} }
MunitResult check_config_dir_without_xdg(const MunitParameter params[], MunitResult checkConfigDirWithoutXdg(const MunitParameter params[],
void* user_data_or_fixture){ void* user_data_or_fixture){
unsetenv( "XDG_CONFIG_HOME" ); unsetenv( "XDG_CONFIG_HOME" );
char dir[500] = {'\0'}; char dir[500] = {'\0'};
@ -48,11 +48,25 @@ MunitResult check_config_dir_without_xdg(const MunitParameter params[],
return MUNIT_OK; return MUNIT_OK;
} }
MunitResult checkDefaults(const MunitParameter params[],
void* user_data_or_fixture){
char directory[] = "/testing/xdg/directory";
char file[] = "/testing/xdg/directory/proxy.conf";
setenv( "XDG_CONFIG_HOME",directory, 1 );
Config *conf = configDefaults();
munit_assert_string_equal(conf->database, "proxy.sqlite");
munit_assert_int(conf->port, ==, 8080);
munit_assert_string_equal(conf->localConfig, "proxy.conf");
munit_assert_string_equal(conf->userConfig, file);
return MUNIT_OK;
}
MunitTest tests[] = { MunitTest tests[] = {
{ {
"/path_exists/yes", /* name */ "/path_exists/yes", /* name */
path_that_exists, /* test */ pathThatExists, /* test */
NULL, /* setup */ NULL, /* setup */
NULL, /* tear_down */ NULL, /* tear_down */
MUNIT_TEST_OPTION_NONE, /* options */ MUNIT_TEST_OPTION_NONE, /* options */
@ -60,7 +74,7 @@ MunitTest tests[] = {
}, },
{ {
"/path_exists/no", /* name */ "/path_exists/no", /* name */
path_that_doesnt_exist, /* test */ pathThatDoesntExist, /* test */
NULL, /* setup */ NULL, /* setup */
NULL, /* tear_down */ NULL, /* tear_down */
MUNIT_TEST_OPTION_NONE, /* options */ MUNIT_TEST_OPTION_NONE, /* options */
@ -68,7 +82,7 @@ MunitTest tests[] = {
}, },
{ {
"/TildeResolves", /* name */ "/TildeResolves", /* name */
tilde_resolves_correctly, /* test */ tildeResolvesCorrectly, /* test */
NULL, /* setup */ NULL, /* setup */
NULL, /* tear_down */ NULL, /* tear_down */
MUNIT_TEST_OPTION_NONE, /* options */ MUNIT_TEST_OPTION_NONE, /* options */
@ -76,7 +90,7 @@ MunitTest tests[] = {
}, },
{ {
"/ConfigDir/WithXDG", /* name */ "/ConfigDir/WithXDG", /* name */
check_config_dir_with_xdg, /* test */ checkConfigDirWithoutXdg, /* test */
NULL, /* setup */ NULL, /* setup */
NULL, /* tear_down */ NULL, /* tear_down */
MUNIT_TEST_OPTION_NONE, /* options */ MUNIT_TEST_OPTION_NONE, /* options */
@ -84,7 +98,15 @@ MunitTest tests[] = {
}, },
{ {
"/ConfigDir/WithoutXDG", /* name */ "/ConfigDir/WithoutXDG", /* name */
check_config_dir_without_xdg, /* test */ checkConfigDirWithoutXdg, /* test */
NULL, /* setup */
NULL, /* tear_down */
MUNIT_TEST_OPTION_NONE, /* options */
NULL /* parameters */
},
{
"/ConfigDir/Defaults", /* name */
checkDefaults, /* test */
NULL, /* setup */ NULL, /* setup */
NULL, /* tear_down */ NULL, /* tear_down */
MUNIT_TEST_OPTION_NONE, /* options */ MUNIT_TEST_OPTION_NONE, /* options */

Loading…
Cancel
Save