tracker r1963 - in branches/indexer-split: . data/services src/libtracker-common tests/libtracker-common



Author: ifrade
Date: Tue Jul 29 16:43:40 2008
New Revision: 1963
URL: http://svn.gnome.org/viewvc/tracker?rev=1963&view=rev

Log:
Adding mime support for Folders

Modified:
   branches/indexer-split/ChangeLog
   branches/indexer-split/data/services/default.service
   branches/indexer-split/src/libtracker-common/tracker-file-utils.c
   branches/indexer-split/tests/libtracker-common/tracker-file-utils-test.c
   branches/indexer-split/tests/libtracker-common/tracker-ontology-test.c

Modified: branches/indexer-split/data/services/default.service
==============================================================================
--- branches/indexer-split/data/services/default.service	(original)
+++ branches/indexer-split/data/services/default.service	Tue Jul 29 16:43:40 2008
@@ -13,9 +13,11 @@
 Parent=Files
 UIVisible=true
 UIView=icon
+MimePrefixes=x-directory/
 Icon=folder
 ShowServiceFiles=true
 ShowServiceDirectories=true
+HasFullText=false
 
 [Documents]
 DisplayName=Documents

Modified: branches/indexer-split/src/libtracker-common/tracker-file-utils.c
==============================================================================
--- branches/indexer-split/src/libtracker-common/tracker-file-utils.c	(original)
+++ branches/indexer-split/src/libtracker-common/tracker-file-utils.c	Tue Jul 29 16:43:40 2008
@@ -334,6 +334,8 @@
 	if (!result || result == XDG_MIME_TYPE_UNKNOWN) {
 		if (is_text_file (str)) {
 			mime_type = g_strdup ("text/plain");
+		} else if (S_ISDIR (finfo.st_mode)) {
+			mime_type = g_strdup ("x-directory/normal");
 		} else {
 			mime_type = g_strdup ("unknown");
 		}

Modified: branches/indexer-split/tests/libtracker-common/tracker-file-utils-test.c
==============================================================================
--- branches/indexer-split/tests/libtracker-common/tracker-file-utils-test.c	(original)
+++ branches/indexer-split/tests/libtracker-common/tracker-file-utils-test.c	Tue Jul 29 16:43:40 2008
@@ -1,5 +1,6 @@
 #include <glib.h>
 #include <glib/gtestutils.h>
+#include <gio/gio.h>
 
 #include <libtracker-common/tracker-file-utils.h>
 #include <tracker-test-helpers.h>
@@ -126,6 +127,28 @@
 }
 
 
+static void
+test_file_get_mime_type (void)
+{
+
+        gchar *dir_name, *result;
+        GFile *dir;
+
+        /* Create test directory */
+        dir_name = g_build_filename (g_get_tmp_dir (), "tracker-test", NULL);
+        dir = g_file_new_for_path (dir_name);
+        g_file_make_directory (dir, NULL, NULL);
+
+        result = tracker_file_get_mime_type (dir_name);
+
+        g_assert (tracker_test_helpers_cmpstr_equal (result, "x-directory/normal"));
+
+        /* Remove test directory */
+        g_file_delete (dir, NULL, NULL);
+        g_object_unref (dir);
+        g_free (dir_name);
+}
+
 int
 main (int argc, char **argv) {
 
@@ -141,6 +164,9 @@
         g_test_add_func ("/tracker/libtracker-common/tracker-file-utils/path_list_filter_duplicates",
                          test_path_list_filter_duplicates);
 
+        g_test_add_func ("/tracker/libtracker-common/tracker-file-utils/file_get_mime_type",
+                         test_file_get_mime_type);
+
         result = g_test_run ();
 
         return result;

Modified: branches/indexer-split/tests/libtracker-common/tracker-ontology-test.c
==============================================================================
--- branches/indexer-split/tests/libtracker-common/tracker-ontology-test.c	(original)
+++ branches/indexer-split/tests/libtracker-common/tracker-ontology-test.c	Tue Jul 29 16:43:40 2008
@@ -52,6 +52,26 @@
 
 }
 
+static gboolean
+element_in_list (GSList *list, gchar *element) 
+{
+	return (g_slist_find_custom (list, element, (GCompareFunc)strcmp) != NULL);
+}
+
+
+static GSList *
+array_to_list (char **array)                                                                          
+{                                                                                                     
+        GSList  *list = NULL;
+        int     i;
+
+        for (i = 0; array[i] != NULL; i++) {
+		list = g_slist_prepend (list, g_strdup (array[i]));
+        }                                                                                                      
+        return list; 
+}
+
+
 TrackerField *
 create_field_definition (const gchar *id, 
                          const gchar *name, 
@@ -78,6 +98,9 @@
 create_service_definition (int id, const char *name, const char *parent, gboolean embedded) {
 
         TrackerService *def;
+	/* array_to_list use prepend, so use reverse order here  */
+	gchar * key_metadata [] = {"Key:Metadata2", "Key:MetaData1", NULL};
+	
         
         def = tracker_service_new ();
         tracker_service_set_id (def, id);
@@ -89,29 +112,11 @@
         tracker_service_set_has_thumbs (def, TRUE);
         tracker_service_set_has_full_text (def, TRUE);
         tracker_service_set_has_metadata (def, FALSE);
+	tracker_service_set_key_metadata (def, array_to_list (key_metadata));
 
 	return def;
 }
 
-static gboolean
-element_in_list (GSList *list, gchar *element) 
-{
-	return (g_slist_find_custom (list, element, (GCompareFunc)strcmp) != NULL);
-}
-
-
-static GSList *
-array_to_list (char **array)                                                                          
-{                                                                                                     
-        GSList  *list = NULL;
-        int     i;
-
-        for (i = 0; array[i] != NULL; i++) {
-		list = g_slist_prepend (list, g_strdup (array[i]));
-        }                                                                                                      
-        return list; 
-}
-
 typedef struct {
 	TrackerService *def;
 	TrackerService *parent_def;
@@ -366,6 +371,24 @@
 
 }
 
+
+static void
+test_metadata_key_in_service (void)
+{
+	gint key;
+
+	key = tracker_ontology_metadata_key_in_service ("Applications",
+							"Key:MetaData1");
+	g_assert_cmpint (key, ==, 1);
+
+	key = tracker_ontology_metadata_key_in_service ("Applications",
+							"Key:MetaDataUnknown");
+	g_assert_cmpint (key, ==, 0);
+
+
+}
+
+
 int
 main (int argc, char **argv) {
 
@@ -408,6 +431,9 @@
 	g_test_add_func ("/libtracker-common/tracker-ontology/test_get_all_registered_field_types",
 			 test_get_registered_field_types);
 
+	g_test_add_func ("/libtracker-common/tracker-ontology/test_metadata_key_in_service",
+			 test_metadata_key_in_service);
+
         result = g_test_run ();
         
         tracker_ontology_shutdown ();



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]