| 137 | |
| 138 | /** |
| 139 | * @ticket 22212 |
| 140 | */ |
| 141 | function test_get_single_role_by_user_query() { |
| 142 | $this->factory->user->create_many( 2, array( |
| 143 | 'role' => 'subscriber' |
| 144 | ) ); |
| 145 | |
| 146 | $wp_user_search = new WP_User_Query( array( 'role' => 'subscriber' ) ); |
| 147 | $users = $wp_user_search->get_results(); |
| 148 | $this->assertEquals( 2, count( $users ) ); |
| 149 | } |
| 150 | |
| 151 | /** |
| 152 | * @ticket 22212 |
| 153 | */ |
| 154 | function test_get_multiple_roles_by_user_query() { |
| 155 | $this->factory->user->create_many( 2, array( |
| 156 | 'role' => 'subscriber' |
| 157 | ) ); |
| 158 | |
| 159 | $this->factory->user->create_many( 3, array( |
| 160 | 'role' => 'editor' |
| 161 | ) ); |
| 162 | |
| 163 | $wp_user_search = new WP_User_Query( array( 'role' => array( 'subscriber', 'editor' ) ) ); |
| 164 | $users = $wp_user_search->get_results(); |
| 165 | $this->assertEquals( 5, count( $users ) ); |
| 166 | } |
| 167 | |
| 168 | /** |
| 169 | * @ticket 22212 |
| 170 | */ |
| 171 | function test_get_single_role_by_string() { |
| 172 | $this->factory->user->create_many( 2, array( |
| 173 | 'role' => 'subscriber' |
| 174 | ) ); |
| 175 | |
| 176 | $users = get_users( array( |
| 177 | 'role' => 'subscriber' |
| 178 | ) ); |
| 179 | |
| 180 | $this->assertEquals( 2, count( $users ) ); |
| 181 | } |
| 182 | |
| 183 | /** |
| 184 | * @ticket 22212 |
| 185 | */ |
| 186 | function test_get_single_role_by_array() { |
| 187 | $this->factory->user->create_many( 2, array( |
| 188 | 'role' => 'subscriber' |
| 189 | ) ); |
| 190 | |
| 191 | $users = get_users( array( |
| 192 | 'role' => array( 'subscriber' ) |
| 193 | ) ); |
| 194 | |
| 195 | $this->assertEquals( 2, count( $users ) ); |
| 196 | } |
| 197 | |
| 198 | /** |
| 199 | * @ticket 22212 |
| 200 | */ |
| 201 | function test_get_multiple_roles() { |
| 202 | $this->factory->user->create_many( 2, array( |
| 203 | 'role' => 'subscriber' |
| 204 | ) ); |
| 205 | |
| 206 | $this->factory->user->create_many( 3, array( |
| 207 | 'role' => 'editor' |
| 208 | ) ); |
| 209 | |
| 210 | $this->factory->user->create_many( 2, array( |
| 211 | 'role' => 'administrator' |
| 212 | ) ); |
| 213 | |
| 214 | $users = new WP_User_Query( array( 'role' => array( 'subscriber', 'editor' ) ) ); |
| 215 | $users = $users->get_results(); |
| 216 | |
| 217 | $this->assertEquals( 5, count( $users ) ); |
| 218 | foreach ( $users as $user ) { |
| 219 | $this->assertInstanceOf( 'WP_User', $user ); |
| 220 | } |
| 221 | } |
| 222 | |
| 223 | /** |
| 224 | * @ticket 22212 |
| 225 | */ |
| 226 | function test_get_multiple_roles_with_meta() { |
| 227 | |
| 228 | // Create administrator user + meta |
| 229 | $administrator_id = $this->factory->user->create( array( 'role' => 'administrator' ) ); |
| 230 | update_user_meta( $administrator_id, 'mk1', 1 ); |
| 231 | update_user_meta( $administrator_id, 'mk2', 1 ); |
| 232 | |
| 233 | // Create editor user + meta |
| 234 | $editor_id = $this->factory->user->create( array( 'role' => 'editor' ) ); |
| 235 | update_user_meta( $editor_id, 'mk1', 1 ); |
| 236 | update_user_meta( $editor_id, 'mk2', 2 ); |
| 237 | |
| 238 | // Create subscriber user + meta |
| 239 | $subscriber_id = $this->factory->user->create( array( 'role' => 'subscriber' ) ); |
| 240 | update_user_meta( $subscriber_id, 'mk1', 1 ); |
| 241 | update_user_meta( $subscriber_id, 'mk2', 1 ); |
| 242 | |
| 243 | // Fetch users |
| 244 | $users = get_users( array( |
| 245 | 'role' => array( 'administrator', 'editor', 'subscriber' ), |
| 246 | 'meta_query' => array( |
| 247 | 'relation' => 'AND', |
| 248 | array( |
| 249 | 'key' => 'mk1', |
| 250 | 'value' => '1', |
| 251 | 'compare' => "=", |
| 252 | 'type' => 'numeric' |
| 253 | ), |
| 254 | array( |
| 255 | 'key' => 'mk2', |
| 256 | 'value' => '2', |
| 257 | 'compare' => "=", |
| 258 | 'type' => 'numeric' |
| 259 | ) |
| 260 | ) |
| 261 | ) ); |
| 262 | |
| 263 | // Check results |
| 264 | $this->assertEquals( 1, count( $users ) ); |
| 265 | |
| 266 | } |
| 267 | |