afbb73944dc5bddb8cee79ce83201ffe39b88b52
[framework/graphics/cairo.git] / test / font-face-get-type.c
1 /*
2  * Copyright © 2006 Red Hat, Inc.
3  *
4  * Permission to use, copy, modify, distribute, and sell this software
5  * and its documentation for any purpose is hereby granted without
6  * fee, provided that the above copyright notice appear in all copies
7  * and that both that copyright notice and this permission notice
8  * appear in supporting documentation, and that the name of
9  * Red Hat, Inc. not be used in advertising or publicity pertaining to
10  * distribution of the software without specific, written prior
11  * permission. Red Hat, Inc. makes no representations about the
12  * suitability of this software for any purpose.  It is provided "as
13  * is" without express or implied warranty.
14  *
15  * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
16  * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
18  * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
19  * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
20  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
21  * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
22  *
23  * Author: Carl D. Worth <cworth@cworth.org>
24  */
25
26 #include "cairo-test.h"
27
28 static cairo_test_status_t
29 preamble (cairo_test_context_t *ctx)
30 {
31     cairo_test_status_t status = CAIRO_TEST_SUCCESS;
32     cairo_surface_t *surface;
33     cairo_t *cr;
34     cairo_font_face_t *font_face;
35     cairo_scaled_font_t *scaled_font;
36
37     cairo_test_log (ctx, "Creating cairo context and obtaining a font face\n");
38
39     surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 1, 1);
40     cr = cairo_create (surface);
41
42     cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans",
43                             CAIRO_FONT_SLANT_NORMAL,
44                             CAIRO_FONT_WEIGHT_NORMAL);
45
46     cairo_test_log (ctx, "Testing return value of cairo_font_face_get_type\n");
47
48     font_face = cairo_get_font_face (cr);
49
50     if (cairo_font_face_get_type (font_face) != CAIRO_FONT_TYPE_TOY) {
51         cairo_test_log (ctx, "Unexpected value %d from cairo_font_face_get_type (expected %d)\n",
52                         cairo_font_face_get_type (font_face), CAIRO_FONT_TYPE_TOY);
53         status = CAIRO_TEST_FAILURE;
54         goto done;
55     }
56
57     cairo_test_log (ctx, "Testing return value of cairo_get_scaled_font\n");
58
59     scaled_font = cairo_get_scaled_font (cr);
60
61     if (cairo_scaled_font_get_font_face (scaled_font) != font_face) {
62         cairo_test_log (ctx, "Font face returned from the scaled font is different from that returned by the context\n");
63         status = CAIRO_TEST_FAILURE;
64         goto done;
65     }
66
67 done:
68     cairo_destroy (cr);
69     cairo_surface_destroy (surface);
70
71     return status;
72 }
73
74 CAIRO_TEST (font_face_get_type,
75             "Check the returned type from cairo_select_font_face.",
76             "font", /* keywords */
77             NULL, /* requirements */
78             0, 0,
79             preamble, NULL)