[folks] Add infrastructure for finding test data files, and use it for avatars



commit 850aff1ab637b7b9fcf2818e6e822f115ff78c8c
Author: Simon McVittie <simon mcvittie collabora co uk>
Date:   Tue Mar 19 17:06:03 2013 +0000

    Add infrastructure for finding test data files, and use it for avatars
    
    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>

 tests/eds/Makefile.am                       |    2 -
 tests/eds/add-persona.vala                  |    3 +-
 tests/eds/avatar-details.vala               |    3 +-
 tests/eds/set-avatar.vala                   |    6 +++-
 tests/folks/Makefile.am                     |    2 -
 tests/folks/avatar-cache.vala               |    2 +-
 tests/lib/Makefile.am                       |    1 +
 tests/lib/eds/test-case.vala                |    2 +-
 tests/lib/test-utils.vala                   |   38 +++++++++++++++++++++++++++
 tests/lib/tracker/test-case.vala            |    2 +-
 tests/tracker/Makefile.am                   |    1 -
 tests/tracker/add-persona.vala              |    3 +-
 tests/tracker/avatar-details-interface.vala |    3 +-
 tests/tracker/set-avatar.vala               |    3 +-
 14 files changed, 56 insertions(+), 15 deletions(-)
---
diff --git a/tests/eds/Makefile.am b/tests/eds/Makefile.am
index d4697ba..6cef4ae 100644
--- a/tests/eds/Makefile.am
+++ b/tests/eds/Makefile.am
@@ -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 \
        --
diff --git a/tests/eds/add-persona.vala b/tests/eds/add-persona.vala
index 37f6ec4..60ca1b8 100644
--- a/tests/eds/add-persona.vala
+++ b/tests/eds/add-persona.vala
@@ -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";
diff --git a/tests/eds/avatar-details.vala b/tests/eds/avatar-details.vala
index 0def5f3..7c90476 100644
--- a/tests/eds/avatar-details.vala
+++ b/tests/eds/avatar-details.vala
@@ -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;
 
diff --git a/tests/eds/set-avatar.vala b/tests/eds/set-avatar.vala
index 9b23bed..d70cbeb 100644
--- a/tests/eds/set-avatar.vala
+++ b/tests/eds/set-avatar.vala
@@ -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;
 
diff --git a/tests/folks/Makefile.am b/tests/folks/Makefile.am
index ef1ab84..d21e978 100644
--- a/tests/folks/Makefile.am
+++ b/tests/folks/Makefile.am
@@ -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)
 
diff --git a/tests/folks/avatar-cache.vala b/tests/folks/avatar-cache.vala
index d2f436e..c0f4808 100644
--- a/tests/folks/avatar-cache.vala
+++ b/tests/folks/avatar-cache.vala
@@ -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);
     }
diff --git a/tests/lib/Makefile.am b/tests/lib/Makefile.am
index 39bcd38..594101b 100644
--- a/tests/lib/Makefile.am
+++ b/tests/lib/Makefile.am
@@ -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 = \
diff --git a/tests/lib/eds/test-case.vala b/tests/lib/eds/test-case.vala
index a4796dc..456f46f 100644
--- a/tests/lib/eds/test-case.vala
+++ b/tests/lib/eds/test-case.vala
@@ -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
 {
diff --git a/tests/lib/test-utils.vala b/tests/lib/test-utils.vala
index 493cf00..8878bd5 100644
--- a/tests/lib/test-utils.vala
+++ b/tests/lib/test-utils.vala
@@ -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;
+        }
+    }
 }
diff --git a/tests/lib/tracker/test-case.vala b/tests/lib/tracker/test-case.vala
index 6fd719f..3a1acd3 100644
--- a/tests/lib/tracker/test-case.vala
+++ b/tests/lib/tracker/test-case.vala
@@ -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
 {
diff --git a/tests/tracker/Makefile.am b/tests/tracker/Makefile.am
index 9b0c388..c5524c5 100644
--- a/tests/tracker/Makefile.am
+++ b/tests/tracker/Makefile.am
@@ -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 \
        --
diff --git a/tests/tracker/add-persona.vala b/tests/tracker/add-persona.vala
index d90536e..4e81260 100644
--- a/tests/tracker/add-persona.vala
+++ b/tests/tracker/add-persona.vala
@@ -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";
diff --git a/tests/tracker/avatar-details-interface.vala b/tests/tracker/avatar-details-interface.vala
index 52833c3..3d0ba69 100644
--- a/tests/tracker/avatar-details-interface.vala
+++ b/tests/tracker/avatar-details-interface.vala
@@ -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;
diff --git a/tests/tracker/set-avatar.vala b/tests/tracker/set-avatar.vala
index 25c5b1c..4f6220b 100644
--- a/tests/tracker/set-avatar.vala
+++ b/tests/tracker/set-avatar.vala
@@ -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);


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