| | 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 | } |