Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
PageConfigFrame
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2declare( strict_types = 1 );
3
4namespace Wikimedia\Parsoid\Wt2Html;
5
6use Wikimedia\Parsoid\Config\Env;
7use Wikimedia\Parsoid\Config\PageConfig;
8use Wikimedia\Parsoid\Config\SiteConfig;
9use Wikimedia\Parsoid\Utils\Title;
10
11/**
12 * A special subclass of frame used for the topmost frame in the environment;
13 * gets most of its actual data from a PageConfig object.
14 */
15class PageConfigFrame extends Frame {
16
17    /**
18     * Create a top-level frame.
19     * @param Env $env
20     * @param PageConfig $pageConfig
21     * @param SiteConfig $siteConfig
22     */
23    public function __construct(
24        Env $env, PageConfig $pageConfig, SiteConfig $siteConfig
25    ) {
26        $rev = $pageConfig->getRevisionContent();
27        $content = $rev ? $rev->getContent( 'main' ) : '';
28        parent::__construct(
29            // It would be nicer to have the Title object directly available
30            // from PageConfig, but we're trying to keep Parsoid's Title
31            // object separate from MediaWiki's Title object.  When/if they
32            // are unified, we could get use the PageConfig's Title directly
33            // when constructing the Frame.
34            Title::newFromText( $pageConfig->getTitle(), $siteConfig ),
35            $env,
36            [],
37            $content,
38            null
39        );
40    }
41
42    // XXX: override getSrcText() to mirror $pageConfig, if the $pageConfig
43    // is mutable?
44}