Changeset 54215 for trunk/tests/phpunit/tests/admin/wpListTable.php
- Timestamp:
- 09/19/2022 09:06:08 PM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/admin/wpListTable.php
r53868 r54215 7 7 */ 8 8 class Tests_Admin_WpListTable extends WP_UnitTestCase { 9 10 /** 11 * List table. 12 * 13 * @var WP_List_Table $list_table 14 */ 15 protected static $list_table; 16 17 public static function set_up_before_class() { 18 global $hook_suffix; 19 20 parent::set_up_before_class(); 21 22 require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php'; 23 24 $hook_suffix = '_wp_tests'; 25 self::$list_table = new WP_List_Table(); 26 } 9 27 10 28 /** … … 105 123 return $datasets; 106 124 } 125 126 /** 127 * Tests the "get_views_links()" method. 128 * 129 * @ticket 42066 130 * 131 * @covers WP_List_Table::get_views_links 132 * 133 * @dataProvider data_get_views_links 134 * 135 * @param array $link_data { 136 * An array of link data. 137 * 138 * @type string $url The link URL. 139 * @type string $label The link label. 140 * @type bool $current Optional. Whether this is the currently selected view. 141 * } 142 * @param array $expected 143 */ 144 public function test_get_views_links( $link_data, $expected ) { 145 $get_views_links = new ReflectionMethod( self::$list_table, 'get_views_links' ); 146 $get_views_links->setAccessible( true ); 147 148 $actual = $get_views_links->invokeArgs( self::$list_table, array( $link_data ) ); 149 150 $this->assertSameSetsWithIndex( $expected, $actual ); 151 } 152 153 /** 154 * Data provider. 155 * 156 * @return array 157 */ 158 public function data_get_views_links() { 159 return array( 160 'one "current" link' => array( 161 'link_data' => array( 162 'all' => array( 163 'url' => 'https://example.org/', 164 'label' => 'All', 165 'current' => true, 166 ), 167 'activated' => array( 168 'url' => add_query_arg( 'status', 'activated', 'https://example.org/' ), 169 'label' => 'Activated', 170 'current' => false, 171 ), 172 ), 173 'expected' => array( 174 'all' => '<a href="https://example.org/" class="current" aria-current="page">All</a>', 175 'activated' => '<a href="https://example.org/?status=activated">Activated</a>', 176 ), 177 ), 178 'two "current" links' => array( 179 'link_data' => array( 180 'all' => array( 181 'url' => 'https://example.org/', 182 'label' => 'All', 183 'current' => true, 184 ), 185 'activated' => array( 186 'url' => add_query_arg( 'status', 'activated', 'https://example.org/' ), 187 'label' => 'Activated', 188 'current' => true, 189 ), 190 ), 191 'expected' => array( 192 'all' => '<a href="https://example.org/" class="current" aria-current="page">All</a>', 193 'activated' => '<a href="https://example.org/?status=activated" class="current" aria-current="page">Activated</a>', 194 ), 195 ), 196 'one "current" link and one without "current" key' => array( 197 'link_data' => array( 198 'all' => array( 199 'url' => 'https://example.org/', 200 'label' => 'All', 201 'current' => true, 202 ), 203 'activated' => array( 204 'url' => add_query_arg( 'status', 'activated', 'https://example.org/' ), 205 'label' => 'Activated', 206 ), 207 ), 208 'expected' => array( 209 'all' => '<a href="https://example.org/" class="current" aria-current="page">All</a>', 210 'activated' => '<a href="https://example.org/?status=activated">Activated</a>', 211 ), 212 ), 213 'one "current" link with escapable characters' => array( 214 'link_data' => array( 215 'all' => array( 216 'url' => 'https://example.org/', 217 'label' => 'All', 218 'current' => true, 219 ), 220 'activated' => array( 221 'url' => add_query_arg( 222 array( 223 'status' => 'activated', 224 'sort' => 'desc', 225 ), 226 'https://example.org/' 227 ), 228 'label' => 'Activated', 229 'current' => false, 230 ), 231 ), 232 'expected' => array( 233 'all' => '<a href="https://example.org/" class="current" aria-current="page">All</a>', 234 'activated' => '<a href="https://example.org/?status=activated&sort=desc">Activated</a>', 235 ), 236 ), 237 ); 238 } 239 240 /** 241 * Tests that "get_views_links()" throws a _doing_it_wrong(). 242 * 243 * @ticket 42066 244 * 245 * @covers WP_List_Table::get_views_links 246 * 247 * @expectedIncorrectUsage WP_List_Table::get_views_links 248 * 249 * @dataProvider data_get_views_links_doing_it_wrong 250 * 251 * @param array $link_data { 252 * An array of link data. 253 * 254 * @type string $url The link URL. 255 * @type string $label The link label. 256 * @type bool $current Optional. Whether this is the currently selected view. 257 * } 258 */ 259 public function test_get_views_links_doing_it_wrong( $link_data ) { 260 $get_views_links = new ReflectionMethod( self::$list_table, 'get_views_links' ); 261 $get_views_links->setAccessible( true ); 262 $get_views_links->invokeArgs( self::$list_table, array( $link_data ) ); 263 } 264 265 /** 266 * Data provider. 267 * 268 * @return array 269 */ 270 public function data_get_views_links_doing_it_wrong() { 271 return array( 272 'non-array $link_data' => array( 273 'link_data' => 'https://example.org, All, class="current" aria-current="page"', 274 ), 275 'a link with no URL' => array( 276 'link_data' => array( 277 'all' => array( 278 'label' => 'All', 279 'current' => true, 280 ), 281 ), 282 ), 283 'a link with an empty URL' => array( 284 'link_data' => array( 285 'all' => array( 286 'url' => '', 287 'label' => 'All', 288 'current' => true, 289 ), 290 ), 291 ), 292 'a link with a URL of only spaces' => array( 293 'link_data' => array( 294 'all' => array( 295 'url' => ' ', 296 'label' => 'All', 297 'current' => true, 298 ), 299 ), 300 ), 301 'a link with a non-string URL' => array( 302 'link_data' => array( 303 'all' => array( 304 'url' => array(), 305 'label' => 'All', 306 'current' => true, 307 ), 308 ), 309 ), 310 'a link with no label' => array( 311 'link_data' => array( 312 'all' => array( 313 'url' => 'https://example.org/', 314 'current' => true, 315 ), 316 ), 317 ), 318 'a link with an empty label' => array( 319 'link_data' => array( 320 'all' => array( 321 'url' => 'https://example.org/', 322 'label' => '', 323 'current' => true, 324 ), 325 ), 326 ), 327 'a link with a label of only spaces' => array( 328 'link_data' => array( 329 'all' => array( 330 'url' => 'https://example.org/', 331 'label' => ' ', 332 'current' => true, 333 ), 334 ), 335 ), 336 'a link with a non-string label' => array( 337 'link_data' => array( 338 'all' => array( 339 'url' => 'https://example.org/', 340 'label' => array(), 341 'current' => true, 342 ), 343 ), 344 ), 345 ); 346 } 107 347 }
Note: See TracChangeset
for help on using the changeset viewer.