1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * tool_brickfield check test. 19 * 20 * @package tool_brickfield 21 * @copyright 2020 onward: Brickfield Education Labs, https://www.brickfield.ie 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 25 namespace tool_brickfield\local\htmlchecker\common\checks; 26 27 defined('MOODLE_INTERNAL') || die(); 28 29 require_once ('all_checks.php'); 30 31 /** 32 * Class object_must_have_valid_title_test 33 */ 34 class object_must_have_valid_title_test extends all_checks { 35 /** @var string Check type */ 36 public $checktype = 'object_must_have_valid_title'; 37 38 /** @var string Html fail */ 39 private $htmlfail = <<<EOD 40 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 41 <html> 42 <head> 43 <title>Title attribute does not exist within string array - fail</title> 44 </head> 45 <body> 46 <object title="This is not a perfectly valid title" ></object> 47 </body> 48 </html> 49 EOD; 50 51 /** @var string Html pass 1 */ 52 private $htmlpass1 = <<<EOD 53 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 54 <html> 55 <head> 56 <title>Title attribute must exist within string array - pass</title> 57 </head> 58 <body> 59 <object title="nbsp" ></object> 60 </body> 61 </html> 62 EOD; 63 64 /** @var string Html pass 3 */ 65 private $htmlpass3 = <<<EOD 66 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 67 <html> 68 <head> 69 <title>Title attribute must exist within string array - pass</title> 70 </head> 71 <body> 72 <object title="object" ></object> 73 </body> 74 </html> 75 EOD; 76 77 /** @var string Html pass 4 */ 78 private $htmlpass4 = <<<EOD 79 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 80 <html> 81 <head> 82 <title>Title attribute must exist within string array - pass</title> 83 </head> 84 <body> 85 <object title="spacer" ></object> 86 </body> 87 </html> 88 EOD; 89 90 /** @var string Html pass 5 */ 91 private $htmlpass5 = <<<EOD 92 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 93 <html> 94 <head> 95 <title>Title attribute must exist within string array - pass</title> 96 </head> 97 <body> 98 <object title="image" ></object> 99 </body> 100 </html> 101 EOD; 102 103 /** @var string Html pass 6 */ 104 private $htmlpass6 = <<<EOD 105 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 106 <html> 107 <head> 108 <title>Title attribute must exist within string array - pass</title> 109 </head> 110 <body> 111 <object title="img" ></object> 112 </body> 113 </html> 114 EOD; 115 116 /** @var string Html pass 7 */ 117 private $htmlpass7 = <<<EOD 118 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 119 <html> 120 <head> 121 <title>Title attribute must exist within string array - pass</title> 122 </head> 123 <body> 124 <object title="photo" ></object> 125 </body> 126 </html> 127 EOD; 128 129 /** 130 * Test that embed element within object element. 131 */ 132 public function test_check_fail() { 133 $results = $this->get_checker_results($this->htmlfail); 134 $this->assertTrue($results[0]->element->tagName == 'object'); 135 } 136 137 /** 138 * Test for embed element within object element. 139 */ 140 public function test_check_pass() { 141 $results = $this->get_checker_results($this->htmlpass1); 142 $this->assertEmpty($results); 143 144 $results = $this->get_checker_results($this->htmlpass3); 145 $this->assertEmpty($results); 146 147 $results = $this->get_checker_results($this->htmlpass4); 148 $this->assertEmpty($results); 149 150 $results = $this->get_checker_results($this->htmlpass5); 151 $this->assertEmpty($results); 152 153 $results = $this->get_checker_results($this->htmlpass6); 154 $this->assertEmpty($results); 155 156 $results = $this->get_checker_results($this->htmlpass7); 157 $this->assertEmpty($results); 158 } 159 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body