gui/audio: Add unit test
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
d8754e9a45
commit
fd28d6830c
|
@ -1,2 +1,3 @@
|
|||
builder
|
||||
settings
|
||||
audio
|
||||
|
|
|
@ -26,6 +26,7 @@ def GuiTest(name):
|
|||
env.UsePackage("gmodule-export-2.0")
|
||||
res += [ GuiTest("builder") ]
|
||||
res += [ GuiTest("settings") ]
|
||||
res += [ GuiTest("audio") ]
|
||||
|
||||
ignore.close()
|
||||
Return("res")
|
||||
|
|
|
@ -0,0 +1,96 @@
|
|||
/*
|
||||
* Copyright 2015 (c) Anna Schumaker.
|
||||
*/
|
||||
#include <core/audio.h>
|
||||
#include <core/collection.h>
|
||||
#include <core/core.h>
|
||||
#include <core/idle.h>
|
||||
#include <core/playlist.h>
|
||||
#include <core/string.h>
|
||||
#include <gui/audio.h>
|
||||
#include <gui/builder.h>
|
||||
#include <tests/test.h>
|
||||
|
||||
struct core_init_data init_data = {
|
||||
.audio_ops = &audio_ops,
|
||||
};
|
||||
|
||||
static inline const gchar *test_get_label_text(const gchar *name)
|
||||
{
|
||||
return gtk_label_get_text(GTK_LABEL(gui_builder_widget(name)));
|
||||
}
|
||||
|
||||
static inline bool test_get_toggle_state(const gchar *name)
|
||||
{
|
||||
return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui_builder_widget(name)));
|
||||
}
|
||||
|
||||
static inline int test_spin_button_value(const gchar *name)
|
||||
{
|
||||
return gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui_builder_widget(name)));
|
||||
}
|
||||
|
||||
static void test_audio()
|
||||
{
|
||||
gchar *album, *artist, *duration;
|
||||
struct track *track;
|
||||
int argc = 0;
|
||||
|
||||
gtk_init(&argc, NULL);
|
||||
gui_builder_init("share/ocarina/ocarina6.glade");
|
||||
|
||||
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_equal(test_get_toggle_state("o_pause_enabled"), (bool)false);
|
||||
test_equal(test_spin_button_value("o_pause_count"), 0);
|
||||
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);
|
||||
collection_add("tests/Music/Hyrule Symphony");
|
||||
while (idle_run_task()) {};
|
||||
|
||||
track = track_get(0);
|
||||
playlist_add(PL_FAVORITED, track);
|
||||
playlist_add(PL_HIDDEN, track);
|
||||
audio_load(track);
|
||||
|
||||
album = g_strdup_printf("From: %s", track->tr_album->al_name);
|
||||
artist = g_strdup_printf("By: %s", track->tr_artist->ar_name);
|
||||
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"), album);
|
||||
test_equal(test_get_label_text("o_artist"), artist);
|
||||
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_free(album);
|
||||
g_free(artist);
|
||||
g_free(duration);
|
||||
|
||||
audio_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);
|
||||
|
||||
audio_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);
|
||||
|
||||
audio_pause_after(1);
|
||||
test_equal(test_get_toggle_state("o_pause_enabled"), (bool)true);
|
||||
test_equal(test_spin_button_value("o_pause_count"), 1);
|
||||
|
||||
audio_eos();
|
||||
test_equal(test_get_toggle_state("o_pause_enabled"), (bool)true);
|
||||
test_equal(test_spin_button_value("o_pause_count"), 0);
|
||||
|
||||
audio_eos();
|
||||
test_equal(test_get_toggle_state("o_pause_enabled"), (bool)false);
|
||||
test_equal(test_spin_button_value("o_pause_count"), 0);
|
||||
|
||||
gui_builder_deinit();
|
||||
}
|
||||
|
||||
DECLARE_UNIT_TESTS(
|
||||
UNIT_TEST("Audio GUI", test_audio),
|
||||
);
|
Loading…
Reference in New Issue