1 /*
2      This file is part of libextractor.
3      Copyright (C) 2012 Vidyut Samanta and Christian Grothoff
4 
5      libextractor is free software; you can redistribute it and/or modify
6      it under the terms of the GNU General Public License as published
7      by the Free Software Foundation; either version 3, or (at your
8      option) any later version.
9 
10      libextractor is distributed in the hope that it will be useful, but
11      WITHOUT ANY WARRANTY; without even the implied warranty of
12      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13      General Public License for more details.
14 
15      You should have received a copy of the GNU General Public License
16      along with libextractor; see the file COPYING.  If not, write to the
17      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18      Boston, MA 02110-1301, USA.
19 */
20 /**
21  * @file plugins/test_exiv2.c
22  * @brief testcase for exiv2 plugin
23  * @author Christian Grothoff
24  */
25 #include "platform.h"
26 #include "test_lib.h"
27 
28 
29 /**
30  * Main function for the EXIV2 testcase.
31  *
32  * @param argc number of arguments (ignored)
33  * @param argv arguments (ignored)
34  * @return 0 on success
35  */
36 int
main(int argc,char * argv[])37 main (int argc, char *argv[])
38 {
39   struct SolutionData exiv2_iptc_sol[] = {
40     {
41       EXTRACTOR_METATYPE_GPS_LATITUDE_REF,
42       EXTRACTOR_METAFORMAT_UTF8,
43       "text/plain",
44       "North",
45       strlen ("North") + 1,
46       0
47     },
48     {
49       EXTRACTOR_METATYPE_GPS_LATITUDE,
50       EXTRACTOR_METAFORMAT_UTF8,
51       "text/plain",
52       "28deg 8' (18|17.585)\" ?",
53       strlen ("28deg 8' (18|17.585)\" ?") + 1,
54       0,
55       .regex = 1
56     },
57     {
58       EXTRACTOR_METATYPE_GPS_LONGITUDE_REF,
59       EXTRACTOR_METAFORMAT_UTF8,
60       "text/plain",
61       "West",
62       strlen ("West") + 1,
63       0
64     },
65     {
66       EXTRACTOR_METATYPE_GPS_LONGITUDE,
67       EXTRACTOR_METAFORMAT_UTF8,
68       "text/plain",
69       "14deg 14' (22|21.713)\" ?",
70       strlen ("14deg 14' (22|21.713)\" ?"),
71       0,
72       .regex = 1
73     },
74     {
75       EXTRACTOR_METATYPE_CAMERA_MAKE,
76       EXTRACTOR_METAFORMAT_UTF8,
77       "text/plain",
78       "PENTAX Corporation",
79       strlen ("PENTAX Corporation") + 1,
80       0
81     },
82     {
83       EXTRACTOR_METATYPE_CAMERA_MODEL,
84       EXTRACTOR_METAFORMAT_UTF8,
85       "text/plain",
86       "PENTAX Optio W30",
87       strlen ("PENTAX Optio W30") + 1,
88       0
89     },
90     {
91       EXTRACTOR_METATYPE_ORIENTATION,
92       EXTRACTOR_METAFORMAT_UTF8,
93       "text/plain",
94       "top, left",
95       strlen ("top, left") + 1,
96       0
97     },
98     {
99       EXTRACTOR_METATYPE_CREATION_DATE,
100       EXTRACTOR_METAFORMAT_UTF8,
101       "text/plain",
102       "2008:06:29 16:06:10",
103       strlen ("2008:06:29 16:06:10") + 1,
104       0
105     },
106     {
107       EXTRACTOR_METATYPE_EXPOSURE_BIAS,
108       EXTRACTOR_METAFORMAT_UTF8,
109       "text/plain",
110       "0 EV",
111       strlen ("0 EV") + 1,
112       0
113     },
114     {
115       EXTRACTOR_METATYPE_FLASH,
116       EXTRACTOR_METAFORMAT_UTF8,
117       "text/plain",
118       "No, compulsory",
119       strlen ("No, compulsory") + 1,
120       0
121     },
122     {
123       EXTRACTOR_METATYPE_FOCAL_LENGTH,
124       EXTRACTOR_METAFORMAT_UTF8,
125       "text/plain",
126       "18.9 mm",
127       strlen ("18.9 mm") + 1,
128       0
129     },
130     {
131       EXTRACTOR_METATYPE_FOCAL_LENGTH_35MM,
132       EXTRACTOR_METAFORMAT_UTF8,
133       "text/plain",
134       "114.0 mm",
135       strlen ("114.0 mm") + 1,
136       0
137     },
138     {
139       EXTRACTOR_METATYPE_ISO_SPEED,
140       EXTRACTOR_METAFORMAT_UTF8,
141       "text/plain",
142       "64",
143       strlen ("64") + 1,
144       0
145     },
146     {
147       EXTRACTOR_METATYPE_METERING_MODE,
148       EXTRACTOR_METAFORMAT_UTF8,
149       "text/plain",
150       "Multi-segment",
151       strlen ("Multi-segment") + 1,
152       0
153     },
154     {
155       EXTRACTOR_METATYPE_APERTURE,
156       EXTRACTOR_METAFORMAT_UTF8,
157       "text/plain",
158       "F8",
159       strlen ("F8") + 1,
160       0
161     },
162     {
163       EXTRACTOR_METATYPE_EXPOSURE,
164       EXTRACTOR_METAFORMAT_UTF8,
165       "text/plain",
166       "1/320 s",
167       strlen ("1/320 s") + 1,
168       0
169     },
170     {
171       EXTRACTOR_METATYPE_LOCATION_CITY,
172       EXTRACTOR_METAFORMAT_UTF8,
173       "text/plain",
174       "Los Verdes",
175       strlen ("Los Verdes") + 1,
176       0
177     },
178     {
179       EXTRACTOR_METATYPE_LOCATION_CITY,
180       EXTRACTOR_METAFORMAT_UTF8,
181       "text/plain",
182       "Los Verdes",
183       strlen ("Los Verdes") + 1,
184       0
185     },
186     {
187       EXTRACTOR_METATYPE_LOCATION_SUBLOCATION,
188       EXTRACTOR_METAFORMAT_UTF8,
189       "text/plain",
190       "Fuerteventura",
191       strlen ("Fuerteventura") + 1,
192       0
193     },
194     {
195       EXTRACTOR_METATYPE_LOCATION_COUNTRY,
196       EXTRACTOR_METAFORMAT_UTF8,
197       "text/plain",
198       "Spain",
199       strlen ("Spain") + 1,
200       0
201     },
202     {
203       EXTRACTOR_METATYPE_LOCATION_COUNTRY,
204       EXTRACTOR_METAFORMAT_UTF8,
205       "text/plain",
206       "Spain",
207       strlen ("Spain") + 1,
208       0
209     },
210     {
211       EXTRACTOR_METATYPE_KEYWORDS,
212       EXTRACTOR_METAFORMAT_UTF8,
213       "text/plain",
214       "Fuerteventura",
215       strlen ("Fuerteventura") + 1,
216       0
217     },
218     {
219       EXTRACTOR_METATYPE_KEYWORDS,
220       EXTRACTOR_METAFORMAT_UTF8,
221       "text/plain",
222       "Landschaftsbild",
223       strlen ("Landschaftsbild") + 1,
224       0
225     },
226     {
227       EXTRACTOR_METATYPE_KEYWORDS,
228       EXTRACTOR_METAFORMAT_UTF8,
229       "text/plain",
230       "ProCenter Rene Egli",
231       strlen ("ProCenter Rene Egli") + 1,
232       0
233     },
234     {
235       EXTRACTOR_METATYPE_KEYWORDS,
236       EXTRACTOR_METAFORMAT_UTF8,
237       "text/plain",
238       "Sand",
239       strlen ("Sand") + 1,
240       0
241     },
242     {
243       EXTRACTOR_METATYPE_KEYWORDS,
244       EXTRACTOR_METAFORMAT_UTF8,
245       "text/plain",
246       "Sport",
247       strlen ("Sport") + 1,
248       0
249     },
250     {
251       EXTRACTOR_METATYPE_KEYWORDS,
252       EXTRACTOR_METAFORMAT_UTF8,
253       "text/plain",
254       "Urlaub",
255       strlen ("Urlaub") + 1,
256       0
257     },
258     {
259       EXTRACTOR_METATYPE_KEYWORDS,
260       EXTRACTOR_METAFORMAT_UTF8,
261       "text/plain",
262       "Was?",
263       strlen ("Was?") + 1,
264       0
265     },
266     {
267       EXTRACTOR_METATYPE_KEYWORDS,
268       EXTRACTOR_METAFORMAT_UTF8,
269       "text/plain",
270       "Wind",
271       strlen ("Wind") + 1,
272       0
273     },
274     {
275       EXTRACTOR_METATYPE_KEYWORDS,
276       EXTRACTOR_METAFORMAT_UTF8,
277       "text/plain",
278       "Windsurfen",
279       strlen ("Windsurfen") + 1,
280       0
281     },
282     {
283       EXTRACTOR_METATYPE_KEYWORDS,
284       EXTRACTOR_METAFORMAT_UTF8,
285       "text/plain",
286       "Wo?",
287       strlen ("Wo?") + 1,
288       0
289     },
290     {
291       EXTRACTOR_METATYPE_RATING,
292       EXTRACTOR_METAFORMAT_UTF8,
293       "text/plain",
294       "3",
295       strlen ("3") + 1,
296       0
297     },
298     {
299       EXTRACTOR_METATYPE_RATING,
300       EXTRACTOR_METAFORMAT_UTF8,
301       "text/plain",
302       "50",
303       strlen ("50") + 1,
304       0
305     },
306     {
307       EXTRACTOR_METATYPE_LOCATION_COUNTRY_CODE,
308       EXTRACTOR_METAFORMAT_UTF8,
309       "text/plain",
310       "ES",
311       strlen ("ES") + 1,
312       0
313     },
314     {
315       EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE,
316       EXTRACTOR_METAFORMAT_UTF8,
317       "text/plain",
318       "Optio W30 Ver 1.00",
319       strlen ("Optio W30 Ver 1.00") + 1,
320       0
321     },
322     {
323       EXTRACTOR_METATYPE_SUBJECT,
324       EXTRACTOR_METAFORMAT_UTF8,
325       "text/plain",
326       "Wo?, Wo?|Fuerteventura, Was?, Was?|Anlass]|Urlaub, Was?|Aufnahme]|Landschaftsbild, Was?|Natur]|Wind, Was?|Natur]|Sand, Wo?|Fuerteventura|ProCenter Rene Egli, Was?|Sport, Was?|Sport|Windsurfen",
327       strlen (
328         "Wo?, Wo?|Fuerteventura, Was?, Was?|Anlass]|Urlaub, Was?|Aufnahme]|Landschaftsbild, Was?|Natur]|Wind, Was?|Natur]|Sand, Wo?|Fuerteventura|ProCenter Rene Egli, Was?|Sport, Was?|Sport|Windsurfen")
329       + 1,
330       0
331     },
332     { 0, 0, NULL, NULL, 0, -1 }
333   };
334   struct ProblemSet ps[] = {
335     { "testdata/exiv2_iptc.jpg",
336       exiv2_iptc_sol },
337     { NULL, NULL }
338   };
339   return ET_main ("exiv2", ps);
340 }
341 
342 
343 /* end of test_exiv2.c */
344