mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-09 20:35:49 +01:00
Add test case for key removal.
2005-02-01 Matthias Clasen <mclasen@redhat.com> * tests/keyfile-test.c (test_key_remove): Add test case for key removal. * glib/gkeyfile.c (g_key_file_remove_key): Actually remove the key from the list of pairs. (#165980, David Hoover)
This commit is contained in:
parent
8625601eab
commit
4a2773ee7b
@ -1,5 +1,11 @@
|
|||||||
2005-02-01 Matthias Clasen <mclasen@redhat.com>
|
2005-02-01 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* tests/keyfile-test.c (test_key_remove): Add test case for
|
||||||
|
key removal.
|
||||||
|
|
||||||
|
* glib/gkeyfile.c (g_key_file_remove_key): Actually remove
|
||||||
|
the key from the list of pairs. (#165980, David Hoover)
|
||||||
|
|
||||||
* glib/gkeyfile.c: Doc clarifications. (#165907, Vincent Untz)
|
* glib/gkeyfile.c: Doc clarifications. (#165907, Vincent Untz)
|
||||||
|
|
||||||
* tests/keyfile-test.c (test_group_remove): Add test case for
|
* tests/keyfile-test.c (test_group_remove): Add test case for
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
2005-02-01 Matthias Clasen <mclasen@redhat.com>
|
2005-02-01 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* tests/keyfile-test.c (test_key_remove): Add test case for
|
||||||
|
key removal.
|
||||||
|
|
||||||
|
* glib/gkeyfile.c (g_key_file_remove_key): Actually remove
|
||||||
|
the key from the list of pairs. (#165980, David Hoover)
|
||||||
|
|
||||||
* glib/gkeyfile.c: Doc clarifications. (#165907, Vincent Untz)
|
* glib/gkeyfile.c: Doc clarifications. (#165907, Vincent Untz)
|
||||||
|
|
||||||
* tests/keyfile-test.c (test_group_remove): Add test case for
|
* tests/keyfile-test.c (test_group_remove): Add test case for
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
2005-02-01 Matthias Clasen <mclasen@redhat.com>
|
2005-02-01 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* tests/keyfile-test.c (test_key_remove): Add test case for
|
||||||
|
key removal.
|
||||||
|
|
||||||
|
* glib/gkeyfile.c (g_key_file_remove_key): Actually remove
|
||||||
|
the key from the list of pairs. (#165980, David Hoover)
|
||||||
|
|
||||||
* glib/gkeyfile.c: Doc clarifications. (#165907, Vincent Untz)
|
* glib/gkeyfile.c: Doc clarifications. (#165907, Vincent Untz)
|
||||||
|
|
||||||
* tests/keyfile-test.c (test_group_remove): Add test case for
|
* tests/keyfile-test.c (test_group_remove): Add test case for
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
2005-02-01 Matthias Clasen <mclasen@redhat.com>
|
2005-02-01 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* tests/keyfile-test.c (test_key_remove): Add test case for
|
||||||
|
key removal.
|
||||||
|
|
||||||
|
* glib/gkeyfile.c (g_key_file_remove_key): Actually remove
|
||||||
|
the key from the list of pairs. (#165980, David Hoover)
|
||||||
|
|
||||||
* glib/gkeyfile.c: Doc clarifications. (#165907, Vincent Untz)
|
* glib/gkeyfile.c: Doc clarifications. (#165907, Vincent Untz)
|
||||||
|
|
||||||
* tests/keyfile-test.c (test_group_remove): Add test case for
|
* tests/keyfile-test.c (test_group_remove): Add test case for
|
||||||
|
@ -2765,11 +2765,14 @@ g_key_file_remove_group (GKeyFile *key_file,
|
|||||||
group_node = g_key_file_lookup_group_node (key_file, group_name);
|
group_node = g_key_file_lookup_group_node (key_file, group_name);
|
||||||
|
|
||||||
if (!group_node)
|
if (!group_node)
|
||||||
|
{
|
||||||
g_set_error (error, G_KEY_FILE_ERROR,
|
g_set_error (error, G_KEY_FILE_ERROR,
|
||||||
G_KEY_FILE_ERROR_GROUP_NOT_FOUND,
|
G_KEY_FILE_ERROR_GROUP_NOT_FOUND,
|
||||||
_("Key file does not have group '%s'"),
|
_("Key file does not have group '%s'"),
|
||||||
group_name);
|
group_name);
|
||||||
else
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
g_key_file_remove_group_node (key_file, group_node);
|
g_key_file_remove_group_node (key_file, group_node);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2827,7 +2830,6 @@ g_key_file_remove_key (GKeyFile *key_file,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
group->key_value_pairs = g_list_remove (group->key_value_pairs, key_file);
|
|
||||||
pair = g_key_file_lookup_key_value_pair (key_file, group, key);
|
pair = g_key_file_lookup_key_value_pair (key_file, group, key);
|
||||||
|
|
||||||
if (!pair)
|
if (!pair)
|
||||||
@ -2839,9 +2841,10 @@ g_key_file_remove_key (GKeyFile *key_file,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_hash_table_remove (group->lookup_map, pair->key);
|
|
||||||
|
|
||||||
key_file->approximate_size -= strlen (pair->key) + strlen (pair->value) + 2;
|
key_file->approximate_size -= strlen (pair->key) + strlen (pair->value) + 2;
|
||||||
|
|
||||||
|
group->key_value_pairs = g_list_remove (group->key_value_pairs, pair);
|
||||||
|
g_hash_table_remove (group->lookup_map, pair->key);
|
||||||
g_key_file_key_value_pair_free (pair);
|
g_key_file_key_value_pair_free (pair);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -568,71 +568,6 @@ test_integer (void)
|
|||||||
g_key_file_free (keyfile);
|
g_key_file_free (keyfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* http://bugzilla.gnome.org/show_bug.cgi?id=165887 */
|
|
||||||
static void
|
|
||||||
test_group_remove (void)
|
|
||||||
{
|
|
||||||
GKeyFile *keyfile;
|
|
||||||
gchar **names;
|
|
||||||
gsize len;
|
|
||||||
GError *error = NULL;
|
|
||||||
|
|
||||||
const gchar *data =
|
|
||||||
"[group1]\n"
|
|
||||||
"[group2]\n"
|
|
||||||
"key1=bla\n"
|
|
||||||
"key2=bla\n"
|
|
||||||
"[group3]\n"
|
|
||||||
"key1=bla\n"
|
|
||||||
"key2=bla\n";
|
|
||||||
|
|
||||||
keyfile = load_data (data, 0);
|
|
||||||
|
|
||||||
names = g_key_file_get_groups (keyfile, &len);
|
|
||||||
if (names == NULL)
|
|
||||||
{
|
|
||||||
g_print ("Error listing groups\n");
|
|
||||||
exit (1);
|
|
||||||
}
|
|
||||||
|
|
||||||
check_length ("groups", g_strv_length (names), len, 3);
|
|
||||||
check_name ("group name", names[0], "group1", 0);
|
|
||||||
check_name ("group name", names[1], "group2", 1);
|
|
||||||
check_name ("group name", names[2], "group3", 2);
|
|
||||||
|
|
||||||
g_key_file_remove_group (keyfile, "group1", &error);
|
|
||||||
check_no_error (&error);
|
|
||||||
|
|
||||||
names = g_key_file_get_groups (keyfile, &len);
|
|
||||||
if (names == NULL)
|
|
||||||
{
|
|
||||||
g_print ("Error listing groups\n");
|
|
||||||
exit (1);
|
|
||||||
}
|
|
||||||
|
|
||||||
check_length ("groups", g_strv_length (names), len, 2);
|
|
||||||
check_name ("group name", names[0], "group2", 0);
|
|
||||||
check_name ("group name", names[1], "group3", 1);
|
|
||||||
|
|
||||||
g_key_file_remove_group (keyfile, "group2", &error);
|
|
||||||
check_no_error (&error);
|
|
||||||
|
|
||||||
names = g_key_file_get_groups (keyfile, &len);
|
|
||||||
if (names == NULL)
|
|
||||||
{
|
|
||||||
g_print ("Error listing groups\n");
|
|
||||||
exit (1);
|
|
||||||
}
|
|
||||||
|
|
||||||
check_length ("groups", g_strv_length (names), len, 1);
|
|
||||||
check_name ("group name", names[0], "group3", 0);
|
|
||||||
|
|
||||||
g_key_file_remove_group (keyfile, "no such group", &error);
|
|
||||||
check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND);
|
|
||||||
|
|
||||||
g_key_file_free (keyfile);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* check handling of translated strings */
|
/* check handling of translated strings */
|
||||||
static void
|
static void
|
||||||
test_locale_string (void)
|
test_locale_string (void)
|
||||||
@ -738,6 +673,105 @@ test_lists (void)
|
|||||||
g_key_file_free (keyfile);
|
g_key_file_free (keyfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* http://bugzilla.gnome.org/show_bug.cgi?id=165887 */
|
||||||
|
static void
|
||||||
|
test_group_remove (void)
|
||||||
|
{
|
||||||
|
GKeyFile *keyfile;
|
||||||
|
gchar **names;
|
||||||
|
gsize len;
|
||||||
|
GError *error = NULL;
|
||||||
|
|
||||||
|
const gchar *data =
|
||||||
|
"[group1]\n"
|
||||||
|
"[group2]\n"
|
||||||
|
"key1=bla\n"
|
||||||
|
"key2=bla\n"
|
||||||
|
"[group3]\n"
|
||||||
|
"key1=bla\n"
|
||||||
|
"key2=bla\n";
|
||||||
|
|
||||||
|
keyfile = load_data (data, 0);
|
||||||
|
|
||||||
|
names = g_key_file_get_groups (keyfile, &len);
|
||||||
|
if (names == NULL)
|
||||||
|
{
|
||||||
|
g_print ("Error listing groups\n");
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
check_length ("groups", g_strv_length (names), len, 3);
|
||||||
|
check_name ("group name", names[0], "group1", 0);
|
||||||
|
check_name ("group name", names[1], "group2", 1);
|
||||||
|
check_name ("group name", names[2], "group3", 2);
|
||||||
|
|
||||||
|
g_key_file_remove_group (keyfile, "group1", &error);
|
||||||
|
check_no_error (&error);
|
||||||
|
|
||||||
|
names = g_key_file_get_groups (keyfile, &len);
|
||||||
|
if (names == NULL)
|
||||||
|
{
|
||||||
|
g_print ("Error listing groups\n");
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
check_length ("groups", g_strv_length (names), len, 2);
|
||||||
|
check_name ("group name", names[0], "group2", 0);
|
||||||
|
check_name ("group name", names[1], "group3", 1);
|
||||||
|
|
||||||
|
g_key_file_remove_group (keyfile, "group2", &error);
|
||||||
|
check_no_error (&error);
|
||||||
|
|
||||||
|
names = g_key_file_get_groups (keyfile, &len);
|
||||||
|
if (names == NULL)
|
||||||
|
{
|
||||||
|
g_print ("Error listing groups\n");
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
check_length ("groups", g_strv_length (names), len, 1);
|
||||||
|
check_name ("group name", names[0], "group3", 0);
|
||||||
|
|
||||||
|
g_key_file_remove_group (keyfile, "no such group", &error);
|
||||||
|
check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND);
|
||||||
|
|
||||||
|
g_key_file_free (keyfile);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* http://bugzilla.gnome.org/show_bug.cgi?id=165980 */
|
||||||
|
static void
|
||||||
|
test_key_remove (void)
|
||||||
|
{
|
||||||
|
GKeyFile *keyfile;
|
||||||
|
gchar *value;
|
||||||
|
GError *error = NULL;
|
||||||
|
|
||||||
|
const gchar *data =
|
||||||
|
"[group1]\n"
|
||||||
|
"key1=bla\n"
|
||||||
|
"key2=bla\n";
|
||||||
|
|
||||||
|
keyfile = load_data (data, 0);
|
||||||
|
|
||||||
|
check_string_value (keyfile, "group1", "key1", "bla");
|
||||||
|
|
||||||
|
g_key_file_remove_key (keyfile, "group1", "key1", &error);
|
||||||
|
check_no_error (&error);
|
||||||
|
|
||||||
|
value = g_key_file_get_string (keyfile, "group1", "key1", &error);
|
||||||
|
check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_KEY_NOT_FOUND);
|
||||||
|
g_free (value);
|
||||||
|
|
||||||
|
g_key_file_remove_key (keyfile, "group1", "key1", &error);
|
||||||
|
check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_KEY_NOT_FOUND);
|
||||||
|
|
||||||
|
g_key_file_remove_key (keyfile, "no such group", "key1", &error);
|
||||||
|
check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND);
|
||||||
|
|
||||||
|
g_key_file_free (keyfile);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
@ -750,6 +784,7 @@ main (int argc, char *argv[])
|
|||||||
test_locale_string ();
|
test_locale_string ();
|
||||||
test_lists ();
|
test_lists ();
|
||||||
test_group_remove ();
|
test_group_remove ();
|
||||||
|
test_key_remove ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user