settings = g_settings_new ("org.gtk.test");
g_object_get (settings,
- "schema", &str,
+ "schema-id", &str,
"backend", &b,
"path", &path,
"has-unapplied", &has_unapplied,
g_settings_set (child, "test-byte", "y", 42);
+ /* make sure the child was delayed too */
g_settings_get (base, "test-byte", "y", &byte);
- g_assert_cmpuint (byte, ==, 42);
+ g_assert_cmpuint (byte, ==, 36);
g_object_unref (child);
g_object_unref (settings);
gsize len;
gboolean called = FALSE;
- g_remove ("gsettings.store");
+ g_remove ("keyfile/gsettings.store");
+ g_rmdir ("keyfile");
- kf_backend = g_keyfile_settings_backend_new ("gsettings.store", "/", "root");
+ kf_backend = g_keyfile_settings_backend_new ("keyfile/gsettings.store", "/", "root");
settings = g_settings_new_with_backend ("org.gtk.test", kf_backend);
g_object_unref (kf_backend);
g_settings_apply (settings);
keyfile = g_key_file_new ();
- g_assert (g_key_file_load_from_file (keyfile, "gsettings.store", 0, NULL));
+ g_assert (g_key_file_load_from_file (keyfile, "keyfile/gsettings.store", 0, NULL));
str = g_key_file_get_string (keyfile, "tests", "greeting", NULL);
g_assert_cmpstr (str, ==, "'see if this works'");
str = g_key_file_get_string (keyfile, "tests", "farewell", NULL);
g_assert_cmpstr (str, ==, "'cheerio'");
g_free (str);
+ g_key_file_free (keyfile);
+
+ g_settings_reset (settings, "greeting");
+ g_settings_apply (settings);
+ keyfile = g_key_file_new ();
+ g_assert (g_key_file_load_from_file (keyfile, "keyfile/gsettings.store", 0, NULL));
+ str = g_key_file_get_string (keyfile, "tests", "greeting", NULL);
+ g_assert (str == NULL);
+
+ called = FALSE;
g_signal_connect (settings, "changed::greeting", G_CALLBACK (key_changed_cb), &called);
- g_key_file_set_string (keyfile, "tests", "greeting", "howdy");
+ g_key_file_set_string (keyfile, "tests", "greeting", "'howdy'");
data = g_key_file_to_data (keyfile, &len, NULL);
- g_file_set_contents ("gsettings.store", data, len, &error);
+ g_file_set_contents ("keyfile/gsettings.store", data, len, &error);
g_assert_no_error (error);
while (!called)
g_main_context_iteration (NULL, FALSE);
+ g_signal_handlers_disconnect_by_func (settings, key_changed_cb, &called);
+
+ str = g_settings_get_string (settings, "greeting");
+ g_assert_cmpstr (str, ==, "howdy");
+ g_free (str);
+
+ g_settings_set (settings, "farewell", "s", "cheerio");
+
+ called = FALSE;
+ g_signal_connect (settings, "writable-changed::greeting", G_CALLBACK (key_changed_cb), &called);
+
+ g_chmod ("keyfile", 0500);
+ while (!called)
+ g_main_context_iteration (NULL, FALSE);
+ g_signal_handlers_disconnect_by_func (settings, key_changed_cb, &called);
+
+ writable = g_settings_is_writable (settings, "greeting");
+ g_assert (!writable);
g_key_file_free (keyfile);
g_free (data);
g_object_unref (settings);
+ g_chmod ("keyfile", 0777);
}
/* Test that getting child schemas works
backend = g_null_settings_backend_new ();
settings = g_settings_new_with_backend_and_path ("org.gtk.test", backend, "/tests/");
- g_object_get (settings, "schema", &str, NULL);
+ g_object_get (settings, "schema-id", &str, NULL);
g_assert_cmpstr (str, ==, "org.gtk.test");
g_free (str);
writable = g_settings_is_writable (settings, "greeting");
g_assert (!writable);
+ g_settings_reset (settings, "greeting");
+
+ g_settings_delay (settings);
+ g_settings_set (settings, "greeting", "s", "goodbye world");
+ g_settings_apply (settings);
+ g_settings_get (settings, "greeting", "s", &str);
+ g_assert_cmpstr (str, ==, "Hello, earthlings");
+ g_free (str);
+
g_object_unref (settings);
g_object_unref (backend);
}