Add infrastructure for finding test data files, and use it for avatars
authorSimon McVittie <simon.mcvittie@collabora.co.uk>
Tue, 19 Mar 2013 17:06:03 +0000 (17:06 +0000)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Wed, 20 Mar 2013 11:55:54 +0000 (11:55 +0000)
Again, I've speculatively added support for a FOLKS_TESTS_INSTALLED
variable, because one day I'd like "make installcheck" to work.

Bug https://bugzilla.gnome.org/show_bug.cgi?id=690830
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
14 files changed:
tests/eds/Makefile.am
tests/eds/add-persona.vala
tests/eds/avatar-details.vala
tests/eds/set-avatar.vala
tests/folks/Makefile.am
tests/folks/avatar-cache.vala
tests/lib/Makefile.am
tests/lib/eds/test-case.vala
tests/lib/test-utils.vala
tests/lib/tracker/test-case.vala
tests/tracker/Makefile.am
tests/tracker/add-persona.vala
tests/tracker/avatar-details-interface.vala
tests/tracker/set-avatar.vala

index d4697ba..6cef4ae 100644 (file)
@@ -81,10 +81,8 @@ noinst_PROGRAMS = \
 
 RUN_WITH_PRIVATE_BUS = $(top_srcdir)/tests/tools/with-session-bus-eds.sh
 
-avatar_file=@abs_top_srcdir@/tests/data/avatar-01.jpg
 TESTS_ENVIRONMENT = \
        FOLKS_BACKEND_PATH=$(BACKEND_UNINST_PATH) \
-       AVATAR_FILE_PATH=$(avatar_file) \
        $(RUN_WITH_PRIVATE_BUS) \
        --session \
        --
index 37f6ec4..60ca1b8 100644 (file)
@@ -64,7 +64,8 @@ public class AddPersonaTests : EdsTest.TestCase
       this._persona_fullname = "persona #1";
       this._persona_nickname = "Jo";
       this._email_1 = "someone-1@example.org";
-      this._avatar_path = Environment.get_variable ("AVATAR_FILE_PATH");
+      this._avatar_path = Folks.TestUtils.get_source_test_data (
+          "data/avatar-01.jpg");
       this._im_addr_1 = "someone-1@jabber.example.org";
       this._im_addr_2 = "someone-2@jabber.example.org";
       this._phone_1 = "12345";
index 0def5f3..7c90476 100644 (file)
@@ -41,7 +41,8 @@ public class AvatarDetailsTests : EdsTest.TestCase
     {
       this._c1 = new Gee.HashMap<string, Value?> ();
       this._main_loop = new GLib.MainLoop (null, false);
-      this._avatar_path = Environment.get_variable ("AVATAR_FILE_PATH");
+      this._avatar_path = Folks.TestUtils.get_source_test_data (
+          "data/avatar-01.jpg");
       this._avatars_are_equal = false;
       Value? v;
 
index 9b23bed..d70cbeb 100644 (file)
@@ -43,7 +43,8 @@ public class SetAvatarTests : EdsTest.TestCase
     {
       Gee.HashMap<string, Value?> c1 = new Gee.HashMap<string, Value?> ();
       this._main_loop = new GLib.MainLoop (null, false);
-      var avatar_path = Environment.get_variable ("AVATAR_FILE_PATH");
+      var avatar_path = Folks.TestUtils.get_source_test_data (
+          "data/avatar-01.jpg");
       this._avatar = new FileIcon (File.new_for_path (avatar_path));
       Value? v;
 
@@ -152,7 +153,8 @@ public class SetAvatarTests : EdsTest.TestCase
     {
       var c1 = new Gee.HashMap<string, Value?> ();
       this._main_loop = new GLib.MainLoop (null, false);
-      var avatar_path = Environment.get_variable ("AVATAR_FILE_PATH");
+      var avatar_path = Folks.TestUtils.get_source_test_data (
+          "data/avatar-01.jpg");
       this._avatar = new FileIcon (File.new_for_path (avatar_path));
       Value? v;
 
index ef1ab84..d21e978 100644 (file)
@@ -63,10 +63,8 @@ noinst_PROGRAMS = \
        init \
        $(NULL)
 
-avatar_file=@abs_top_srcdir@/tests/data/avatar-01.jpg
 TESTS_ENVIRONMENT = \
        FOLKS_BACKEND_PATH=$(BACKEND_UNINST_PATH) \
-       AVATAR_FILE_PATH=$(avatar_file) \
        $(top_srcdir)/tests/tools/execute-test.sh \
        $(NULL)
 
index d2f436e..c0f4808 100644 (file)
@@ -59,7 +59,7 @@ public class AvatarCacheTests : Folks.TestCase
       this._cache = AvatarCache.dup ();
       this._avatar =
           new FileIcon (File.new_for_path (
-              Environment.get_variable ("AVATAR_FILE_PATH")));
+              Folks.TestUtils.get_source_test_data ("data/avatar-01.jpg")));
 
       this._main_loop = new GLib.MainLoop (null, false);
     }
index 39bcd38..594101b 100644 (file)
@@ -52,6 +52,7 @@ libfolks_test_la_CPPFLAGS = \
        -DABS_TOP_SRCDIR=\"${abs_top_srcdir}\" \
        -DABS_TOP_BUILDDIR=\"${abs_top_builddir}\" \
        -DPKGLIBEXECDIR=\"${pkglibexecdir}\" \
+       -DPACKAGE_DATADIR=\"${pkgdatadir}\" \
        $(NULL)
 
 libfolks_test_la_LIBADD = \
index a4796dc..456f46f 100644 (file)
@@ -27,7 +27,7 @@
  * for an Evolution address-book.
  *
  * FIXME: For now, this relies on running under with-session-bus-eds.sh
- * with AVATAR_FILE_PATH and FOLKS_BACKEND_PATH set.
+ * with FOLKS_BACKEND_PATH set.
  */
 public class EdsTest.TestCase : Folks.TestCase
 {
index 493cf00..8878bd5 100644 (file)
@@ -179,4 +179,42 @@ public class Folks.TestUtils
 
       Process.check_exit_status (exit_status);
     }
+
+  /**
+   * Return the path to a test file that is distributed in the source tarball
+   * and, if installed, is installed into ${pkgdatadir}/tests.
+   *
+   * @param filename A filename relative to ${top_srcdir}/tests
+   *  or ${pkgdatadir}/tests (or equivalently, ${datadir}/folks/tests).
+   */
+  public static string get_source_test_data (string filename)
+    {
+      if (Environment.get_variable ("FOLKS_TESTS_INSTALLED") != null)
+        {
+          return BuildConf.PACKAGE_DATADIR + "/tests/" + filename;
+        }
+      else
+        {
+          return BuildConf.ABS_TOP_SRCDIR + "/tests/" + filename;
+        }
+    }
+
+  /**
+   * Return the path to a test file that is distributed in the source tarball
+   * and, if installed, is installed into ${pkgdatadir}/tests.
+   *
+   * @param filename A filename relative to ${top_builddir}/tests
+   *  or ${pkgdatadir}/tests (or equivalently, ${datadir}/folks/tests).
+   */
+  public static string get_built_test_data (string filename)
+    {
+      if (Environment.get_variable ("FOLKS_TESTS_INSTALLED") != null)
+        {
+          return BuildConf.PACKAGE_DATADIR + "/tests/" + filename;
+        }
+      else
+        {
+          return BuildConf.ABS_TOP_BUILDDIR + "/tests/" + filename;
+        }
+    }
 }
index 6fd719f..3a1acd3 100644 (file)
@@ -27,7 +27,7 @@
  * and no other backends.
  *
  * FIXME: For now, this relies on running under with-session-bus-tracker.sh
- * with AVATAR_FILE_PATH and FOLKS_BACKEND_PATH set.
+ * with FOLKS_BACKEND_PATH set.
  */
 public class TrackerTest.TestCase : Folks.TestCase
 {
index 9b0c388..c5524c5 100644 (file)
@@ -107,7 +107,6 @@ noinst_PROGRAMS = \
 avatar_file=@abs_top_srcdir@/tests/data/avatar-01.jpg
 TESTS_ENVIRONMENT = \
        FOLKS_BACKEND_PATH=$(BACKEND_UNINST_PATH) \
-       AVATAR_FILE_PATH=$(avatar_file) \
        $(RUN_WITH_PRIVATE_BUS) \
        --session \
        --
index d90536e..4e81260 100644 (file)
@@ -74,7 +74,8 @@ public class AddPersonaTests : TrackerTest.TestCase
       this._family_name = "family";
       this._given_name = "given";
       this._persona_iid = "";
-      var _avatar_path = Environment.get_variable ("AVATAR_FILE_PATH");
+      var _avatar_path = Folks.TestUtils.get_source_test_data (
+          "data/avatar-01.jpg");
       this._avatar = new FileIcon (File.new_for_path (_avatar_path));
       this._birthday = "2001-10-26T20:32:52Z";
       this._email_1 = "someone-1@example.org";
index 52833c3..3d0ba69 100644 (file)
@@ -42,7 +42,8 @@ public class AvatarDetailsInterfaceTests : TrackerTest.TestCase
     {
       this._main_loop = new GLib.MainLoop (null, false);
       Gee.HashMap<string, string> c1 = new Gee.HashMap<string, string> ();
-      string avatar_path = Environment.get_variable ("AVATAR_FILE_PATH");
+      var avatar_path = Folks.TestUtils.get_source_test_data (
+          "data/avatar-01.jpg");
       var temp_file = GLib.File.new_for_path (avatar_path);
       var full_avatar_path = temp_file.get_path ();
       this._avatar_uri = "file://" + full_avatar_path;
index 25c5b1c..4f6220b 100644 (file)
@@ -43,7 +43,8 @@ public class SetAvatarTests : TrackerTest.TestCase
       this._main_loop = new GLib.MainLoop (null, false);
       Gee.HashMap<string, string> c1 = new Gee.HashMap<string, string> ();
       this._persona_fullname = "persona #1";
-      var _avatar_path = Environment.get_variable ("AVATAR_FILE_PATH");
+      var _avatar_path = Folks.TestUtils.get_source_test_data (
+          "data/avatar-01.jpg");
       this._avatar = new FileIcon (File.new_for_path (_avatar_path));
 
       c1.set (Trf.OntologyDefs.NCO_FULLNAME, this._persona_fullname);