75 lines
3.0 KiB
Diff
75 lines
3.0 KiB
Diff
commit 28151ea72bcdd826a2d3a3f9109a073e90962169
|
|
Author: Richard Hughes <richard@hughsie.com>
|
|
Date: Thu Apr 9 11:23:18 2009 +0100
|
|
|
|
bugfix: correct the logic for pk_client_set_synchronous so we can set this false without returning in the duplicate check
|
|
|
|
diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
|
|
index c293677..f4294e0 100644
|
|
--- a/lib/packagekit-glib/pk-client.c
|
|
+++ b/lib/packagekit-glib/pk-client.c
|
|
@@ -383,9 +383,10 @@ pk_client_set_synchronous (PkClient *client, gboolean synchronous, GError **erro
|
|
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
|
|
|
|
/* are we doing this without any need? */
|
|
- if (client->priv->synchronous) {
|
|
+ if ((client->priv->synchronous && synchronous) ||
|
|
+ (!client->priv->synchronous && !synchronous)) {
|
|
if (error != NULL)
|
|
- *error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "already set synchronous!");
|
|
+ *error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "already synchronous : %i!", synchronous);
|
|
return FALSE;
|
|
}
|
|
|
|
@@ -4732,13 +4733,33 @@ pk_client_test (EggTest *test)
|
|
g_free (file);
|
|
|
|
/************************************************************/
|
|
- egg_test_title (test, "get client, then unref");
|
|
+ egg_test_title (test, "get client");
|
|
client = pk_client_new ();
|
|
+ egg_test_assert (test, client != NULL);
|
|
+
|
|
+ /************************************************************/
|
|
+ egg_test_title (test, "set non synchronous (fail)");
|
|
+ ret = pk_client_set_synchronous (client, FALSE, NULL);
|
|
+ egg_test_assert (test, !ret);
|
|
+
|
|
+ /************************************************************/
|
|
+ egg_test_title (test, "set synchronous (pass)");
|
|
+ ret = pk_client_set_synchronous (client, TRUE, NULL);
|
|
+ egg_test_assert (test, ret);
|
|
+
|
|
+ /************************************************************/
|
|
+ egg_test_title (test, "set synchronous again (fail)");
|
|
+ ret = pk_client_set_synchronous (client, TRUE, NULL);
|
|
+ egg_test_assert (test, !ret);
|
|
+
|
|
+ /************************************************************/
|
|
+ egg_test_title (test, "set non synchronous (pass)");
|
|
+ ret = pk_client_set_synchronous (client, FALSE, NULL);
|
|
+ egg_test_assert (test, ret);
|
|
g_object_unref (client);
|
|
- egg_test_success (test, NULL);
|
|
|
|
/************************************************************/
|
|
- egg_test_title (test, "get client");
|
|
+ egg_test_title (test, "get new client");
|
|
client = pk_client_new ();
|
|
egg_test_assert (test, client != NULL);
|
|
|
|
@@ -4751,8 +4772,12 @@ pk_client_test (EggTest *test)
|
|
g_signal_connect (client, "finished",
|
|
G_CALLBACK (pk_client_test_finished_cb), test);
|
|
|
|
+ /************************************************************/
|
|
+ egg_test_title (test, "set synchronous after reset (pass)");
|
|
+ ret = pk_client_set_synchronous (client, TRUE, NULL);
|
|
+ egg_test_assert (test, ret);
|
|
+
|
|
/* run the method */
|
|
- pk_client_set_synchronous (client, TRUE, NULL);
|
|
ret = pk_client_search_name (client, PK_FILTER_ENUM_NONE, "power", NULL);
|
|
|
|
/************************************************************/
|