From 9ca1e9c7e941ee04a33bdf092739df367fe68356 Mon Sep 17 00:00:00 2001
From: Lukas Reschke <lukas@owncloud.com>
Date: Tue, 1 Mar 2016 06:49:35 +0100
Subject: [PATCH] Only use scanner if remote is an ownCloud

---
 apps/files_sharing/lib/external/storage.php | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/apps/files_sharing/lib/external/storage.php b/apps/files_sharing/lib/external/storage.php
index 514df41eac..ed391f331a 100644
--- a/apps/files_sharing/lib/external/storage.php
+++ b/apps/files_sharing/lib/external/storage.php
@@ -137,6 +137,9 @@ class Storage extends DAV implements ISharedStorage {
 		if (!$storage) {
 			$storage = $this;
 		}
+		if(!$this->remoteIsOwnCloud()) {
+			return parent::getScanner($path, $storage);
+		}
 		if (!isset($this->scanner)) {
 			$this->scanner = new Scanner($storage);
 		}
@@ -239,6 +242,19 @@ class Storage extends DAV implements ISharedStorage {
 		return (is_object($data) and !empty($data->version));
 	}
 
+	/**
+	 * Whether the remote is an ownCloud, used since some sharing features are not
+	 * standardized. Let's use this to detect whether to use it.
+	 *
+	 * @return bool
+	 */
+	private function remoteIsOwnCloud() {
+		if(defined('PHPUNIT_RUN') || !$this->testRemoteUrl($this->getRemote() . '/status.php')) {
+			return false;
+		}
+		return true;
+	}
+
 	/**
 	 * @return mixed
 	 * @throws ForbiddenException
@@ -251,7 +267,7 @@ class Storage extends DAV implements ISharedStorage {
 		$password = $this->getPassword();
 
 		// If remote is not an ownCloud do not try to get any share info
-		if(!$this->testRemoteUrl($remote . '/status.php')) {
+		if(!$this->remoteIsOwnCloud()) {
 			return ['status' => 'unsupported'];
 		}
 
-- 
GitLab