ajaxResponse = new AjaxResponse(); } /** * Tests the add and getCommands method. * * @see \Drupal\Core\Ajax\AjaxResponse::addCommand() * @see \Drupal\Core\Ajax\AjaxResponse::getCommands() */ public function testCommands() { $command_one = $this->getMock('Drupal\Core\Ajax\CommandInterface'); $command_one->expects($this->once()) ->method('render') ->will($this->returnValue(['command' => 'one'])); $command_two = $this->getMock('Drupal\Core\Ajax\CommandInterface'); $command_two->expects($this->once()) ->method('render') ->will($this->returnValue(['command' => 'two'])); $command_three = $this->getMock('Drupal\Core\Ajax\CommandInterface'); $command_three->expects($this->once()) ->method('render') ->will($this->returnValue(['command' => 'three'])); $this->ajaxResponse->addCommand($command_one); $this->ajaxResponse->addCommand($command_two); $this->ajaxResponse->addCommand($command_three, TRUE); // Ensure that the added commands are in the right order. $commands =& $this->ajaxResponse->getCommands(); $this->assertSame(['command' => 'one'], $commands[1]); $this->assertSame(['command' => 'two'], $commands[2]); $this->assertSame(['command' => 'three'], $commands[0]); // Remove one and change one element from commands and ensure the reference // worked as expected. unset($commands[2]); $commands[0]['class'] = 'test-class'; $commands = $this->ajaxResponse->getCommands(); $this->assertSame(['command' => 'one'], $commands[1]); $this->assertFalse(isset($commands[2])); $this->assertSame(['command' => 'three', 'class' => 'test-class'], $commands[0]); } /** * Tests the support for IE specific headers in file uploads. * * @cover ::prepareResponse */ public function testPrepareResponseForIeFormRequestsWithFileUpload() { $request = Request::create('/example', 'POST'); $request->headers->set('Accept', 'text/html'); $response = new AjaxResponse([]); $response->headers->set('Content-Type', 'application/json; charset=utf-8'); $ajax_response_attachments_processor = $this->getMock('\Drupal\Core\Render\AttachmentsResponseProcessorInterface'); $subscriber = new AjaxResponseSubscriber($ajax_response_attachments_processor); $event = new FilterResponseEvent( $this->getMock('\Symfony\Component\HttpKernel\HttpKernelInterface'), $request, HttpKernelInterface::MASTER_REQUEST, $response ); $subscriber->onResponse($event); $this->assertEquals('text/html; charset=utf-8', $response->headers->get('Content-Type')); $this->assertEquals($response->getContent(), ''); } }