| | 768 | * @group favorites |
| | 769 | * @group bp_activity_add_user_favorite |
| | 770 | * @group BP3794 |
| | 771 | */ |
| | 772 | public function test_add_user_favorite_empty_activity_id() { |
| | 773 | $u = $this->create_user(); |
| | 774 | |
| | 775 | // an empty activity id should not be favorited |
| | 776 | $this->assertFalse( bp_activity_add_user_favorite( 0, $u ) ); |
| | 777 | } |
| | 778 | |
| | 779 | /** |
| | 780 | * @group favorites |
| | 781 | * @group bp_activity_add_user_favorite |
| | 782 | * @group BP3794 |
| | 783 | */ |
| | 784 | public function test_add_user_favorite_deleted_activity_id() { |
| | 785 | $u = $this->create_user(); |
| | 786 | $a = $this->factory->activity->create(); |
| | 787 | |
| | 788 | // Delete the activity |
| | 789 | bp_activity_delete_by_activity_id( $a ); |
| | 790 | |
| | 791 | // an deleted activity should not be favorited |
| | 792 | $this->assertFalse( bp_activity_add_user_favorite( $a, $u ) ); |
| | 793 | $this->assertEmpty( bp_activity_get_meta( $a, 'favorite_count' ) ); |
| | 794 | } |
| | 795 | |
| | 796 | /** |
| | 797 | * @group favorites |
| | 798 | * @group bp_activity_add_user_favorite |
| | 799 | * @group BP3794 |
| | 800 | */ |
| | 801 | public function test_add_user_favorite_good_activity_id() { |
| | 802 | $u = $this->create_user(); |
| | 803 | $a = $this->factory->activity->create(); |
| | 804 | |
| | 805 | $this->assertTrue( bp_activity_add_user_favorite( $a, $u ) ); |
| | 806 | $this->assertEquals( 1, bp_activity_get_meta( $a, 'favorite_count' ) ); |
| | 807 | } |
| | 808 | |
| | 809 | /** |
| | 810 | * @group favorites |
| | 811 | * @group bp_activity_remove_user_favorite |
| | 812 | * @group BP3794 |
| | 813 | */ |
| | 814 | public function test_remove_user_favorite_good_activity_id() { |
| | 815 | $u = $this->create_user(); |
| | 816 | $a = $this->factory->activity->create(); |
| | 817 | |
| | 818 | bp_activity_add_user_favorite( $a, $u ); |
| | 819 | |
| | 820 | // Removing the favorite |
| | 821 | $this->assertTrue( bp_activity_remove_user_favorite( $a, $u ) ); |
| | 822 | $this->assertEquals( 0, bp_activity_get_meta( $a, 'favorite_count' ) ); |
| | 823 | } |
| | 824 | |
| | 825 | /** |
| | 826 | * @group favorites |
| | 827 | * @group bp_activity_get_user_favorites() |
| | 828 | * @group BP3794 |
| | 829 | */ |
| | 830 | public function test_bp_activity_get_user_favorites() { |
| | 831 | $u = $this->create_user(); |
| | 832 | |
| | 833 | $activities = array( |
| | 834 | $this->factory->activity->create(), |
| | 835 | $this->factory->activity->create(), |
| | 836 | $this->factory->activity->create() |
| | 837 | ); |
| | 838 | |
| | 839 | // Only favorite last 2 elements of the array |
| | 840 | bp_activity_add_user_favorite( $activities[1], $u ); |
| | 841 | bp_activity_add_user_favorite( $activities[2], $u ); |
| | 842 | |
| | 843 | array_shift( $activities ); |
| | 844 | |
| | 845 | $this->assertEquals( $activities, bp_activity_get_user_favorites( $u ) ); |
| | 846 | } |
| | 847 | |
| | 848 | /** |
| | 849 | * @group favorites |
| | 850 | * @group bp_activity_total_favorites_for_user |
| | 851 | * @group BP3794 |
| | 852 | */ |
| | 853 | public function test_bp_activity_total_favorites_for_user() { |
| | 854 | $u1 = $this->create_user(); |
| | 855 | $u2 = $this->create_user(); |
| | 856 | |
| | 857 | $activities = array( |
| | 858 | $this->factory->activity->create(), |
| | 859 | $this->factory->activity->create() |
| | 860 | ); |
| | 861 | |
| | 862 | // Only add favorites to user 1 |
| | 863 | bp_activity_add_user_favorite( $activities[0], $u1 ); |
| | 864 | bp_activity_add_user_favorite( $activities[1], $u1 ); |
| | 865 | |
| | 866 | $this->assertEquals( 2, bp_activity_total_favorites_for_user( $u1 ) ); |
| | 867 | $this->assertEquals( 0, bp_activity_total_favorites_for_user( $u2 ) ); |
| | 868 | } |
| | 869 | |
| | 870 | /** |
| | 871 | * @group favorites |
| | 872 | * @group bp_activity_total_favorites_for_user |
| | 873 | * @group BP3794 |
| | 874 | */ |
| | 875 | public function test_count_user_favorite_after_activity_removed() { |
| | 876 | $u1 = $this->create_user(); |
| | 877 | $a = $this->factory->activity->create(); |
| | 878 | |
| | 879 | // favorite activity |
| | 880 | bp_activity_add_user_favorite( $a, $u1 ); |
| | 881 | |
| | 882 | // Delete the activity |
| | 883 | bp_activity_delete_by_activity_id( $a ); |
| | 884 | |
| | 885 | $this->assertEquals( 0, bp_activity_total_favorites_for_user( $u1 ) ); |
| | 886 | } |
| | 887 | |
| | 888 | /** |
| | 889 | * @group favorites |
| | 890 | * @group bp_activity_add_favorite |
| | 891 | * @group BP3794 |
| | 892 | */ |
| | 893 | public function test_bp_activity_add_favorite() { |
| | 894 | $u = $this->create_user(); |
| | 895 | |
| | 896 | $activities = array( |
| | 897 | $this->factory->activity->create(), |
| | 898 | $this->factory->activity->create() |
| | 899 | ); |
| | 900 | |
| | 901 | // Only add favorites to user 1 |
| | 902 | bp_activity_add_favorite( $activities[0], $u ); |
| | 903 | bp_activity_add_favorite( $activities[1], $u ); |
| | 904 | |
| | 905 | $get = bp_activity_get( array( |
| | 906 | 'filter' => array( 'action' => 'activity_favorite' ), |
| | 907 | 'sort' => 'ASC', |
| | 908 | ) ); |
| | 909 | |
| | 910 | $should = wp_list_pluck( $get['activities'], 'item_id' ); |
| | 911 | |
| | 912 | $this->assertEquals( $should, $activities ); |
| | 913 | } |
| | 914 | |
| | 915 | /** |
| | 916 | * @group favorites |
| | 917 | * @group bp_activity_add_favorite |
| | 918 | * @group BP3794 |
| | 919 | */ |
| | 920 | public function test_bp_activity_add_favorite_private_activity() { |
| | 921 | $u = $this->create_user(); |
| | 922 | |
| | 923 | $args = array( 'hide_sitewide' => 1 ); |
| | 924 | |
| | 925 | $activities = array( |
| | 926 | $this->factory->activity->create(), |
| | 927 | $this->factory->activity->create( $args ), |
| | 928 | $this->factory->activity->create( $args ), |
| | 929 | ); |
| | 930 | |
| | 931 | // Only add favorites to user 1 |
| | 932 | bp_activity_add_favorite( $activities[0], $u ); |
| | 933 | bp_activity_add_favorite( $activities[1], $u ); |
| | 934 | bp_activity_add_favorite( $activities[2], $u ); |
| | 935 | |
| | 936 | $get_public = bp_activity_get( array( |
| | 937 | 'filter' => array( 'action' => 'activity_favorite' ), |
| | 938 | 'sort' => 'ASC', |
| | 939 | ) ); |
| | 940 | |
| | 941 | $shouldnot = wp_list_pluck( $get_public['activities'], 'item_id' ); |
| | 942 | |
| | 943 | $get_private = bp_activity_get( array( |
| | 944 | 'filter' => array( 'action' => 'activity_favorite' ), |
| | 945 | 'sort' => 'ASC', |
| | 946 | 'show_hidden' => 1 |
| | 947 | ) ); |
| | 948 | |
| | 949 | $should = wp_list_pluck( $get_private['activities'], 'item_id' ); |
| | 950 | |
| | 951 | $this->assertEquals( $should, $activities ); |
| | 952 | $this->assertFalse( count( $activities ) == array_diff( $activities, $shouldnot ) ); |
| | 953 | } |
| | 954 | |
| | 955 | /** |
| | 956 | * @group favorites |
| | 957 | * @group bp_activity_favorites_migrate |
| | 958 | * @group BP3794 |
| | 959 | */ |
| | 960 | public function test_bp_activity_favorites_migrate() { |
| | 961 | $u1 = $this->create_user(); |
| | 962 | $u2 = $this->create_user(); |
| | 963 | $activities = $this->factory->activity->create_many( 10 ); |
| | 964 | |
| | 965 | $user_meta_favorites = array( $u1 => array(), $u2 => array() ); |
| | 966 | |
| | 967 | foreach ( $activities as $activity_id ) { |
| | 968 | $modulo = $activity_id % 2; |
| | 969 | |
| | 970 | if ( empty( $modulo ) ) { |
| | 971 | $user_meta_favorites[ $u2 ][] = $activity_id; |
| | 972 | bp_activity_update_meta( $activity_id, 'favorite_count', 1 ); |
| | 973 | } else { |
| | 974 | $user_meta_favorites[ $u1 ][] = $activity_id; |
| | 975 | bp_activity_update_meta( $activity_id, 'favorite_count', 1 ); |
| | 976 | } |
| | 977 | } |
| | 978 | |
| | 979 | bp_update_user_meta( $u1, 'bp_favorite_activities', $user_meta_favorites[ $u1 ] ); |
| | 980 | bp_update_user_meta( $u2, 'bp_favorite_activities', $user_meta_favorites[ $u2 ] ); |
| | 981 | |
| | 982 | // migrate |
| | 983 | bp_activity_favorites_migrate(); |
| | 984 | |
| | 985 | $this->assertEquals( bp_get_user_meta( $u1, 'bp_favorite_activities', true ), bp_activity_get_user_favorites( $u1 ) ); |
| | 986 | $this->assertEquals( bp_get_user_meta( $u2, 'bp_favorite_activities', true ), bp_activity_get_user_favorites( $u2 ) ); |
| | 987 | |
| | 988 | // Check if the ugrade changed the activity favorite count |
| | 989 | $unchanged = true; |
| | 990 | |
| | 991 | foreach( $activities as $activity_id ) { |
| | 992 | if ( 1 != bp_activity_get_meta( $activity_id, 'favorite_count' ) ) { |
| | 993 | $unchanged = false; |
| | 994 | } |
| | 995 | } |
| | 996 | |
| | 997 | $this->assertTrue( $unchanged ); |
| | 998 | } |
| | 999 | |
| | 1000 | /** |