From: Joas Schilling Date: Mon, 15 Jun 2020 11:50:30 +0000 (+0200) Subject: Fix robots "noindex, nofollow" signals X-Git-Tag: v20.0.0beta1~362^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=refs%2Fpull%2F21412%2Fhead;p=nextcloud-server.git Fix robots "noindex, nofollow" signals Signed-off-by: Joas Schilling --- diff --git a/lib/public/AppFramework/Http/Response.php b/lib/public/AppFramework/Http/Response.php index 832e0b96247..c26ea4ce400 100644 --- a/lib/public/AppFramework/Http/Response.php +++ b/lib/public/AppFramework/Http/Response.php @@ -239,6 +239,7 @@ class Response { $this->headers['Content-Security-Policy'] = $this->getContentSecurityPolicy()->buildPolicy(); $this->headers['Feature-Policy'] = $this->getFeaturePolicy()->buildPolicy(); + $this->headers['X-Robots-Tag'] = 'none'; if ($this->ETag) { $mergeWith['ETag'] = '"' . $this->ETag . '"'; diff --git a/lib/public/AppFramework/Http/TemplateResponse.php b/lib/public/AppFramework/Http/TemplateResponse.php index d6c4006433c..bc86c153b75 100644 --- a/lib/public/AppFramework/Http/TemplateResponse.php +++ b/lib/public/AppFramework/Http/TemplateResponse.php @@ -157,6 +157,7 @@ class TemplateResponse extends Response { // \OCP\Template needs an empty string instead of 'blank' for an unwrapped response $renderAs = $this->renderAs === 'blank' ? '' : $this->renderAs; + \OCP\Util::addHeader('meta', ['name' => 'robots', 'content' => 'noindex, nofollow']); $template = new \OCP\Template($this->appName, $this->templateName, $renderAs); foreach ($this->params as $key => $value) { diff --git a/tests/lib/AppFramework/Controller/ControllerTest.php b/tests/lib/AppFramework/Controller/ControllerTest.php index e07089e0c82..7c5b1931512 100644 --- a/tests/lib/AppFramework/Controller/ControllerTest.php +++ b/tests/lib/AppFramework/Controller/ControllerTest.php @@ -92,7 +92,7 @@ class ControllerTest extends \Test\TestCase { $this->controller = new ChildController($this->app, $request); } - + public function testFormatResonseInvalidFormat() { $this->expectException(\DomainException::class); @@ -114,6 +114,7 @@ class ControllerTest extends \Test\TestCase { 'Content-Type' => 'application/json; charset=utf-8', 'Content-Security-Policy' => "default-src 'none';base-uri 'none';manifest-src 'self'", 'Feature-Policy' => "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'", + 'X-Robots-Tag' => 'none', ]; $response = $this->controller->customDataResponse(['hi']); diff --git a/tests/lib/AppFramework/Http/DataResponseTest.php b/tests/lib/AppFramework/Http/DataResponseTest.php index e7624c92d7e..a02cee67d31 100644 --- a/tests/lib/AppFramework/Http/DataResponseTest.php +++ b/tests/lib/AppFramework/Http/DataResponseTest.php @@ -67,6 +67,7 @@ class DataResponseTest extends \Test\TestCase { 'Cache-Control' => 'no-cache, no-store, must-revalidate', 'Content-Security-Policy' => "default-src 'none';base-uri 'none';manifest-src 'self'", 'Feature-Policy' => "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'", + 'X-Robots-Tag' => 'none', ]; $expectedHeaders = array_merge($expectedHeaders, $headers); diff --git a/tests/lib/AppFramework/Http/ResponseTest.php b/tests/lib/AppFramework/Http/ResponseTest.php index dd82809dd85..7a064908869 100644 --- a/tests/lib/AppFramework/Http/ResponseTest.php +++ b/tests/lib/AppFramework/Http/ResponseTest.php @@ -51,7 +51,8 @@ class ResponseTest extends \Test\TestCase { $expected = [ 'Last-Modified' => 1, 'ETag' => 3, - 'Something-Else' => 'hi' + 'Something-Else' => 'hi', + 'X-Robots-Tag' => 'none', ]; $this->childResponse->setHeaders($expected); @@ -90,7 +91,7 @@ class ResponseTest extends \Test\TestCase { public function testAddHeaderValueNullDeletesIt() { $this->childResponse->addHeader('hello', 'world'); $this->childResponse->addHeader('hello', null); - $this->assertEquals(3, count($this->childResponse->getHeaders())); + $this->assertEquals(4, count($this->childResponse->getHeaders())); }