This commit is contained in:
jacek 2015-05-04 16:16:35 +02:00
parent 87d1005f1b
commit 99ca2eb705
5 changed files with 28 additions and 12 deletions

View file

@ -2,16 +2,15 @@
namespace Wikia\PortableInfobox\Parser\Nodes;
class NodeFooter extends Node {
const LINKS_TAG_NAME = 'links';
public function getData() {
$data = [];
$data['links'] = $this->parseWithExternalParser( (string) $this->xmlNode->{self::LINKS_TAG_NAME}, true );
$data['value'] = $this->parseWithExternalParser( (string) $this->xmlNode, true );
return $data;
}
public function isEmpty( $data ) {
$links = trim( $data['links'] );
$links = trim( $data['value'] );
return empty( $links );
}
}

View file

@ -1,4 +1,4 @@
<footer class="portable-infobox-footer portable-infobox-item-margins portable-infobox-header-background
portable-infobox-header-font">
{{{links}}}
{{{value}}}
</footer>

View file

@ -52,11 +52,11 @@ class PortableInfoboxParserNodesTest extends WikiaBaseTest {
}
public function testNodeFooter() {
$string = '<footer><links>123</links></footer>';
$string = '<footer>123</footer>';
$xml = simplexml_load_string( $string );
$node = new Wikia\PortableInfobox\Parser\Nodes\NodeFooter( $xml, [ ] );
$this->assertTrue( $node->getData()[ 'links' ] == '123' );
$this->assertTrue( $node->getData()[ 'value' ] == '123' );
}
public function testNodeGroup() {

View file

@ -28,7 +28,13 @@ class PortableInfoboxRenderServiceTest extends PHPUnit_Framework_TestCase {
$actualDOM->loadXML($actualOutput);
$expectedDOM->loadXML($expectedOutput);
$this->assertEquals( $expectedDOM->saveXML(), $actualDOM->saveXML(), $description );
// lets sanitize expected and actual HTML to not deal with whitespaces
$from = ['/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s', '/> </s'];
$to = ['>', '<', '\\1', '><'];
$expectedHtml = preg_replace($from, $to, $expectedDOM->saveXML());
$actualHtml = preg_replace($from, $to, $actualDOM->saveXML());
$this->assertEquals( $expectedHtml, $actualHtml, $description );
}
public function testRenderInfoboxDataProvider() {
@ -51,6 +57,19 @@ class PortableInfoboxRenderServiceTest extends PHPUnit_Framework_TestCase {
'output' => '<aside class="portable-infobox"><div class="portable-infobox-item item-type-title portable-infobox-item-margins"><h2 class="portable-infobox-title">Test Title</h2></div></aside>',
'description' => 'Only title'
],
[
'input' => [
[
'type' => 'footer',
'data' => [
'value' => 'Footer value',
'isEmpty' => false
]
]
],
'output' => '<aside class="portable-infobox"><footer class="portable-infobox-footer portable-infobox-item-margins portable-infobox-header-background portable-infobox-header-font">Footer value</footer></aside>',
'description' => 'Footer only'
],
[
'input' => [
[

View file

@ -27,7 +27,7 @@ class XmlParserTest extends WikiaBaseTest {
<infobox>
<comparison>
<set>
<header><value>Combatientes</value></header>
<header>Combatientes</header>
<data source="lado1" />
<data source="lado2" />
</set>
@ -59,14 +59,12 @@ class XmlParserTest extends WikiaBaseTest {
<title><default>ABB</default></title>
<comparison>
<set>
<header><value>Combatientes</value></header>
<header>Combatientes</header>
<data source="lado1" />
<data source="lado2" />
</set>
</comparison>
<footer>
<links>[[aaa]]</links>
</footer>
<footer>[[aaa]]</footer>
</infobox>
';
$data = $parser->getDataFromXmlString( $markup );