���ѧۧݧ�ӧ�� �ާ֧ߧ֧էا֧� - ���֧էѧܧ�ڧ��ӧѧ�� - /home/rickpfrv/wiki.craftaro.com/vendor/wikimedia/parsoid/tests/phpunit/Parsoid/Utils/WTUtilsTest.php
���ѧ٧ѧ�
<?php namespace Test\Parsoid\Utils; use Wikimedia\Parsoid\NodeData\I18nInfo; use Wikimedia\Parsoid\Utils\DOMCompat; use Wikimedia\Parsoid\Utils\DOMDataUtils; use Wikimedia\Parsoid\Utils\DOMUtils; use Wikimedia\Parsoid\Utils\WTUtils; /** * @coversDefaultClass \Wikimedia\Parsoid\Utils\WTUtils */ class WTUtilsTest extends \PHPUnit\Framework\TestCase { /** * @covers ::encodeComment * @covers ::decodeComment * @covers ::decodedCommentLength * @dataProvider provideCommentEncoding */ public function testCommentEncoding( string $wikitext, string $html, int $length ) { $actualHtml = WTUtils::encodeComment( $wikitext ); $this->assertEquals( $html, $actualHtml ); $actualWt = WTUtils::decodeComment( $html ); $this->assertEquals( $wikitext, $actualWt ); $doc = DOMCompat::newDocument( true ); $doc->loadHTML( "<html><body><!--$html--></body></html>" ); $body = $doc->getElementsByTagName( "body" )->item( 0 ); $node = $body->childNodes->item( 0 ); $actualLen = WTUtils::decodedCommentLength( $node ); $this->assertEquals( $length, $actualLen ); } public function provideCommentEncoding(): array { // length includes the length of the <!-- and --> delimiters return [ [ 'abc', 'abc', 10 ], [ '& - >', '& - >', 12 ], [ 'Use > here', 'Use &gt; here', 20 ], [ '-->', '-->', 13 ], [ '--&gt;', '--&gt;', 17 ], [ '--&amp;gt;','--&amp;gt;', 21 ], ]; } /** * @covers ::createPageContentI18nFragment * @return void * @throws \DOMException */ public function testCreatePageContentI18nFragment() { $doc = DOMCompat::newDocument( true ); $doc->loadHTML( "<html><body></body></html>" ); DOMDataUtils::prepareDoc( $doc ); $fragment = WTUtils::createPageContentI18nFragment( $doc, 'key.of.message' ); DOMDataUtils::visitAndStoreDataAttribs( $fragment, [ 'discardDataParsoid' => true ] ); $actualHtml = DOMUtils::getFragmentInnerHTML( $fragment ); $expectedHtml = '<span typeof="mw:I18n" ' . 'data-mw-i18n=\'{"/":{"lang":"x-page","key":"key.of.message","params":null}}\'></span>'; self::assertEquals( $expectedHtml, $actualHtml ); } /** * @covers ::createInterfaceI18nFragment * @return void * @throws \DOMException */ public function testCreateInterfaceI18nFragment() { $doc = DOMCompat::newDocument( true ); $doc->loadHTML( "<html><body></body></html>" ); DOMDataUtils::prepareDoc( $doc ); $fragment = WTUtils::createInterfaceI18nFragment( $doc, 'key.of.message', [ 'Foo' ] ); DOMDataUtils::visitAndStoreDataAttribs( $fragment, [ 'discardDataParsoid' => true ] ); $actualHtml = DOMUtils::getFragmentInnerHTML( $fragment ); $expectedHtml = '<span typeof="mw:I18n" ' . 'data-mw-i18n=\'{"/":{"lang":"x-user","key":"key.of.message","params":["Foo"]}}\'></span>'; self::assertEquals( $expectedHtml, $actualHtml ); } /** * @covers ::addInterfaceI18nAttribute * @covers ::addPageContentI18nAttribute * @return void */ public function testAddI18nAttributes() { $doc = DOMCompat::newDocument( true ); $doc->loadHTML( "<html><body><span>hello</span></body></html>" ); DOMDataUtils::prepareDoc( $doc ); $span = DOMCompat::getBody( $doc )->firstChild; WTUtils::addPageContentI18nAttribute( $span, 'param1', 'key1' ); WTUtils::addInterfaceI18nAttribute( $span, 'param2', 'key2', [ 'Foo' ] ); DOMDataUtils::visitAndStoreDataAttribs( $doc, [ 'discardDataParsoid' => true ] ); $actualHtml = DOMCompat::getInnerHTML( DOMCompat::getBody( $doc ) ); $expectedHtml = '<span typeof="mw:LocalizedAttrs" ' . 'data-mw-i18n=\'{"param1":{"lang":"x-page","key":"key1","params":null},' . '"param2":{"lang":"x-user","key":"key2","params":["Foo"]}}\'>hello</span>'; self::assertEquals( $expectedHtml, $actualHtml ); } /** * This also tests the storage/loading of mw-data-i18n attributes in the databag. * @covers ::addPageContentI18nAttribute * @covers ::createInterfaceI18nFragment * @return void * @throws \DOMException */ public function testCombinedI18n() { $doc = DOMCompat::newDocument( true ); $doc->loadHTML( "<html><body></body></html>" ); DOMDataUtils::prepareDoc( $doc ); $fragment = WTUtils::createInterfaceI18nFragment( $doc, 'key.of.message', [ 'Foo' ] ); WTUtils::addPageContentI18nAttribute( $fragment->firstChild, 'attr1', 'key1' ); DOMDataUtils::visitAndStoreDataAttribs( $fragment, [ 'discardDataParsoid' => true ] ); $newDoc = DOMCompat::newDocument( true ); $newDoc->loadHTML( '<html><body>' . DOMUtils::getFragmentInnerHTML( $fragment ) . '</body></html>' ); DOMDataUtils::prepareDoc( $newDoc ); DOMDataUtils::visitAndLoadDataAttribs( $newDoc ); $span = DOMCompat::getBody( $newDoc )->firstChild; $typeof = DOMUtils::attributes( $span )['typeof']; self::assertEquals( 'mw:I18n mw:LocalizedAttrs', $typeof ); $spanI18n = DOMDataUtils::getDataNodeI18n( $span ); self::assertNotNull( $spanI18n ); $attrI18n = DOMDataUtils::getDataAttrI18n( $span, 'attr1' ); self::assertNotNull( $attrI18n ); self::assertEquals( I18nInfo::USER_LANG, $spanI18n->lang ); self::assertEquals( [ 'Foo' ], $spanI18n->params ); self::assertEquals( 'key.of.message', $spanI18n->key ); self::assertEquals( I18nInfo::PAGE_LANG, $attrI18n->lang ); self::assertNull( $attrI18n->params ); self::assertEquals( 'key1', $attrI18n->key ); } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | ���֧ߧ֧�ѧ�ڧ� ����ѧߧڧ��: 0.1 |
proxy
|
phpinfo
|
���ѧ����ۧܧ�