From d63267e4e7e148836dcfc4c8e2a8396ddaab70d8 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Wed, 5 Nov 2008 17:18:51 +0000 Subject: [PATCH] [test] Update mime-data to check image/png Add a "image/png" mime-type test. --- test/Makefile.am | 1 + test/mime-data.c | 67 ++++++++++++++++++++++++------------- test/mime-data.pdf.ref.png | Bin 4345 -> 4466 bytes test/mime-data.ps.ref.png | Bin 4345 -> 4466 bytes test/mime-data.ref.png | Bin 127 -> 155 bytes test/mime-data.svg.ref.png | Bin 0 -> 6153 bytes test/png.png | Bin 0 -> 2096 bytes 7 files changed, 45 insertions(+), 23 deletions(-) create mode 100644 test/mime-data.svg.ref.png create mode 100644 test/png.png diff --git a/test/Makefile.am b/test/Makefile.am index d9d4d3987..131ed6034 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1012,6 +1012,7 @@ EXTRA_DIST += \ 6x13.pcf \ make-html.pl \ jpeg.jpg \ +png.png \ romedalen.jpg \ romedalen.png \ scarab.jpg \ diff --git a/test/mime-data.c b/test/mime-data.c index a387d6726..87fe74c86 100644 --- a/test/mime-data.c +++ b/test/mime-data.c @@ -31,27 +31,23 @@ /* Basic test to exercise the new mime-data embedding. */ static cairo_status_t -read_jpg_file (const cairo_test_context_t *ctx, - unsigned char **data_out, - unsigned int *length_out) +read_file (const cairo_test_context_t *ctx, + const char *filename, + unsigned char **data_out, + unsigned int *length_out) { - /* Deliberately use a non-matching jpeg image, so that we can identify - * when the JPEG representation is used in preference to the image - * surface. - */ - const char jpg_filename[] = "jpeg.jpg"; FILE *file; unsigned char *buf; unsigned int len; - file = fopen (jpg_filename, "rb"); + file = fopen (filename, "rb"); if (file == NULL) { - char filename[4096]; + char path[4096]; /* try again with srcdir */ - snprintf (filename, sizeof (filename), - "%s/%s", ctx->srcdir, jpg_filename); - file = fopen (filename, "rb"); + snprintf (path, sizeof (path), + "%s/%s", ctx->srcdir, filename); + file = fopen (path, "rb"); } if (file == NULL) { switch (errno) { @@ -79,37 +75,62 @@ read_jpg_file (const cairo_test_context_t *ctx, } static cairo_test_status_t -draw (cairo_t *cr, int width, int height) +paint_file (cairo_t *cr, + const char *filename, const char *mime_type, + int x, int y) { const cairo_test_context_t *ctx = cairo_test_get_context (cr); cairo_surface_t *image; - unsigned char *jpg_data; - unsigned int jpg_len; + unsigned char *mime_data; + unsigned int mime_length; cairo_status_t status; - status = read_jpg_file (ctx, &jpg_data, &jpg_len); - if (status) { + /* Deliberately use a non-matching MIME images, so that we can identify + * when the MIME representation is used in preference to the plain image + * surface. + */ + status = read_file (ctx, filename, &mime_data, &mime_length); + if (status) return cairo_test_status_from_status (ctx, status); - } image = cairo_image_surface_create (CAIRO_FORMAT_RGB24, 200, 50); - status = cairo_surface_set_mime_data (image, CAIRO_MIME_TYPE_JPEG, - jpg_data, jpg_len, free); + + status = cairo_surface_set_mime_data (image, mime_type, + mime_data, mime_length, free); if (status) { cairo_surface_destroy (image); return cairo_test_status_from_status (ctx, status); } - cairo_set_source_surface (cr, image, 0, 0); + cairo_set_source_surface (cr, image, x, y); cairo_surface_destroy (image); + cairo_paint (cr); return CAIRO_TEST_SUCCESS; } +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + const char jpg_filename[] = "jpeg.jpg"; + const char png_filename[] = "png.png"; + cairo_test_status_t status; + + status = paint_file (cr, jpg_filename, CAIRO_MIME_TYPE_JPEG, 0, 0); + if (status) + return status; + + status = paint_file (cr, png_filename, CAIRO_MIME_TYPE_PNG, 0, 50); + if (status) + return status; + + return CAIRO_TEST_SUCCESS; +} + CAIRO_TEST (mime_data, "Check that the mime-data embedding works", "jpeg, api", /* keywords */ NULL, /* requirements */ - 200, 50, + 200, 100, NULL, draw) diff --git a/test/mime-data.pdf.ref.png b/test/mime-data.pdf.ref.png index cf53a6103aa467ed2a1c470a34dd772093f76681..ebfcb790ec4169a181fc82ff55e695cb45879f94 100644 GIT binary patch literal 4466 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 literal 4345 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

MpKBTh$>|=DIX6RaU zY-NB9VS@VIOH=Lml~aY76m8Cn8h(o!54xG}K8ej0o@!NwPL^O1sek!ioG^EARUIab zRE8VtJjBcoK2t)Ja=hIxX`SRX}V%6G{3~#cxnw3-47fG zDj};k=38`p;p~_;kDb&$9bhTqIbO~+^8)&Orj4`h>foeP&Hvlpv)PG?iHtHR8m#L7 e|91gGq diff --git a/test/mime-data.ps.ref.png b/test/mime-data.ps.ref.png index cf53a6103aa467ed2a1c470a34dd772093f76681..ebfcb790ec4169a181fc82ff55e695cb45879f94 100644 GIT binary patch literal 4466 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 literal 4345 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

MpKBTh$>|=DIX6RaU zY-NB9VS@VIOH=Lml~aY76m8Cn8h(o!54xG}K8ej0o@!NwPL^O1sek!ioG^EARUIab zRE8VtJjBcoK2t)Ja=hIxX`SRX}V%6G{3~#cxnw3-47fG zDj};k=38`p;p~_;kDb&$9bhTqIbO~+^8)&Orj4`h>foeP&Hvlpv)PG?iHtHR8m#L7 e|91gGq diff --git a/test/mime-data.ref.png b/test/mime-data.ref.png index 782a2eef6797602b6cb81f5447b173025628f14b..ccbf1b63e53c839997ff6bac70822c539896d4e7 100644 GIT binary patch delta 80 zcmb=Q%{W1vD}{rJfq}v2$%~kYilSlxo-U3d6?5JmWMl-2HYxmHpXcGgI5ALSVge@& cv5EbWe079@aca%-!NfpWu{gHU WBnHM!@q*uh5)7WMelF{r5}E*#jT7tu diff --git a/test/mime-data.svg.ref.png b/test/mime-data.svg.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..96a7bec4418aa12f66cfb39df41af81bcebc10c1 GIT binary patch literal 6153 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 W=hwyQHw*Ok@wC*Qsa7l7y!k&Y{sdY8 literal 0 HcmV?d00001 diff --git a/test/png.png b/test/png.png new file mode 100644 index 0000000000000000000000000000000000000000..56c428e12108e1a9d4fb7df8b9a36d5b015e3101 GIT binary patch literal 2096 zcmZuyc`)1S8vdzW+9sA*gS53>YiKP|RZE;$N--&+Y6&7*)r3%6+S*QABx)&2741=! zV>tw+sa{*^w6-g1k9(@;RH&k{rHcD==iWc=%$;w(@16Jg=AC!uU7qK@yBqeHl(G~6 z0LPphF`l4(3tkfmG4NIL$o~U0LeZXBJD`3D!2=yJf(sS{92}lU_0C{A^9br7F~h{8;TFV*z1KuC$|fT!BuxPCn}k_y;Ig$7YWLy$MasU#%U z$<^IE`M3fYmg$7C#l=mplms~D1t_x1_9#7r&nN#OXv-ha{WjcJotc69-N86wDN+|^ zl&V~$0QZ=~nUDYS8|0baFZ4HfqIm@zF8{FC5O=1)Bcz^qdYf%kS?HWS14{Rk;j@rROU@6E{n21su@-0%tR_ug? ziNwFZ{sR`Y+FBrvKZD&5n(K&p^9MO_u-H^XjFt-PA~fLxNhApXxO(-fBg{l%UGL`C zS;_rhM@fgC^Z-&+RJ0tY>-0dhJK%lZ*bS!4yPX}2S4jdH0Ek`Xx~BYCf%0-bilqwa z>gw7cVKzjf)|aVf@&5jP00<-!#fBcEg{9JuczSx;Xyw_`Xf%}C{hSQzrl93m)X;2!)1*Hr_tCg(?}WTWFkF8R2k5qFy4>>`sJ)hT6u&m~L!s^)nUM zch-YRB+{MnTJKcMNudgN34uW1e)%$FZf?%wy!%%!OQlZMl9j=^%jNo4*Vq4CSEmn? zN_Y43J4&b1*EW|YiW(-G!-j2Y$L(Tc%_KyQ;9o{*BCO(IUt)J}Oz8QPeasXCP|hvw zZdH(7b)fu$R?q0D$Ly>4=-#-XpcB(8TSebtHRP9mR*72?y<0s!Jw=6u=3z6k+HM%t zsxe+~adC0=-sH<@ZA%0Ly*c}ucJ>J1TrhSQOwY@Vh*zSX7P zc6~-Z`tn2P^kf@k1Y-U*ttUTUP6UV`k?;=+fIFI+nv3gk^7#v&2J$2)GLLr448MEV zqhRD;KC#>v%w{{Q+1D(L~w@TVUo$~VaRc?YhSIU%>lr(j9scUO%kACJ?uorBb zr?Py1EyxL8<+8F`4Gavj+8s5zTU*Vj7KlZ%#o9FUT2XQF@0LRh2BXoK`85qz#swykf zP4Bwv^y+!nmyhu$JX^>FE?o$)J3!eQ)N> z3h|SUp&_xiEn=$sUO+qfg#KOshA`EzOPAoMwl;WUjfgU98iC_cJ0286tRfMb6j}Z^ za0d1_Zee=g6&jsh!g+c9_LoJ>lH94tCOqEsV%lN0_VKI7`iVqh_s8Ji;H)h_L-Q9S z$L|Us*5<_vDF_5&Y-$=a6wh?jAhZm=e;?AzX0xAhXDjv|I9F0GqC-r4COHloGADq* zD_5>u@I83(r@mM1Lys`Qw?FI9Tvj6c-tB|^(wMsYBZrOI-rcKPCqbWAyrS*OL!_ks zI;Z{@Ur_fMi}@kohxwrif3s4{&Usc_tEYHcnQk1e>JlJGy5)yHlKci7*D3uPx}9Mm ztJ6x&s6NTn)pc!sfgQh%J(+`IoHEFsjxhUxP*PH&lufK|V`mX^5+aS)ChCi#E?l^f zwrA9Gz~k{KJk{$?X3`0xZV58+8;jBl?Mx;-!c1jn@0JY)>@MMYfR|Ul#n+`JsoJrr zse$5WPoJhxtSl@f4sJI$7x*MutIu}cgaSZo>`?kZ2!ZA*3Y53BoT*6AwlkU* zcOoRka;+~%&UK_mwy9KARW&sGK3HN-GI_K%Qej{1uA{i3Zk?nU0gi)m^M~;8@JTM0;Z`Mk z#ZW<+-rrdHEmOg$zcQ@F5-jo)+gwHO8XUwo?_zJq>*3Fk%l-7Ky<}nWl#)kf=WjE7 zmPrnVg$o-SRJ&t#yGWP!NMT{&q9;$RKc}M;Hb@-A;f|M-oDE|vu(Pp)L2WY>Hba#% zk4m-y_N(W;p%StY#m_-LMCr^Ylg-VrMUS2lV))p5eS%XA? ztHJ$!uoZvUg23S5Q}S?lg$>fC2A6S_shpUQK#q#a9ko7p?i_((gS@l7I?txC6|aj@3AAtipe?7Vv02QaMKtCrH20oQ>^kjGzK zsvhI5fs@Yf@E_nTm!aNvy#a|+Nx`oMr=`E$Fi);Xl;OXm9K^ErzlU