Commit c27d77eb authored by webchick's avatar webchick

Revert "Issue #1854874 by damiankloip: Add serializer support for XML."

Testbot done did brokeded.

This reverts commit 4aaa7252.
parent 45e3625a
......@@ -232,7 +232,6 @@ public function build(ContainerBuilder $container) {
$container->register('serializer.normalizer.list', 'Drupal\Core\Serialization\ListNormalizer')->addTag('normalizer');
$container->register('serializer.normalizer.typed_data', 'Drupal\Core\Serialization\TypedDataNormalizer')->addTag('normalizer');
$container->register('serializer.encoder.json', 'Drupal\Core\Serialization\JsonEncoder')->addTag('encoder');
$container->register('serializer.encoder.xml', 'Drupal\Core\Serialization\XmlEncoder')->addTag('encoder');
$container->register('flood', 'Drupal\Core\Flood\DatabaseBackend')
->addArgument(new Reference('database'));
......
<?php
/**
* @file
* Contains \Drupal\Core\Serialization\XmlEncoder.
*/
namespace Drupal\Core\Serialization;
use Symfony\Component\Serializer\Encoder\EncoderInterface;
use Symfony\Component\Serializer\Encoder\DecoderInterface;
use Symfony\Component\Serializer\Encoder\SerializerAwareEncoder;
use Symfony\Component\Serializer\Encoder\XmlEncoder as BaseXmlEncoder;
/**
* Adds XML support for serializer.
*
* This acts as a wrapper class for Symfony's XmlEncoder so that it is not
* implementing NormalizationAwareInterface, and can be normalized externally.
*/
class XmlEncoder extends SerializerAwareEncoder implements EncoderInterface, DecoderInterface {
/**
* The formats that this Encoder supports.
*
* @var array
*/
static protected $format = array('xml');
/**
* An instance of the Symfony XmlEncoder to perform the actual encoding.
*
* @var \Symfony\Component\Serializer\Encoder\XmlEncoder
*/
protected $baseEncoder;
/**
* Constucts the XmlEncoder object, creating a BaseXmlEncoder class also.
*/
public function __construct() {
$this->baseEncoder = new BaseXmlEncoder();
}
/**
* Implements \Symfony\Component\Serializer\Encoder\EncoderInterface::encode().
*/
public function encode($data, $format){
$normalized = $this->serializer->normalize($data, $format);
return $this->baseEncoder->encode($normalized, $format);
}
/**
* Implements \Symfony\Component\Serializer\Encoder\JsonEncoder::supportsEncoding().
*/
public function supportsEncoding($format) {
return in_array($format, static::$format);
}
/**
* Implements \Symfony\Component\Serializer\Encoder\EncoderInterface::decode().
*/
public function decode($data, $format){
return $this->baseEncoder->decode($data, $format);
}
/**
* Implements \Symfony\Component\Serializer\Encoder\JsonEncoder::supportsDecoding().
*/
public function supportsDecoding($format) {
return in_array($format, static::$format);
}
}
......@@ -10,7 +10,6 @@
use Drupal\simpletest\WebTestBase;
use Symfony\Component\Serializer\Serializer;
use Drupal\Core\Serialization\JsonEncoder;
use Symfony\Component\Serializer\Encoder\XmlEncoder as BaseXmlEncoder;
use Drupal\Core\Serialization\ComplexDataNormalizer;
use Drupal\Core\Serialization\TypedDataNormalizer;
......@@ -121,21 +120,9 @@ public function testSerialize() {
$expected = json_encode($normalized);
// Test 'json'.
$actual = $serializer->serialize($this->entity, 'json');
$this->assertIdentical($actual, $expected, 'Entity serializes to JSON when "json" is requested.');
$actual = $serializer->serialize($normalized, 'json');
$this->assertIdentical($actual, $expected, 'A normalized array serializes to JSON when "json" is requested');
$this->assertIdentical($actual, $expected, 'Entity serializes to JSON when json is requested.');
// Test 'ajax'.
$actual = $serializer->serialize($this->entity, 'ajax');
$this->assertIdentical($actual, $expected, 'Entity serializes to JSON when "ajax" is requested.');
$actual = $serializer->serialize($normalized, 'ajax');
$this->assertIdentical($actual, $expected, 'A normalized array serializes to JSON when "ajax" is requested');
// Test 'xml'. The expected output should match that of Symfony's XmlEncoder.
$expected ='<?xml version="1.0"?>
<response><id><value>1</value></id><revision_id><value>1</value></revision_id><uuid><value>' . $this->entity->uuid() . '</value></uuid><langcode><value>und</value></langcode><default_langcode><value/></default_langcode><name><value>' . $this->values['name'] . '</value></name><user_id><value>1</value></user_id><field_test_text><value>' . $this->values['field_test_text']['value'] . '</value><format>full_html</format></field_test_text></response>
';
$actual = $serializer->serialize($this->entity, 'xml');
$this->assertIdentical($actual, $expected, 'Entity serializes to XML when "xml" is requested.');
$actual = $serializer->serialize($normalized, 'xml');
$this->assertIdentical($actual, $expected, 'A normalized array serializes to XML when "xml" is requested');
$this->assertIdentical($actual, $expected, 'Entity serializes to JSON when ajax is requested.');
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment