assertEquals( $expected, $node->getData()['collapse'] ); } public function groupNodeCollapseTestProvider() { return [ [ '', null ], [ '', null ], [ '', 'open' ], [ '', 'closed' ] ]; } /** * @covers PortableInfobox\Parser\Nodes\NodeGroup::getData * @covers PortableInfobox\Parser\Nodes\NodeGroup::getRenderData * @dataProvider groupNodeRowItemsTestProvider * * @param $markup * @param $expected */ public function testNodeGroupRowItems( $markup, $expected ) { $node = PortableInfobox\Parser\Nodes\NodeFactory::newFromXML( $markup ); $this->assertEquals( $expected, $node->getData()['row-items'] ); $this->assertEquals( $expected, $node->getRenderData()['data']['row-items'] ); } public function groupNodeRowItemsTestProvider() { return [ [ '', null ], [ '', null ], [ '', null ], [ '', '5' ], [ '', '50' ], ]; } /** * @covers PortableInfobox\Parser\Nodes\NodeGroup::getData * @dataProvider groupNodeTestProvider * * @param $markup * @param $params * @param $expected */ public function testNodeGroup( $markup, $params, $expected ) { $node = PortableInfobox\Parser\Nodes\NodeFactory::newFromXML( $markup, $params ); $this->assertEquals( $expected, $node->getData() ); } public function groupNodeTestProvider() { return [ [ '' . 'def1' . 'def2' . '' . '', [ 'elem1' => 1, 'elem2' => 2 ], [ 'value' => [ [ 'type' => 'data', 'isEmpty' => false, 'data' => [ 'label' => 'l1', 'value' => 1, 'span' => 1, 'layout' => null, 'source' => 'elem1', 'item-name' => null ], 'source' => [ 'elem1' ] ], [ 'type' => 'data', 'isEmpty' => false, 'data' => [ 'label' => 'l2', 'value' => 2, 'span' => 1, 'layout' => null, 'source' => 'elem2', 'item-name' => null ], 'source' => [ 'elem2' ] ], [ 'type' => 'data', 'isEmpty' => true, 'data' => [ 'label' => 'l2', 'value' => null, 'span' => 1, 'layout' => null, 'source' => 'elem3', 'item-name' => null ], 'source' => [ 'elem3' ] ] ], 'layout' => 'default', 'collapse' => null, 'row-items' => null, 'item-name' => null ] ], [ '' . 'def1' . 'def2' . '' . '', [ 'elem1' => 1, 'elem2' => 2 ], [ 'value' => [ [ 'type' => 'data', 'isEmpty' => false, 'data' => [ 'label' => 'l1', 'value' => 1, 'span' => 1, 'layout' => null, 'source' => 'elem1', 'item-name' => null ], 'source' => [ 'elem1' ] ], [ 'type' => 'data', 'isEmpty' => false, 'data' => [ 'label' => 'l2', 'value' => 2, 'span' => 1, 'layout' => null, 'source' => 'elem2', 'item-name' => null ], 'source' => [ 'elem2' ] ], [ 'type' => 'data', 'isEmpty' => true, 'data' => [ 'label' => 'l2', 'value' => null, 'span' => 1, 'layout' => null, 'source' => 'elem3', 'item-name' => null ], 'source' => [ 'elem3' ] ], ], 'layout' => 'horizontal', 'collapse' => null, 'row-items' => null, 'item-name' => null ] ], [ '' . 'def1' . 'def2' . '' . '', [ 'elem1' => 1, 'elem2' => 2 ], [ 'value' => [ [ 'type' => 'data', 'isEmpty' => false, 'data' => [ 'label' => 'l1', 'value' => 1, 'span' => 1, 'layout' => null, 'source' => 'elem1', 'item-name' => null ], 'source' => [ 'elem1' ] ], [ 'type' => 'data', 'isEmpty' => false, 'data' => [ 'label' => 'l2', 'value' => 2, 'span' => 1, 'layout' => null, 'source' => 'elem2', 'item-name' => null ], 'source' => [ 'elem2' ] ], [ 'type' => 'data', 'isEmpty' => true, 'data' => [ 'label' => 'l2', 'value' => null, 'span' => 1, 'layout' => null, 'source' => 'elem3', 'item-name' => null ], 'source' => [ 'elem3' ] ] ], 'layout' => 'default', 'collapse' => null, 'row-items' => null, 'item-name' => null ] ], [ '
h
', [ '1' => 'one', '2' => 'two' ], [ 'value' => [ [ 'type' => 'header', 'data' => [ 'value' => 'h', 'item-name' => null ], 'isEmpty' => false, 'source' => [] ], [ 'type' => 'data', 'data' => [ 'value' => 'one', 'label' => '', 'span' => 1, 'layout' => null, 'source' => '1', 'item-name' => null ], 'isEmpty' => false, 'source' => [ '1' ] ], [ 'type' => 'data', 'data' => [ 'value' => 'two', 'label' => '', 'span' => 1, 'layout' => null, 'source' => '2', 'item-name' => null ], 'isEmpty' => false, 'source' => [ '2' ] ] ], 'layout' => 'default', 'collapse' => null, 'row-items' => null, 'item-name' => null ] ], [ '
h
', [ '1' => 'one' ], [ 'value' => [ [ 'type' => 'header', 'data' => [ 'value' => 'h', 'item-name' => null ], 'isEmpty' => false, 'source' => [] ], [ 'type' => 'data', 'data' => [ 'value' => 'one', 'label' => '', 'span' => 1, 'layout' => null, 'source' => '1', 'item-name' => null ], 'isEmpty' => false, 'source' => [ '1' ] ], [ 'type' => 'data', 'data' => [ 'value' => null, 'label' => '', 'span' => 1, 'layout' => null, 'source' => '2', 'item-name' => null ], 'isEmpty' => true, 'source' => [ '2' ] ] ], 'layout' => 'default', 'collapse' => null, 'row-items' => null, 'item-name' => null ] ], [ '
h
', [], [ 'value' => [ [ 'type' => 'header', 'data' => [ 'value' => 'h', 'item-name' => null ], 'isEmpty' => false, 'source' => [] ], [ 'type' => 'data', 'data' => [ 'value' => null, 'label' => '', 'span' => 1, 'layout' => null, 'source' => '1', 'item-name' => null ], 'isEmpty' => true, 'source' => [ '1' ] ], [ 'type' => 'data', 'data' => [ 'value' => null, 'label' => '', 'span' => 1, 'layout' => null, 'source' => '2', 'item-name' => null ], 'isEmpty' => true, 'source' => [ '2' ] ] ], 'layout' => 'default', 'collapse' => null, 'row-items' => null, 'item-name' => null ] ], [ '
h
', [ 'd' => 'data' ], [ 'value' => [ [ 'type' => 'header', 'data' => [ 'value' => 'h', 'item-name' => 'h' ], 'isEmpty' => false, 'source' => [] ], [ 'type' => 'data', 'data' => [ 'value' => 'data', 'label' => '', 'span' => 1, 'layout' => null, 'source' => 'd', 'item-name' => 'd' ], 'isEmpty' => false, 'source' => [ 'd' ] ] ], 'layout' => 'default', 'collapse' => null, 'row-items' => null, 'item-name' => 'g' ] ] ]; } }