X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/ee24635e06a8c01d751f80caba47c57f76e8989d..refs/heads/lexical_fixes:/tests/SecurityHeaderTest.php diff --git a/tests/SecurityHeaderTest.php b/tests/SecurityHeaderTest.php index 00459ec69..5d354e553 100644 --- a/tests/SecurityHeaderTest.php +++ b/tests/SecurityHeaderTest.php @@ -139,12 +139,29 @@ class SecurityHeaderTest extends TestCase $this->assertEquals('frame-src \'self\' https://example.com https://diagrams.example.com', $scriptHeader); } - public function test_cache_control_headers_are_strict_on_responses_when_logged_in() + public function test_frame_src_csp_header_drawio_host_includes_port_if_existing() { + config()->set([ + 'app.iframe_sources' => 'https://example.com', + 'services.drawio' => 'https://diagrams.example.com:8080/testing?cat=dog', + ]); + + $resp = $this->get('/'); + $scriptHeader = $this->getCspHeader($resp, 'frame-src'); + $this->assertEquals('frame-src \'self\' https://example.com https://diagrams.example.com:8080', $scriptHeader); + } + + public function test_cache_control_headers_are_set_on_responses() + { + // Public access + $resp = $this->get('/'); + $resp->assertHeader('Cache-Control', 'no-cache, no-store, private'); + $resp->assertHeader('Expires', 'Sun, 12 Jul 2015 19:01:00 GMT'); + + // Authed access $this->asEditor(); $resp = $this->get('/'); - $resp->assertHeader('Cache-Control', 'max-age=0, no-store, private'); - $resp->assertHeader('Pragma', 'no-cache'); + $resp->assertHeader('Cache-Control', 'no-cache, no-store, private'); $resp->assertHeader('Expires', 'Sun, 12 Jul 2015 19:01:00 GMT'); }