[ Index ] |
PHP Cross Reference of BuddyPress |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * @group messages 4 * @group star 5 */ 6 class BP_Tests_Messages_Star_ extends BP_UnitTestCase { 7 8 /** 9 * @group bp_messages_is_message_starred 10 * @group bp_messages_star_set_action 11 */ 12 public function test_is_message_starred() { 13 $u1 = self::factory()->user->create(); 14 $u2 = self::factory()->user->create(); 15 16 // create the thread 17 $message_1 = self::factory()->message->create_and_get( array( 18 'sender_id' => $u1, 19 'recipients' => array( $u2 ), 20 'subject' => 'This is a knive', 21 ) ); 22 23 // create a reply 24 $message_2 = self::factory()->message->create_and_get( array( 25 'thread_id' => $message_1->thread_id, 26 'sender_id' => $u2, 27 'recipients' => array( $u1 ), 28 'content' => "That's a spoon", 29 ) ); 30 31 $m1 = $message_1->id; 32 $m2 = $message_2->id; 33 34 // star the second message 35 $star = bp_messages_star_set_action( array( 36 'user_id' => $u1, 37 'message_id' => $m2, 38 ) ); 39 40 // assert that star is set 41 $this->assertTrue( $star ); 42 $this->assertTrue( bp_messages_is_message_starred( $m2, $u1 ) ); 43 44 // unstar the second message 45 $unstar = bp_messages_star_set_action( array( 46 'user_id' => $u1, 47 'message_id' => $m2, 48 'action' => 'unstar' 49 ) ); 50 51 // assert that star is removed 52 $this->assertTrue( $unstar ); 53 $this->assertFalse( bp_messages_is_message_starred( $m2, $u1 ) ); 54 } 55 56 /** 57 * @group bp_messages_star_set_action 58 * @group bulk 59 */ 60 public function test_star_set_action_bulk_unstar() { 61 $u1 = self::factory()->user->create(); 62 $u2 = self::factory()->user->create(); 63 64 // create the thread 65 $message_1 = self::factory()->message->create_and_get( array( 66 'sender_id' => $u1, 67 'recipients' => array( $u2 ), 68 'subject' => 'This is a knive', 69 ) ); 70 71 // create a reply 72 $message_2 = self::factory()->message->create_and_get( array( 73 'thread_id' => $message_1->thread_id, 74 'sender_id' => $u2, 75 'recipients' => array( $u1 ), 76 'content' => "That's a spoon", 77 ) ); 78 79 $m1 = $message_1->id; 80 $m2 = $message_2->id; 81 $t1 = $message_1->thread_id; 82 83 // star all messages 84 bp_messages_star_set_action( array( 85 'user_id' => $u1, 86 'message_id' => $m1, 87 ) ); 88 bp_messages_star_set_action( array( 89 'user_id' => $u1, 90 'message_id' => $m2, 91 ) ); 92 93 // assert that stars are set 94 $this->assertTrue( bp_messages_is_message_starred( $m1, $u1 ) ); 95 $this->assertTrue( bp_messages_is_message_starred( $m2, $u1 ) ); 96 97 // unstar all messages 98 bp_messages_star_set_action( array( 99 'user_id' => $u1, 100 'thread_id' => $t1, 101 'action' => 'unstar', 102 'bulk' => true 103 ) ); 104 105 // assert that star is removed 106 $this->assertFalse( bp_messages_is_message_starred( $m1, $u1 ) ); 107 $this->assertFalse( bp_messages_is_message_starred( $m2, $u1 ) ); 108 } 109 110 /** 111 * @group bp_messages_filter_starred_message_threads 112 */ 113 public function test_get_starred_threads_should_not_include_deleted_thread() { 114 $old_current_user = get_current_user_id(); 115 $u1 = self::factory()->user->create(); 116 $u2 = self::factory()->user->create(); 117 118 // create three threads 119 $message_1 = self::factory()->message->create_and_get( array( 120 'sender_id' => $u1, 121 'recipients' => array( $u2 ), 122 'subject' => 'A', 123 ) ); 124 $message_2 = self::factory()->message->create_and_get( array( 125 'sender_id' => $u1, 126 'recipients' => array( $u2 ), 127 'subject' => 'B', 128 ) ); 129 $message_3 = self::factory()->message->create_and_get( array( 130 'sender_id' => $u1, 131 'recipients' => array( $u2 ), 132 'subject' => 'C', 133 ) ); 134 135 // grab the message ids as individual variables 136 $m1 = $message_1->id; 137 $m2 = $message_2->id; 138 $m3 = $message_3->id; 139 140 $t2 = $message_2->thread_id; 141 142 // star all threads 143 bp_messages_star_set_action( array( 144 'user_id' => $u2, 145 'message_id' => $m1, 146 ) ); 147 bp_messages_star_set_action( array( 148 'user_id' => $u2, 149 'message_id' => $m2, 150 ) ); 151 bp_messages_star_set_action( array( 152 'user_id' => $u2, 153 'message_id' => $m3, 154 ) ); 155 156 // delete the second thread 157 $this->set_current_user( $u2 ); 158 messages_delete_thread( $t2 ); 159 160 // load the starred threads loop 161 global $messages_template; 162 add_filter( 'bp_after_has_message_threads_parse_args', 'bp_messages_filter_starred_message_threads' ); 163 bp_has_message_threads(); 164 remove_filter( 'bp_after_has_message_threads_parse_args', 'bp_messages_filter_starred_message_threads' ); 165 166 // assert that second thread isn't in starred thread loop 167 $thread_ids = wp_list_pluck( $messages_template->threads, 'thread_id' ); 168 $this->assertFalse( in_array( $t2, $thread_ids ) ); 169 170 // reset 171 $this->set_current_user( $old_current_user ); 172 } 173 174 /** 175 * Helper method to grab the message IDs from a message thread. 176 * 177 * @param int $thread_id The message thread ID 178 * @return array 179 */ 180 protected function get_message_ids( $thread_id = 0 ) { 181 $thread = new BP_Messages_Thread( $thread_id ); 182 return wp_list_pluck( $thread->messages, 'id' ); 183 } 184 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Dec 6 01:00:58 2024 | Cross-referenced by PHPXref 0.7.1 |