summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2015-09-01 15:39:59 +0200
committerVincent Petry <pvince81@owncloud.com>2015-09-01 15:39:59 +0200
commit87b3e28f06bc96c28fab65d8b297753f686ba58b (patch)
tree31667adc29374a1acfb61e68d40bd2ec806c3402
parent01152676cddc89d2f3796c0380e94b4ce2879bb6 (diff)
parentf12caf930eb375ef60b741265fb331da4d615504 (diff)
downloadnextcloud-server-87b3e28f06bc96c28fab65d8b297753f686ba58b.tar.gz
nextcloud-server-87b3e28f06bc96c28fab65d8b297753f686ba58b.zip
Merge pull request #18730 from owncloud/appframework_proper_304
Properly return 304 in AppFramework
-rw-r--r--lib/private/appframework/http.php2
-rw-r--r--tests/lib/appframework/http/HttpTest.php8
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/private/appframework/http.php b/lib/private/appframework/http.php
index e7b0d1e2cab..dee9818f4bc 100644
--- a/lib/private/appframework/http.php
+++ b/lib/private/appframework/http.php
@@ -121,7 +121,7 @@ class Http extends BaseHttp {
// if etag or lastmodified have not changed, return a not modified
if ((isset($this->server['HTTP_IF_NONE_MATCH'])
- && trim($this->server['HTTP_IF_NONE_MATCH']) === $ETag)
+ && trim(trim($this->server['HTTP_IF_NONE_MATCH']), '"') === (string)$ETag)
||
diff --git a/tests/lib/appframework/http/HttpTest.php b/tests/lib/appframework/http/HttpTest.php
index e9be3e73904..4bcc8305db4 100644
--- a/tests/lib/appframework/http/HttpTest.php
+++ b/tests/lib/appframework/http/HttpTest.php
@@ -65,6 +65,14 @@ class HttpTest extends \Test\TestCase {
}
+ public function testQuotedEtagMatchReturnsNotModified() {
+ $http = new Http(array('HTTP_IF_NONE_MATCH' => '"hi"'));
+
+ $header = $http->getStatusHeader(Http::STATUS_OK, null, 'hi');
+ $this->assertEquals('HTTP/1.1 304 Not Modified', $header);
+ }
+
+
public function testLastModifiedMatchReturnsNotModified() {
$dateTime = new \DateTime(null, new \DateTimeZone('GMT'));
$dateTime->setTimestamp('12');