diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2015-03-26 10:49:26 +0100 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-03-26 10:49:26 +0100 |
commit | 8d327c94a844804d0e7af057866e552bd5aafd17 (patch) | |
tree | 204af7e750dca683b7131ca80f00ccca78f5ad57 | |
parent | 30ee8b6f998b4b2e27da92b3adcdbc4683d3bcde (diff) | |
download | nextcloud-server-8d327c94a844804d0e7af057866e552bd5aafd17.tar.gz nextcloud-server-8d327c94a844804d0e7af057866e552bd5aafd17.zip |
adding unit tests
-rw-r--r-- | lib/private/connector/sabre/filesplugin.php | 7 | ||||
-rw-r--r-- | tests/lib/connector/sabre/filesplugin.php | 31 |
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], + ]; + } } |