From 8ea537123d1cef38f25f9fbe92e3a9c0f89de55a Mon Sep 17 00:00:00 2001
From: Andrew Dolgov
Date: Tue, 13 Dec 2022 20:08:43 +0300
Subject: move af_readability out of master tree
---
.../masterminds/html5/test/HTML5/ElementsTest.php | 485 --
.../html5/test/HTML5/Fixtures/encoding/utf-8.html | 9 -
.../test/HTML5/Fixtures/encoding/windows-1252.html | 9 -
.../masterminds/html5/test/HTML5/Html5Test.html | 10 -
.../masterminds/html5/test/HTML5/Html5Test.php | 492 --
.../test/HTML5/Parser/CharacterReferenceTest.php | 44 -
.../html5/test/HTML5/Parser/DOMTreeBuilderTest.php | 743 ---
.../html5/test/HTML5/Parser/EventStack.php | 116 -
.../html5/test/HTML5/Parser/EventStackError.php | 7 -
.../test/HTML5/Parser/InstructionProcessorMock.php | 26 -
.../html5/test/HTML5/Parser/ScannerTest.php | 184 -
.../html5/test/HTML5/Parser/TokenizerTest.php | 978 ---
.../test/HTML5/Parser/TreeBuildingRulesTest.php | 118 -
.../html5/test/HTML5/Parser/UTF8UtilsTest.php | 28 -
.../test/HTML5/Serializer/OutputRulesTest.php | 652 --
.../html5/test/HTML5/Serializer/TraverserTest.php | 136 -
.../masterminds/html5/test/HTML5/TestCase.php | 23 -
.../masterminds/html5/test/benchmark/example.html | 6403 --------------------
.../masterminds/html5/test/benchmark/run.php | 29 -
19 files changed, 10492 deletions(-)
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/ElementsTest.php
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/Fixtures/encoding/utf-8.html
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/Fixtures/encoding/windows-1252.html
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/Html5Test.html
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/Html5Test.php
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/Parser/CharacterReferenceTest.php
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/Parser/DOMTreeBuilderTest.php
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/Parser/EventStack.php
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/Parser/EventStackError.php
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/Parser/InstructionProcessorMock.php
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/Parser/ScannerTest.php
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/Parser/TokenizerTest.php
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/Parser/TreeBuildingRulesTest.php
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/Parser/UTF8UtilsTest.php
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/Serializer/OutputRulesTest.php
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/Serializer/TraverserTest.php
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/HTML5/TestCase.php
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/benchmark/example.html
delete mode 100644 plugins/af_readability/vendor/masterminds/html5/test/benchmark/run.php
(limited to 'plugins/af_readability/vendor/masterminds/html5/test')
diff --git a/plugins/af_readability/vendor/masterminds/html5/test/HTML5/ElementsTest.php b/plugins/af_readability/vendor/masterminds/html5/test/HTML5/ElementsTest.php
deleted file mode 100644
index 08b5ee425..000000000
--- a/plugins/af_readability/vendor/masterminds/html5/test/HTML5/ElementsTest.php
+++ /dev/null
@@ -1,485 +0,0 @@
-html5Elements as $element) {
- $this->assertTrue(Elements::isHtml5Element($element), 'html5 element test failed on: ' . $element);
-
- $this->assertTrue(Elements::isHtml5Element(strtoupper($element)), 'html5 element test failed on: ' . strtoupper($element));
- }
-
- $nonhtml5 = array(
- 'foo',
- 'bar',
- 'baz',
- );
- foreach ($nonhtml5 as $element) {
- $this->assertFalse(Elements::isHtml5Element($element), 'html5 element test failed on: ' . $element);
-
- $this->assertFalse(Elements::isHtml5Element(strtoupper($element)), 'html5 element test failed on: ' . strtoupper($element));
- }
- }
-
- public function testIsMathMLElement()
- {
- foreach ($this->mathmlElements as $element) {
- $this->assertTrue(Elements::isMathMLElement($element), 'MathML element test failed on: ' . $element);
-
- // MathML is case sensitive so these should all fail.
- $this->assertFalse(Elements::isMathMLElement(strtoupper($element)), 'MathML element test failed on: ' . strtoupper($element));
- }
-
- $nonMathML = array(
- 'foo',
- 'bar',
- 'baz',
- );
- foreach ($nonMathML as $element) {
- $this->assertFalse(Elements::isMathMLElement($element), 'MathML element test failed on: ' . $element);
- }
- }
-
- public function testIsSvgElement()
- {
- foreach ($this->svgElements as $element) {
- $this->assertTrue(Elements::isSvgElement($element), 'SVG element test failed on: ' . $element);
-
- // SVG is case sensitive so these should all fail.
- $this->assertFalse(Elements::isSvgElement(strtoupper($element)), 'SVG element test failed on: ' . strtoupper($element));
- }
-
- $nonSVG = array(
- 'foo',
- 'bar',
- 'baz',
- );
- foreach ($nonSVG as $element) {
- $this->assertFalse(Elements::isSvgElement($element), 'SVG element test failed on: ' . $element);
- }
- }
-
- public function testIsElement()
- {
- foreach ($this->html5Elements as $element) {
- $this->assertTrue(Elements::isElement($element), 'html5 element test failed on: ' . $element);
-
- $this->assertTrue(Elements::isElement(strtoupper($element)), 'html5 element test failed on: ' . strtoupper($element));
- }
-
- foreach ($this->mathmlElements as $element) {
- $this->assertTrue(Elements::isElement($element), 'MathML element test failed on: ' . $element);
-
- // MathML is case sensitive so these should all fail.
- $this->assertFalse(Elements::isElement(strtoupper($element)), 'MathML element test failed on: ' . strtoupper($element));
- }
-
- foreach ($this->svgElements as $element) {
- $this->assertTrue(Elements::isElement($element), 'SVG element test failed on: ' . $element);
-
- // SVG is case sensitive so these should all fail. But, there is duplication
- // html5 and SVG. Since html5 is case insensitive we need to make sure
- // it's not a html5 element first.
- if (!in_array($element, $this->html5Elements)) {
- $this->assertFalse(Elements::isElement(strtoupper($element)), 'SVG element test failed on: ' . strtoupper($element));
- }
- }
-
- $nonhtml5 = array(
- 'foo',
- 'bar',
- 'baz',
- );
- foreach ($nonhtml5 as $element) {
- $this->assertFalse(Elements::isElement($element), 'html5 element test failed on: ' . $element);
-
- $this->assertFalse(Elements::isElement(strtoupper($element)), 'html5 element test failed on: ' . strtoupper($element));
- }
- }
-
- public function testElement()
- {
- foreach ($this->html5Elements as $element) {
- $this->assertGreaterThan(0, Elements::element($element));
- }
- $nonhtml5 = array(
- 'foo',
- 'bar',
- 'baz',
- );
- foreach ($nonhtml5 as $element) {
- $this->assertEquals(0, Elements::element($element));
- }
- }
-
- public function testIsA()
- {
- $this->assertTrue(Elements::isA('script', Elements::KNOWN_ELEMENT));
- $this->assertFalse(Elements::isA('scriptypoo', Elements::KNOWN_ELEMENT));
- $this->assertTrue(Elements::isA('script', Elements::TEXT_RAW));
- $this->assertFalse(Elements::isA('script', Elements::TEXT_RCDATA));
-
- $voidElements = array(
- 'area',
- 'base',
- 'basefont',
- 'bgsound',
- 'br',
- 'col',
- 'command',
- 'embed',
- 'frame',
- 'hr',
- 'img',
- );
-
- foreach ($voidElements as $element) {
- $this->assertTrue(Elements::isA($element, Elements::VOID_TAG), 'Void element test failed on: ' . $element);
- }
-
- $nonVoid = array(
- 'span',
- 'a',
- 'div',
- );
- foreach ($nonVoid as $tag) {
- $this->assertFalse(Elements::isA($tag, Elements::VOID_TAG), 'Void element test failed on: ' . $tag);
- }
-
- $blockTags = array(
- 'address',
- 'article',
- 'aside',
- 'blockquote',
- 'canvas',
- 'dd',
- 'div',
- 'dl',
- 'fieldset',
- 'figcaption',
- 'figure',
- 'footer',
- 'form',
- 'h1',
- 'h2',
- 'h3',
- 'h4',
- 'h5',
- 'h6',
- 'header',
- 'hgroup',
- 'hr',
- 'noscript',
- 'ol',
- 'output',
- 'p',
- 'pre',
- 'section',
- 'table',
- 'tfoot',
- 'ul',
- 'video',
- );
-
- foreach ($blockTags as $tag) {
- $this->assertTrue(Elements::isA($tag, Elements::BLOCK_TAG), 'Block tag test failed on: ' . $tag);
- }
-
- $nonBlockTags = array(
- 'span',
- 'img',
- 'label',
- );
- foreach ($nonBlockTags as $tag) {
- $this->assertFalse(Elements::isA($tag, Elements::BLOCK_TAG), 'Block tag test failed on: ' . $tag);
- }
- }
-
- public function testNormalizeSvgElement()
- {
- $tests = array(
- 'foo' => 'foo',
- 'altglyph' => 'altGlyph',
- 'BAR' => 'bar',
- 'fespecularlighting' => 'feSpecularLighting',
- 'bAz' => 'baz',
- 'foreignobject' => 'foreignObject',
- );
-
- foreach ($tests as $input => $expected) {
- $this->assertEquals($expected, Elements::normalizeSvgElement($input));
- }
- }
-
- public function testNormalizeSvgAttribute()
- {
- $tests = array(
- 'foo' => 'foo',
- 'attributename' => 'attributeName',
- 'BAR' => 'bar',
- 'limitingconeangle' => 'limitingConeAngle',
- 'bAz' => 'baz',
- 'patterncontentunits' => 'patternContentUnits',
- );
-
- foreach ($tests as $input => $expected) {
- $this->assertEquals($expected, Elements::normalizeSvgAttribute($input));
- }
- }
-
- public function testNormalizeMathMlAttribute()
- {
- $tests = array(
- 'foo' => 'foo',
- 'definitionurl' => 'definitionURL',
- 'BAR' => 'bar',
- );
-
- foreach ($tests as $input => $expected) {
- $this->assertEquals($expected, Elements::normalizeMathMlAttribute($input));
- }
- }
-}
diff --git a/plugins/af_readability/vendor/masterminds/html5/test/HTML5/Fixtures/encoding/utf-8.html b/plugins/af_readability/vendor/masterminds/html5/test/HTML5/Fixtures/encoding/utf-8.html
deleted file mode 100644
index fa5a029ce..000000000
--- a/plugins/af_readability/vendor/masterminds/html5/test/HTML5/Fixtures/encoding/utf-8.html
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
- Žťčýů
-
-
diff --git a/plugins/af_readability/vendor/masterminds/html5/test/HTML5/Fixtures/encoding/windows-1252.html b/plugins/af_readability/vendor/masterminds/html5/test/HTML5/Fixtures/encoding/windows-1252.html
deleted file mode 100644
index f0132da5d..000000000
--- a/plugins/af_readability/vendor/masterminds/html5/test/HTML5/Fixtures/encoding/windows-1252.html
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/plugins/af_readability/vendor/masterminds/html5/test/HTML5/Html5Test.html b/plugins/af_readability/vendor/masterminds/html5/test/HTML5/Html5Test.html
deleted file mode 100644
index a976e8be9..000000000
--- a/plugins/af_readability/vendor/masterminds/html5/test/HTML5/Html5Test.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- Test
-
-
- This is a test.
-
-
\ No newline at end of file
diff --git a/plugins/af_readability/vendor/masterminds/html5/test/HTML5/Html5Test.php b/plugins/af_readability/vendor/masterminds/html5/test/HTML5/Html5Test.php
deleted file mode 100644
index ed66d8af2..000000000
--- a/plugins/af_readability/vendor/masterminds/html5/test/HTML5/Html5Test.php
+++ /dev/null
@@ -1,492 +0,0 @@
-html5 = $this->getInstance();
- }
-
- /**
- * Parse and serialize a string.
- */
- protected function cycle($html)
- {
- $dom = $this->html5->loadHTML('' . $html . '');
- $out = $this->html5->saveHTML($dom);
-
- return $out;
- }
-
- protected function cycleFragment($fragment)
- {
- $dom = $this->html5->loadHTMLFragment($fragment);
- $out = $this->html5->saveHTML($dom);
-
- return $out;
- }
-
- public function testImageTagsInSvg()
- {
- $html = '
-
-
- foo
-
-
-
-
-
-
- ';
- $doc = $this->html5->loadHTML($html);
- $this->assertInstanceOf('DOMElement', $doc->getElementsByTagName('image')->item(0));
- $this->assertEmpty($this->html5->getErrors());
- }
-
- public function testLoadOptions()
- {
- // doc
- $dom = $this->html5->loadHTML($this->wrap(' '), array(
- 'implicitNamespaces' => array('t' => 'http://example.com'),
- 'xmlNamespaces' => true,
- ));
- $this->assertInstanceOf('\DOMDocument', $dom);
- $this->assertEmpty($this->html5->getErrors());
- $this->assertFalse($this->html5->hasErrors());
-
- $xpath = new \DOMXPath($dom);
- $xpath->registerNamespace('t', 'http://example.com');
- $this->assertEquals(1, $xpath->query('//t:tag')->length);
-
- // doc fragment
- $frag = $this->html5->loadHTMLFragment(' ', array(
- 'implicitNamespaces' => array('t' => 'http://example.com'),
- 'xmlNamespaces' => true,
- ));
- $this->assertInstanceOf('\DOMDocumentFragment', $frag);
- $this->assertEmpty($this->html5->getErrors());
- $this->assertFalse($this->html5->hasErrors());
-
- $frag->ownerDocument->appendChild($frag);
- $xpath = new \DOMXPath($frag->ownerDocument);
- $xpath->registerNamespace('t', 'http://example.com');
- $this->assertEquals(1, $xpath->query('//t:tag', $frag)->length);
- }
-
- public function testEncodingUtf8()
- {
- $dom = $this->html5->load(__DIR__ . '/Fixtures/encoding/utf-8.html');
- $this->assertInstanceOf('\DOMDocument', $dom);
- $this->assertEmpty($this->html5->getErrors());
- $this->assertFalse($this->html5->hasErrors());
-
- $this->assertContains('Žťčýů', $dom->saveHTML());
- }
-
- public function testEncodingWindows1252()
- {
- $dom = $this->html5->load(__DIR__ . '/Fixtures/encoding/windows-1252.html', array(
- 'encoding' => 'Windows-1252',
- ));
-
- $this->assertInstanceOf('\DOMDocument', $dom);
- $this->assertEmpty($this->html5->getErrors());
- $this->assertFalse($this->html5->hasErrors());
-
- $dumpedAsUtf8 = mb_convert_encoding($dom->saveHTML(), 'UTF-8', 'Windows-1252');
- $this->assertNotFalse(mb_strpos($dumpedAsUtf8, 'Ž'));
- $this->assertNotFalse(mb_strpos($dumpedAsUtf8, 'è'));
- $this->assertNotFalse(mb_strpos($dumpedAsUtf8, 'ý'));
- $this->assertNotFalse(mb_strpos($dumpedAsUtf8, 'ù'));
- }
-
- public function testErrors()
- {
- $dom = $this->html5->loadHTML('');
- $this->assertInstanceOf('\DOMDocument', $dom);
-
- $this->assertNotEmpty($this->html5->getErrors());
- $this->assertTrue($this->html5->hasErrors());
- }
-
- public function testLoad()
- {
- $dom = $this->html5->load(__DIR__ . '/Html5Test.html');
- $this->assertInstanceOf('\DOMDocument', $dom);
- $this->assertEmpty($this->html5->getErrors());
- $this->assertFalse($this->html5->hasErrors());
-
- $file = fopen(__DIR__ . '/Html5Test.html', 'r');
- $dom = $this->html5->load($file);
- $this->assertInstanceOf('\DOMDocument', $dom);
- $this->assertEmpty($this->html5->getErrors());
-
- $dom = $this->html5->loadHTMLFile(__DIR__ . '/Html5Test.html');
- $this->assertInstanceOf('\DOMDocument', $dom);
- $this->assertEmpty($this->html5->getErrors());
- }
-
- public function testLoadHTML()
- {
- $contents = file_get_contents(__DIR__ . '/Html5Test.html');
- $dom = $this->html5->loadHTML($contents);
- $this->assertInstanceOf('\DOMDocument', $dom);
- $this->assertEmpty($this->html5->getErrors());
- }
-
- public function testLoadHTMLWithComments()
- {
- $contents = '
-
-';
-
- $dom = $this->html5->loadHTML($contents);
- $this->assertInstanceOf('\DOMDocument', $dom);
-
- $expected = '
-
-';
- $this->assertEquals($expected, $this->html5->saveHTML($dom));
- }
-
- public function testLoadHTMLFragment()
- {
- $fragment = '';
- $dom = $this->html5->loadHTMLFragment($fragment);
- $this->assertInstanceOf('\DOMDocumentFragment', $dom);
- $this->assertEmpty($this->html5->getErrors());
- }
-
- public function testSaveHTML()
- {
- $dom = $this->html5->load(__DIR__ . '/Html5Test.html');
- $this->assertInstanceOf('\DOMDocument', $dom);
- $this->assertEmpty($this->html5->getErrors());
-
- $saved = $this->html5->saveHTML($dom);
- $this->assertRegExp('|This is a test.
|', $saved);
- }
-
- public function testSaveHTMLFragment()
- {
- $fragment = '';
- $dom = $this->html5->loadHTMLFragment($fragment);
-
- $string = $this->html5->saveHTML($dom);
- $this->assertEquals($fragment, $string);
- }
-
- public function testSave()
- {
- $dom = $this->html5->load(__DIR__ . '/Html5Test.html');
- $this->assertInstanceOf('\DOMDocument', $dom);
- $this->assertEmpty($this->html5->getErrors());
-
- // Test resource
- $file = fopen('php://temp', 'w');
- $this->html5->save($dom, $file);
- $content = stream_get_contents($file, -1, 0);
- $this->assertRegExp('|This is a test.
|', $content);
-
- // Test file
- $tmpfname = tempnam(sys_get_temp_dir(), 'html5-php');
- $this->html5->save($dom, $tmpfname);
- $content = file_get_contents($tmpfname);
- $this->assertRegExp('|This is a test.
|', $content);
- unlink($tmpfname);
- }
-
- // This test reads a document into a dom, turn the dom into a document,
- // then tries to read that document again. This makes sure we are reading,
- // and generating a document that works at a high level.
- public function testItWorks()
- {
- $dom = $this->html5->load(__DIR__ . '/Html5Test.html');
- $this->assertInstanceOf('\DOMDocument', $dom);
- $this->assertEmpty($this->html5->getErrors());
-
- $saved = $this->html5->saveHTML($dom);
-
- $dom2 = $this->html5->loadHTML($saved);
- $this->assertInstanceOf('\DOMDocument', $dom2);
- $this->assertEmpty($this->html5->getErrors());
- }
-
- public function testConfig()
- {
- $html5 = $this->getInstance();
- $options = $html5->getOptions();
- $this->assertEquals(false, $options['encode_entities']);
-
- $html5 = $this->getInstance(array(
- 'foo' => 'bar',
- 'encode_entities' => true,
- ));
- $options = $html5->getOptions();
- $this->assertEquals('bar', $options['foo']);
- $this->assertEquals(true, $options['encode_entities']);
-
- // Need to reset to original so future tests pass as expected.
- // $this->getInstance()->setOption('encode_entities', false);
- }
-
- public function testSvg()
- {
- $dom = $this->html5->loadHTML(
- '
-
-
- foo bar baz
-
-
-
-
-
-
- Test Text.
-
-
-
-
- ');
-
- $this->assertEmpty($this->html5->getErrors());
-
- // Test a mixed case attribute.
- $list = $dom->getElementsByTagName('svg');
- $this->assertNotEmpty($list->length);
- $svg = $list->item(0);
- $this->assertEquals('0 0 3 2', $svg->getAttribute('viewBox'));
- $this->assertFalse($svg->hasAttribute('viewbox'));
-
- // Test a mixed case tag.
- // Note: getElementsByTagName is not case sensitive.
- $list = $dom->getElementsByTagName('textPath');
- $this->assertNotEmpty($list->length);
- $textPath = $list->item(0);
- $this->assertEquals('textPath', $textPath->tagName);
- $this->assertNotEquals('textpath', $textPath->tagName);
-
- $html = $this->html5->saveHTML($dom);
- $this->assertRegExp('||', $html);
- $this->assertRegExp('| |', $html);
- }
-
- public function testMathMl()
- {
- $dom = $this->html5->loadHTML(
- '
-
-
- foo bar baz
-
- x
-
- ±
-
- y
-
-
- ');
-
- $this->assertEmpty($this->html5->getErrors());
- $list = $dom->getElementsByTagName('math');
- $this->assertNotEmpty($list->length);
-
- $list = $dom->getElementsByTagName('div');
- $this->assertNotEmpty($list->length);
- $div = $list->item(0);
- $this->assertEquals('http://example.com', $div->getAttribute('definitionurl'));
- $this->assertFalse($div->hasAttribute('definitionURL'));
- $list = $dom->getElementsByTagName('csymbol');
- $csymbol = $list->item(0);
- $this->assertEquals('http://www.example.com/mathops/multiops.html#plusminus', $csymbol->getAttribute('definitionURL'));
- $this->assertFalse($csymbol->hasAttribute('definitionurl'));
-
- $html = $this->html5->saveHTML($dom);
- $this->assertRegExp('||', $html);
- $this->assertRegExp('|y |', $html);
- }
-
- public function testUnknownElements()
- {
- // The : should not have special handling accourding to section 2.9 of the
- // spec. This is differenant than XML. Since we don't know these elements
- // they are handled as normal elements. Note, to do this is really
- // an invalid example and you should not embed prefixed xml in html5.
- $dom = $this->html5->loadHTMLFragment(
- '
- Big rectangle thing
- 40
- 80
-
- um, yeah ');
-
- $this->assertEmpty($this->html5->getErrors());
- $markup = $this->html5->saveHTML($dom);
- $this->assertRegExp('|Big rectangle thing |', $markup);
- $this->assertRegExp('|um, yeah |', $markup);
- }
-
- public function testElements()
- {
- // Should have content.
- $res = $this->cycle('FOO
');
- $this->assertRegExp('|FOO
|', $res);
-
- // Should be empty
- $res = $this->cycle(' ');
- $this->assertRegExp('| |', $res);
-
- // Should have content.
- $res = $this->cycleFragment('FOO
');
- $this->assertRegExp('|FOO
|', $res);
-
- // Should be empty
- $res = $this->cycleFragment(' ');
- $this->assertRegExp('| |', $res);
-
- // Elements with dashes and underscores
- $res = $this->cycleFragment(' ');
- $this->assertRegExp('| |', $res);
- $res = $this->cycleFragment(' ');
- $this->assertRegExp('| |', $res);
-
- // Should have no closing tag.
- $res = $this->cycle(' ');
- $this->assertRegExp('|
Error