- Timestamp:
- 09/09/2021 04:10:21 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/testcases/messages/class.bp-messages-thread.php
r12984 r13102 10 10 * @group cache 11 11 */ 12 public function test_construct_cache() {12 public function construct_cache() { 13 13 $u1 = self::factory()->user->create(); 14 14 $u2 = self::factory()->user->create(); … … 31 31 } 32 32 33 public function test_get_messages_with_invalid_thread_id() { 34 $this->assertTrue( empty( BP_Messages_Thread::get_messages( 0 ) ) ); 35 } 36 37 public function test_get_messages_using_arguments() { 38 $u1 = self::factory()->user->create(); 39 $u2 = self::factory()->user->create(); 40 $m1 = self::factory()->message->create_and_get( array( 41 'sender_id' => $u1, 42 'recipients' => array( $u2 ), 43 'subject' => 'Foo', 44 ) ); 45 46 self::factory()->message->create_many( 47 98, 48 array( 49 'thread_id' => $m1->thread_id, 50 'sender_id' => $u2, 51 'recipients' => array( $u1 ), 52 'subject' => 'Bar', 53 ) 54 ); 55 56 // Last message 57 self::factory()->message->create( 58 array( 59 'thread_id' => $m1->thread_id, 60 'sender_id' => $u1, 61 'recipients' => array( $u2 ), 62 'subject' => 'Last Message', 63 ) 64 ); 65 66 // Default results. 67 $messages = BP_Messages_Thread::get_messages( $m1->thread_id ); 68 $this->assertTrue( 100 === count( $messages ) ); 69 70 // Get first 10 messages. 71 $messages = BP_Messages_Thread::get_messages( $m1->thread_id, array( 'page' => 1, 'per_page' => 10 ) ); 72 $this->assertTrue( 10 === count( $messages ) ); 73 74 // Get first 10 messages differently. 75 $thread = new BP_Messages_Thread( $m1->thread_id, 'ASC', array( 'page' => 1, 'per_page' => 10 ) ); 76 $this->assertTrue( 10 === count( $thread->messages ) ); 77 78 // Get all messages. 79 $messages = BP_Messages_Thread::get_messages( $m1->thread_id, array( 'page' => null, 'per_page' => null ) ); 80 $this->assertTrue( 100 === count( $messages ) ); 81 82 // Get all mesages differently. 83 $thread = new BP_Messages_Thread( $m1->thread_id, 'ASC', array( 'page' => null, 'per_page' => null ) ); 84 $this->assertTrue( 100 === count( $thread->messages ) ); 85 86 // Get last message. 87 $messages = BP_Messages_Thread::get_messages( $m1->thread_id, array( 'page' => 100, 'per_page' => 1 ) ); 88 $this->assertTrue( 1 === count( $messages ) ); 89 $this->assertEquals( $u1, $messages[0]->sender_id ); 90 $this->assertEquals( 'Last Message', $messages[0]->subject ); 91 } 92 33 93 /** 34 94 * @group order … … 40 100 // create thread 41 101 $message_1 = self::factory()->message->create_and_get( array( 42 'sender_id' => $u1, 43 'recipients' => array( $u2 ), 44 'subject' => 'Foo', 45 ) ); 46 $m1 = $message_1->id; 102 'sender_id' => $u1, 103 'recipients' => array( $u2 ), 104 'subject' => 'Foo', 105 ) ); 47 106 48 107 // create reply 49 108 $message_2 = self::factory()->message->create_and_get( array( 50 'thread_id' => $message_1->thread_id, 51 'sender_id' => $u1, 52 'recipients' => array( $u2 ), 53 'content' => 'Bar' 54 ) ); 55 $m2 = $message_2->id; 56 57 // now get thread by DESC 109 'thread_id' => $message_1->thread_id, 110 'sender_id' => $u1, 111 'recipients' => array( $u2 ), 112 'content' => 'Bar' 113 ) ); 114 115 // Default sort from constructor. 116 $thread = new BP_Messages_Thread( $message_1->thread_id ); 117 $this->assertEquals( 118 array( $message_1->id, $message_2->id ), 119 wp_list_pluck( $thread->messages, 'id' ) 120 ); 121 122 // Default via the helper method. 123 $messages = BP_Messages_Thread::get_messages( $message_1->thread_id ); 124 $this->assertEquals( 125 array( $message_1->id, $message_2->id ), 126 wp_list_pluck( $messages, 'id' ) 127 ); 128 129 // Now get thread by DESC via the constructor. 58 130 $thread = new BP_Messages_Thread( $message_1->thread_id, 'DESC' ); 59 60 // assert!61 131 $this->assertEquals( 62 array( $m 2, $m1),132 array( $message_2->id, $message_1->id ), 63 133 wp_list_pluck( $thread->messages, 'id' ) 64 134 ); 135 136 // Testing sort with lowercase. 137 $thread = new BP_Messages_Thread( $message_1->thread_id, 'desc' ); 138 $this->assertEquals( 139 array( $message_2->id, $message_1->id ), 140 wp_list_pluck( $thread->messages, 'id' ) 141 ); 142 143 // Now sorting via the helper method. 144 $messages = BP_Messages_Thread::get_messages( $message_1->thread_id, array( 'order' => 'desc' ) ); 145 $this->assertEquals( 146 array( $message_2->id, $message_1->id ), 147 wp_list_pluck( $messages, 'id' ) 148 ); 65 149 } 66 150 … … 72 156 $u2 = self::factory()->user->create(); 73 157 74 $message_1 =self::factory()->message->create_and_get( array(158 self::factory()->message->create_and_get( array( 75 159 'sender_id' => $u1, 76 160 'recipients' => array( $u2 ), … … 102 186 $u2 = self::factory()->user->create(); 103 187 104 $message_1 =self::factory()->message->create_and_get( array(188 self::factory()->message->create_and_get( array( 105 189 'sender_id' => $u1, 106 190 'recipients' => array( $u2 ), … … 134 218 $u2 = self::factory()->user->create(); 135 219 136 $message_1 =self::factory()->message->create_and_get( array(220 self::factory()->message->create_and_get( array( 137 221 'sender_id' => $u1, 138 222 'recipients' => array( $u2 ), … … 156 240 /** 157 241 * @group get_recipients 242 */ 243 public function test_get_recipients_paginated() { 244 $u1 = self::factory()->user->create(); 245 $user_ids = self::factory()->user->create_many( 9 ); 246 $m = self::factory()->message->create_and_get( array( 247 'sender_id' => $u1, 248 'recipients' => $user_ids, 249 'subject' => 'Foo', 250 ) ); 251 252 $thread_1 = new BP_Messages_Thread( $m->thread_id ); 253 $this->assertTrue( 10 === count( $thread_1->get_recipients() ) ); 254 255 $thread_2 = new BP_Messages_Thread( $m->thread_id, 'ASC', array( 'recipients_page' => 1, 'recipients_per_page' => 5 ) ); 256 $this->assertTrue( 5 === count( $thread_2->recipients ) ); 257 258 $thread_3 = new BP_Messages_Thread( $m->thread_id ); 259 $this->assertTrue( 8 === count( $thread_3->get_recipients( $m->thread_id, array( 'recipients_page' => 1, 'recipients_per_page' => 8 ) ) ) ); 260 } 261 262 /** 263 * @group get_recipients 158 264 * @group cache 159 265 */ … … 197 303 198 304 $thread = new BP_Messages_Thread( $message->thread_id ); 199 $ recipients = $thread->get_recipients();305 $thread->get_recipients(); 200 306 201 307 // Verify that the cache is populated. 202 308 $num_queries = $wpdb->num_queries; 203 $ recipients_cached = $thread->get_recipients();309 $thread->get_recipients(); 204 310 $this->assertEquals( $num_queries, $wpdb->num_queries ); 205 311 … … 214 320 // Cache should be empty. 215 321 $num_queries = $wpdb->num_queries; 216 $ recipients_uncached = $thread->get_recipients();322 $thread->get_recipients(); 217 323 $this->assertEquals( $num_queries + 1, $wpdb->num_queries ); 218 324 } … … 223 329 */ 224 330 public function test_get_recipients_cache_should_be_busted_when_single_thread_is_deleted() { 331 global $wpdb; 332 333 $u1 = self::factory()->user->create(); 334 $u2 = self::factory()->user->create(); 335 336 $message = self::factory()->message->create_and_get( array( 337 'sender_id' => $u1, 338 'recipients' => array( $u2 ), 339 'subject' => 'Foo', 340 ) ); 341 342 $t1 = $message->thread_id; 343 344 $thread = new BP_Messages_Thread( $t1 ); 345 $thread->get_recipients(); 346 347 // Verify that the cache is populated. 348 $num_queries = $wpdb->num_queries; 349 $thread->get_recipients(); 350 $this->assertEquals( $num_queries, $wpdb->num_queries ); 351 352 messages_delete_thread( $t1 ); 353 354 // Cache should be empty. 355 $this->assertFalse( wp_cache_get( 'thread_recipients_' . $t1, 'bp_messages' ) ); 356 } 357 358 /** 359 * @group get_recipients 360 * @group cache 361 */ 362 public function test_get_recipients_cache_should_be_busted_when_array_of_threads_is_deleted() { 363 global $wpdb; 364 365 $u1 = self::factory()->user->create(); 366 $u2 = self::factory()->user->create(); 367 368 $message = self::factory()->message->create_and_get( array( 369 'sender_id' => $u1, 370 'recipients' => array( $u2 ), 371 'subject' => 'Foo', 372 ) ); 373 374 $t1 = $message->thread_id; 375 376 $thread = new BP_Messages_Thread( $t1 ); 377 $thread->get_recipients(); 378 379 // Verify that the cache is populated. 380 $num_queries = $wpdb->num_queries; 381 $thread->get_recipients(); 382 $this->assertEquals( $num_queries, $wpdb->num_queries ); 383 384 messages_delete_thread( array( $t1 ) ); 385 386 // Cache should be empty. 387 $this->assertFalse( wp_cache_get( 'thread_recipients_' . $t1, 'bp_messages' ) ); 388 } 389 390 /** 391 * @group get_recipients 392 * @group cache 393 */ 394 public function test_get_recipients_cache_should_be_busted_when_thread_is_read() { 225 395 global $wpdb; 226 396 … … 244 414 $this->assertEquals( $num_queries, $wpdb->num_queries ); 245 415 246 messages_delete_thread( $t1 );247 248 // Cache should be empty.249 $this->assertFalse( wp_cache_get( 'thread_recipients_' . $t1, 'bp_messages' ) );250 }251 252 /**253 * @group get_recipients254 * @group cache255 */256 public function test_get_recipients_cache_should_be_busted_when_array_of_threads_is_deleted() {257 global $wpdb;258 259 $u1 = self::factory()->user->create();260 $u2 = self::factory()->user->create();261 262 $message = self::factory()->message->create_and_get( array(263 'sender_id' => $u1,264 'recipients' => array( $u2 ),265 'subject' => 'Foo',266 ) );267 268 $t1 = $message->thread_id;269 270 $thread = new BP_Messages_Thread( $t1 );271 $recipients = $thread->get_recipients();272 273 // Verify that the cache is populated.274 $num_queries = $wpdb->num_queries;275 $recipients_cached = $thread->get_recipients();276 $this->assertEquals( $num_queries, $wpdb->num_queries );277 278 messages_delete_thread( array( $t1 ) );279 280 // Cache should be empty.281 $this->assertFalse( wp_cache_get( 'thread_recipients_' . $t1, 'bp_messages' ) );282 }283 284 /**285 * @group get_recipients286 * @group cache287 */288 public function test_get_recipients_cache_should_be_busted_when_thread_is_read() {289 global $wpdb;290 291 $u1 = self::factory()->user->create();292 $u2 = self::factory()->user->create();293 294 $message = self::factory()->message->create_and_get( array(295 'sender_id' => $u1,296 'recipients' => array( $u2 ),297 'subject' => 'Foo',298 ) );299 300 $t1 = $message->thread_id;301 302 $thread = new BP_Messages_Thread( $t1 );303 $recipients = $thread->get_recipients();304 305 // Verify that the cache is populated.306 $num_queries = $wpdb->num_queries;307 $recipients_cached = $thread->get_recipients();308 $this->assertEquals( $num_queries, $wpdb->num_queries );309 310 416 // Mark thread as read 311 417 $current_user = get_current_user_id(); … … 397 503 398 504 $thread = new BP_Messages_Thread( $t1 ); 399 $ recipients = $thread->get_recipients();505 $thread->get_recipients(); 400 506 401 507 // Verify that the cache is populated. 402 508 $num_queries = $wpdb->num_queries; 403 $ recipients_cached = $thread->get_recipients();509 $thread->get_recipients(); 404 510 $this->assertEquals( $num_queries, $wpdb->num_queries ); 405 511
Note: See TracChangeset
for help on using the changeset viewer.