diff options
author | Ivan Frade <ivan.frade@gmail.com> | 2011-10-17 14:38:47 +0300 |
---|---|---|
committer | Ivan Frade <ivan.frade@gmail.com> | 2011-10-17 14:38:47 +0300 |
commit | 724963534a1c4a213cf9477e78805c2b74e215bd (patch) | |
tree | 76c87ec725c2be40e2da59b4c313ccd0688bf4e2 /tests/libtracker-extract | |
parent | 3148cd3cb399c7784f9b7cb161d5c7ecdc559f55 (diff) | |
download | tracker-724963534a1c4a213cf9477e78805c2b74e215bd.tar.gz |
tests/libtracker-extract: tracker-guaranteee unit tests
Diffstat (limited to 'tests/libtracker-extract')
-rw-r--r-- | tests/libtracker-extract/Makefile.am | 8 | ||||
-rw-r--r-- | tests/libtracker-extract/guarantee-mtime-test.txt | 1 | ||||
-rw-r--r-- | tests/libtracker-extract/tracker-guarantee-test.c | 131 |
3 files changed, 138 insertions, 2 deletions
diff --git a/tests/libtracker-extract/Makefile.am b/tests/libtracker-extract/Makefile.am index 1f3283dbc..58385aa15 100644 --- a/tests/libtracker-extract/Makefile.am +++ b/tests/libtracker-extract/Makefile.am @@ -6,7 +6,8 @@ TEST_PROGS += \ tracker-test-utils \ tracker-test-xmp \ tracker-extract-info-test \ - tracker-exif-test + tracker-exif-test \ + tracker-guarantee-test if HAVE_ENCA TEST_PROGS += tracker-encoding @@ -43,6 +44,8 @@ tracker_extract_info_test_SOURCES = tracker-extract-info-test.c tracker_exif_test_SOURCES = tracker-exif-test.c +tracker_guarantee_test_SOURCES = tracker-guarantee-test.c + EXTRA_DIST = encoding-detect.bin \ areas.xmp \ areas-with-contacts.xmp \ @@ -50,4 +53,5 @@ EXTRA_DIST = encoding-detect.bin \ nb282393.xmp \ nb282393_simple.xmp \ exif-img.jpg \ - exif-free-img.jpg + exif-free-img.jpg \ + guarantee-mtime-test.txt diff --git a/tests/libtracker-extract/guarantee-mtime-test.txt b/tests/libtracker-extract/guarantee-mtime-test.txt new file mode 100644 index 000000000..587be6b4c --- /dev/null +++ b/tests/libtracker-extract/guarantee-mtime-test.txt @@ -0,0 +1 @@ +x diff --git a/tests/libtracker-extract/tracker-guarantee-test.c b/tests/libtracker-extract/tracker-guarantee-test.c new file mode 100644 index 000000000..6f86df9bf --- /dev/null +++ b/tests/libtracker-extract/tracker-guarantee-test.c @@ -0,0 +1,131 @@ +#include "config.h" +#include <glib.h> +#include <libtracker-sparql/tracker-sparql.h> +#include <libtracker-extract/tracker-guarantee.h> + +typedef struct { + gchar *file_uri; + gchar *extracted_title; + gchar *expected_title; +} TestCase; + +TestCase test_cases_title [] = { + { "file:///a/b/a_video_with_metadata.avi", "extracted title", "extracted title" }, + +#ifdef GUARANTEE_METADATA + { "file:///a/b/a_video_with_no_metadata.avi", NULL, "a video with no metadata" }, + { "file:///a/b/a_video_with_no_metadata.avi", "", "a video with no metadata" }, + { "file:///a/b/a.video.with.no.metadata.avi", NULL, "a.video.with.no.metadata" }, + { "file:///a/b/a video without extension", NULL, "a video without extension" }, + { "file:///a/b/.hidden_file", NULL, "hidden file" }, +#endif + + { NULL, NULL, NULL} +}; + + +/* + * @uri of the file that is being processed + * @value is the title returned by the extractor + * @expected can be either the title of the extractor (if not NULL or empty) or calculated from the filename + */ +void +internal_test_title (const gchar *uri, + const gchar *value, + const gchar *expected) +{ + TrackerSparqlBuilder *builder; + gchar *sparql; + + builder = tracker_sparql_builder_new_update (); + tracker_sparql_builder_insert_open (builder, "test"); + tracker_sparql_builder_subject_iri (builder, "test://resource"); + g_assert (tracker_guarantee_title_from_file (builder, + "nie:title", + value, + uri)); + tracker_sparql_builder_insert_close (builder); + + sparql = g_strdup_printf ("INSERT INTO <test> {\n<test://resource> nie:title \"%s\" .\n}\n", + expected); + g_assert_cmpstr (sparql, + ==, + tracker_sparql_builder_get_result (builder)); + + g_object_unref (builder); + g_free (sparql); +} + +void +internal_test_date (const gchar *uri, + const gchar *value) +{ + TrackerSparqlBuilder *builder; + + builder = tracker_sparql_builder_new_update (); + tracker_sparql_builder_insert_open (builder, "test"); + tracker_sparql_builder_subject_iri (builder, "test://resource"); + g_assert (tracker_guarantee_date_from_file_mtime (builder, + "test:mtime", + value, + uri)); + tracker_sparql_builder_insert_close (builder); + /* mtime can change in the file so we just check that the property is in the output */ + g_assert (g_strstr_len (tracker_sparql_builder_get_result (builder), -1, "test:mtime")); + + g_object_unref (builder); +} + +void +test_guarantee_title () +{ + int i; + + for (i = 0; test_cases_title[i].file_uri != NULL; i++) { + internal_test_title (test_cases_title[i].file_uri, + test_cases_title[i].extracted_title, + test_cases_title[i].expected_title); + } + +#ifdef GUARANTEE_METADATA + g_print ("%d test cases (guarantee metadata enabled) ", i); +#else + g_print ("%d test cases (guarantee metadata disabled) ", i); +#endif +} + +void +test_guarantee_date () +{ + GFile *f; + gchar *uri; + + internal_test_date ("file:///does/not/matter/here", "2011-10-10T12:13:14Z0300"); + +#ifdef GUARANTEE_METADATA + + f = g_file_new_for_path ("./guarantee-mtime-test.txt"); + uri = g_file_get_uri (f); + + internal_test_date (uri, NULL); + internal_test_date (uri, ""); + + g_free (uri); + g_object_unref (f); +#endif +} + + +int +main (int argc, char** argv) +{ + g_type_init (); + g_test_init (&argc, &argv, NULL); + + g_test_add_func ("/libtracker-extract/guarantee/title", + test_guarantee_title); + g_test_add_func ("/libtracker-extract/guarantee/date", + test_guarantee_date); + + return g_test_run (); +} |