Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
FallbackHTMLHandler
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 2
30
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 handle
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 1
20
1<?php
2declare( strict_types = 1 );
3
4namespace Wikimedia\Parsoid\Html2Wt\DOMHandlers;
5
6use Wikimedia\Parsoid\DOM\Element;
7use Wikimedia\Parsoid\DOM\Node;
8use Wikimedia\Parsoid\Html2Wt\SerializerState;
9use Wikimedia\Parsoid\Utils\DOMCompat;
10use Wikimedia\Parsoid\Utils\TokenUtils;
11
12/**
13 * Used as a fallback in other tag handles.
14 */
15class FallbackHTMLHandler extends DOMHandler {
16
17    public function __construct() {
18        parent::__construct( false );
19    }
20
21    /** @inheritDoc */
22    public function handle(
23        Element $node, SerializerState $state, bool $wrapperUnmodified = false
24    ): ?Node {
25        $serializer = $state->serializer;
26        $tag = $serializer->serializeHTMLTag( $node, $wrapperUnmodified );
27        $state->emitChunk( $tag, $node );
28
29        if ( $node->hasChildNodes() ) {
30            $inPHPBlock = $state->inPHPBlock;
31            if (
32                TokenUtils::tagOpensBlockScope( DOMCompat::nodeName( $node ) ) ||
33                // Blockquote is special in that it doesn't suppress paragraphs
34                // but does suppress pre wrapping
35                DOMCompat::nodeName( $node ) === 'blockquote'
36            ) {
37                $state->inPHPBlock = true;
38            }
39            $state->serializeChildren( $node );
40            $state->inPHPBlock = $inPHPBlock;
41        }
42
43        $endTag = $serializer->serializeHTMLEndTag( $node, $wrapperUnmodified );
44        $state->emitChunk( $endTag, $node );
45        return $node->nextSibling;
46    }
47}