This repository has been archived by the owner on Jul 20, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 51
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add test for DeprecatedFunctionsCheck
- Loading branch information
Showing
2 changed files
with
687 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,383 @@ | ||
<?php | ||
|
||
require_once( 'CodeCheckTestBase.php' ); | ||
|
||
class DeprecatedFunctionsTest extends CodeCheckTestBase { | ||
|
||
public function testFunctionsParameters() { | ||
$functions = array( | ||
'wp-includes' => array( | ||
'0.71' => array( | ||
'the_category_ID' => 'get_the_category()', | ||
'the_category_head' => 'get_the_category_by_ID()', | ||
), | ||
'1.2' => array( | ||
'permalink_link' => 'the_permalink()', | ||
), | ||
'1.5' => array( | ||
'start_wp' => '', | ||
), | ||
'1.5.1' => array( | ||
'get_postdata' => 'get_post()', | ||
), | ||
'2.0' => array( | ||
'create_user' => 'wp_create_user()', | ||
'next_post' => 'next_post_link()', | ||
'previous_post' => 'previous_post_link()', | ||
'user_can_create_draft' => 'current_user_can()', | ||
'user_can_create_post' => 'current_user_can()', | ||
'user_can_delete_post' => 'current_user_can()', | ||
'user_can_delete_post_comments' => 'current_user_can()', | ||
'user_can_edit_post' => 'current_user_can()', | ||
'user_can_edit_post_comments' => 'current_user_can()', | ||
'user_can_edit_post_date' => 'current_user_can()', | ||
'user_can_edit_user' => 'current_user_can()', | ||
'user_can_set_post_date' => 'current_user_can()', | ||
), | ||
'2.1' => array( | ||
'dropdown_cats' => 'wp_dropdown_categories()', | ||
'get_archives' => 'wp_get_archives()', | ||
'get_author_link' => 'get_author_posts_url()', | ||
'get_autotoggle' => '', | ||
'get_link' => 'get_bookmark()', | ||
'get_linkcatname' => 'get_category()', | ||
'get_linkrating' => 'sanitize_bookmark_field()', | ||
'get_links' => 'get_bookmarks()', | ||
'get_links_list' => 'wp_list_bookmarks()', | ||
'get_links_withrating' => 'get_bookmarks()', | ||
'get_linksbyname' => 'get_bookmarks()', | ||
'get_linkobjects' => 'get_bookmarks()', | ||
'get_linkobjectsbyname' => 'get_bookmarks()', | ||
'get_linksbyname_withrating' => 'get_bookmarks()', | ||
'get_settings' => 'get_option()', | ||
'link_pages' => 'wp_link_pages()', | ||
'links_popup_script' => '', | ||
'list_authors' => 'wp_list_authors()', | ||
'list_cats' => 'wp_list_categories()', | ||
'wp_get_links' => 'wp_list_bookmarks()', | ||
'wp_get_linksbyname' => 'wp_list_bookmarks()', | ||
'wp_get_post_cats' => 'wp_get_post_categories()', | ||
'wp_list_cats' => 'wp_list_categories()', | ||
'wp_set_post_cats' => 'wp_set_post_categories()', | ||
), | ||
'2.2' => array( | ||
'comments_rss' => 'get_post_comments_feed_link()', | ||
), | ||
'2.3' => array( | ||
'permalink_single_rss' => 'the_permalink_rss()', | ||
), | ||
'2.5' => array( | ||
'comments_rss_link' => 'post_comments_feed_link()', | ||
'get_attachment_icon' => 'wp_get_attachment_image()', | ||
'get_attachment_icon_src' => 'wp_get_attachment_image_src()', | ||
'get_attachment_innerHTML' => 'wp_get_attachment_image()', | ||
'get_author_rss_link' => 'get_author_feed_link()', | ||
'get_category_rss_link' => 'get_category_feed_link()', | ||
'get_the_attachment_link' => 'wp_get_attachment_link()', | ||
'gzip_compression' => '', | ||
'wp_clearcookie' => 'wp_clear_auth_cookie()', | ||
'wp_get_cookie_login' => '', | ||
'wp_login' => 'wp_signon()', | ||
'wp_setcookie' => 'wp_set_auth_cookie()', | ||
), | ||
'2.7' => array( | ||
'get_commentdata' => 'get_comment()', | ||
), | ||
'2.8' => array( | ||
'__ngettext' => '_n()', | ||
'__ngettext_noop' => '_n_noop()', | ||
'attribute_escape' => 'esc_attr()', | ||
'get_author_name' => "get_the_author_meta( 'display_name' )", | ||
'get_category_children' => 'get_term_children()', | ||
'get_catname' => 'get_cat_name()', | ||
'get_the_author_aim' => "get_the_author_meta( 'aim' )", | ||
'get_the_author_description' => "get_the_author_meta( 'description' )", | ||
'get_the_author_email' => "get_the_author_meta( 'email' )", | ||
'get_the_author_firstname' => "get_the_author_meta( 'first_name' )", | ||
'get_the_author_icq' => "get_the_author_meta( 'icq' )", | ||
'get_the_author_ID' => "get_the_author_meta( 'ID' )", | ||
'get_the_author_lastname' => "get_the_author_meta( 'last_name' )", | ||
'get_the_author_login' => "get_the_author_meta( 'login' )", | ||
'get_the_author_msn' => "get_the_author_meta( 'msn' )", | ||
'get_the_author_nickname' => "get_the_author_meta( 'nickname' )", | ||
'get_the_author_url' => "get_the_author_meta( 'url' )", | ||
'get_the_author_yim' => "get_the_author_meta( 'yim' )", | ||
'js_escape' => 'esc_js()', | ||
'register_sidebar_widget' => 'wp_register_sidebar_widget()', | ||
'register_widget_control' => 'wp_register_widget_control()', | ||
'sanitize_url' => 'esc_url_raw()', | ||
'the_author_aim' => "the_author_meta( 'aim' )", | ||
'the_author_description' => "the_author_meta( 'description' )", | ||
'the_author_email' => "the_author_meta( 'email' )", | ||
'the_author_firstname' => "the_author_meta( 'first_name' )", | ||
'the_author_icq' => "the_author_meta( 'icq' )", | ||
'the_author_ID' => "the_author_meta( 'ID' )", | ||
'the_author_lastname' => "the_author_meta( 'last_name' )", | ||
'the_author_login' => "the_author_meta( 'login' )", | ||
'the_author_msn' => "the_author_meta( 'msn' )", | ||
'the_author_nickname' => "the_author_meta( 'nickname' )", | ||
'the_author_url' => "the_author_meta( 'url' )", | ||
'the_author_yim' => "the_author_meta( 'yim' )", | ||
'unregister_sidebar_widget' => 'wp_unregister_sidebar_widget()', | ||
'unregister_widget_control' => 'wp_unregister_widget_control()', | ||
'wp_specialchars' => 'esc_html()', | ||
), | ||
'2.9' => array( | ||
'_c' => '_x()', | ||
'make_url_footnote' => '', | ||
'the_content_rss' => 'the_content_feed()', | ||
), | ||
'3.0' => array( | ||
'_nc' => '_nx()', | ||
'automatic_feed_links' => "add_theme_support( 'automatic-feed-links' )", | ||
'clean_url' => 'esc_url_raw()', | ||
'clear_global_post_cache' => 'clean_post_cache()', | ||
'delete_usermeta' => 'delete_user_meta()', | ||
'funky_javascript_callback' => '', | ||
'funky_javascript_fix' => '', | ||
'generate_random_password' => 'wp_generate_password()', | ||
'get_alloptions' => 'wp_load_alloptions()', | ||
'get_blog_list' => 'wp_get_sites()', | ||
'get_most_active_blogs' => '', | ||
'get_profile' => 'get_the_author_meta()', | ||
'get_user_details' => 'get_user_by()', | ||
'get_usermeta' => 'get_user_meta()', | ||
'get_usernumposts' => 'count_user_posts()', | ||
'graceful_fail' => 'wp_die()', | ||
'is_main_blog' => 'is_main_site()', | ||
'is_site_admin' => 'is_super_admin()', | ||
'is_taxonomy' => 'taxonomy_exists()', | ||
'is_term' => 'term_exists()', | ||
'set_current_user' => 'wp_set_current_user()', | ||
'translate_with_context' => '_x()', | ||
'update_usermeta' => 'update_user_meta()', | ||
'validate_email' => 'is_email()', | ||
), | ||
'3.1' => array( | ||
'get_dashboard_blog' => '', | ||
'get_users_of_blog' => 'get_users()', | ||
'is_plugin_page' => '', | ||
'update_category_cache' => '', | ||
), | ||
'3.2' => array( | ||
'wp_timezone_supported' => '', | ||
'wp_clone' => '', | ||
), | ||
'3.3' => array( | ||
'get_boundary_post_rel_link' => '', | ||
'get_index_rel_link' => '', | ||
'get_parent_post_rel_link' => '', | ||
'get_user_by_email' => "get_user_by( 'email' )", | ||
'get_user_metavalues' => '', | ||
'get_userdatabylogin' => "get_user_by( 'login' )", | ||
'index_rel_link' => '', | ||
'is_blog_user' => 'is_user_member_of_blog()', | ||
'parent_post_rel_link' => '', | ||
'sanitize_user_object' => '', | ||
'start_post_rel_link' => '', | ||
'the_editor' => 'wp_editor()', | ||
'wp_admin_bar_dashboard_view_site_menu' => '', | ||
'wpmu_admin_do_redirect' => '', | ||
'wpmu_admin_redirect_add_updated_param' => '', | ||
), | ||
'3.4' => array( | ||
'add_custom_background' => 'add_theme_support( "custom-background", $args )', | ||
'add_custom_image_header' => 'add_theme_support( "custom-header", $args )', | ||
'clean_page_cache' => 'clean_post_cache()', | ||
'clean_pre' => '', | ||
'debug_fclose' => 'error_log()', | ||
'debug_fopen' => 'error_log()', | ||
'debug_fwrite' => 'error_log()', | ||
'get_current_theme' => 'wp_get_theme()', | ||
'get_theme' => 'wp_get_theme()', | ||
'get_theme_data' => 'wp_get_theme()', | ||
'get_themes' => 'wp_get_themes()', | ||
'remove_custom_background' => "remove_theme_support( 'custom-background' )", | ||
'remove_custom_image_header' => "remove_theme_support( 'custom-header' )", | ||
'update_page_cache' => 'update_post_cache()', | ||
'wp_explain_nonce' => 'wp_nonce_ays', | ||
), | ||
'3.5' => array( | ||
'_get_post_ancestors' => '', | ||
'_save_post_hook' => '', | ||
'gd_edit_image_support' => 'wp_image_editor_supports()', | ||
'get_page' => 'get_post()', | ||
'image_resize' => 'wp_get_image_editor()', | ||
'sticky_class' => 'post_class()', | ||
'user_pass_ok' => 'wp_authenticate()', | ||
'wp_cache_reset' => '', | ||
'wp_get_single_post' => 'get_post()', | ||
'wp_load_image' => 'wp_get_image_editor()', | ||
), | ||
'3.6' => array( | ||
'get_user_id_from_string' => 'get_user_by()', | ||
'wp_convert_bytes_to_hr' => 'size_format()', | ||
), | ||
'3.7' => array( | ||
'_search_terms_tidy' => '', | ||
'get_blogaddress_by_domain' => '', | ||
), | ||
'3.9' => array( | ||
'rich_edit_exists' => '', | ||
'default_topic_count_text' => '', | ||
'format_to_post' => '', | ||
'get_current_site_name' => 'get_current_site()', | ||
'wpmu_current_site' => '', | ||
), | ||
'4.0' => array( | ||
'like_escape' => '$wpdb->esc_like()', | ||
'url_is_accessable_via_ssl' => '', | ||
), | ||
), | ||
'wp-admin' => array( | ||
'MU' => array( | ||
'install_blog_defaults' => 'wp_install_defaults()', | ||
), | ||
'2.1' => array( | ||
'tinymce_include' => 'wp_editor()', | ||
), | ||
'2.5' => array( | ||
'documentation_link' => '', | ||
), | ||
'2.6' => array( | ||
'dropdown_categories' => 'wp_category_checklist()', | ||
'dropdown_link_categories' => 'wp_link_category_checklist()', | ||
), | ||
'2.9' => array( | ||
'get_real_file_to_edit' => '', | ||
), | ||
'3.0' => array( | ||
'activate_sitewide_plugin' => 'activate_plugin()', | ||
'add_option_update_handler' => 'register_setting()', | ||
'codepress_footer_js' => '', | ||
'codepress_get_lang' => '', | ||
'deactivate_sitewide_plugin' => 'deactivate_plugin()', | ||
'is_wpmu_sitewide_plugin' => 'is_network_only_plugin()', | ||
'ms_deprecated_blogs_file' => '', | ||
'mu_options' => '', | ||
'remove_option_update_handler' => 'unregister_setting()', | ||
'use_codepress' => '', | ||
'wp_dropdown_cats' => 'wp_dropdown_categories()', | ||
'wp_shrink_dimensions' => 'wp_constrain_dimensions()', | ||
'wpmu_checkAvailableSpace' => 'is_upload_space_available()', | ||
'wpmu_get_blog_allowedthemes' => 'WP_Theme::get_allowed_on_site()', | ||
'wpmu_menu' => '', | ||
), | ||
'3.1' => array( | ||
'get_author_user_ids' => 'get_users()', | ||
'get_editable_authors' => 'get_users()', | ||
'get_editable_user_ids' => 'get_users()', | ||
'get_nonauthor_user_ids' => 'get_users()', | ||
'get_others_drafts' => '', | ||
'get_others_unpublished_posts' => '', | ||
'get_others_pending' => '', | ||
'install_themes_feature_list' => 'get_theme_feature_list()', | ||
), | ||
'3.2' => array( | ||
'favorite_actions' => 'WP_Admin_Bar', | ||
'wp_dashboard_quick_press_output' => 'wp_dashboard_quick_press()', | ||
), | ||
'3.3' => array( | ||
'add_contextual_help' => 'get_current_screen()->add_help_tab()', | ||
'media_upload_audio' => 'wp_media_upload_handler()', | ||
'media_upload_file' => 'wp_media_upload_handler()', | ||
'media_upload_image' => 'wp_media_upload_handler()', | ||
'media_upload_video' => 'wp_media_upload_handler()', | ||
'screen_layout' => 'get_current_screen()->render_per_page_options()', | ||
'screen_meta' => 'get_current_screen()->render_screen_meta()', | ||
'screen_options' => 'get_current_screen()->render_per_page_options()', | ||
'type_url_form_audio' => "wp_media_insert_url_form( 'audio' )", | ||
'type_url_form_file' => "wp_media_insert_url_form( 'file' )", | ||
'type_url_form_image' => "wp_media_insert_url_form( 'image' )", | ||
'type_url_form_video' => "wp_media_insert_url_form( 'video' )", | ||
'wp_preload_dialogs' => 'wp_editor()', | ||
'wp_print_editor_js' => 'wp_editor()', | ||
'wp_quicktags' => 'wp_editor()', | ||
'wp_tiny_mce' => 'wp_editor()', | ||
), | ||
'3.4' => array( | ||
'current_theme_info' => 'wp_get_theme()', | ||
'get_allowed_themes' => "wp_get_themes( array( 'allowed' => true ) )", | ||
'get_broken_themes' => "wp_get_themes( array( 'errors' => true )", | ||
'get_site_allowed_themes' => 'WP_Theme::get_allowed_on_network()', | ||
'display_theme' => '', | ||
), | ||
'3.5' => array( | ||
'_insert_into_post_button' => '', | ||
'_media_button' => '', | ||
'get_default_page_to_edit' => "get_default_post_to_edit( 'page' )", | ||
'get_post_to_edit' => 'get_post()', | ||
'get_udims' => 'wp_constrain_dimensions()', | ||
'wp_create_thumbnail' => 'image_resize()', | ||
), | ||
'3.6' => array( | ||
'wp_nav_menu_locations_meta_box' => '', | ||
), | ||
'3.7' => array( | ||
'the_attachment_links' => '', | ||
'wp_update_core' => 'new Core_Upgrader()', | ||
'wp_update_plugin' => 'new Plugin_Upgrader()', | ||
'wp_update_theme' => 'new Theme_Upgrader()', | ||
), | ||
'3.8' => array( | ||
'get_screen_icon' => '', | ||
'screen_icon' => '', | ||
'wp_dashboard_incoming_links' => '', | ||
'wp_dashboard_incoming_links_control' => '', | ||
'wp_dashboard_incoming_links_output' => '', | ||
'wp_dashboard_plugins' => '', | ||
'wp_dashboard_primary_control' => '', | ||
'wp_dashboard_recent_comments_control' => '', | ||
'wp_dashboard_secondary' => '', | ||
'wp_dashboard_secondary_control' => '', | ||
'wp_dashboard_secondary_output' => '', | ||
), | ||
'3.9' => array( | ||
'_relocate_children' => '', | ||
), | ||
/** | ||
* Root Folder | ||
*/ | ||
), | ||
'' => array( | ||
'3.4' => array( | ||
'logIO' => 'error_log()', | ||
), | ||
), | ||
); | ||
|
||
$description_template = 'The function %s is deprecated.'; | ||
$replacement_template = ' Use %s instead.'; | ||
|
||
$line = 4; | ||
$expected_errors = array(); | ||
foreach( $functions as $directory => $versions ) { | ||
/* | ||
* In DeprecatedFunctionsTest.inc, there's a 3 line comment header | ||
* mentioning the directory the functions are found in | ||
*/ | ||
$line += 3; | ||
foreach( $versions as $version => $group ) { | ||
// There's a header line comment mentioning the version in DeprecatedFunctionsTest.inc | ||
++$line; | ||
foreach ( $group as $function => $replacement ) { | ||
$message = sprintf( $description_template, '<code>' . $function . '</code>' ); | ||
if ( ! empty( $replacement ) ) { | ||
$message .= sprintf( $replacement_template, '<code>' . $replacement . '</code>' );; | ||
} | ||
|
||
$expected_errors[] = array( | ||
'slug' => 'deprecated', | ||
'level' => BaseScanner::LEVEL_BLOCKER, | ||
'description' => $message, | ||
'file' => 'DeprecatedFunctionsTest.inc', | ||
'lines' => ++$line, | ||
); | ||
} | ||
} | ||
} | ||
|
||
$actual_errors = $this->checkFile( 'DeprecatedFunctionsTest.inc' ); | ||
$this->assertEqualErrors( $expected_errors, $actual_errors ); | ||
} | ||
} |
Oops, something went wrong.