| 361 | |
| 362 | /** |
| 363 | * @ticket BP8296 |
| 364 | */ |
| 365 | public function test_activity_comments_cache_should_be_cleared_when_parent_activity_marked_as_spam() { |
| 366 | $u1 = self::factory()->user->create(); |
| 367 | $u2 = self::factory()->user->create(); |
| 368 | |
| 369 | $activity = self::factory()->activity->create( |
| 370 | array( |
| 371 | 'component' => buddypress()->activity->id, |
| 372 | 'type' => 'activity_update', |
| 373 | 'user_id' => $u1, |
| 374 | 'content' => 'bar', |
| 375 | ) |
| 376 | ); |
| 377 | |
| 378 | $comment = bp_activity_new_comment( |
| 379 | array( |
| 380 | 'activity_id' => $activity, |
| 381 | 'skip_notification' => true, |
| 382 | 'user_id' => $u2, |
| 383 | 'content' => 'foo', |
| 384 | ) |
| 385 | ); |
| 386 | |
| 387 | $activities = bp_activity_get( |
| 388 | array( |
| 389 | 'display_comments' => true, |
| 390 | ) |
| 391 | ); |
| 392 | |
| 393 | $cached_ids = wp_list_pluck( wp_cache_get( $activity, 'bp_activity_comments' ), 'content', 'id' ); |
| 394 | $this->assertTrue( 'foo' === $cached_ids[ $comment ] ); |
| 395 | |
| 396 | $activity_obj = new BP_Activity_Activity( $activity ); |
| 397 | |
| 398 | // An activity is always saved after being marked as spam. |
| 399 | bp_activity_mark_as_spam( $activity_obj ); |
| 400 | $activity_obj->save(); |
| 401 | |
| 402 | $this->assertFalse( wp_cache_get( $activity, 'bp_activity_comments' ), 'The activity comments cache should be cleared when an activity has been marked as spam' ); |
| 403 | } |
| 404 | |
| 405 | /** |
| 406 | * @ticket BP8296 |
| 407 | */ |
| 408 | public function test_activity_comments_cache_should_be_cleared_when_activity_comment_marked_as_spam() { |
| 409 | $u1 = self::factory()->user->create(); |
| 410 | $u2 = self::factory()->user->create(); |
| 411 | |
| 412 | $activity = self::factory()->activity->create( |
| 413 | array( |
| 414 | 'component' => buddypress()->activity->id, |
| 415 | 'type' => 'activity_update', |
| 416 | 'user_id' => $u1, |
| 417 | 'content' => 'foo', |
| 418 | ) |
| 419 | ); |
| 420 | |
| 421 | $comment = bp_activity_new_comment( |
| 422 | array( |
| 423 | 'activity_id' => $activity, |
| 424 | 'skip_notification' => true, |
| 425 | 'user_id' => $u2, |
| 426 | 'content' => 'bar', |
| 427 | ) |
| 428 | ); |
| 429 | |
| 430 | $activities = bp_activity_get( |
| 431 | array( |
| 432 | 'display_comments' => true, |
| 433 | ) |
| 434 | ); |
| 435 | |
| 436 | $cached_ids = wp_list_pluck( wp_cache_get( $activity, 'bp_activity_comments' ), 'content', 'id' ); |
| 437 | $this->assertTrue( 'bar' === $cached_ids[ $comment ] ); |
| 438 | |
| 439 | $comment_obj = new BP_Activity_Activity( $comment ); |
| 440 | |
| 441 | // An activity is always saved after being marked as spam. |
| 442 | bp_activity_mark_as_spam( $comment_obj ); |
| 443 | $comment_obj->save(); |
| 444 | |
| 445 | $this->assertFalse( wp_cache_get( $activity, 'bp_activity_comments' ), 'The parent activity comments cache should be cleared when an activity comment has been marked as spam' ); |
| 446 | } |
| 447 | |
| 448 | /** |
| 449 | * @ticket BP8296 |
| 450 | */ |
| 451 | public function test_activity_comments_cache_should_be_cleared_when_parent_activity_marked_as_ham() { |
| 452 | $u1 = self::factory()->user->create(); |
| 453 | $u2 = self::factory()->user->create(); |
| 454 | |
| 455 | $activity = self::factory()->activity->create( |
| 456 | array( |
| 457 | 'component' => buddypress()->activity->id, |
| 458 | 'type' => 'activity_update', |
| 459 | 'user_id' => $u1, |
| 460 | 'content' => 'bar', |
| 461 | ) |
| 462 | ); |
| 463 | |
| 464 | $comment = bp_activity_new_comment( |
| 465 | array( |
| 466 | 'activity_id' => $activity, |
| 467 | 'skip_notification' => true, |
| 468 | 'user_id' => $u2, |
| 469 | 'content' => 'foo', |
| 470 | ) |
| 471 | ); |
| 472 | |
| 473 | $activities = bp_activity_get( |
| 474 | array( |
| 475 | 'display_comments' => true, |
| 476 | ) |
| 477 | ); |
| 478 | |
| 479 | $activity_obj = new BP_Activity_Activity( $activity ); |
| 480 | $activity_obj->is_spam = 1; |
| 481 | $activity_obj->save(); |
| 482 | |
| 483 | // An activity is always saved after being marked as spam. |
| 484 | bp_activity_mark_as_ham( $activity_obj ); |
| 485 | $activity_obj->save(); |
| 486 | |
| 487 | $this->assertFalse( wp_cache_get( $activity, 'bp_activity_comments' ), 'The activity comments cache should be cleared when an activity has been marked as ham' ); |
| 488 | } |
| 489 | |
| 490 | /** |
| 491 | * @ticket BP8296 |
| 492 | */ |
| 493 | public function test_activity_comments_cache_should_be_cleared_when_activity_comment_marked_as_ham() { |
| 494 | $u1 = self::factory()->user->create(); |
| 495 | $u2 = self::factory()->user->create(); |
| 496 | |
| 497 | $activity = self::factory()->activity->create( |
| 498 | array( |
| 499 | 'component' => buddypress()->activity->id, |
| 500 | 'type' => 'activity_update', |
| 501 | 'user_id' => $u1, |
| 502 | 'content' => 'foo', |
| 503 | ) |
| 504 | ); |
| 505 | |
| 506 | $comment = bp_activity_new_comment( |
| 507 | array( |
| 508 | 'activity_id' => $activity, |
| 509 | 'skip_notification' => true, |
| 510 | 'user_id' => $u2, |
| 511 | 'content' => 'bar', |
| 512 | ) |
| 513 | ); |
| 514 | |
| 515 | $activities = bp_activity_get( |
| 516 | array( |
| 517 | 'display_comments' => true, |
| 518 | ) |
| 519 | ); |
| 520 | |
| 521 | $comment_obj = new BP_Activity_Activity( $comment ); |
| 522 | $comment_obj->is_spam = 1; |
| 523 | $comment_obj->save(); |
| 524 | |
| 525 | // An activity is always saved after being marked as spam. |
| 526 | bp_activity_mark_as_ham( $comment_obj ); |
| 527 | $comment_obj->save(); |
| 528 | |
| 529 | $this->assertFalse( wp_cache_get( $activity, 'bp_activity_comments' ), 'The parent activity comments cache should be cleared when an activity comment has been marked as ham' ); |
| 530 | } |
| 531 | |
| 532 | /** |
| 533 | * @ticket BP8296 |
| 534 | */ |
| 535 | public function test_activity_comments_cache_should_be_cleared_when_activity_comment_has_been_updated() { |
| 536 | $u1 = self::factory()->user->create(); |
| 537 | $u2 = self::factory()->user->create(); |
| 538 | |
| 539 | $activity = self::factory()->activity->create( |
| 540 | array( |
| 541 | 'component' => buddypress()->activity->id, |
| 542 | 'type' => 'activity_update', |
| 543 | 'user_id' => $u1, |
| 544 | 'content' => 'foo', |
| 545 | ) |
| 546 | ); |
| 547 | |
| 548 | $comment = bp_activity_new_comment( |
| 549 | array( |
| 550 | 'activity_id' => $activity, |
| 551 | 'skip_notification' => true, |
| 552 | 'user_id' => $u2, |
| 553 | 'content' => 'bar', |
| 554 | ) |
| 555 | ); |
| 556 | |
| 557 | $activities = bp_activity_get( |
| 558 | array( |
| 559 | 'display_comments' => true, |
| 560 | ) |
| 561 | ); |
| 562 | |
| 563 | $comment_obj = new BP_Activity_Activity( $comment ); |
| 564 | $comment_obj->content = 'foo'; |
| 565 | $comment_obj->save(); |
| 566 | |
| 567 | $this->assertFalse( wp_cache_get( $activity, 'bp_activity_comments' ), 'The parent activity comments cache should be cleared when an activity comment has been updated' ); |
| 568 | } |
| 569 | |
| 570 | /** |
| 571 | * @ticket BP8296 |
| 572 | */ |
| 573 | public function test_activity_comments_cache_should_be_cleared_when_activity_comment_has_been_deleted() { |
| 574 | $u1 = self::factory()->user->create(); |
| 575 | $u2 = self::factory()->user->create(); |
| 576 | |
| 577 | $activity = self::factory()->activity->create( |
| 578 | array( |
| 579 | 'component' => buddypress()->activity->id, |
| 580 | 'type' => 'activity_update', |
| 581 | 'user_id' => $u1, |
| 582 | 'content' => 'foo', |
| 583 | ) |
| 584 | ); |
| 585 | |
| 586 | $comment = bp_activity_new_comment( |
| 587 | array( |
| 588 | 'activity_id' => $activity, |
| 589 | 'skip_notification' => true, |
| 590 | 'user_id' => $u2, |
| 591 | 'content' => 'bar', |
| 592 | ) |
| 593 | ); |
| 594 | |
| 595 | $activities = bp_activity_get( |
| 596 | array( |
| 597 | 'display_comments' => true, |
| 598 | ) |
| 599 | ); |
| 600 | |
| 601 | bp_activity_delete_comment( $activity, $comment ); |
| 602 | |
| 603 | $this->assertFalse( wp_cache_get( $activity, 'bp_activity_comments' ), 'The parent activity comments cache should be cleared when an activity comment has been deleted' ); |
| 604 | } |
| 605 | |
| 606 | /** |
| 607 | * @ticket BP8296 |
| 608 | */ |
| 609 | public function test_activity_comments_cache_should_be_cleared_when_activity_comment_has_been_added() { |
| 610 | $u1 = self::factory()->user->create(); |
| 611 | $u2 = self::factory()->user->create(); |
| 612 | |
| 613 | $activity = self::factory()->activity->create( |
| 614 | array( |
| 615 | 'component' => buddypress()->activity->id, |
| 616 | 'type' => 'activity_update', |
| 617 | 'user_id' => $u1, |
| 618 | 'content' => 'foo', |
| 619 | ) |
| 620 | ); |
| 621 | |
| 622 | $c1 = bp_activity_new_comment( |
| 623 | array( |
| 624 | 'activity_id' => $activity, |
| 625 | 'skip_notification' => true, |
| 626 | 'user_id' => $u2, |
| 627 | 'content' => 'bar', |
| 628 | ) |
| 629 | ); |
| 630 | |
| 631 | $activities = bp_activity_get( |
| 632 | array( |
| 633 | 'display_comments' => true, |
| 634 | ) |
| 635 | ); |
| 636 | |
| 637 | $c2 = bp_activity_new_comment( |
| 638 | array( |
| 639 | 'activity_id' => $activity, |
| 640 | 'skip_notification' => true, |
| 641 | 'user_id' => $u1, |
| 642 | 'content' => 'taz', |
| 643 | ) |
| 644 | ); |
| 645 | |
| 646 | $this->assertFalse( wp_cache_get( $activity, 'bp_activity_comments' ), 'The parent activity comments cache should be cleared when a new activity comment has been added' ); |
| 647 | } |