Changeset 14026 for trunk/tests/phpunit/testcases/core/invitations.php
- Timestamp:
- 09/27/2024 09:11:27 PM (7 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/testcases/core/invitations.php
r13990 r14026 1 1 <?php 2 2 3 include_once BP_TESTS_DIR . 'assets/invitations-extensions.php';3 require_once BP_TESTS_DIR . 'assets/invitations-extensions.php'; 4 4 5 5 /** … … 7 7 * @group invitations 8 8 */ 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 'user_id'=> $u3,27 'inviter_id'=> $u1,28 'item_id'=> 1,29 'send_invite'=> 'sent',30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 9 class BP_Tests_Invitations extends BP_UnitTestCase { 10 11 /** 12 * @ticket BP8552 13 * @group cache 14 */ 15 public function test_invitation_query_with_ids_cache_results() { 16 global $wpdb; 17 18 $u1 = self::factory()->user->create(); 19 $u2 = self::factory()->user->create(); 20 $u3 = self::factory()->user->create(); 21 22 $invites_class = new BPTest_Invitation_Manager_Extension(); 23 24 // Create a couple of invitations. 25 $invite_args = array( 26 'user_id' => $u3, 27 'inviter_id' => $u1, 28 'item_id' => 1, 29 'send_invite' => 'sent', 30 ); 31 32 $invites_class->add_invitation( $invite_args ); 33 34 $invite_args['inviter_id'] = $u2; 35 36 $invites_class->add_invitation( $invite_args ); 37 38 $wpdb->num_queries = 0; 39 40 $first_query = BP_Invitation::get( 41 array( 42 'cache_results' => true, 43 'fields' => 'ids', 44 ) 45 ); 46 47 $queries_before = get_num_queries(); 48 49 $second_query = BP_Invitation::get( 50 array( 51 'cache_results' => false, 52 'fields' => 'ids', 53 ) 54 ); 55 56 $queries_after = get_num_queries(); 57 58 $this->assertNotSame( $queries_before, $queries_after, 'Assert that queries are run' ); 59 $this->assertSame( 2, $queries_after, 'Assert that the uncached query was run' ); 60 $this->assertSameSets( $first_query, $second_query, 'Results of the query are expected to match.' ); 61 } 62 63 /** 64 * @ticket BP8552 65 * @group cache 66 */ 67 public function test_invitation_query_with_all_cache_results() { 68 global $wpdb; 69 70 $u1 = self::factory()->user->create(); 71 $u2 = self::factory()->user->create(); 72 $u3 = self::factory()->user->create(); 73 74 $invites_class = new BPTest_Invitation_Manager_Extension(); 75 76 // Create a couple of invitations. 77 $invite_args = array( 78 'user_id' => $u3, 79 'inviter_id' => $u1, 80 'item_id' => 1, 81 'send_invite' => 'sent', 82 ); 83 84 $invites_class->add_invitation( $invite_args ); 85 86 $invite_args['inviter_id'] = $u2; 87 88 $invites_class->add_invitation( $invite_args ); 89 90 $wpdb->num_queries = 0; 91 92 $first_query = BP_Invitation::get( 93 array( 'cache_results' => true ) 94 ); 95 96 $queries_before = get_num_queries(); 97 98 $second_query = BP_Invitation::get( 99 array( 'cache_results' => false ) 100 ); 101 102 $queries_after = get_num_queries(); 103 104 $this->assertNotSame( $queries_before, $queries_after, 'Assert that queries are run' ); 105 $this->assertSame( 3, $queries_after, 'Assert that the uncached query was run' ); 106 $this->assertEquals( $first_query, $second_query, 'Results of the query are expected to match.' ); 107 } 108 108 109 109 public function test_bp_invitations_add_invitation_vanilla() { … … 118 118 119 119 // Create a couple of invitations. 120 $invite_args = array(121 'user_id' 122 'inviter_id' 123 'item_id' 124 'send_invite' 125 ); 126 $i1 = $invites_class->add_invitation( $invite_args );120 $invite_args = array( 121 'user_id' => $u3, 122 'inviter_id' => $u1, 123 'item_id' => 1, 124 'send_invite' => 'sent', 125 ); 126 $i1 = $invites_class->add_invitation( $invite_args ); 127 127 $invite_args['inviter_id'] = $u2; 128 $i2 = $invites_class->add_invitation( $invite_args );129 130 $get_invites = array( 131 'user_id' 132 'fields' 133 ); 134 $invites = $invites_class->get_invitations( $get_invites );128 $i2 = $invites_class->add_invitation( $invite_args ); 129 130 $get_invites = array( 131 'user_id' => $u3, 132 'fields' => 'ids', 133 ); 134 $invites = $invites_class->get_invitations( $get_invites ); 135 135 $this->assertEqualSets( array( $i1, $i2 ), $invites ); 136 136 … … 149 149 // Create an invitation. 150 150 $invite_args = array( 151 'user_id' 152 'inviter_id' 153 'item_id' 154 'send_invite' 155 ); 156 $i1 = $invites_class->add_invitation( $invite_args );151 'user_id' => $u2, 152 'inviter_id' => $u1, 153 'item_id' => 1, 154 'send_invite' => 'sent', 155 ); 156 $i1 = $invites_class->add_invitation( $invite_args ); 157 157 // Attempt to create a duplicate. Should return existing invite. 158 158 $i2 = $invites_class->add_invitation( $invite_args ); … … 168 168 $u2 = self::factory()->user->create(); 169 169 $u3 = self::factory()->user->create(); 170 self::set_current_user( $u1 ); 171 172 $invites_class = new BPTest_Invitation_Manager_Extension(); 173 174 // Create an invitation. 175 $invite_args = array( 176 'user_id' => $u3, 177 'inviter_id' => $u1, 178 'item_id' => 1, 179 'send_invite' => 'sent', 180 ); 181 $i1 = $invites_class->add_invitation( $invite_args ); 170 171 self::set_current_user( $u1 ); 172 173 $invites_class = new BPTest_Invitation_Manager_Extension(); 174 175 // Create an invitation. 176 $i1 = $invites_class->add_invitation( 177 array( 178 'user_id' => $u3, 179 'inviter_id' => $u1, 180 'item_id' => 1, 181 'send_invite' => 'sent', 182 ) 183 ); 184 185 $this->assertIsInt( $i1, 'Invitation ID is not an integer.' ); 186 187 // Create a request. 188 $invites_class->add_request( 189 array( 190 'user_id' => $u3, 191 'item_id' => 1, 192 ) 193 ); 194 195 $get_invites = array( 196 'user_id' => $u3, 197 'accepted' => 'accepted', 198 ); 199 200 $invites = $invites_class->get_invitations( $get_invites ); 201 $invite_ids = wp_list_pluck( $invites, 'id' ); 202 203 $this->assertNotEmpty( $invite_ids ); 204 $this->assertEqualSets( array( $i1 ), $invite_ids ); 205 206 self::set_current_user( $old_current_user ); 207 } 208 209 public function test_bp_invitations_add_invitation_unsent_invite_plus_request_should_not_accept() { 210 $old_current_user = get_current_user_id(); 211 212 $u1 = self::factory()->user->create(); 213 $u2 = self::factory()->user->create(); 214 $u3 = self::factory()->user->create(); 215 self::set_current_user( $u1 ); 216 217 $invites_class = new BPTest_Invitation_Manager_Extension(); 218 219 // Create an invitation. 220 $invite_args = array( 221 'user_id' => $u3, 222 'inviter_id' => $u1, 223 'item_id' => 1, 224 'send_invite' => 0, 225 ); 226 $i1 = $invites_class->add_invitation( $invite_args ); 182 227 183 228 // Create a request. 184 229 $request_args = array( 185 'user_id' 186 'item_id' 187 ); 188 $r1 = $invites_class->add_request( $request_args );189 190 $get_invites = array( 191 'user_id' 192 'accepted' => 'accepted'193 ); 194 $invites = $invites_class->get_invitations( $get_invites );195 $this->assertEqualSets( array( $i1), wp_list_pluck( $invites, 'id' ) );196 197 self::set_current_user( $old_current_user ); 198 } 199 200 public function test_bp_invitations_add_invitation_unsent_invite_plus_request_ should_not_accept() {201 $old_current_user = get_current_user_id(); 202 203 $u1 = self::factory()->user->create(); 204 $u2 = self::factory()->user->create(); 205 $u3 = self::factory()->user->create(); 206 self::set_current_user( $u1 ); 207 208 $invites_class = new BPTest_Invitation_Manager_Extension(); 209 210 // Create an invitation. 211 $invite_args = array( 212 'user_id' 213 'inviter_id' 214 'item_id' 215 'send_invite' 216 ); 217 $i1 = $invites_class->add_invitation( $invite_args );230 'user_id' => $u3, 231 'item_id' => 1, 232 ); 233 $r1 = $invites_class->add_request( $request_args ); 234 235 $get_invites = array( 236 'user_id' => $u3, 237 'accepted' => 'accepted', 238 ); 239 $invites = $invites_class->get_invitations( $get_invites ); 240 $this->assertEqualSets( array(), wp_list_pluck( $invites, 'id' ) ); 241 242 self::set_current_user( $old_current_user ); 243 } 244 245 public function test_bp_invitations_add_invitation_unsent_invite_plus_request_then_send_invite_should_accept() { 246 $old_current_user = get_current_user_id(); 247 248 $u1 = self::factory()->user->create(); 249 $u2 = self::factory()->user->create(); 250 $u3 = self::factory()->user->create(); 251 self::set_current_user( $u1 ); 252 253 $invites_class = new BPTest_Invitation_Manager_Extension(); 254 255 // Create an invitation. 256 $invite_args = array( 257 'user_id' => $u3, 258 'inviter_id' => $u1, 259 'item_id' => 1, 260 'send_invite' => 0, 261 ); 262 $i1 = $invites_class->add_invitation( $invite_args ); 218 263 219 264 // Create a request. 220 265 $request_args = array( 221 'user_id' => $u3, 222 'item_id' => 1, 223 ); 224 $r1 = $invites_class->add_request( $request_args ); 225 226 $get_invites = array( 227 'user_id' => $u3, 228 'accepted' => 'accepted' 229 ); 230 $invites = $invites_class->get_invitations( $get_invites ); 231 $this->assertEqualSets( array(), wp_list_pluck( $invites, 'id' ) ); 232 233 self::set_current_user( $old_current_user ); 234 } 235 236 public function test_bp_invitations_add_invitation_unsent_invite_plus_request_then_send_invite_should_accept() { 237 $old_current_user = get_current_user_id(); 238 239 $u1 = self::factory()->user->create(); 240 $u2 = self::factory()->user->create(); 241 $u3 = self::factory()->user->create(); 242 self::set_current_user( $u1 ); 243 244 $invites_class = new BPTest_Invitation_Manager_Extension(); 245 246 // Create an invitation. 247 $invite_args = array( 248 'user_id' => $u3, 249 'inviter_id' => $u1, 250 'item_id' => 1, 251 'send_invite' => 0, 252 ); 253 $i1 = $invites_class->add_invitation( $invite_args ); 266 'user_id' => $u3, 267 'item_id' => 1, 268 ); 269 $r1 = $invites_class->add_request( $request_args ); 270 271 $invites_class->send_invitation_by_id( $i1 ); 272 273 // Check that both the request and invitation are marked 'accepted'. 274 $get_invites = array( 275 'user_id' => $u3, 276 'type' => 'all', 277 'accepted' => 'accepted', 278 'fields' => 'ids', 279 ); 280 $invites = $invites_class->get_invitations( $get_invites ); 281 $this->assertEqualSets( array( $i1, $r1 ), $invites ); 282 283 self::set_current_user( $old_current_user ); 284 } 285 286 public function test_bp_invitations_add_request_vanilla() { 287 $old_current_user = get_current_user_id(); 288 289 $u1 = self::factory()->user->create(); 290 self::set_current_user( $u1 ); 291 292 $invites_class = new BPTest_Invitation_Manager_Extension(); 293 294 // Create a couple of requests. 295 $request_args = array( 296 'user_id' => $u1, 297 'item_id' => 7, 298 ); 299 $r1 = $invites_class->add_request( $request_args ); 300 $request_args['item_id'] = 4; 301 $r2 = $invites_class->add_request( $request_args ); 302 303 $get_requests = array( 304 'user_id' => $u1, 305 'fields' => 'ids', 306 ); 307 $requests = $invites_class->get_requests( $get_requests ); 308 $this->assertEqualSets( array( $r1, $r2 ), $requests ); 309 310 self::set_current_user( $old_current_user ); 311 } 312 313 public function test_bp_invitations_add_request_avoid_duplicates() { 314 $old_current_user = get_current_user_id(); 315 316 $invites_class = new BPTest_Invitation_Manager_Extension(); 317 318 $u1 = self::factory()->user->create(); 319 self::set_current_user( $u1 ); 320 321 // Create a couple of requests. 322 $request_args = array( 323 'user_id' => $u1, 324 'item_id' => 7, 325 ); 326 $r1 = $invites_class->add_request( $request_args ); 327 // Attempt to create a duplicate. 328 $this->assertFalse( $invites_class->add_request( $request_args ) ); 329 330 self::set_current_user( $old_current_user ); 331 } 332 333 public function test_bp_invitations_add_request_request_plus_sent_invite_should_accept() { 334 $old_current_user = get_current_user_id(); 335 336 $u1 = self::factory()->user->create(); 337 $u2 = self::factory()->user->create(); 338 self::set_current_user( $u1 ); 339 340 $invites_class = new BPTest_Invitation_Manager_Extension(); 254 341 255 342 // Create a request. 256 343 $request_args = array( 257 'user_id' => $u3, 258 'item_id' => 1, 259 ); 260 $r1 = $invites_class->add_request( $request_args ); 261 262 $invites_class->send_invitation_by_id( $i1 ); 344 'user_id' => $u2, 345 'item_id' => 1, 346 ); 347 $r1 = $invites_class->add_request( $request_args ); 348 349 // Create an invitation. 350 $invite_args = array( 351 'user_id' => $u2, 352 'inviter_id' => $u1, 353 'item_id' => 1, 354 'send_invite' => 1, 355 ); 356 $i1 = $invites_class->add_invitation( $invite_args ); 263 357 264 358 // Check that both the request and invitation are marked 'accepted'. 265 359 $get_invites = array( 266 'user_id' => $u3, 267 'type' => 'all', 268 'accepted' => 'accepted', 269 'fields' => 'ids' 270 ); 271 $invites = $invites_class->get_invitations( $get_invites ); 272 $this->assertEqualSets( array( $i1, $r1 ), $invites ); 273 274 self::set_current_user( $old_current_user ); 275 } 276 277 public function test_bp_invitations_add_request_vanilla() { 278 $old_current_user = get_current_user_id(); 279 280 $u1 = self::factory()->user->create(); 281 self::set_current_user( $u1 ); 282 283 $invites_class = new BPTest_Invitation_Manager_Extension(); 284 285 // Create a couple of requests. 286 $request_args = array( 287 'user_id' => $u1, 288 'item_id' => 7, 289 ); 290 $r1 = $invites_class->add_request( $request_args ); 291 $request_args['item_id'] = 4; 292 $r2 = $invites_class->add_request( $request_args ); 293 294 $get_requests = array( 295 'user_id' => $u1, 296 'fields' => 'ids' 297 ); 298 $requests = $invites_class->get_requests( $get_requests ); 299 $this->assertEqualSets( array( $r1, $r2 ), $requests ); 300 301 self::set_current_user( $old_current_user ); 302 } 303 304 public function test_bp_invitations_add_request_avoid_duplicates() { 305 $old_current_user = get_current_user_id(); 306 307 $invites_class = new BPTest_Invitation_Manager_Extension(); 308 309 $u1 = self::factory()->user->create(); 310 self::set_current_user( $u1 ); 311 312 // Create a couple of requests. 313 $request_args = array( 314 'user_id' => $u1, 315 'item_id' => 7, 316 ); 317 $r1 = $invites_class->add_request( $request_args ); 318 // Attempt to create a duplicate. 319 $this->assertFalse( $invites_class->add_request( $request_args ) ); 320 321 self::set_current_user( $old_current_user ); 322 } 323 324 public function test_bp_invitations_add_request_request_plus_sent_invite_should_accept() { 325 $old_current_user = get_current_user_id(); 326 327 $u1 = self::factory()->user->create(); 328 $u2 = self::factory()->user->create(); 329 self::set_current_user( $u1 ); 330 331 $invites_class = new BPTest_Invitation_Manager_Extension(); 332 333 // Create a request. 334 $request_args = array( 335 'user_id' => $u2, 336 'item_id' => 1, 337 ); 338 $r1 = $invites_class->add_request( $request_args ); 339 340 // Create an invitation. 341 $invite_args = array( 342 'user_id' => $u2, 343 'inviter_id' => $u1, 344 'item_id' => 1, 345 'send_invite' => 1, 346 ); 347 $i1 = $invites_class->add_invitation( $invite_args ); 348 349 // Check that both the request and invitation are marked 'accepted'. 350 $get_invites = array( 351 'user_id' => $u2, 352 'type' => 'all', 353 'accepted' => 'accepted', 354 'fields' => 'ids' 355 ); 356 $invites = $invites_class->get_invitations( $get_invites ); 360 'user_id' => $u2, 361 'type' => 'all', 362 'accepted' => 'accepted', 363 'fields' => 'ids', 364 ); 365 $invites = $invites_class->get_invitations( $get_invites ); 357 366 $this->assertEqualSets( array( $r1, $i1 ), $invites ); 358 367 … … 371 380 // Create an invitation. 372 381 $invite_args = array( 373 'user_id' 374 'inviter_id' 375 'item_id' 376 ); 377 $i1 = $invites_class->add_invitation( $invite_args );382 'user_id' => $u2, 383 'inviter_id' => $u1, 384 'item_id' => 1, 385 ); 386 $i1 = $invites_class->add_invitation( $invite_args ); 378 387 379 388 $invite = new BP_Invitation( $i1 ); … … 404 413 'content' => 'Sometimes, the mystery is enough.', 405 414 ); 406 $i1 = $invites_class->add_invitation( $i1_args );415 $i1 = $invites_class->add_invitation( $i1_args ); 407 416 $invites_class->send_invitation_by_id( $i1 ); 408 417 … … 413 422 'item_id' => 1, 414 423 ); 415 $i2 = $invites_class->add_invitation( $i2_args );424 $i2 = $invites_class->add_invitation( $i2_args ); 416 425 $invites_class->send_invitation_by_id( $i2 ); 417 426 … … 420 429 'fields' => 'ids', 421 430 ); 422 $invites = $invites_class->get_invitations( $get_invites );431 $invites = $invites_class->get_invitations( $get_invites ); 423 432 $this->assertEqualSets( array( $i1 ), $invites ); 424 433 … … 427 436 'fields' => 'ids', 428 437 ); 429 $invites = $invites_class->get_invitations( $get_invites );438 $invites = $invites_class->get_invitations( $get_invites ); 430 439 $this->assertEqualSets( array( $i2 ), $invites ); 431 440 … … 443 452 $time = gmdate( 'Y-m-d H:i:s', time() - 100 ); 444 453 $args = array( 445 'user_id' 446 'item_id' 447 'date_modified' 448 ); 449 $r1 = $invites_class->add_request( $args );454 'user_id' => $u1, 455 'item_id' => 7, 456 'date_modified' => $time, 457 ); 458 $r1 = $invites_class->add_request( $args ); 450 459 451 460 $req = new BP_Invitation( $r1 ); … … 463 472 464 473 $invites_class = new BPTest_Invitation_Manager_Extension(); 465 $time = gmdate( 'Y-m-d H:i:s', time() - 100 );466 467 // Create an invitation. 468 $invite_args = array( 469 'user_id' 470 'inviter_id' 471 'item_id' 472 'send_invite' 473 'date_modified' 474 ); 475 $i1 = $invites_class->add_invitation( $invite_args );474 $time = gmdate( 'Y-m-d H:i:s', time() - 100 ); 475 476 // Create an invitation. 477 $invite_args = array( 478 'user_id' => $u2, 479 'inviter_id' => $u1, 480 'item_id' => 1, 481 'send_invite' => 1, 482 'date_modified' => $time, 483 ); 484 $i1 = $invites_class->add_invitation( $invite_args ); 476 485 477 486 $inv = new BP_Invitation( $i1 ); … … 497 506 'item_id' => 6, 498 507 ); 499 $i1 = $invites_class->add_invitation( $i1_args );508 $i1 = $invites_class->add_invitation( $i1_args ); 500 509 $invites_class->send_invitation_by_id( $i1 ); 501 510 … … 505 514 'item_id' => 4, 506 515 ); 507 $i2 = $invites_class->add_invitation( $i2_args );516 $i2 = $invites_class->add_invitation( $i2_args ); 508 517 $invites_class->send_invitation_by_id( $i2 ); 509 518 … … 513 522 'item_id' => 8, 514 523 ); 515 $i3 = $invites_class->add_invitation( $i3_args );524 $i3 = $invites_class->add_invitation( $i3_args ); 516 525 $invites_class->send_invitation_by_id( $i3 ); 517 526 … … 521 530 'fields' => 'ids', 522 531 ); 523 $invites = $invites_class->get_invitations( $get_invites );532 $invites = $invites_class->get_invitations( $get_invites ); 524 533 $this->assertEquals( array( $i2, $i1, $i3 ), $invites ); 525 534 526 535 $get_invites['sort_order'] = 'DESC'; 527 $invites = $invites_class->get_invitations( $get_invites );536 $invites = $invites_class->get_invitations( $get_invites ); 528 537 $this->assertEquals( array( $i3, $i1, $i2 ), $invites ); 529 538
Note: See TracChangeset
for help on using the changeset viewer.