static void test_illegal_argument_warnings() { OwrBus *bus; OwrMessageOrigin *origin; bus = owr_bus_new(); expect_assert("owr_bus_set_message_callback", "OWR_IS_BUS(bus)"); owr_bus_set_message_callback(NULL, on_message, NULL, NULL); expect_assert_happened(); expect_assert("owr_bus_set_message_callback", "callback"); owr_bus_set_message_callback(bus, NULL, NULL, NULL); expect_assert_happened(); origin = mock_origin_new(); expect_assert("owr_bus_add_message_origin", "OWR_IS_BUS(bus)"); owr_bus_add_message_origin(NULL, NULL); expect_assert_happened(); expect_assert("owr_bus_add_message_origin", "OWR_IS_BUS(bus)"); owr_bus_add_message_origin(NULL, origin); expect_assert_happened(); expect_assert("owr_bus_add_message_origin", "OWR_IS_MESSAGE_ORIGIN(origin)"); owr_bus_add_message_origin(bus, NULL); expect_assert_happened(); expect_assert("owr_bus_remove_message_origin", "OWR_IS_BUS(bus)"); owr_bus_remove_message_origin(NULL, NULL); expect_assert_happened(); expect_assert("owr_bus_remove_message_origin", "OWR_IS_BUS(bus)"); owr_bus_remove_message_origin(NULL, origin); expect_assert_happened(); expect_assert("owr_bus_remove_message_origin", "OWR_IS_MESSAGE_ORIGIN(origin)"); owr_bus_remove_message_origin(bus, NULL); expect_assert_happened(); /* should be able to add and remove the same origin multiple times */ mock_origin_assert_bus_table_size(origin, 0); owr_bus_add_message_origin(bus, origin); mock_origin_assert_bus_table_size(origin, 1); owr_bus_add_message_origin(bus, origin); mock_origin_assert_bus_table_size(origin, 1); owr_bus_remove_message_origin(bus, origin); mock_origin_assert_bus_table_size(origin, 0); owr_bus_remove_message_origin(bus, origin); mock_origin_assert_bus_table_size(origin, 0); owr_bus_add_message_origin(bus, origin); mock_origin_assert_bus_table_size(origin, 1); g_object_unref(origin); g_object_unref(bus); }
END_TEST START_TEST(test_add_null_source) { MafwRegistry *reg = NULL; MafwSource *source = NULL; reg = g_object_new(MAFW_TYPE_REGISTRY, NULL); fail_unless(reg != NULL, "Object construction failed"); g_signal_connect(reg, "source_added", (GCallback) source_added, NULL); /* Add a NULL source. This should assert */ expect_assert(mafw_registry_add_extension(reg, MAFW_EXTENSION(source))); }
END_TEST START_TEST(test_remove_null_renderer) { MafwRegistry *reg = NULL; MafwRenderer *renderer = NULL; reg = g_object_new(MAFW_TYPE_REGISTRY, NULL); fail_unless(reg != NULL, "Object construction failed"); g_signal_connect(reg, "renderer_removed", (GCallback) renderer_removed, NULL); /* Add a NULL renderer. This should assert */ expect_assert(mafw_registry_remove_extension(reg, MAFW_EXTENSION(renderer))); }
END_TEST START_TEST(test_add_same_renderer_twice) { MafwRegistry *reg = NULL; MafwRenderer *renderer = NULL; reg = g_object_new(MAFW_TYPE_REGISTRY, NULL); fail_unless(reg != NULL, "Object construction failed"); g_signal_connect(reg, "renderer_added", (GCallback) renderer_added, NULL); renderer = MAFW_RENDERER(g_object_new(nop_renderer_get_type(), "uuid", "SomeRenderer", NULL)); /* Add a renderer */ mafw_registry_add_extension(reg, MAFW_EXTENSION(renderer)); fail_unless(renderer_added_ok, "Renderer add failed\n"); /* Add it again... This should assert */ expect_assert(mafw_registry_add_extension(reg, MAFW_EXTENSION(renderer))); }
END_TEST START_TEST(test_remove_non_existing_source) { MafwRegistry *reg = NULL; MafwSource *source1 = NULL; MafwSource *source2 = NULL; GList *sources = NULL; reg = g_object_new(MAFW_TYPE_REGISTRY, NULL); fail_unless(reg != NULL, "Object construction failed"); g_signal_connect(reg, "source_removed", (GCallback) source_removed, NULL); source1 = g_object_new(nop_source_get_type(), "uuid", "SomeSource", "name", "nop", NULL); source2 = g_object_new(nop_source_get_type(), "uuid", "SomeSource2", "name", "nop", NULL); /* Add a source */ mafw_registry_add_extension(reg, MAFW_EXTENSION(source1)); /* Get sources */ sources = mafw_registry_get_sources(reg); fail_unless(g_list_length(sources) == 1, "Sources list size wrong\n"); /* Remove the source (which shouldn't exist in the registry */ expect_assert(mafw_registry_remove_extension(reg, MAFW_EXTENSION(source2))); fail_unless(source_removed_ok == FALSE, "Shouldn't signal non-existing source removal\n"); sources = mafw_registry_get_sources(reg); fail_unless(g_list_length(sources) == 1, "Sources list size wrong\n"); g_object_unref(reg); }
END_TEST START_TEST(test_add_same_source_twice) { MafwRegistry *reg = NULL; MafwSource *source = NULL; reg = g_object_new(MAFW_TYPE_REGISTRY, NULL); fail_unless(reg != NULL, "Object construction failed"); g_signal_connect(reg, "source_added", (GCallback) source_added, NULL); source = g_object_new(nop_source_get_type(), "uuid", "SomeSource", "name", "nop", NULL); /* Add a source */ mafw_registry_add_extension(reg, MAFW_EXTENSION(source)); fail_unless(source_added_ok, "Source add failed\n"); /* Add it again... This should assert */ expect_assert(mafw_registry_add_extension(reg, MAFW_EXTENSION(source))); }
END_TEST START_TEST(test_remove_non_existing_renderer) { MafwRegistry *reg = NULL; MafwRenderer *renderer1 = NULL; MafwRenderer *renderer2 = NULL; GList *renderers = NULL; reg = g_object_new(MAFW_TYPE_REGISTRY, NULL); fail_unless(reg != NULL, "Object construction failed"); g_signal_connect(reg, "renderer_removed", (GCallback) renderer_removed, NULL); renderer1 = MAFW_RENDERER(g_object_new(nop_renderer_get_type(), "uuid", "SomeRenderer", NULL)); renderer2 = MAFW_RENDERER(g_object_new(nop_renderer_get_type(), "uuid", "SomeRenderer2", NULL)); /* Add a renderer */ mafw_registry_add_extension(reg, MAFW_EXTENSION(renderer1)); /* Get renderers */ renderers = mafw_registry_get_renderers(reg); fail_unless(g_list_length(renderers) == 1, "Renderers list size wrong\n"); /* Remove the renderer (which shouldn't exist in the registry */ expect_assert(mafw_registry_remove_extension(reg, MAFW_EXTENSION(renderer2))); fail_unless(renderer_removed_ok == FALSE, "Shouldn't signal non-existing renderer removal\n"); renderers = mafw_registry_get_renderers(reg); fail_unless(g_list_length(renderers) == 1, "Renderers list size wrong\n"); g_object_unref(reg); }