[ Index ] |
PHP Cross Reference of BBPress |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Tests for the topics component topic template functions. 4 * 5 * @group topics 6 * @group template 7 * @group topic 8 */ 9 class BBP_Tests_Topics_Template_Topic extends BBP_UnitTestCase { 10 11 /** 12 * @covers ::bbp_show_lead_topic 13 * @todo Implement test_bbp_show_lead_topic(). 14 */ 15 public function test_bbp_show_lead_topic() { 16 // Remove the following lines when you implement this test. 17 $this->markTestIncomplete( 18 'This test has not been implemented yet.' 19 ); 20 } 21 22 /** 23 * @covers ::bbp_topic_id 24 * @covers ::bbp_get_topic_id 25 */ 26 public function test_bbp_get_topic_id() { 27 $f = $this->factory->forum->create(); 28 $t = $this->factory->topic->create( array( 29 'post_parent' => $f, 30 'topic_meta' => array( 31 'forum_id' => $f, 32 ), 33 ) ); 34 35 $topic_id = bbp_get_topic_id( $t ); 36 $this->assertSame( $t, $topic_id ); 37 } 38 39 /** 40 * @covers ::bbp_get_topic 41 * @todo Implement test_bbp_get_topic(). 42 */ 43 public function test_bbp_get_topic() { 44 // Remove the following lines when you implement this test. 45 $this->markTestIncomplete( 46 'This test has not been implemented yet.' 47 ); 48 } 49 50 /** 51 * @covers ::bbp_topic_permalink 52 * @covers ::bbp_get_topic_permalink 53 */ 54 public function test_bbp_get_topic_permalink() { 55 if ( is_multisite() ) { 56 $this->markTestSkipped( 'Skipping URL tests in multiste for now.' ); 57 } 58 $f = $this->factory->forum->create(); 59 $t = $this->factory->topic->create( array( 60 'post_title' => 'Topic 1', 61 'post_parent' => $f, 62 'topic_meta' => array( 63 'forum_id' => $f, 64 ), 65 ) ); 66 67 $topic_permalink = bbp_get_topic_permalink( $t ); 68 69 $this->expectOutputString( $topic_permalink ); 70 bbp_topic_permalink( $t ); 71 72 $this->assertSame( 'http://' . WP_TESTS_DOMAIN . '/?topic=topic-1', $topic_permalink ); 73 } 74 75 /** 76 * @covers ::bbp_topic_title 77 * @covers ::bbp_get_topic_title 78 */ 79 public function test_bbp_get_topic_title() { 80 $f = $this->factory->forum->create(); 81 $t = $this->factory->topic->create( array( 82 'post_title' => 'Topic 1', 83 'post_parent' => $f, 84 'topic_meta' => array( 85 'forum_id' => $f, 86 ), 87 ) ); 88 89 $topic_title = bbp_get_topic_title( $t ); 90 $this->assertSame( 'Topic 1', $topic_title ); 91 } 92 93 /** 94 * @covers ::bbp_topic_title 95 * @covers ::bbp_get_topic_title 96 * @group bbp_xss 97 */ 98 public function test_bbp_get_topic_title_with_script_and_quotes() { 99 $f = $this->factory->forum->create(); 100 $t = $this->factory->topic->create( array( 101 'post_title' => '<script src="https://bbpress.org">Script</script> Topic', 102 'post_parent' => $f, 103 'topic_meta' => array( 104 'forum_id' => $f, 105 ), 106 ) ); 107 108 $topic_title = bbp_get_topic_title( $t ); 109 $this->assertSame( 'Script Topic', $topic_title ); 110 } 111 112 /** 113 * @covers ::bbp_topic_title 114 * @covers ::bbp_get_topic_title 115 * @group bbp_xss 116 */ 117 public function test_bbp_get_topic_title_with_script_no_quotes() { 118 $f = $this->factory->forum->create(); 119 $t = $this->factory->topic->create( array( 120 'post_title' => '<script src=https://bbpress.org>Script</script> Topic', 121 'post_parent' => $f, 122 'topic_meta' => array( 123 'forum_id' => $f, 124 ), 125 ) ); 126 127 $topic_title = bbp_get_topic_title( $t ); 128 $this->assertSame( 'Script Topic', $topic_title ); 129 } 130 131 /** 132 * @covers ::bbp_topic_title 133 * @covers ::bbp_get_topic_title 134 * @group bbp_xss 135 */ 136 public function test_bbp_get_topic_title_with_quotes() { 137 $f = $this->factory->forum->create(); 138 $t = $this->factory->topic->create( array( 139 'post_title' => '"Quoted" Topic', 140 'post_parent' => $f, 141 'topic_meta' => array( 142 'forum_id' => $f, 143 ), 144 ) ); 145 146 $topic_title = bbp_get_topic_title( $t ); 147 $this->assertSame( '“Quoted” Topic', $topic_title ); 148 } 149 150 /** 151 * @covers ::bbp_topic_title 152 * @covers ::bbp_get_topic_title 153 * @group bbp_xss 154 */ 155 public function test_bbp_get_topic_title_with_js_as_img_src() { 156 $f = $this->factory->forum->create(); 157 $t = $this->factory->topic->create( array( 158 'post_title' => '<img src="javascript:alert(\'Oh, bother!\');">Topic 1', 159 'post_parent' => $f, 160 'topic_meta' => array( 161 'forum_id' => $f, 162 ), 163 ) ); 164 165 $topic_title = bbp_get_topic_title( $t ); 166 $this->assertSame( 'Topic 1', $topic_title ); 167 } 168 169 /** 170 * @covers ::bbp_topic_title 171 * @covers ::bbp_get_topic_title 172 * @group bbp_xss 173 */ 174 public function test_bbp_get_topic_title_with_extra_open_brackets() { 175 $f = $this->factory->forum->create(); 176 $t = $this->factory->topic->create( array( 177 'post_title' => '<<script>alert("XSS");//<</script>', 178 'post_parent' => $f, 179 'topic_meta' => array( 180 'forum_id' => $f, 181 ), 182 ) ); 183 184 $topic_title = bbp_get_topic_title( $t ); 185 $this->assertSame( '<alert(“XSS”);//<', $topic_title ); 186 } 187 188 /** 189 * @covers ::bbp_topic_archive_title 190 * @covers ::bbp_get_topic_archive_title 191 * @todo Implement test_bbp_get_topic_archive_title(). 192 */ 193 public function test_bbp_get_topic_archive_title() { 194 // Remove the following lines when you implement this test. 195 $this->markTestIncomplete( 196 'This test has not been implemented yet.' 197 ); 198 } 199 200 /** 201 * @covers ::bbp_topic_content 202 * @covers ::bbp_get_topic_content 203 */ 204 public function test_bbp_get_topic_content() { 205 $f = $this->factory->forum->create(); 206 $t = $this->factory->topic->create( array( 207 'post_content' => 'Content of Topic 1', 208 'post_parent' => $f, 209 'topic_meta' => array( 210 'forum_id' => $f, 211 ), 212 ) ); 213 214 remove_all_filters( 'bbp_get_topic_content' ); 215 $topic_content = bbp_get_topic_content( $t ); 216 $this->assertSame( 'Content of Topic 1', $topic_content ); 217 } 218 219 /** 220 * @covers ::bbp_topic_excerpt 221 * @covers ::bbp_get_topic_excerpt 222 */ 223 public function test_bbp_get_topic_excerpt() { 224 $f = $this->factory->forum->create(); 225 $t = $this->factory->topic->create( array( 226 'post_parent' => $f, 227 'post_content' => 'Talk about telekinetic activity, look at this mess!', 228 'topic_meta' => array( 229 'forum_id' => $f, 230 ), 231 ) ); 232 233 remove_all_filters( 'bbp_get_topic_content' ); 234 $topic_excerpt = bbp_get_topic_excerpt( $t, 23 ); 235 $this->assertSame( 'Talk about telekinetic…', $topic_excerpt ); 236 } 237 238 /** 239 * @covers ::bbp_topic_post_date 240 * @covers ::bbp_get_topic_post_date 241 */ 242 public function test_bbp_get_topic_post_date() { 243 $f = $this->factory->forum->create(); 244 245 $now = time(); 246 $post_date = date( 'Y-m-d H:i:s', $now - 60*60*100 ); 247 248 $t = $this->factory->topic->create( array( 249 'post_parent' => $f, 250 'post_date' => $post_date, 251 'topic_meta' => array( 252 'forum_id' => $f, 253 ), 254 ) ); 255 256 // Configue our written date time, August 4, 2012 at 2:37 pm. 257 $gmt = false; 258 $date = get_post_time( get_option( 'date_format' ), $gmt, $t, true ); 259 $time = get_post_time( get_option( 'time_format' ), $gmt, $t, true ); 260 $result = sprintf( '%1$s at %2$s', $date, $time ); 261 262 // Output, string, August 4, 2012 at 2:37 pm. 263 $this->expectOutputString( $result ); 264 bbp_topic_post_date( $t ); 265 266 // String, August 4, 2012 at 2:37 pm. 267 $datetime = bbp_get_topic_post_date( $t, false, false ); 268 $this->assertSame( $result, $datetime ); 269 270 // Humanized string, 4 days, 4 hours ago. 271 $datetime = bbp_get_topic_post_date( $t, true, false ); 272 $this->assertSame( '4 days, 4 hours ago', $datetime ); 273 274 // Humanized string using GMT formatted date, 4 days, 4 hours ago. 275 $datetime = bbp_get_topic_post_date( $t, true, true ); 276 $this->assertSame( '4 days, 4 hours ago', $datetime ); 277 } 278 279 /** 280 * @covers ::bbp_topic_pagination 281 * @covers ::bbp_get_topic_pagination 282 * @todo Implement test_bbp_get_topic_pagination(). 283 */ 284 public function test_bbp_get_topic_pagination() { 285 // Remove the following lines when you implement this test. 286 $this->markTestIncomplete( 287 'This test has not been implemented yet.' 288 ); 289 } 290 291 /** 292 * @covers ::bbp_topic_forum_title 293 * @covers ::bbp_get_topic_forum_title 294 */ 295 public function test_bbp_get_topic_forum_title() { 296 $f = $this->factory->forum->create(); 297 $t = $this->factory->topic->create( array( 298 'post_parent' => $f, 299 'topic_meta' => array( 300 'forum_id' => $f, 301 ), 302 ) ); 303 304 $topic_forum_title = bbp_get_topic_forum_title( $t ); 305 $this->assertSame( bbp_get_forum_title( $f ), $topic_forum_title ); 306 } 307 308 /** 309 * @covers ::bbp_topic_forum_id 310 * @covers ::bbp_get_topic_forum_id 311 */ 312 public function test_bbp_get_topic_forum_id() { 313 $f = $this->factory->forum->create(); 314 $t = $this->factory->topic->create( array( 315 'post_parent' => $f, 316 'topic_meta' => array( 317 'forum_id' => $f, 318 ), 319 ) ); 320 321 $topic_forum_id = bbp_get_topic_forum_id( $t ); 322 $this->assertSame( $f, $topic_forum_id ); 323 } 324 325 /** 326 * @covers ::bbp_topic_class 327 * @covers ::bbp_get_topic_class 328 * @todo Implement test_bbp_get_topic_class(). 329 */ 330 public function test_bbp_get_topic_class() { 331 // Remove the following lines when you implement this test. 332 $this->markTestIncomplete( 333 'This test has not been implemented yet.' 334 ); 335 } 336 337 /** 338 * @covers ::bbp_forum_pagination_count 339 * @covers ::bbp_get_forum_pagination_count 340 * @todo Implement test_bbp_get_forum_pagination_count(). 341 */ 342 public function test_bbp_get_forum_pagination_count() { 343 // Remove the following lines when you implement this test. 344 $this->markTestIncomplete( 345 'This test has not been implemented yet.' 346 ); 347 } 348 349 /** 350 * @covers ::bbp_topic_notices 351 * @todo Implement test_bbp_topic_notices(). 352 */ 353 public function test_bbp_topic_notices() { 354 // Remove the following lines when you implement this test. 355 $this->markTestIncomplete( 356 'This test has not been implemented yet.' 357 ); 358 } 359 360 /** 361 * @covers ::bbp_topic_type_select 362 * @todo Implement test_bbp_topic_type_select(). 363 */ 364 public function test_bbp_topic_type_select() { 365 // Remove the following lines when you implement this test. 366 $this->markTestIncomplete( 367 'This test has not been implemented yet.' 368 ); 369 } 370 371 /** 372 * @covers ::bbp_single_topic_description 373 * @covers ::bbp_get_single_topic_description 374 * @todo Implement test_bbp_get_single_topic_description(). 375 */ 376 public function test_bbp_get_single_topic_description() { 377 // Remove the following lines when you implement this test. 378 $this->markTestIncomplete( 379 'This test has not been implemented yet.' 380 ); 381 } 382 383 /** 384 * @covers ::bbp_topic_row_actions 385 * @todo Implement test_bbp_topic_row_actions(). 386 */ 387 public function test_bbp_topic_row_actions() { 388 // Remove the following lines when you implement this test. 389 $this->markTestIncomplete( 390 'This test has not been implemented yet.' 391 ); 392 } 393 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Mon Dec 30 01:00:53 2024 | Cross-referenced by PHPXref 0.7.1 |