From 86d7371d0c797d5c97198eebf9152ad748961927 Mon Sep 17 00:00:00 2001
From: Bjoern Schiessle <schiessle@owncloud.com>
Date: Wed, 4 Jun 2014 18:41:47 +0200
Subject: fix unshareFromSelf()

---
 apps/files_sharing/tests/share.php | 65 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

(limited to 'apps/files_sharing/tests')

diff --git a/apps/files_sharing/tests/share.php b/apps/files_sharing/tests/share.php
index 195fac461be..d3ca1816c75 100644
--- a/apps/files_sharing/tests/share.php
+++ b/apps/files_sharing/tests/share.php
@@ -60,6 +60,71 @@ class Test_Files_Sharing extends Test_Files_Sharing_Base {
 		parent::tearDown();
 	}
 
+	function testUnshareFromSelf() {
+
+		\OC_Group::createGroup('testGroup');
+		\OC_Group::addToGroup(self::TEST_FILES_SHARING_API_USER2, 'testGroup');
+		\OC_Group::addToGroup(self::TEST_FILES_SHARING_API_USER3, 'testGroup');
+
+		$fileinfo = $this->view->getFileInfo($this->filename);
+
+		$pathinfo = pathinfo($this->filename);
+
+		$duplicate = '/' . $pathinfo['filename'] . ' (2).' . $pathinfo['extension'];
+
+		$result = \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER,
+				\Test_Files_Sharing::TEST_FILES_SHARING_API_USER2, 31);
+
+		$this->assertTrue($result);
+
+		$result = \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP,
+				'testGroup', 31);
+
+		$this->assertTrue($result);
+
+		self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
+		$this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename));
+		$this->assertTrue(\OC\Files\Filesystem::file_exists($duplicate));
+
+		self::loginHelper(self::TEST_FILES_SHARING_API_USER3);
+		$this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename));
+		$this->assertFalse(\OC\Files\Filesystem::file_exists($duplicate));
+
+		self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
+		\OC\Files\Filesystem::unlink($this->filename);
+		self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
+		$this->assertFalse(\OC\Files\Filesystem::file_exists($this->filename));
+		$this->assertTrue(\OC\Files\Filesystem::file_exists($duplicate));
+
+		// for user3 nothing should change
+		self::loginHelper(self::TEST_FILES_SHARING_API_USER3);
+		$this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename));
+		$this->assertFalse(\OC\Files\Filesystem::file_exists($duplicate));
+
+		self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
+		\OC\Files\Filesystem::unlink($duplicate);
+		self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
+		$this->assertFalse(\OC\Files\Filesystem::file_exists($this->filename));
+		$this->assertFalse(\OC\Files\Filesystem::file_exists($duplicate));
+
+		// for user3 nothing should change
+		self::loginHelper(self::TEST_FILES_SHARING_API_USER3);
+		$this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename));
+		$this->assertFalse(\OC\Files\Filesystem::file_exists($duplicate));
+
+		//cleanup
+		self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
+		\OCP\Share::unshare('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP,
+				'testGroup');
+		\OCP\Share::unshare('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER,
+				self::TEST_FILES_SHARING_API_USER2);
+		\OC_Group::removeFromGroup(self::TEST_FILES_SHARING_API_USER2, 'testGroup');
+		\OC_Group::removeFromGroup(self::TEST_FILES_SHARING_API_USER2, 'testGroup');
+		\OC_Group::deleteGroup('testGroup');
+
+
+	}
+
 	/**
 	 * shared files should never have delete permissions
 	 * @dataProvider  DataProviderTestFileSharePermissions
-- 
cgit v1.2.3