Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 34
DTHandler
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 5
156
0.00% covered (danger)
0.00%
0 / 34
 __construct
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 2
 handle
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 15
 before
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 2
 after
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 9
 firstChild
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 6
<?php
declare( strict_types = 1 );
namespace Wikimedia\Parsoid\Html2Wt\DOMHandlers;
use Wikimedia\Parsoid\DOM\Element;
use Wikimedia\Parsoid\DOM\Node;
use Wikimedia\Parsoid\Html2Wt\SerializerState;
use Wikimedia\Parsoid\Utils\DOMCompat;
use Wikimedia\Parsoid\Utils\DOMDataUtils;
use Wikimedia\Parsoid\Utils\DOMUtils;
use Wikimedia\Parsoid\Utils\WTUtils;
class DTHandler extends DOMHandler {
    public function __construct() {
        parent::__construct( true );
    }
    /** @inheritDoc */
    public function handle(
        Element $node, SerializerState $state, bool $wrapperUnmodified = false
    ): ?Node {
        $firstChildElement = DOMUtils::firstNonSepChild( $node );
        if ( !DOMUtils::isList( $firstChildElement )
             || WTUtils::isLiteralHTMLNode( $firstChildElement )
        ) {
            $state->emitChunk( $this->getListBullets( $state, $node ), $node );
        }
        $liHandler = static function ( $state, $text, $opts ) use ( $node ) {
            return $state->serializer->wteHandlers->liHandler( $node, $state, $text, $opts );
        };
        $state->singleLineContext->enforce();
        $state->serializeChildren( $node, $liHandler );
        $state->singleLineContext->pop();
        return $node->nextSibling;
    }
    /** @inheritDoc */
    public function before( Element $node, Node $otherNode, SerializerState $state ): array {
        return [ 'min' => 1, 'max' => 2 ];
    }
    /** @inheritDoc */
    public function after( Element $node, Node $otherNode, SerializerState $state ): array {
        if ( DOMCompat::nodeName( $otherNode ) === 'dd'
            && $otherNode instanceof Element // for static analyzers
            && ( DOMDataUtils::getDataParsoid( $otherNode )->stx ?? null ) === 'row'
        ) {
            return [ 'min' => 0, 'max' => 0 ];
        } else {
            return $this->wtListEOL( $node, $otherNode );
        }
    }
    /** @inheritDoc */
    public function firstChild( Node $node, Node $otherNode, SerializerState $state ): array {
        if ( !DOMUtils::isList( $otherNode ) ) {
            return [ 'min' => 0, 'max' => 0 ];
        } else {
            return [];
        }
    }
}