diff --git a/apps/dav/lib/Server.php b/apps/dav/lib/Server.php
index c49df197a89142840e2d2bba4a6c09d8f25d5e2e..a06d4c570f623dab05f4dae9a55863ac0f29acb2 100644
--- a/apps/dav/lib/Server.php
+++ b/apps/dav/lib/Server.php
@@ -47,6 +47,7 @@ use OCP\IRequest;
 use OCP\SabrePluginEvent;
 use Sabre\CardDAV\VCFExportPlugin;
 use Sabre\DAV\Auth\Plugin;
+use OCA\DAV\Connector\Sabre\TagsPlugin;
 
 class Server {
 
@@ -190,6 +191,11 @@ class Server {
 				$this->server->addPlugin(
 					new QuotaPlugin($view)
 				);
+				$this->server->addPlugin(
+					new TagsPlugin(
+						$this->server->tree, \OC::$server->getTagManager()
+					)
+				);
 			}
 		});
 	}
diff --git a/build/integration/features/bootstrap/WebDav.php b/build/integration/features/bootstrap/WebDav.php
index be181f2bcb772f89ea62e9aec00bd5f637cf4a8a..ad29f28e1054a73f181dbcd695c6cacc418a3afc 100644
--- a/build/integration/features/bootstrap/WebDav.php
+++ b/build/integration/features/bootstrap/WebDav.php
@@ -53,9 +53,9 @@ trait WebDav {
 	/**
 	 * @return string
 	 */
-	public function getFilesPath() {
-		if ($this->davPath === 'remote.php/dav') {
-			$basePath = '/files/' . $this->currentUser . '/';
+	public function getFilesPath($user) {
+		if ($this->davPath === "remote.php/dav") {
+			$basePath = '/files/' . $user . '/';
 		} else {
 			$basePath = '/';
 		}
@@ -262,12 +262,13 @@ trait WebDav {
 	/**
 	 * @Then /^as "([^"]*)" the (file|folder|entry) "([^"]*)" does not exist$/
 	 * @param string $user
+	 * @param string $entry
 	 * @param string $path
 	 * @param \Behat\Gherkin\Node\TableNode|null $propertiesTable
 	 */
 	public function asTheFileOrFolderDoesNotExist($user, $entry, $path) {
 		$client = $this->getSabreClient($user);
-		$response = $client->request('HEAD', $this->makeSabrePath($path));
+		$response = $client->request('HEAD', $this->makeSabrePath($user, $path));
 		if ($response['statusCode'] !== 404) {
 			throw new \Exception($entry . ' "' . $path . '" expected to not exist (status code ' . $response['statusCode'] . ', expected 404)');
 		}
@@ -278,8 +279,8 @@ trait WebDav {
 	/**
 	 * @Then /^as "([^"]*)" the (file|folder|entry) "([^"]*)" exists$/
 	 * @param string $user
+	 * @param string $entry
 	 * @param string $path
-	 * @param \Behat\Gherkin\Node\TableNode|null $propertiesTable
 	 */
 	public function asTheFileOrFolderExists($user, $entry, $path) {
 		$this->response = $this->listFolder($user, $path, 0);
@@ -362,13 +363,13 @@ trait WebDav {
 			];
 		}
 
-		$response = $client->propfind($this->makeSabrePath($path), $properties, $folderDepth);
+		$response = $client->propfind($this->makeSabrePath($user, $path), $properties, $folderDepth);
 
 		return $response;
 	}
 
-	public function makeSabrePath($path) {
-		return $this->encodePath($this->davPath . '/' . ltrim($path, '/'));
+	public function makeSabrePath($user, $path) {
+		return $this->encodePath($this->davPath . $this->getFilesPath($user) . ltrim($path, '/'));
 	}
 
 	public function getSabreClient($user) {
@@ -474,7 +475,7 @@ trait WebDav {
 	 */
 	public function userCreatedAFolder($user, $destination) {
 		try {
-			$this->response = $this->makeDavRequest($user, "MKCOL", $this->getFilesPath() . ltrim($destination, $this->getFilesPath()), []);
+			$this->response = $this->makeDavRequest($user, "MKCOL", $this->getFilesPath($user) . ltrim($destination, $this->getFilesPath($user)), []);
 		} catch (\GuzzleHttp\Exception\ServerException $e) {
 			// 4xx and 5xx responses cause an exception
 			$this->response = $e->getResponse();
@@ -584,7 +585,7 @@ trait WebDav {
 			];
 		}
 
-		$response = $client->proppatch($this->davPath . '/' . ltrim($path, '/'), $properties, $folderDepth);
+		$response = $client->proppatch($this->davPath . $this->getFilesPath($user) . ltrim($path, '/'), $properties, $folderDepth);
 		return $response;
 	}
 
diff --git a/build/integration/features/favorites.feature b/build/integration/features/favorites.feature
index 86643fdd1e292c8eee432f2dc635a23f3e8b601b..baf4eadb166321bb5e78deaa48e410325541e14d 100644
--- a/build/integration/features/favorites.feature
+++ b/build/integration/features/favorites.feature
@@ -40,3 +40,41 @@ Feature: favorite
             |{http://owncloud.org/ns}favorite|
         And the single response should contain a property "{http://owncloud.org/ns}favorite" with value ""
 
+    Scenario: Favorite a folder new endpoint
+        Given using dav path "remote.php/dav"
+        And As an "admin"
+        And user "user0" exists
+        When user "user0" favorites element "/FOLDER"
+        Then as "user0" gets properties of folder "/FOLDER" with
+            |{http://owncloud.org/ns}favorite|
+        And the single response should contain a property "{http://owncloud.org/ns}favorite" with value "1"
+
+    Scenario: Favorite and unfavorite a folder new endpoint
+        Given using dav path "remote.php/dav"
+        And As an "admin"
+        And user "user0" exists
+        When user "user0" favorites element "/FOLDER"
+        And user "user0" unfavorites element "/FOLDER"
+        Then as "user0" gets properties of folder "/FOLDER" with
+            |{http://owncloud.org/ns}favorite|
+        And the single response should contain a property "{http://owncloud.org/ns}favorite" with value ""
+
+    Scenario: Favorite a file new endpoint
+        Given using dav path "remote.php/dav"
+        And As an "admin"
+        And user "user0" exists
+        When user "user0" favorites element "/textfile0.txt"
+        Then as "user0" gets properties of file "/textfile0.txt" with
+            |{http://owncloud.org/ns}favorite|
+        And the single response should contain a property "{http://owncloud.org/ns}favorite" with value "1"
+
+    Scenario: Favorite and unfavorite a file new endpoint
+        Given using dav path "remote.php/dav"
+        And As an "admin"
+        And user "user0" exists
+        When user "user0" favorites element "/textfile0.txt"
+        And user "user0" unfavorites element "/textfile0.txt"
+        Then as "user0" gets properties of file "/textfile0.txt" with
+            |{http://owncloud.org/ns}favorite|
+        And the single response should contain a property "{http://owncloud.org/ns}favorite" with value ""
+