diff --git a/tests/gui/CMakeLists.txt b/tests/gui/CMakeLists.txt index ea04e1bd..8e8da612 100644 --- a/tests/gui/CMakeLists.txt +++ b/tests/gui/CMakeLists.txt @@ -8,3 +8,4 @@ gui_unit_test(Builder) gui_unit_test(Settings) gui_unit_test(Model) gui_unit_test(View) +gui_unit_test(Queue) diff --git a/tests/gui/Sconscript b/tests/gui/Sconscript index 305f3381..13489043 100644 --- a/tests/gui/Sconscript +++ b/tests/gui/Sconscript @@ -28,7 +28,7 @@ gui_objs += [ env.Object("../../gui/builder.c") ] gui_objs += [ env.Object("../../gui/settings.c") ] gui_objs += [ env.Object("../../gui/model.c") ] gui_objs += [ env.Object("../../gui/view.c") ] -res += [ GuiTest("queue") ] +gui_objs += [ env.Object("../../gui/queue.c") ] res += [ GuiTest("window") ] res += [ GuiTest("idle") ] res += [ GuiTest("sidebar") ] diff --git a/tests/gui/queue.c b/tests/gui/queue.c index 70513311..eea8ce8a 100644 --- a/tests/gui/queue.c +++ b/tests/gui/queue.c @@ -1,11 +1,6 @@ /* * Copyright 2016 (c) Anna Schumaker. */ -#define TEST_NEED_AUDIO -#define TEST_NEED_COLLECTION -#define TEST_NEED_PLAYLIST -#define TEST_NEED_SIDEBAR -#define TEST_NEED_WINDOW #include #include #include @@ -46,14 +41,6 @@ static void test_queue() GtkSwitch *enable; GtkEntry *search; struct queue q; - int argc = 0; - - gtk_init(&argc, NULL); - gui_builder_init("share/ocarina/ocarina6.glade"); - gui_queue_model_init(); - gui_view_init(); - gui_queue_init(); - while (idle_run_task()) {}; search = GTK_ENTRY(gui_builder_widget("o_search")); enable = GTK_SWITCH(gui_builder_widget("o_enable")); @@ -66,88 +53,87 @@ static void test_queue() /* Test initialization */ queue_init(&q, 0, &test_ops, NULL); gq = gui_queue(&q); - test_equal((void *)gq->gq_queue, (void *)&q); - test_equal(gui_queue_can_random(gq), (bool)true); - test_equal(gui_queue_can_repeat(gq), (bool)true); - test_equal(gui_queue_can_disable(gq), (bool)true); + g_assert_true(gui_queue_can_random(gq)); + g_assert_true(gui_queue_can_repeat(gq)); + g_assert_true(gui_queue_can_disable(gq)); gq->gq_flags = 0; - test_equal(gui_queue_can_random(gq), (bool)false); - test_equal(gui_queue_can_repeat(gq), (bool)false); - test_equal(gui_queue_can_disable(gq), (bool)false); + g_assert_false(gui_queue_can_random(gq)); + g_assert_false(gui_queue_can_repeat(gq)); + g_assert_false(gui_queue_can_disable(gq)); gtk_entry_set_text(search, "Test text"); /* Show a queue where random, repeat, and switch are disabled */ gui_queue_show(gq); - test_equal(gtk_widget_get_sensitive(GTK_WIDGET(random)), false); - test_equal(gtk_widget_get_sensitive(GTK_WIDGET(repeat)), false); - test_equal(gtk_widget_get_sensitive(GTK_WIDGET(enable)), false); - test_equal(gtk_widget_get_sensitive(GTK_WIDGET(treeview)), false); - test_equal(gtk_toggle_button_get_active(random), false); - test_equal(gtk_toggle_button_get_active(repeat), false); - test_equal(gtk_switch_get_active(enable), false); - test_equal(gtk_widget_get_sensitive(random_img), false); - test_equal(gtk_widget_get_sensitive(repeat_img), false); - test_equal(gtk_entry_get_text(search), ""); + g_assert_false(gtk_widget_get_sensitive(GTK_WIDGET(random))); + g_assert_false(gtk_widget_get_sensitive(GTK_WIDGET(repeat))); + g_assert_false(gtk_widget_get_sensitive(GTK_WIDGET(enable))); + g_assert_false(gtk_widget_get_sensitive(GTK_WIDGET(treeview))); + g_assert_false(gtk_toggle_button_get_active(random)); + g_assert_false(gtk_toggle_button_get_active(repeat)); + g_assert_false(gtk_switch_get_active(enable)); + g_assert_false(gtk_widget_get_sensitive(random_img)); + g_assert_false(gtk_widget_get_sensitive(repeat_img)); + g_assert_cmpstr(gtk_entry_get_text(search), ==, ""); /* Test clicking random button. */ gtk_toggle_button_set_active(random, true); - test_equal(gtk_widget_get_sensitive(random_img), true); - test_equal(queue_has_flag(&q, Q_RANDOM), (bool)true); + g_assert_true(gtk_widget_get_sensitive(random_img)); + g_assert_true(queue_has_flag(&q, Q_RANDOM)); gtk_toggle_button_set_active(random, false); - test_equal(gtk_widget_get_sensitive(random_img), false); - test_equal(queue_has_flag(&q, Q_RANDOM), (bool)false); + g_assert_false(gtk_widget_get_sensitive(random_img)); + g_assert_false(queue_has_flag(&q, Q_RANDOM)); /* Test clicking repeat button. */ gtk_toggle_button_set_active(repeat, true); - test_equal(gtk_widget_get_sensitive(repeat_img), true); - test_equal(queue_has_flag(&q, Q_REPEAT), (bool)true); + g_assert_true(gtk_widget_get_sensitive(repeat_img)); + g_assert_true(queue_has_flag(&q, Q_REPEAT)); gtk_toggle_button_set_active(repeat, false); - test_equal(gtk_widget_get_sensitive(repeat_img), false); - test_equal(queue_has_flag(&q, Q_REPEAT), (bool)false); + g_assert_false(gtk_widget_get_sensitive(repeat_img)); + g_assert_false(queue_has_flag(&q, Q_REPEAT)); /* Test clicking enabled switch. */ gtk_switch_set_active(enable, true); - test_equal(gtk_widget_get_sensitive(GTK_WIDGET(treeview)), true); - test_equal(queue_has_flag(&q, Q_ENABLED), (bool)true); + g_assert_true(gtk_widget_get_sensitive(GTK_WIDGET(treeview))); + g_assert_true(queue_has_flag(&q, Q_ENABLED)); gtk_switch_set_active(enable, false); - test_equal(gtk_widget_get_sensitive(GTK_WIDGET(treeview)), false); - test_equal(queue_has_flag(&q, Q_ENABLED), (bool)false); + g_assert_false(gtk_widget_get_sensitive(GTK_WIDGET(treeview))); + g_assert_false(queue_has_flag(&q, Q_ENABLED)); /* Show a queue where random, repeat, and switch are enabled */ gq->gq_flags = GQ_CAN_RANDOM | GQ_CAN_REPEAT | GQ_CAN_DISABLE; q.q_flags = Q_RANDOM | Q_REPEAT | Q_ENABLED; gui_queue_show(gq); - test_equal(gtk_widget_get_sensitive(GTK_WIDGET(random)), true); - test_equal(gtk_widget_get_sensitive(GTK_WIDGET(repeat)), true); - test_equal(gtk_widget_get_sensitive(GTK_WIDGET(enable)), true); - test_equal(gtk_widget_get_sensitive(GTK_WIDGET(treeview)), true); - test_equal(gtk_toggle_button_get_active(random), true); - test_equal(gtk_toggle_button_get_active(repeat), true); - test_equal(gtk_switch_get_active(enable), true); - test_equal(gtk_widget_get_sensitive(random_img), true); - test_equal(gtk_widget_get_sensitive(repeat_img), true); + g_assert_true(gtk_widget_get_sensitive(GTK_WIDGET(random))); + g_assert_true(gtk_widget_get_sensitive(GTK_WIDGET(repeat))); + g_assert_true(gtk_widget_get_sensitive(GTK_WIDGET(enable))); + g_assert_true(gtk_widget_get_sensitive(GTK_WIDGET(treeview))); + g_assert_true(gtk_toggle_button_get_active(random)); + g_assert_true(gtk_toggle_button_get_active(repeat)); + g_assert_true(gtk_switch_get_active(enable)); + g_assert_true(gtk_widget_get_sensitive(random_img)); + g_assert_true(gtk_widget_get_sensitive(repeat_img)); /* Attempt to show a NULL pointer */ gui_queue_show(NULL); - test_equal(gtk_widget_get_sensitive(GTK_WIDGET(search)), false); - test_equal(gtk_widget_get_sensitive(GTK_WIDGET(random)), false); - test_equal(gtk_widget_get_sensitive(GTK_WIDGET(repeat)), false); - test_equal(gtk_widget_get_sensitive(GTK_WIDGET(enable)), false); - test_equal(gtk_widget_get_sensitive(GTK_WIDGET(treeview)), false); - test_equal(gtk_toggle_button_get_active(random), false); - test_equal(gtk_toggle_button_get_active(repeat), false); - test_equal(gtk_switch_get_active(enable), false); - test_equal(gtk_widget_get_sensitive(random_img), false); - test_equal(gtk_widget_get_sensitive(repeat_img), false); + g_assert_false(gtk_widget_get_sensitive(GTK_WIDGET(search))); + g_assert_false(gtk_widget_get_sensitive(GTK_WIDGET(random))); + g_assert_false(gtk_widget_get_sensitive(GTK_WIDGET(repeat))); + g_assert_false(gtk_widget_get_sensitive(GTK_WIDGET(enable))); + g_assert_false(gtk_widget_get_sensitive(GTK_WIDGET(treeview))); + g_assert_false(gtk_toggle_button_get_active(random)); + g_assert_false(gtk_toggle_button_get_active(repeat)); + g_assert_false(gtk_switch_get_active(enable)); + g_assert_false(gtk_widget_get_sensitive(random_img)); + g_assert_false(gtk_widget_get_sensitive(repeat_img)); queue_deinit(&q); - test_equal((void *)gui_queue(&q), NULL); + g_assert_null(gui_queue(&q)); } static void test_tracks() @@ -156,11 +142,9 @@ static void test_tracks() GtkTreeModel *filter; struct gui_queue *gq; GtkEntry *search; - int argc = 0; search = GTK_ENTRY(gui_builder_widget("o_search")); - core_init(&argc, NULL, &init_data); gq = gui_queue(playlist_get_queue(PL_SYSTEM, "Collection")); gui_queue_show(gq); @@ -168,18 +152,17 @@ static void test_tracks() while (idle_run_task() == true) {} filter = GTK_TREE_MODEL(gui_view_get_filter()); - test_not_equal((void *)gq, NULL); - test_not_equal((void *)filter, NULL); - test_equal(gtk_tree_model_iter_n_children(filter, NULL), 13); - gui_queue_model_set_queue(playlist_get_queue(PL_SYSTEM, "Collection")); + g_assert_nonnull(gq); + g_assert_nonnull(filter); + g_assert_cmpuint(gtk_tree_model_iter_n_children(filter, NULL), ==, 13); gtk_entry_set_text(search, "zelda"); g_signal_emit_by_name(search, "search-changed"); - test_equal(gtk_tree_model_iter_n_children(filter, NULL), 2); + g_assert_cmpuint(gtk_tree_model_iter_n_children(filter, NULL), ==, 2); gtk_entry_set_text(search, ""); g_signal_emit_by_name(search, "search-changed"); - test_equal(gtk_tree_model_iter_n_children(filter, NULL), 13); + g_assert_cmpuint(gtk_tree_model_iter_n_children(filter, NULL), ==, 13); db_for_each(dbe, next, track_db_get()) { if (TRACK(dbe)->tr_track == 4) { @@ -188,14 +171,28 @@ static void test_tracks() } } - test_equal(gtk_tree_model_iter_n_children(filter, NULL), 12); + g_assert_cmpuint(gtk_tree_model_iter_n_children(filter, NULL), ==, 12); gui_queue_show(NULL); +} + +int main(int argc, char **argv) +{ + int ret; + + gtk_init(&argc, NULL); + gui_builder_init("share/ocarina/ocarina6.glade"); + core_init(&argc, NULL, &init_data); + gui_queue_model_init(); + gui_view_init(); + gui_queue_init(); + while (idle_run_task()) {}; + + g_test_init(&argc, &argv, NULL); + g_test_add_func("/Gui/Queue", test_queue); + g_test_add_func("/Gui/Queue/Tracks", test_tracks); + ret = g_test_run(); core_deinit(); gui_builder_deinit(); + return ret; } - -DECLARE_UNIT_TESTS( - UNIT_TEST("Queue", test_queue), - UNIT_TEST("Queue Tracks", test_tracks), -);