Two cases are tested: success and fail case of the screen-remove-layer API.
Signed-off-by: Michael Teyfel <[email protected]> --- tests/ivi_layout-internal-test.c | 62 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/tests/ivi_layout-internal-test.c b/tests/ivi_layout-internal-test.c index 37a2356..64380ec 100644 --- a/tests/ivi_layout-internal-test.c +++ b/tests/ivi_layout-internal-test.c @@ -341,6 +341,66 @@ test_layer_source_rectangle(struct test_context *ctx) } static void +test_screen_remove_layer(struct test_context *ctx) +{ + const struct ivi_layout_interface *lyt = ctx->layout_interface; + struct ivi_layout_layer *ivilayer; + struct weston_output *output; + struct ivi_layout_layer **array; + int32_t length = 0; + + ivilayer = lyt->layer_create_with_dimension(IVI_TEST_LAYER_ID(0), 200, 300); + iassert(ivilayer != NULL); + + if (wl_list_empty(&ctx->compositor->output_list)) + return; + + output = wl_container_of(ctx->compositor->output_list.next, output, link); + + iassert(lyt->screen_add_layer(output, ivilayer) == IVI_SUCCEEDED); + lyt->commit_changes(); + + iassert(lyt->get_layers_on_screen(output, &length, &array) == IVI_SUCCEEDED); + iassert(length == 1); + iassert(array[0] == ivilayer); + + iassert(lyt->screen_remove_layer(output ,ivilayer) == IVI_SUCCEEDED); + lyt->commit_changes(); + + iassert(lyt->get_layers_on_screen(output, &length, &array) == IVI_SUCCEEDED); + iassert(length == 0); + + lyt->layer_destroy(ivilayer); +} + +static void +test_screen_bad_remove_layer(struct test_context *ctx) +{ + const struct ivi_layout_interface *lyt = ctx->layout_interface; + struct ivi_layout_layer *ivilayer; + struct weston_output *output; + + ivilayer = lyt->layer_create_with_dimension(IVI_TEST_LAYER_ID(0), 200, 300); + iassert(ivilayer != NULL); + + if (wl_list_empty(&ctx->compositor->output_list)) + return; + + output = wl_container_of(ctx->compositor->output_list.next, output, link); + + iassert(lyt->screen_remove_layer(NULL, ivilayer) == IVI_FAILED); + lyt->commit_changes(); + + iassert(lyt->screen_remove_layer(output, NULL) == IVI_FAILED); + lyt->commit_changes(); + + iassert(lyt->screen_remove_layer(NULL, NULL) == IVI_FAILED); + lyt->commit_changes(); + + lyt->layer_destroy(ivilayer); +} + +static void test_layer_bad_remove(struct test_context *ctx) { const struct ivi_layout_interface *lyt = ctx->layout_interface; @@ -951,6 +1011,8 @@ run_internal_tests(void *data) test_layer_position(ctx); test_layer_destination_rectangle(ctx); test_layer_source_rectangle(ctx); + test_screen_remove_layer(ctx); + test_screen_bad_remove_layer(ctx); test_layer_bad_remove(ctx); test_layer_bad_visibility(ctx); test_layer_bad_opacity(ctx); -- 2.7.4 _______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
