From 07eb1c159d0972dc4d1636059bba51d751f7959c Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind@owncloud.com>
Date: Mon, 8 Oct 2012 14:26:51 +0200
Subject: [PATCH] load test cases from enabled apps

---
 tests/apps.php    | 41 +++++++++++++++++++++++++++++++++++++++++
 tests/phpunit.xml |  1 +
 2 files changed, 42 insertions(+)
 create mode 100644 tests/apps.php

diff --git a/tests/apps.php b/tests/apps.php
new file mode 100644
index 00000000000..3e27b81df61
--- /dev/null
+++ b/tests/apps.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+function loadDirectory($path) {
+	if ($dh = opendir($path)) {
+		while ($name = readdir($dh)) {
+			if ($name[0] !== '.') {
+				$file = $path . '/' . $name;
+				if (is_dir($file)) {
+					loadDirectory($file);
+				} elseif (substr($name, -4, 4) === '.php') {
+					require_once $file;
+				}
+			}
+		}
+	}
+}
+
+function getSubclasses($parentClassName) {
+	$classes = array();
+	foreach (get_declared_classes() as $className) {
+		if (is_subclass_of($className, $parentClassName))
+			$classes[] = $className;
+	}
+
+	return $classes;
+}
+
+$apps = OC_App::getEnabledApps();
+
+foreach ($apps as $app) {
+	$dir = OC_App::getAppPath($app);
+	if (is_dir($dir . '/tests')) {
+		loadDirectory($dir . '/tests');
+	}
+}
diff --git a/tests/phpunit.xml b/tests/phpunit.xml
index 93b781bca44..4a2d68a3e47 100644
--- a/tests/phpunit.xml
+++ b/tests/phpunit.xml
@@ -2,5 +2,6 @@
 <phpunit bootstrap="bootstrap.php">
 	<testsuite name='ownCloud'>
 		<directory suffix='.php'>lib/</directory>
+		<file>apps.php</file>
 	</testsuite>
 </phpunit>
-- 
GitLab