Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
0.00% |
0 / 15 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 1 |
| RemexCompatBuilder | |
0.00% |
0 / 15 |
|
0.00% |
0 / 1 |
110 | |
0.00% |
0 / 1 |
| reconstructAFE | |
0.00% |
0 / 15 |
|
0.00% |
0 / 1 |
110 | |||
| 1 | <?php |
| 2 | |
| 3 | namespace MediaWiki\Tidy; |
| 4 | |
| 5 | use Wikimedia\RemexHtml\TreeBuilder\Marker; |
| 6 | use Wikimedia\RemexHtml\TreeBuilder\TreeBuilder; |
| 7 | |
| 8 | /** |
| 9 | * @internal |
| 10 | */ |
| 11 | class RemexCompatBuilder extends TreeBuilder { |
| 12 | /** @inheritDoc */ |
| 13 | public function reconstructAFE( $sourceStart ) { |
| 14 | // These checks are redundant with the parent, but here for performance |
| 15 | $entry = $this->afe->getTail(); |
| 16 | if ( !$entry || $entry instanceof Marker || $entry->stackIndex !== null ) { |
| 17 | return; |
| 18 | } |
| 19 | |
| 20 | // Don't reconstruct AFE in file figures to respect the spec, |
| 21 | // https://www.mediawiki.org/wiki/Specs/HTML#Media |
| 22 | $len = $this->stack->length(); |
| 23 | while ( $len > 0 ) { |
| 24 | $i = $this->stack->item( $len - 1 ); |
| 25 | if ( $i->htmlName === 'figcaption' ) { |
| 26 | break; |
| 27 | } |
| 28 | if ( $i->htmlName === 'figure' ) { |
| 29 | foreach ( $i->attrs->getValues() as $k => $v ) { |
| 30 | if ( $k === 'typeof' && preg_match( '/\bmw:File\b/', $v ) ) { |
| 31 | return; |
| 32 | } |
| 33 | } |
| 34 | break; |
| 35 | } |
| 36 | $len--; |
| 37 | } |
| 38 | parent::reconstructAFE( $sourceStart ); |
| 39 | } |
| 40 | } |