示例#1
0
void
pk_update_detail_test (EggTest *test)
{
	gboolean ret;
	PkUpdateDetailObj *obj;

	if (!egg_test_start (test, "PkUpdateDetailObj"))
		return;

	/************************************************************
	 ****************          IDENT           ******************
	 ************************************************************/

	/************************************************************/
	egg_test_title (test, "get an detail object");
	obj = pk_update_detail_obj_new ();
	egg_test_assert (test, obj != NULL);

	/************************************************************/
	egg_test_title (test, "test detail");
	ret = pk_update_detail_obj_free (obj);
	egg_test_assert (test, ret);

	egg_test_end (test);
}
示例#2
0
void
egg_test_transaction (EggTest *test)
{
	gboolean ret;
	PkTransactionObj *obj;

	if (!egg_test_start (test, "PkTransactionObj"))
		return;

	/************************************************************
	 ****************          IDENT           ******************
	 ************************************************************/

	/************************************************************/
	egg_test_title (test, "get an upgrade object");
	obj = pk_transaction_obj_new ();
	egg_test_assert (test, obj != NULL);

	/************************************************************/
	egg_test_title (test, "test upgrade");
	ret = pk_transaction_obj_free (obj);
	egg_test_assert (test, ret);

	egg_test_end (test);
}
示例#3
0
void
pk_console_test (gpointer user_data)
{
	EggTest *test = (EggTest *) user_data;
	gboolean ret;

	if (!egg_test_start (test, "PkConsole"))
		return;

	/************************************************************/
	egg_test_title (test, "get prompt 1");
	ret = pk_console_get_prompt ("press enter", TRUE);
	egg_test_assert (test, ret);

	/************************************************************/
	egg_test_title (test, "get prompt 2");
	ret = pk_console_get_prompt ("press enter", TRUE);
	egg_test_assert (test, ret);

	/************************************************************/
	egg_test_title (test, "get prompt 3");
	ret = pk_console_get_prompt ("press Y", TRUE);
	egg_test_assert (test, ret);

	/************************************************************/
	egg_test_title (test, "get prompt 3");
	ret = pk_console_get_prompt ("press N", TRUE);
	egg_test_assert (test, !ret);

	egg_test_end (test);
}
示例#4
0
void
pk_task_list_test (EggTest *test)
{
	PkConnection *connection;
	PkTaskList *tlist;
	PkClient *client;
	gboolean ret;
	GError *error = NULL;

	if (!egg_test_start (test, "PkTaskList"))
		return;

	/* check to see if there is a daemon running */
	connection = pk_connection_new ();
	ret = pk_connection_valid (connection);
	g_object_unref (connection);
	if (!ret) {
		egg_warning ("daemon is not running, skipping tests");
		goto out;
	}

	/************************************************************/
	egg_test_title (test, "get client");
	tlist = pk_task_list_new ();
	egg_test_assert (test, tlist != NULL);
	g_signal_connect (tlist, "finished",
			  G_CALLBACK (pk_task_list_test_finished_cb), test);

	/************************************************************/
	egg_test_title (test, "search for power");
	client = pk_client_new ();
	ret = pk_client_search_name (client, PK_FILTER_ENUM_NONE, "power", &error);
	if (!ret) {
		egg_test_failed (test, "failed: %s", error->message);
		g_error_free (error);
	}
	egg_test_loop_wait (test, 5000);
	egg_test_success (test, NULL);

	/************************************************************/
	egg_test_title (test, "we finished?");
	if (finished)
		egg_test_success (test, NULL);
	else
		egg_test_failed (test, "not finished");

	g_object_unref (tlist);
	g_object_unref (client);
out:
	egg_test_end (test);
}
示例#5
0
void
egg_string_test (EggTest *test)
{
    gboolean ret;
    gchar *text_safe;
    const gchar *temp;
    guint length;
    gint value;
    guint uvalue;
    gchar **id1;
    gchar **id2;

    if (!egg_test_start (test, "EggString"))
        return;

    /************************************************************
     ****************    String array equal    ******************
     ************************************************************/
    egg_test_title (test, "egg_strvequal same argument");
    id1 = g_strsplit ("the quick brown fox", " ", 0);
    if (egg_strvequal (id1, id1))
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "incorrect ret when both same");
    g_strfreev (id1);

    /************************************************************/
    egg_test_title (test, "egg_strvequal same");
    id1 = g_strsplit ("the quick brown fox", " ", 0);
    id2 = g_strsplit ("the quick brown fox", " ", 0);
    if (egg_strvequal (id1, id2))
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "incorrect ret when both same");
    g_strfreev (id1);
    g_strfreev (id2);

    /************************************************************/
    egg_test_title (test, "egg_strvequal different lengths");
    id1 = g_strsplit ("the quick brown", " ", 0);
    id2 = g_strsplit ("the quick brown fox", " ", 0);
    if (!egg_strvequal (id1, id2))
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "incorrect ret when both same");
    g_strfreev (id1);
    g_strfreev (id2);

    /************************************************************/
    egg_test_title (test, "egg_strvequal different");
    id1 = g_strsplit ("the quick brown fox", " ", 0);
    id2 = g_strsplit ("richard hughes maintainer dude", " ", 0);
    if (!egg_strvequal (id1, id2))
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "same when different");
    g_strfreev (id1);
    g_strfreev (id2);

    /************************************************************
     ****************          Zero            ******************
     ************************************************************/
    temp = NULL;
    egg_test_title (test, "test strzero (null)");
    ret = egg_strzero (NULL);
    if (ret)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "failed null");

    /************************************************************/
    egg_test_title (test, "test strzero (null first char)");
    ret = egg_strzero ("");
    if (ret)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "failed null");

    /************************************************************/
    egg_test_title (test, "test strzero (long string)");
    ret = egg_strzero ("Richard");
    if (!ret)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "zero length word!");

    /************************************************************/
    egg_test_title (test, "id strcmp pass");
    ret = (g_strcmp0 ("moo;0.0.1;i386;fedora", "moo;0.0.1;i386;fedora") == 0);
    egg_test_assert (test, ret);

    /************************************************************/
    egg_test_title (test, "id strcmp fail");
    ret = (g_strcmp0 ("moo;0.0.1;i386;fedora", "moo;0.0.2;i386;fedora") == 0);
    egg_test_assert (test, !ret);

    /************************************************************
     ****************          strlen          ******************
     ************************************************************/
    egg_test_title (test, "strlen bigger");
    length = egg_strlen ("123456789", 20);
    if (length == 9)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "failed the strlen %i", length);

    /************************************************************/
    egg_test_title (test, "strlen smaller");
    length = egg_strlen ("123456789", 5);
    if (length == 5)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "failed the strlen %i", length);

    /************************************************************/
    egg_test_title (test, "strlen correct");
    length = egg_strlen ("123456789", 9);
    if (length == 9)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "failed the strlen %i", length);

    /************************************************************
     ****************         Replace          ******************
     ************************************************************/
    egg_test_title (test, "replace start");
    text_safe = egg_strreplace ("richard\nhughes", "r", "e");
    if (g_strcmp0 (text_safe, "eichaed\nhughes") == 0)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "failed the replace '%s'", text_safe);
    g_free (text_safe);

    /************************************************************/
    egg_test_title (test, "replace none");
    text_safe = egg_strreplace ("richard\nhughes", "dave", "e");
    if (g_strcmp0 (text_safe, "richard\nhughes") == 0)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "failed the replace '%s'", text_safe);
    g_free (text_safe);

    /************************************************************/
    egg_test_title (test, "replace end");
    text_safe = egg_strreplace ("richard\nhughes", "s", "e");
    if (g_strcmp0 (text_safe, "richard\nhughee") == 0)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "failed the replace '%s'", text_safe);
    g_free (text_safe);

    /************************************************************/
    egg_test_title (test, "replace unicode");
    text_safe = egg_strreplace ("richard\n- hughes", "\n- ", "\n• ");
    if (g_strcmp0 (text_safe, "richard\n• hughes") == 0)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "failed the replace '%s'", text_safe);
    g_free (text_safe);

    /************************************************************
     **************        Convert numbers       ****************
     ************************************************************/
    egg_test_title (test, "convert valid number");
    ret = egg_strtoint ("234", &value);
    if (ret && value == 234)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "value is %i", value);

    /************************************************************/
    egg_test_title (test, "convert negative valid number");
    ret = egg_strtoint ("-234", &value);
    if (ret && value == -234)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "value is %i", value);

    /************************************************************/
    egg_test_title (test, "don't convert invalid number");
    ret = egg_strtoint ("dave", &value);
    if (!ret)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "value is %i", value);

    /************************************************************/
    egg_test_title (test, "convert NULL to a number");
    ret = egg_strtouint (NULL, &uvalue);
    if (!ret)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "value is %i", uvalue);

    /************************************************************/
    egg_test_title (test, "convert valid uint number");
    ret = egg_strtouint ("234", &uvalue);
    if (ret && uvalue == 234)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "value is %i", uvalue);

    /************************************************************/
    egg_test_title (test, "convert invalid uint number");
    ret = egg_strtouint ("-234", &uvalue);
    if (ret == FALSE)
        egg_test_success (test, NULL);
    else
        egg_test_failed (test, "value is %i", uvalue);

    egg_test_end (test);
}
示例#6
0
void
pk_package_id_test (EggTest *test)
{
	gboolean ret;
	gchar *text;
	const gchar *temp;
	PkPackageId *id;
	PkPackageId *id2;
	gchar **array;

	if (!egg_test_start (test, "PkPackageId"))
		return;

	/************************************************************
	 ****************          id           ******************
	 ************************************************************/

	egg_test_title (test, "id build valid");
	text = pk_package_id_build ("moo", "0.0.1", "i386", "fedora");
	if (g_strcmp0 (text, "moo;0.0.1;i386;fedora") == 0)
		egg_test_success (test, NULL);
	else
		egg_test_failed (test, NULL);
	g_free (text);

	egg_test_title (test, "id build partial");
	text = pk_package_id_build ("moo", NULL, NULL, NULL);
	if (g_strcmp0 (text, "moo;;;") == 0)
		egg_test_success (test, NULL);
	else
		egg_test_failed (test, "got '%s', expected '%s'", text, "moo;;;");
	g_free (text);

	egg_test_title (test, "pid equal pass (same)");
	ret = pk_package_id_equal_strings ("moo;0.0.1;i386;fedora", "moo;0.0.1;i386;fedora");
	egg_test_assert (test, ret);

	/************************************************************/
	egg_test_title (test, "pid equal pass (different)");
	ret = pk_package_id_equal_strings ("moo;0.0.1;i386;fedora", "moo;0.0.1;i386;data");
	egg_test_assert (test, ret);

	/************************************************************/
	egg_test_title (test, "get an id object");
	id = pk_package_id_new ();
	egg_test_assert (test, id != NULL);

	/************************************************************/
	egg_test_title (test, "test id freeing early");
	ret = pk_package_id_free (id);
	egg_test_assert (test, ret);

	/************************************************************/
	egg_test_title (test, "parse incorrect package_id from string (empty)");
	temp = "";
	id = pk_package_id_new_from_string (temp);
	if (id == NULL)
		egg_test_success (test, NULL);
	else
		egg_test_failed (test, "passed an invalid string '%s'", temp);

	/************************************************************/
	egg_test_title (test, "parse incorrect package_id from string (not enough)");
	temp = "moo;0.0.1;i386";
	id = pk_package_id_new_from_string (temp);
	if (id == NULL)
		egg_test_success (test, NULL);
	else
		egg_test_failed (test, "passed an invalid string '%s'", temp);

	/************************************************************/
	egg_test_title (test, "parse package_id from string");
	id = pk_package_id_new_from_string ("moo;0.0.1;i386;fedora");
	if (id != NULL &&
	    g_strcmp0 (id->name, "moo") == 0 &&
	    g_strcmp0 (id->arch, "i386") == 0 &&
	    g_strcmp0 (id->data, "fedora") == 0 &&
	    g_strcmp0 (id->version, "0.0.1") == 0)
		egg_test_success (test, NULL);
	else
		egg_test_failed (test, NULL);

	/************************************************************/
	egg_test_title (test, "test copying");
	id2 = pk_package_id_copy (id);
	if (id2 != NULL)
		egg_test_success (test, NULL);
	else
		egg_test_failed (test, NULL);

	/************************************************************/
	egg_test_title (test, "test id building with valid data");
	text = pk_package_id_to_string (id2);
	if (g_strcmp0 (text, "moo;0.0.1;i386;fedora") == 0)
		egg_test_success (test, NULL);
	else
		egg_test_failed (test, "package_id is '%s'", text);
	g_free (text);
	pk_package_id_free (id);
	pk_package_id_free (id2);

	/************************************************************/
	egg_test_title (test, "test id building with partial data");
	id = pk_package_id_new_from_string ("moo;;;");
	text = pk_package_id_to_string (id);
	if (g_strcmp0 (text, "moo;;;") == 0)
		egg_test_success (test, NULL);
	else
		egg_test_failed (test, "package_id is '%s', should be '%s'", text, "moo;;;");
	g_free (text);
	pk_package_id_free (id);

	/************************************************************/
	egg_test_title (test, "parse short package_id from string");
	id = pk_package_id_new_from_string ("moo;0.0.1;;");
	if (id != NULL &&
	    (g_strcmp0 (id->name, "moo") == 0) &&
	    (g_strcmp0 (id->version, "0.0.1") == 0) &&
	    id->data == NULL &&
	    id->arch == NULL)
		egg_test_success (test, NULL);
	else
		egg_test_failed (test, NULL);
	pk_package_id_free (id);

	egg_test_title (test, "id equal pass (same)");
	ret = pk_strcmp_sections ("moo;0.0.1;i386;fedora", "moo;0.0.1;i386;fedora", 4, 3);
	egg_test_assert (test, ret);

	egg_test_title (test, "id equal pass (parts==match)");
	ret = pk_strcmp_sections ("moo;0.0.1;i386;fedora", "moo;0.0.1;i386;fedora", 4, 4);
	egg_test_assert (test, ret);

	egg_test_title (test, "id equal pass (different)");
	ret = pk_strcmp_sections ("moo;0.0.1;i386;fedora", "moo;0.0.1;i386;data", 4, 3);
	egg_test_assert (test, ret);

	egg_test_title (test, "id equal fail1");
	ret = pk_strcmp_sections ("moo;0.0.1;i386;fedora", "moo;0.0.2;x64;fedora", 4, 3);
	egg_test_assert (test, !ret);

	egg_test_title (test, "id equal fail2");
	ret = pk_strcmp_sections ("moo;0.0.1;i386;fedora", "gnome;0.0.2;i386;fedora", 4, 3);
	egg_test_assert (test, !ret);

	egg_test_title (test, "id equal fail3");
	ret = pk_strcmp_sections ("moo;0.0.1;i386;fedora", "moo;0.0.3;i386;fedora", 4, 3);
	egg_test_assert (test, !ret);

	egg_test_title (test, "id equal fail (match too high)");
	ret = pk_strcmp_sections ("moo;0.0.1;i386;fedora", "moo;0.0.3;i386;fedora", 4, 5);
	egg_test_assert (test, !ret);

	/************************************************************
	 ****************          splitting         ****************
	 ************************************************************/
	egg_test_title (test, "test pass 1");
	array = pk_strsplit ("foo", 1);
	if (array != NULL &&
	    g_strcmp0 (array[0], "foo") == 0)
		egg_test_success (test, NULL);
	else
		egg_test_failed (test, "got %s", array[0]);
	g_strfreev (array);

	/************************************************************/
	egg_test_title (test, "test pass 2");
	array = pk_strsplit ("foo;moo", 2);
	if (array != NULL &&
	    g_strcmp0 (array[0], "foo") == 0 &&
	    g_strcmp0 (array[1], "moo") == 0)
		egg_test_success (test, NULL);
	else
		egg_test_failed (test, "got %s, %s", array[0], array[1]);
	g_strfreev (array);

	/************************************************************/
	egg_test_title (test, "test pass 3");
	array = pk_strsplit ("foo;moo;bar", 3);
	if (array != NULL &&
	    g_strcmp0 (array[0], "foo") == 0 &&
	    g_strcmp0 (array[1], "moo") == 0 &&
	    g_strcmp0 (array[2], "bar") == 0)
		egg_test_success (test, NULL);
	else
		egg_test_failed (test, "got %s, %s, %s, %s", array[0], array[1], array[2], array[3]);
	g_strfreev (array);

	/************************************************************/
	egg_test_title (test, "test on real packageid");
	array = pk_strsplit ("kde-i18n-csb;4:3.5.8~pre20071001-0ubuntu1;all;", 4);
	if (array != NULL &&
	    g_strcmp0 (array[0], "kde-i18n-csb") == 0 &&
	    g_strcmp0 (array[1], "4:3.5.8~pre20071001-0ubuntu1") == 0 &&
	    g_strcmp0 (array[2], "all") == 0 &&
	    g_strcmp0 (array[3], "") == 0)
		egg_test_success (test, NULL);
	else
		egg_test_failed (test, "got %s, %s, %s, %s", array[0], array[1], array[2], array[3]);
	g_strfreev (array);

	/************************************************************/
	egg_test_title (test, "test on short packageid");
	array = pk_strsplit ("kde-i18n-csb;4:3.5.8~pre20071001-0ubuntu1;;", 4);
	if (array != NULL &&
	    g_strcmp0 (array[0], "kde-i18n-csb") == 0 &&
	    g_strcmp0 (array[1], "4:3.5.8~pre20071001-0ubuntu1") == 0 &&
	    g_strcmp0 (array[2], "") == 0 &&
	    g_strcmp0 (array[3], "") == 0)
		egg_test_success (test, NULL);
	else
		egg_test_failed (test, "got %s, %s, %s, %s", array[0], array[1], array[2], array[3]);
	g_strfreev (array);

	/************************************************************/
	egg_test_title (test, "test fail under");
	array = pk_strsplit ("foo;moo", 1);
	egg_test_assert (test, array == NULL);

	/************************************************************/
	egg_test_title (test, "test fail over");
	array = pk_strsplit ("foo;moo", 3);
	egg_test_assert (test, array == NULL);

	/************************************************************/
	egg_test_title (test, "test fail missing first");
	array = pk_strsplit (";moo", 2);
	egg_test_assert (test, array == NULL);

	egg_test_end (test);
}