From e94d8aeccab8a8c98d8e65fa4a21a0307dff2239 Mon Sep 17 00:00:00 2001
From: Demian Katz <demian.katz@villanova.edu>
Date: Fri, 12 Sep 2014 08:40:14 -0400
Subject: [PATCH] More flexible module autoloading for tests.

---
 module/VuFind/tests/bootstrap.php | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/module/VuFind/tests/bootstrap.php b/module/VuFind/tests/bootstrap.php
index ba19b8540ac..d69ca1e6ed3 100644
--- a/module/VuFind/tests/bootstrap.php
+++ b/module/VuFind/tests/bootstrap.php
@@ -36,13 +36,15 @@ if (file_exists('vendor/autoload.php')) {
     $loader = new Composer\Autoload\ClassLoader();
     $loader->add('VuFindTest', __DIR__ . '/unit-tests/src');
     $loader->add('VuFindTest', __DIR__ . '/../src');
-    $loader->add('VuFind', __DIR__ . '/../src');
-    $loader->add('VuDL', __DIR__ . '/../../VuDL/src');
-    $loader->add('VuFindConsole', __DIR__ . '/../../VuFindConsole/src');
-    $loader->add('VuFindDevTools', __DIR__ . '/../../VuFindDevTools/src');
-    $loader->add('VuFindHttp', __DIR__ . '/../../VuFindHttp/src');
-    $loader->add('VuFindSearch', __DIR__ . '/../../VuFindSearch/src');
-    $loader->add('VuFindTheme', __DIR__ . '/../../VuFindTheme/src');
+    // Dynamically discover all module src directories:
+    $modules = opendir(__DIR__ . '/../..');
+    while ($mod = readdir($modules)) {
+        $mod = trim($mod, '.'); // ignore . and ..
+        $dir = empty($mod) ? false : realpath(__DIR__ . "/../../{$mod}/src");
+        if (!empty($dir) && is_dir($dir . '/' . $mod)) {
+            $loader->add($mod, $dir);
+        }
+    }
     $loader->register();
 }
 
-- 
GitLab