tests: Build gtk builder test with ctest

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2016-03-22 08:11:20 -04:00 committed by Anna Schumaker
parent 8f8e4a4459
commit 1710c8076a
4 changed files with 33 additions and 20 deletions

View File

@ -6,9 +6,12 @@ endif()
# Handle files that depend on CONFIG_TESTING_DIR
list(REMOVE_ITEM core ${PROJECT_SOURCE_DIR}/core/file.c)
list(REMOVE_ITEM gui ${PROJECT_SOURCE_DIR}/gui/ocarina.c)
list(APPEND corefiles ${PROJECT_SOURCE_DIR}/core/file.c)
add_subdirectory(Music/)
add_library(corelib OBJECT EXCLUDE_FROM_ALL ${core})
add_library(guilib OBJECT EXCLUDE_FROM_ALL ${gui} ${core})
add_subdirectory(Music/)
add_subdirectory(core/)
add_subdirectory(gui/)

7
tests/gui/CMakeLists.txt Normal file
View File

@ -0,0 +1,7 @@
Include(../UnitTest.cmake)
function(gui_unit_test name)
unit_test(Gui ${name} guilib "${corefiles}")
endfunction()
gui_unit_test(Builder)

View File

@ -24,7 +24,7 @@ def GuiTest(name):
env.UsePackage("gmodule-export-2.0")
res += [ GuiTest("builder") ]
gui_objs += [ env.Object("../../gui/builder.c") ]
res += [ GuiTest("settings") ]
res += [ GuiTest("model") ]
res += [ GuiTest("view") ]

View File

@ -17,34 +17,37 @@ static void test_builder()
GObject *object;
GtkWidget *widget;
test_equal((void *)test_get_gui_builder(), NULL);
test_equal((void *)gui_builder_object("button1"), NULL);
test_equal((void *)gui_builder_widget("button1"), NULL);
g_assert_null(test_get_gui_builder());
g_assert_null(gui_builder_object("button1"));
g_assert_null(gui_builder_widget("button1"));
gtk_init(&argc, NULL);
gui_builder_init("tests/gui/builder.ui");
test_not_equal((void *)test_get_gui_builder(), NULL);
g_assert_nonnull(test_get_gui_builder());
object = gui_builder_object("button1");
test_not_equal((void *)object, NULL);
test_equal(G_IS_OBJECT(object), true);
g_assert_nonnull(object);
g_assert_true(G_IS_OBJECT(object));
widget = gui_builder_widget("button1");
test_not_equal((void *)widget, NULL);
test_equal(GTK_IS_WIDGET(widget), true);
test_equal(GTK_IS_BUTTON(widget), true);
test_equal(gui_builder_widget_height("button1") > 0, true);
g_assert_nonnull(widget);
g_assert_true(GTK_IS_WIDGET(widget));
g_assert_true(GTK_IS_BUTTON(widget));
g_assert_cmpint(gui_builder_widget_height("button1"), >, 0);
gtk_button_clicked(GTK_BUTTON(widget));
test_equal(gui_clicked, 1);
g_assert_cmpuint(gui_clicked, ==, 1);
gtk_widget_destroy(gui_builder_widget("window1"));
gui_builder_deinit();
test_equal((void *)test_get_gui_builder(), NULL);
test_equal((void *)gui_builder_object("button1"), NULL);
test_equal((void *)gui_builder_widget("button1"), NULL);
g_assert_null(test_get_gui_builder());
g_assert_null(gui_builder_object("button1"));
g_assert_null(gui_builder_widget("button1"));
}
DECLARE_UNIT_TESTS(
UNIT_TEST("GTK Builder", test_builder),
);
int main(int argc, char **argv)
{
g_test_init(&argc, &argv, NULL);
g_test_add_func("/Gui/Builder", test_builder);
return g_test_run();
}