/* * This file is part of LibNSLayout's tests * Licensed under the ISC License, http://opensource.org/licenses/ISC * Copyright 2015 Michael Drake */ #include #include #include #include "tests.h" #ifndef UNUSED #define UNUSED(x) (void)(x) #endif static nslayout_error nslayout_test_callback( nslayout_layout *layout, void *pw, nslayout_request *req) { UNUSED(req); UNUSED(layout); UNUSED(pw); return NSLAYOUT_OK; } START_TEST (test_nslayout_layout_create_ok) { nslayout_layout *layout = NULL; nslayout_error error; dom_exception dom_error; css_error css_err; dom_document *doc; css_select_ctx *css_ctx; css_media_type media = CSS_MEDIA_SCREEN; /* Create a DOM document */ dom_error = dom_implementation_create_document(DOM_IMPLEMENTATION_HTML, NULL, NULL, NULL, NULL, NULL, &doc); ck_assert(dom_error == DOM_NO_ERR); /* Create a selection context (with no sheets added) */ css_err = css_select_ctx_create(&css_ctx); ck_assert(css_err == CSS_OK); ck_assert(nslayout_init() == NSLAYOUT_OK); error = nslayout_layout_create(doc, css_ctx, &media, nslayout_test_callback, NULL, &layout); fail_unless(error == NSLAYOUT_OK, "Unable to create layout"); fail_unless(layout != NULL, "Returned OK but str was still NULL"); error = nslayout_layout_destroy(layout); fail_unless(error == NSLAYOUT_OK, "Unable to destroy layout"); ck_assert(nslayout_fini() == NSLAYOUT_OK); css_err = css_select_ctx_destroy(css_ctx); ck_assert(css_err == CSS_OK); dom_node_unref(doc); } END_TEST void nslayout_nslayout_object_suite(SRunner *sr) { Suite *s = suite_create("libnslayout: nslayout object tests"); TCase *tc_layout_basic = tcase_create("Creation/Destruction"); tcase_add_test(tc_layout_basic, test_nslayout_layout_create_ok); suite_add_tcase(s, tc_layout_basic); srunner_add_suite(sr, s); }