diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2024-12-04 12:29:07 +0100 |
|---|---|---|
| committer | j-p <jp_bruyere@hotmail.com> | 2025-03-24 19:12:00 +0100 |
| commit | 55fbcfd54f65f89e5a24c631a8194ae33592edb5 (patch) | |
| tree | 2d85f271de0010a4b96482f7949457c36679b601 /gunit_tests/context.cpp | |
| parent | 90751ff88f90f22539f5f76cbbd577493961b0d5 (diff) | |
gunit tests wip + api calls strenghtenings
Diffstat (limited to 'gunit_tests/context.cpp')
| -rw-r--r-- | gunit_tests/context.cpp | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/gunit_tests/context.cpp b/gunit_tests/context.cpp index e44a3d7..82fb78c 100644 --- a/gunit_tests/context.cpp +++ b/gunit_tests/context.cpp @@ -70,3 +70,150 @@ TEST_F(ContextTest, CtxReference) { EXPECT_EQ(1, vkvg_surface_get_reference_count(surf)); EXPECT_EQ(2, vkvg_device_get_reference_count(dev)); } +TEST_F(ContextTest, CtxDrawBasicNullContext) { + //test method with context in error + VkvgContext ctx = vkvg_create(NULL); + EXPECT_NO_FATAL_FAILURE(vkvg_new_path(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_close_path(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_new_sub_path(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_path_extents(ctx, NULL, NULL, NULL, NULL)); + EXPECT_NO_FATAL_FAILURE(vkvg_get_current_point(ctx, NULL, NULL)); + + EXPECT_NO_FATAL_FAILURE(vkvg_line_to(ctx,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_rel_line_to(ctx,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_move_to(ctx,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_rel_move_to(ctx,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_arc(ctx,0,0,0,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_arc_negative(ctx,0,0,0,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_curve_to(ctx,0,0,0,0,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_rel_curve_to(ctx,0,0,0,0,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_quadratic_to(ctx,0,0,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_rel_quadratic_to(ctx,0,0,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_rectangle(ctx,0,0,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_rounded_rectangle(ctx,0,0,0,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_rounded_rectangle2(ctx,0,0,0,0,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_ellipse(ctx,0,0,0,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_elliptic_arc_to(ctx,0,0,0,0,0,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_rel_elliptic_arc_to(ctx,0,0,0,0,0,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_stroke(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_stroke_preserve(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_fill(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_fill_preserve(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_paint(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_clear(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_reset_clip(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_clip(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_clip_preserve(ctx)); + + EXPECT_NO_FATAL_FAILURE(vkvg_set_opacity(ctx,0)); + + EXPECT_EQ(0, vkvg_get_opacity(ctx)); + + EXPECT_NO_FATAL_FAILURE(vkvg_set_source_color(ctx,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_set_source_rgb(ctx,0,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_set_source_rgba(ctx,0,0,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_set_source_surface(ctx,NULL,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_set_source(ctx,NULL)); + EXPECT_NO_FATAL_FAILURE(vkvg_set_line_width(ctx,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_set_miter_limit(ctx,0)); + + EXPECT_EQ(0, vkvg_get_miter_limit(ctx)); + + EXPECT_NO_FATAL_FAILURE(vkvg_set_line_cap(ctx, VKVG_LINE_CAP_ROUND)); + EXPECT_NO_FATAL_FAILURE(vkvg_set_line_join(ctx, VKVG_LINE_JOIN_MITER)); + EXPECT_NO_FATAL_FAILURE(vkvg_set_operator(ctx, VKVG_OPERATOR_OVER)); + EXPECT_NO_FATAL_FAILURE(vkvg_set_fill_rule(ctx, VKVG_FILL_RULE_EVEN_ODD)); + EXPECT_NO_FATAL_FAILURE(vkvg_set_dash(ctx, NULL, 0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_get_dash(ctx, NULL, NULL,NULL)); + + EXPECT_EQ(0, vkvg_get_line_width(ctx)); + + EXPECT_EQ(VKVG_LINE_CAP_BUTT, vkvg_get_line_cap(ctx)); + EXPECT_EQ(VKVG_LINE_JOIN_MITER, vkvg_get_line_join(ctx)); + EXPECT_EQ(VKVG_OPERATOR_OVER, vkvg_get_operator(ctx)); + EXPECT_EQ(VKVG_FILL_RULE_NON_ZERO, vkvg_get_fill_rule(ctx)); + + EXPECT_NO_FATAL_FAILURE(vkvg_get_source(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_get_target(ctx)); + + EXPECT_EQ(false, vkvg_has_current_point(ctx)); + + EXPECT_NO_FATAL_FAILURE(vkvg_save(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_restore(ctx)); + + EXPECT_NO_FATAL_FAILURE(vkvg_translate(ctx,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_scale(ctx,0,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_rotate(ctx,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_transform(ctx,NULL)); + EXPECT_NO_FATAL_FAILURE(vkvg_set_matrix(ctx,NULL)); + EXPECT_NO_FATAL_FAILURE(vkvg_get_matrix(ctx,NULL)); + EXPECT_NO_FATAL_FAILURE(vkvg_identity_matrix(ctx)); + + EXPECT_NO_FATAL_FAILURE(vkvg_select_font_face(ctx,NULL)); + EXPECT_NO_FATAL_FAILURE(vkvg_load_font_from_path(ctx,NULL,NULL)); + EXPECT_NO_FATAL_FAILURE(vkvg_load_font_from_memory(ctx,NULL,0,NULL)); + EXPECT_NO_FATAL_FAILURE(vkvg_set_font_size(ctx,0)); + EXPECT_NO_FATAL_FAILURE(vkvg_show_text(ctx,NULL)); + EXPECT_NO_FATAL_FAILURE(vkvg_text_extents(ctx,NULL,NULL)); + EXPECT_NO_FATAL_FAILURE(vkvg_font_extents(ctx,NULL)); + + vkvg_text_run_create(ctx,NULL); + vkvg_text_run_create_with_length(ctx,NULL,10); + + //vkvg_text_run_destroy(NULL); + vkvg_show_text_run(ctx,NULL); +} +#define EXPECT_CP(x,y) { \ + vkvg_get_current_point(ctx, &a, &b);\ + EXPECT_FLOAT_EQ(x, a);\ + EXPECT_FLOAT_EQ(y, b);\ +} +#define EXPECT_NO_CP() {\ + EXPECT_EQ(false, vkvg_has_current_point(ctx));\ + EXPECT_CP(0,0);\ +} + +TEST_F(ContextTest, CtxBasicPathCommands) { + float a = 0.0,b = 0.0,c = 0.0,d = 0.0; + VkvgContext ctx = vkvg_create(surf); + EXPECT_NO_CP(); + + EXPECT_NO_FATAL_FAILURE(vkvg_new_path(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_close_path(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_new_sub_path(ctx)); + EXPECT_NO_FATAL_FAILURE(vkvg_path_extents(ctx, &a, &b, &c, &d)); + EXPECT_FLOAT_EQ(0, a && b && c && d); + + EXPECT_NO_CP(); + + vkvg_line_to(ctx, 50, 10); + EXPECT_CP(50,10); + + vkvg_move_to(ctx, 10, 50); + EXPECT_EQ(true, vkvg_has_current_point(ctx)); + EXPECT_CP(10,50); + + vkvg_line_to(ctx, 50, 10); + EXPECT_CP(50,10); + + vkvg_rel_line_to(ctx, 10, 10); + EXPECT_CP(60,20); + + vkvg_close_path(ctx); + + EXPECT_NO_CP(); + + vkvg_line_to(ctx, 50, 10); + vkvg_rel_line_to(ctx, 10, 10); + vkvg_new_sub_path(ctx); + + EXPECT_NO_CP(); + + vkvg_line_to(ctx, 50, 10); + vkvg_rel_line_to(ctx, 10, 10); + vkvg_new_path(ctx); + + EXPECT_NO_CP(); + + vkvg_destroy(ctx); +} |