| | 181 | |
| | 182 | /** |
| | 183 | * @group bp_core_fetch_avatar |
| | 184 | */ |
| | 185 | public function test_bp_core_fetch_avatar_class_attribute() { |
| | 186 | $u = $this->factory->user->create(); |
| | 187 | |
| | 188 | $hw = 100; |
| | 189 | $args = array( |
| | 190 | 'item_id' => $u, |
| | 191 | 'object' => 'user', |
| | 192 | 'type' => 'full', |
| | 193 | 'width' => $hw, |
| | 194 | 'height' => $hw, |
| | 195 | 'class' => '', |
| | 196 | 'no_grav' => true, |
| | 197 | 'html' => true, |
| | 198 | ); |
| | 199 | |
| | 200 | // Class attribute is empty |
| | 201 | $avatar = bp_core_fetch_avatar( $args ); |
| | 202 | $expected = array( 'avatar', 'user-' . $u . '-avatar', 'avatar-' . $hw ); |
| | 203 | preg_match( '/class=["\']?([^"\']*)["\' ]/is', $avatar, $matches ); |
| | 204 | $classes = explode( ' ', $matches[1] ); |
| | 205 | $this->assertSame( $expected, array_intersect_key( $expected, $classes ) ); |
| | 206 | |
| | 207 | // Class attribute is a String |
| | 208 | $args['class'] = 'custom-class class-custom'; |
| | 209 | $avatar = bp_core_fetch_avatar( $args ); |
| | 210 | $expected = array_merge( explode( ' ', $args['class'] ), array( 'user-' . $u . '-avatar', 'avatar-' . $hw ) ); |
| | 211 | preg_match( '/class=["\']?([^"\']*)["\' ]/is', $avatar, $matches ); |
| | 212 | $classes = explode( ' ', $matches[1] ); |
| | 213 | $this->assertSame( $expected, array_intersect_key( $expected, $classes ) ); |
| | 214 | |
| | 215 | // Class attribute is an Array |
| | 216 | $args['class'] = array( 'custom-class', 'class-custom' ); |
| | 217 | $avatar = bp_core_fetch_avatar( $args ); |
| | 218 | $expected = array_merge( $args['class'], array( 'user-' . $u . '-avatar', 'avatar-' . $hw ) ); |
| | 219 | preg_match( '/class=["\']?([^"\']*)["\' ]/is', $avatar, $matches ); |
| | 220 | $classes = explode( ' ', $matches[1] ); |
| | 221 | $this->assertSame( $expected, array_intersect_key( $expected, $classes ) ); |
| | 222 | } |