/** * Tests that existing headers are not overriden. */ public function testHeadersAreNotOverridenIfAlreadyPresentInResponse() { $response = new Response(); $response->headers->set('FOOBAR', 'content'); $responseEvent = new FilterResponseEvent($this->mockKernel(), new Request(), HttpKernelInterface::MASTER_REQUEST, $response); /** @var ContaoFrameworkInterface|\PHPUnit_Framework_MockObject_MockObject $framework */ $framework = $this->getMock('Contao\\CoreBundle\\Framework\\ContaoFrameworkInterface'); $framework->expects($this->once())->method('isInitialized')->willReturn(true); $listener = new MergeHttpHeadersListener($framework); $listener->setHeaders(['FOOBAR: new-content']); $listener->onKernelResponse($responseEvent); $response = $responseEvent->getResponse(); $this->assertTrue($response->headers->has('FOOBAR')); $allHeaders = $response->headers->get('FOOBAR', null, false); $this->assertSame('content', $allHeaders[0]); $this->assertSame('new-content', $allHeaders[1]); }
/** * Tests that multi-value headers can be added and removed. */ public function testAddingAndRemovingMultiHeaders() { $listener = new MergeHttpHeadersListener($this->mockContaoFramework()); $this->assertEquals($listener->getMultiHeaders(), ['set-cookie', 'link', 'vary', 'pragma', 'cache-control']); $listener->removeMultiHeader('cache-control'); $this->assertEquals($listener->getMultiHeaders(), ['set-cookie', 'link', 'vary', 'pragma']); $listener->addMultiHeader('dummy'); $this->assertEquals($listener->getMultiHeaders(), ['set-cookie', 'link', 'vary', 'pragma', 'dummy']); $listener->setMultiHeader(['set-cookie', 'link', 'vary', 'pragma', 'cache-control']); $this->assertEquals($listener->getMultiHeaders(), ['set-cookie', 'link', 'vary', 'pragma', 'cache-control']); }