diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2015-07-29 21:12:47 +0100 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2015-08-03 22:30:20 +0100 |
commit | cefb64e2eb6e67d523ed9367fea54ec7d30a1414 (patch) | |
tree | 2d2cbc543a0d061b7814cfc885942bad348da4f2 /test/nslayout-object-tests.c | |
parent | ca962228c7be4c7c845aba9a96c8ecae251efd2a (diff) | |
download | libnslayout-cefb64e2eb6e67d523ed9367fea54ec7d30a1414.tar.gz libnslayout-cefb64e2eb6e67d523ed9367fea54ec7d30a1414.tar.bz2 |
s/_/-/
Diffstat (limited to 'test/nslayout-object-tests.c')
-rw-r--r-- | test/nslayout-object-tests.c | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/test/nslayout-object-tests.c b/test/nslayout-object-tests.c new file mode 100644 index 0000000..a2f9afc --- /dev/null +++ b/test/nslayout-object-tests.c @@ -0,0 +1,79 @@ +/* + * This file is part of LibNSLayout's tests + * Licensed under the ISC License, http://opensource.org/licenses/ISC + * Copyright 2015 Michael Drake <tlsa@netsurf-browser.org> + */ + +#include <check.h> +#include <stdlib.h> +#include <string.h> + +#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); + + 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"); + + 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); +} |