ocarina/tests/gui/window.c

64 lines
1.5 KiB
C

/*
* Copyright 2015 (c) Anna Schumaker.
*/
#include <core/settings.h>
#include <gui/builder.h>
#include <gui/view.h>
#include <gui/window.h>
#include <tests/test.h>
GMainLoop *main_loop;
static int test_on_idle(gpointer data)
{
g_main_loop_quit(main_loop);
return G_SOURCE_CONTINUE;
}
static void test_window()
{
GtkWindow *window;
main_loop = g_main_loop_new(NULL, FALSE);
window = GTK_WINDOW(gui_builder_widget("o_window"));
g_idle_add(test_on_idle, window);
g_assert_false(settings_has("gui.window.width"));
g_assert_false(settings_has("gui.window.height"));
g_assert_cmpstr(gtk_window_get_title(window), ==, "Ocarina " CONFIG_VERSION);
g_main_loop_run(main_loop);
g_assert_true(settings_has("gui.window.width"));
g_assert_true(settings_has("gui.window.height"));
settings_set("gui.window.width", 800);
settings_set("gui.window.height", 600);
gui_window_init("share/ocarina/ocarina.png");
g_main_loop_run(main_loop);
g_assert_cmpuint(settings_get("gui.window.width"), ==, 800);
g_assert_cmpuint(settings_get("gui.window.height"), ==, 600);
g_main_loop_unref(main_loop);
}
int main(int argc, char **argv)
{
int ret;
gtk_init(&argc, NULL);
settings_init();
gui_builder_init("share/ocarina/ocarina6.glade");
gui_view_init();
gui_window_init("share/ocarina/ocarina.png");
g_test_init(&argc, &argv, NULL);
g_test_add_func("/Gui/Window", test_window);
ret = g_test_run();
gui_window_deinit();
gui_builder_deinit();
settings_deinit();
return ret;
}