tests: Build gui audio test with ctest

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2016-03-25 14:12:34 -04:00 committed by Anna Schumaker
parent 59839547e2
commit 19ca9d932b
3 changed files with 52 additions and 47 deletions

View File

@ -13,3 +13,4 @@ gui_unit_test(Window)
gui_unit_test(Idle)
gui_unit_test(Sidebar)
gui_unit_test(Playlist)
gui_unit_test(Audio)

View File

@ -35,7 +35,7 @@ gui_objs += [ env.Object("../../gui/sidebar.c") ]
gui_objs += [ env.Object("../../gui/playlist.c") ]
gui_objs += [ env.Object("../../gui/collection.c") ]
gui_objs += [ env.Object("../../gui/artwork.c") ]
res += [ GuiTest("audio") ]
gui_objs += [ env.Object("../../gui/auido.c") ]
ignore.close()
Return("res")

View File

@ -58,21 +58,12 @@ static void test_audio()
struct db_entry *dbe, *next;
struct track *track;
gchar *duration;
int argc = 0;
gtk_init(&argc, NULL);
gui_builder_init("share/ocarina/ocarina6.glade");
gui_queue_model_init();
test_equal(gtk_widget_is_visible(gui_builder_widget("o_play")), true);
test_equal(gtk_widget_is_visible(gui_builder_widget("o_pause")), false);
test_str_equal(test_get_pause_text(), "(disabled)");
test_equal(test_get_toggle_state("o_favorite"), (bool)false);
test_equal(test_get_toggle_state("o_hide"), (bool)false);
core_init(&argc, NULL, &init_data);
playlist_new(PL_LIBRARY, "tests/Music/Hyrule Symphony");
while (idle_run_task()) {};
g_assert_true(gtk_widget_is_visible(gui_builder_widget("o_play")));
g_assert_false(gtk_widget_is_visible(gui_builder_widget("o_pause")));
g_assert_cmpstr_free(test_get_pause_text(), ==, "(disabled)");
g_assert_false(test_get_toggle_state("o_favorite"));
g_assert_false(test_get_toggle_state("o_hide"));
db_for_each(dbe, next, track_db_get()) {
if (TRACK(dbe)->tr_track == 1) {
@ -83,65 +74,78 @@ static void test_audio()
playlist_add(PL_SYSTEM, "Favorites", track);
playlist_add(PL_SYSTEM, "Hidden", track);
test_equal(playlist_has(PL_SYSTEM, "Collection", track), (bool)false);
g_assert_false(playlist_has(PL_SYSTEM, "Collection", track));
audio_load(track);
test_equal(audio_cur_track()->tr_track, track->tr_track);
g_assert_cmpuint(audio_cur_track()->tr_track, ==, track->tr_track);
duration = string_sec2str(track->tr_length);
test_equal(test_get_label_text("o_title"), track->tr_title);
test_equal(test_get_label_text("o_album"), track->tr_album->al_name);
test_equal(test_get_label_text("o_artist"), track->tr_artist->ar_name);
test_equal(test_get_label_text("o_position"), "0:00");
test_equal(test_get_label_text("o_duration"), duration);
test_equal(test_get_toggle_state("o_favorite"), (bool)true);
test_equal(test_get_toggle_state("o_hide"), (bool)true);
g_assert_cmpstr(test_get_label_text("o_title"), ==, track->tr_title);
g_assert_cmpstr(test_get_label_text("o_album"), ==, track->tr_album->al_name);
g_assert_cmpstr(test_get_label_text("o_artist"), ==, track->tr_artist->ar_name);
g_assert_cmpstr(test_get_label_text("o_position"), ==, "0:00");
g_assert_cmpstr(test_get_label_text("o_duration"), ==, duration);
g_assert_true(test_get_toggle_state("o_favorite"));
g_assert_true(test_get_toggle_state("o_hide"));
g_free(duration);
test_click_button("o_play");
test_equal(gtk_widget_is_visible(gui_builder_widget("o_play")), false);
test_equal(gtk_widget_is_visible(gui_builder_widget("o_pause")), true);
g_assert_false(gtk_widget_is_visible(gui_builder_widget("o_play")));
g_assert_true(gtk_widget_is_visible(gui_builder_widget("o_pause")));
test_click_button("o_pause");
test_equal(gtk_widget_is_visible(gui_builder_widget("o_play")), true);
test_equal(gtk_widget_is_visible(gui_builder_widget("o_pause")), false);
g_assert_true(gtk_widget_is_visible(gui_builder_widget("o_play")));
g_assert_false(gtk_widget_is_visible(gui_builder_widget("o_pause")));
test_set_pause_after(0);
audio_eos();
test_equal(audio_cur_track()->tr_track, 2);
test_str_equal(test_get_pause_text(), "(disabled)");
g_assert_cmpuint(audio_cur_track()->tr_track, ==, 2);
g_assert_cmpstr_free(test_get_pause_text(), ==, "(disabled)");
test_click_button("o_next");
test_equal(audio_cur_track()->tr_track, 3);
test_equal(test_get_toggle_state("o_favorite"), (bool)false);
test_equal(test_get_toggle_state("o_hide"), (bool)false);
g_assert_cmpuint(audio_cur_track()->tr_track, ==, 3);
g_assert_false(test_get_toggle_state("o_favorite"));
g_assert_false(test_get_toggle_state("o_hide"));
test_set_pause_after(1);
test_str_equal(test_get_pause_text(), "next track");
g_assert_cmpstr_free(test_get_pause_text(), ==, "next track");
audio_eos();
test_equal(audio_cur_track()->tr_track, 4);
test_str_equal(test_get_pause_text(), "this track");
g_assert_cmpuint(audio_cur_track()->tr_track, ==, 4);
g_assert_cmpstr_free(test_get_pause_text(), ==, "this track");
audio_eos();
test_equal(audio_cur_track()->tr_track, 5);
test_str_equal(test_get_pause_text(), "(disabled)");
g_assert_cmpuint(audio_cur_track()->tr_track, ==, 5);
g_assert_cmpstr_free(test_get_pause_text(), ==, "(disabled)");
test_click_button("o_prev");
test_equal(audio_cur_track()->tr_track, 4);
g_assert_cmpuint(audio_cur_track()->tr_track, ==, 4);
test_click_button("o_pause");
test_audio_seek(71 * GST_SECOND);
test_gui_audio_timeout();
test_equal(test_get_label_text("o_position"), "1:11");
test_equal((guint)gtk_adjustment_get_upper(
GTK_ADJUSTMENT(gui_builder_object("o_progress"))),
audio_cur_track()->tr_length);
g_assert_cmpstr(test_get_label_text("o_position"), ==, "1:11");
g_assert_cmpuint(gtk_adjustment_get_upper(GTK_ADJUSTMENT(gui_builder_object("o_progress"))),
==, audio_cur_track()->tr_length);
}
int main(int argc, char **argv)
{
int ret;
gtk_init(&argc, NULL);
gui_builder_init("share/ocarina/ocarina6.glade");
gui_queue_model_init();
core_init(&argc, NULL, &init_data);
playlist_new(PL_LIBRARY, "tests/Music/Hyrule Symphony");
while (idle_run_task()) {};
g_test_init(&argc, &argv, NULL);
g_test_add_func("/Gui/Audio", test_audio);
ret = g_test_run();
gui_window_deinit();
gui_queue_model_deinit();
gui_builder_deinit();
core_deinit();
return ret;
}
DECLARE_UNIT_TESTS(
UNIT_TEST("Audio GUI", test_audio),
);