ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
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 
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 }
Class ilTermsOfServiceCriterionBaseTest.
testPurifyingWorksAsExpected(string $text, string $expected)
documentTextProvider
Class ilTermsOfServiceDocumentHtmlPurifier.
Class ilTermsOfServiceDocumentHtmlPurifierTest.