Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
50.00% |
1 / 2 |
|
80.00% |
4 / 5 |
CRAP | |
97.37% |
37 / 38 |
tiny_helper_functions_Test | |
0.00% |
0 / 1 |
|
75.00% |
3 / 4 |
7 | |
97.30% |
36 / 37 |
test_mg_sanitize_file_name | |
100.00% |
1 / 1 |
1 | |
100.00% |
4 / 4 |
|||
test_mg_asset | |
100.00% |
1 / 1 |
1 | |
100.00% |
5 / 5 |
|||
test_mg_current_controller | |
100.00% |
1 / 1 |
2 | |
100.00% |
16 / 16 |
|||
test_mg_ajax_url | |
0.00% |
0 / 1 |
3.01 | |
91.67% |
11 / 12 |
|||
_sample_controller_5 | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
show | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
<?php | |
class tiny_helper_functions_Test extends WP_UnitTestCase { | |
/** | |
* @covers mg_sanitize_file_name | |
*/ | |
public function test_mg_sanitize_file_name() { | |
$name = 'dir1.dir2.dir3.filename.php'; | |
$result = mg_sanitize_file_name( $name ); | |
$this->assertEquals( str_replace( '.', '/', $name ), $result ); | |
} | |
/** | |
* @covers mg_asset | |
*/ | |
public function test_mg_asset() { | |
$asset_path = 'css/wp-migrator-panel.css'; | |
$plugin_dir = trim( plugin_basename( WP_MIGRATOR_PATH ), '/' ); | |
$plugin_url = untrailingslashit( WP_PLUGIN_URL ); | |
$this->assertEquals( "$plugin_url/$plugin_dir/assets/$asset_path", mg_asset( $asset_path ) ); | |
} | |
/** | |
* @covers mg_current_controller | |
*/ | |
public function test_mg_current_controller() { | |
{ # Set active user | |
$user_id = self::factory()->user->create( array( 'role' => 'administrator' ) ); | |
if ( ! did_action( 'admin_menu' ) ) { | |
do_action( 'admin_menu' ); | |
} | |
wp_set_current_user( $user_id ); | |
} | |
{ # register & fire a controller | |
$unique_name = __METHOD__; | |
$parent = 'themes.php'; | |
$slug = $unique_name; | |
$result = mg_admin_route( | |
$parent, $slug, "_sample_controller_5@show", [], [ | |
'menu_title' => 'My Menu Title', | |
'route_name' => $unique_name | |
] | |
); | |
$this->assertTrue( $result, 'cannot add admin page #6' ); | |
$page_hook = "admin_page_$slug"; | |
do_action( $page_hook ); | |
} | |
$this->assertSame( '_sample_controller_5', mg_current_controller() ); | |
} | |
/** | |
* @covers mg_ajax_url | |
* | |
* @depends test_mg_current_controller | |
*/ | |
public function test_mg_ajax_url() { | |
$parse_url = parse_url( mg_ajax_url() ); | |
if ( ! isset( $parse_url['path'] ) ) { | |
$parse_url['path'] = ''; | |
} | |
$queries = isset( $parse_url['query'] ) ? $parse_url['query'] : []; | |
parse_str( $queries, $queries ); | |
$this->assertSame( site_url( admin_url( 'admin-ajax.php', 'relative' ) ), "$parse_url[scheme]://$parse_url[host]$parse_url[path]" ); | |
$controller = '_sample_controller_5'; | |
$this->assertEmpty( array_diff_assoc( [ | |
'_mgctrl' => $controller, | |
'_mgctrl_token' => wp_create_nonce( "migrator-controller-$controller" ), | |
], $queries ), 'active controller should pass via ajax request' ); | |
} | |
} | |
class _sample_controller_5 extends Migrator_Controller { | |
public function show() { | |
} | |
} |