summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2015-03-26 10:49:26 +0100
committerThomas Müller <thomas.mueller@tmit.eu>2015-03-26 10:49:26 +0100
commit8d327c94a844804d0e7af057866e552bd5aafd17 (patch)
tree204af7e750dca683b7131ca80f00ccca78f5ad57
parent30ee8b6f998b4b2e27da92b3adcdbc4683d3bcde (diff)
downloadnextcloud-server-8d327c94a844804d0e7af057866e552bd5aafd17.tar.gz
nextcloud-server-8d327c94a844804d0e7af057866e552bd5aafd17.zip
adding unit tests
-rw-r--r--lib/private/connector/sabre/filesplugin.php7
-rw-r--r--tests/lib/connector/sabre/filesplugin.php31
2 files changed, 33 insertions, 5 deletions
diff --git a/lib/private/connector/sabre/filesplugin.php b/lib/private/connector/sabre/filesplugin.php
index e03cac9c537..1b4b0674a57 100644
--- a/lib/private/connector/sabre/filesplugin.php
+++ b/lib/private/connector/sabre/filesplugin.php
@@ -184,11 +184,8 @@ class FilesPlugin extends \Sabre\DAV\ServerPlugin {
/**
* @param \OC\Connector\Sabre\Node $node
*/
- private function getETag($node) {
- if (isset($_SERVER['HTTP_OC_CHUNKED'])) {
- if (isset($_SERVER['X-CHUNKING_COMPLETE'])) {
- return $node->getETag();
- }
+ public function getETag($node) {
+ if (isset($_SERVER['HTTP_OC_CHUNKED']) && !isset($_SERVER['X-CHUNKING_COMPLETE'])) {
return null;
}
return $node->getETag();
diff --git a/tests/lib/connector/sabre/filesplugin.php b/tests/lib/connector/sabre/filesplugin.php
index 54d43d66dda..e10d67a3255 100644
--- a/tests/lib/connector/sabre/filesplugin.php
+++ b/tests/lib/connector/sabre/filesplugin.php
@@ -171,4 +171,35 @@ class FilesPlugin extends \Test\TestCase {
$this->assertEquals(200, $result[self::GETETAG_PROPERTYNAME]);
}
+ /**
+ * @dataProvider providesETagTestData
+ * @param $expectedETag
+ * @param $isChunked
+ * @param $isChunkComplete
+ */
+ public function testETag($expectedETag, $isChunked, $isChunkComplete) {
+ if (!is_null($isChunked)) {
+ $_SERVER['HTTP_OC_CHUNKED'] = $isChunked;
+ }
+ if (!is_null($isChunkComplete)) {
+ $_SERVER['X-CHUNKING_COMPLETE'] = $isChunkComplete;
+ }
+ $node = $this->createTestNode('\OC\Connector\Sabre\File');
+
+ $etag = $this->plugin->getETag($node);
+
+ $this->assertEquals($expectedETag, $etag);
+ }
+
+ public function providesETagTestData() {
+ return [
+ // non-chunked tests
+ ['"abc"', null, null],
+ ['"abc"', null, false],
+
+ // chunked tests
+ [null, true, null],
+ ['"abc"', true, true],
+ ];
+ }
}