ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilTermsOfServiceDocumentHtmlPurifierTest.php
Go to the documentation of this file.
1<?php declare(strict_types=1);
2/* Copyright (c) 1998-2018 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4use org\bovigo\vfs;
5
11{
15 private function isVsfStreamInstalled() : bool
16 {
17 return class_exists('org\bovigo\vfs\vfsStreamWrapper');
18 }
19
23 private function skipIfvfsStreamNotSupported() : void
24 {
25 if (!$this->isVsfStreamInstalled()) {
26 $this->markTestSkipped('Skipped test, vfsStream (http://vfs.bovigo.org) required');
27 }
28 }
29
33 public function documentTextProvider() : array
34 {
35 return [
36 'Simple HTML Elements' => [
37 '<h1><b>This</b> <i>is</i> <u>a</u> <em>Headline</em>!</h1><p>And a<br>paragraph.</p>',
38 '<h1><b>This</b> <i>is</i> <span style="text-decoration:underline;">a</span> <em>Headline</em>!</h1><p>And a<br />paragraph.</p>',
39 ],
40 'Simple HTML Elements with an Invalid Tag' => [
41 '<h1>This is a <a href="mailto:info@ilias.de">Headline</a>!</h1><p>And a paragraph with an invalid element: ILIAS e.V. <info@ilias.de>.</p>',
42 '<h1>This is a <a href="mailto:info@ilias.de">Headline</a>!</h1><p>And a paragraph with an invalid element: ILIAS e.V. .</p>',
43 ],
44 'Block Elements and Nested Lists' => [
45 '<div><ul><li>Php</li></ul><hr><ol><li>Unit</li></ol><dl><dt>Test</dt><dd><code>Success or Failure!</code></dd></dl></div>',
46 '<div><ul><li>Php</li></ul><hr /><ol><li>Unit</li></ol><dl><dt>Test</dt><dd><code>Success or Failure!</code></dd></dl></div>',
47 ],
48 'Blockquote' => [
49 '<pre>Text</pre><blockquote><cite><sup>Q</sup>uote</cite></blockquote>',
50 '<pre>Text</pre><blockquote><p><cite><sup>Q</sup>uote</cite></p></blockquote>',
51 ]
52 ];
53 }
54
61 public function testPurifyingWorksAsExpected(string $text, string $expected) : void
62 {
64
65 vfs\vfsStreamWrapper::register();
66 $root = vfs\vfsStreamWrapper::setRoot(new vfs\vfsStreamDirectory('root'));
67 $cacheDirectory = vfs\vfsStream::newDirectory('HTMLPurifier')->at($root);
68 $cacheDirectory->chmod(0777);
69
71 [
72 "a",
73 "blockquote",
74 "br",
75 "cite",
76 "code",
77 "dd",
78 "div",
79 "dl",
80 "dt",
81 "em",
82 "h1",
83 "h2",
84 "h3",
85 "h4",
86 "h5",
87 "h6",
88 "hr",
89 "img",
90 "li",
91 "ol",
92 "p",
93 "pre",
94 "span",
95 "strong",
96 "sub",
97 "sup",
98 "u",
99 "ul"
100 ],
101 vfs\vfsStream::url('root/HTMLPurifier')
102 );
103 $this->assertEquals($expected, $purifier->purify($text));
104 }
105}
An exception for terminatinating execution or to throw for unit testing.
Class ilTermsOfServiceCriterionBaseTest.
Class ilTermsOfServiceDocumentHtmlPurifierTest.
testPurifyingWorksAsExpected(string $text, string $expected)
@dataProvider documentTextProvider