FDP & FDP PRO Developer’s Integration Checklist
Purpose: This comprehensive checklist serves as a reverse-engineering guide for developers creating custom add-ons or integrations for Freesoul Deactivate Plugins (FDP) and FDP PRO. By understanding the extensive testing and validation process of the core plugins, developers gain insight into the architecture, hooks, filters, and edge cases they must consider when extending functionality.
Please refer to this checklist for testing your FDP add-on together with FDP core and, eventually, FDP PRO.
1. Installation & Activation
Fresh Installation
- [FDP] Install plugin via WordPress admin
- [FDP] Verify activation redirects to FDP settings page
- [FDP] Verify MU-plugin file is created at
wp-content/mu-plugins/eos-deactivate-plugins.php - [FDP] Verify MU-plugin version matches main plugin version (2.5.0)
- [FDP] Verify “Plugins Manager” appears in admin menu
- [FDP] Verify “Plugins Manager” appears under Plugins menu
- [FDP] Verify no PHP errors or warnings during activation
- [FDP] Verify activation notice displays correctly
- [FDP] Check that
fdp_loadedaction fires (if monitoring hooks)
Multisite Installation
- [FDP] Attempt network-wide activation – should show error message
- [FDP] Activate on individual site – should work correctly
- [FDP] Verify MU-plugin created per site, not network-wide
- [FDP] Verify settings are site-specific, not network-wide
Permalink Requirements
- [FDP] Test with “Post name” permalink structure – should work
- [FDP] Test with “Day and name” permalink structure – should work
- [FDP] Test with “Month and name” permalink structure – should work
- [FDP] Test with custom structure ending in
%postname%– should work - [FDP] Test with plain permalinks – should show warning
- [FDP] Verify warning message displays when unsupported permalink structure detected
2. Upgrade from Previous Version
Upgrade Process
- [FDP] Upgrade from previous version via WordPress updater
- [FDP] Verify MU-plugin is updated automatically during upgrade
- [FDP] Verify old MU-plugin file is deleted before new one is created
- [FDP] Verify plugin slug/name mapping is updated (
fdp_plugin_slug_namesoption) - [FDP] Verify existing settings are preserved after upgrade
- [FDP] Verify no data loss in plugin deactivation settings
- [FDP] Verify admin menu cache is rebuilt after upgrade
- [FDP] Verify rewrite rules cache is maintained
- [FDP] Check that
eos_dp_after_upgradefunction runs correctly - [FDP] Verify changelog transient is cleared after upgrade
Settings Migration
- [FDP] Verify all post meta
_eos_deactive_plugins_keyvalues are preserved - [FDP] Verify all option values are preserved (check database)
- [FDP] Verify post types matrix settings are intact
- [FDP] Verify archive settings are intact
- [FDP] Verify custom URL settings are intact
- [FDP] Verify backend settings are intact
Compatibility Check
- [FDP + PRO interaction] Verify FDP PRO remains active after FDP upgrade
- [FDP + PRO interaction] Verify FDP PRO settings are not affected
- [FDP + PRO interaction] Verify FDP PRO version compatibility check works
- [FDP] Verify no conflicts with other active plugins during upgrade
3. Admin UI & Settings
Menu & Navigation
- [FDP] Verify top-level “Freesoul Deactivate Plugins” menu appears
- [FDP] Verify “Plugins Manager” submenu item works
- [FDP] Verify menu can be hidden via user preferences
- [FDP] Verify menu appears under Plugins even if top-level is hidden
- [FDP] Verify navigation menu renders correctly
- [FDP] Verify all menu items are accessible
- [FDP] Verify active menu item highlighting works
- [FDP] Verify menu collapse/expand functionality works
- [FDP] Verify “Refresh FDP Navigation” admin bar link works
Settings Pages Access
- [FDP] Verify Singles page (
eos_dp_menu) loads correctly - [FDP] Verify Post Types page (
eos_dp_by_post_type) loads correctly - [FDP] Verify Archives page (
eos_dp_by_archive) loads correctly - [FDP] Verify Terms Archives page (
eos_dp_by_term_archive) loads correctly - [FDP] Verify Mobile page (
eos_dp_mobile) loads correctly - [FDP] Verify Search page (
eos_dp_search) loads correctly - [FDP] Verify One Place page (
eos_dp_one_place) loads correctly - [FDP] Verify Browser/User Agent page (
eos_dp_browser) loads correctly - [FDP] Verify Custom URLs page (
eos_dp_url) loads correctly - [FDP] Verify Backend URLs page (
eos_dp_admin_url) loads correctly - [FDP] Verify Backend Singles page (
eos_dp_admin) loads correctly - [FDP] Verify Integration page (
eos_dp_integration) loads correctly - [FDP] Verify Firing Order page (
eos_dp_firing_order) loads correctly - [FDP] Verify Reset Settings page (
eos_dp_reset_settings) loads correctly - [FDP] Verify Experiments page (
eos_dp_experiments) loads correctly - [FDP] Verify Help page (
eos_dp_help) loads correctly - [FDP] Verify Add-ons page (
eos_dp_addons) loads correctly - [FDP] Verify Create Plugin page (
eos_dp_create_plugin) loads correctly - [FDP] Verify Favorite Plugins page (
eos_dp_favorite_plugins) loads correctly - [FDP] Verify Roles Manager page (
eos_dp_roles_manager) loads correctly
Page Titles & Headers
- [FDP] Verify browser tab titles are correct for each page
- [FDP] Verify page titles include post type names when applicable
- [FDP] Verify page titles include taxonomy names when applicable
- [FDP] Verify
fdp_page_titlesfilter works correctly
UI Functionality
- [FDP] Verify plugin checkboxes work correctly
- [FDP] Verify “Select all” / “Deselect all” functionality
- [FDP] Verify row-level select all works
- [FDP] Verify column-level select all works
- [FDP] Verify drag-and-drop sorting works (on sortable pages)
- [FDP] Verify save button works and shows success message
- [FDP] Verify AJAX save requests complete successfully
- [FDP] Verify error messages display correctly on save failure
- [FDP] Verify loading indicators appear during AJAX operations
- [FDP] Verify JavaScript console has no errors
Admin Page Cleanup
- [FDP] Verify other plugins’ admin_head actions are removed on FDP pages
- [FDP] Verify other plugins’ admin_footer actions are removed on FDP pages
- [FDP] Verify only allowed scripts/styles load on FDP pages
- [FDP] Verify Content Security Policy headers are set correctly
- [FDP] Verify CSP can be disabled via user preferences
User Preferences
- [FDP] Verify user preferences section appears in user profile
- [FDP] Verify “Show FDP top level admin menu” preference works
- [FDP] Verify “Show metabox” preference works
- [FDP] Verify “Content Security Policy” preference works
- [FDP] Verify preferences can be hidden via
fdp_hide_user_preferencesfilter - [FDP] Verify preferences save correctly
Capabilities & Access Control
- [FDP] Verify users without
activate_pluginscannot access settings - [FDP] Verify users with
fdp_plugins_viewercan view but not edit - [FDP] Verify
eos_dp_settings_capabilityfilter works - [FDP] Verify
eos_dp_user_can_settingsfilter works - [FDP] Verify access denied message displays correctly
4. Plugin Deactivation Logic
Core Deactivation Mechanism
- [FDP] Verify MU-plugin runs before standard plugins load
- [FDP] Verify
option_active_pluginsfilter is applied correctly - [FDP] Verify disabled plugins are removed from active plugins array
- [FDP] Verify FDP itself is never disabled
- [FDP] Verify untouchable plugins cannot be disabled
- [FDP] Verify filters are removed before updating rewrite rules
- [FDP] Verify filters are removed before updating active_plugins option
Priority System
- [FDP] Verify Singles settings override Post Types settings
- [FDP] Verify Singles settings override Archive settings
- [FDP] Verify URL settings override Singles settings
- [FDP] Verify Post Types settings apply when Singles are rows are off
- [FDP] Verify device settings (mobile/desktop) apply correctly
- [FDP] Verify search settings apply correctly
- [FDP] Verify browser/User Agent settings apply correctly
Frontend Deactivation
- [FDP] Verify plugins are disabled on frontend pages
- [FDP] Verify plugins are disabled on frontend posts
- [FDP] Verify plugins are disabled on archive pages
- [FDP] Verify plugins are disabled on term archive pages
- [FDP] Verify plugins are disabled on search results page
- [FDP] Verify plugins are disabled on homepage (when configured)
- [FDP] Verify disabled plugins list appears in console (if debug enabled)
- [FDP] Verify
Disabled-PluginsHTTP header is sent correctly - [FDP] Verify
fdp_frontend_pluginsfilter works
Backend Deactivation
- [FDP PRO] Verify plugins are disabled on admin pages
- [FDP PRO] Verify plugins are disabled on specific admin URLs
- [FDP PRO] Verify plugins are disabled on backend singles pages
- [FDP PRO] Verify FDP admin pages still work when plugins are disabled
- [FDP PRO] Verify admin menu items from disabled plugins are hidden
- [FDP PRO] Verify admin menu cache is used correctly
- [FDP PRO] Verify
fdp_backend_pluginsfilter works
AJAX Deactivation
- [FDP PRO] Verify plugins can be disabled during AJAX requests
- [FDP PRO] Verify AJAX action-specific deactivation works
- [FDP PRO] Verify WooCommerce AJAX (
wc-ajax) is handled correctly - [FDP PRO] Verify
fdp_ajax_pluginsfilter works
Cron Deactivation
- [FDP PRO] Verify plugins can be disabled during cron jobs
- [FDP PRO] Verify cron settings are applied correctly
- [FDP PRO] Verify
eos_dp_cron_active_pluginsfunction works
5. Conditional Rules
Singles (Individual Pages/Posts)
- [FDP] Verify plugin deactivation works for individual pages
- [FDP] Verify plugin deactivation works for individual posts
- [FDP] Verify plugin deactivation works for custom post types
- [FDP] Verify settings save correctly via AJAX
- [FDP] Verify settings save correctly via metabox
- [FDP] Verify inactive post rows use Post Types settings
- [FDP] Verify active post rows use Singles settings
- [FDP] Verify private posts are handled correctly
- [FDP] Verify homepage settings work when
show_on_frontis “page” - [FDP] Verify homepage redirects correctly based on
show_on_frontsetting
Post Types
- [FDP] Verify Post Types settings apply to all posts of that type
- [FDP] Verify Post Types settings override inactive Singles rows
- [FDP] Verify Post Types settings don’t override active Singles rows
- [FDP] Verify “Enable/disable entire row” switch works
- [FDP] Verify locked IDs list is maintained correctly
- [FDP] Verify settings save correctly
Archives
- [FDP] Verify archive settings apply to category archives
- [FDP] Verify archive settings apply to tag archives
- [FDP] Verify archive settings apply to author archives
- [FDP] Verify archive settings apply to date archives
- [FDP] Verify “all archives” settings work correctly
- [FDP] Verify archive URL matching works correctly
- [FDP] Verify archive settings save correctly
Terms Archives
- [FDP] Verify term archive settings apply to specific taxonomy terms
- [FDP] Verify term archive settings work for custom taxonomies
- [FDP] Verify term archive URL matching works correctly
- [FDP] Verify term archive settings save correctly
Custom URLs
- [FDP] Verify URL pattern matching works with exact URLs
- [FDP] Verify URL pattern matching works with wildcard
* - [FDP] Verify URL patterns with query strings work
- [FDP] Verify URL patterns with anchors work
- [FDP] Verify
[home]placeholder is replaced correctly - [FDP] Verify URL priority works (first match wins)
- [FDP PRO] Verify URL settings can be filtered via
fflag (PRO) - [FDP] Verify URL row notes save correctly
- [FDP] Verify URL row copy/paste functionality works
- [FDP] Verify URL row deletion works
Backend URLs
- [FDP] Verify admin URL pattern matching works
- [FDP] Verify admin URL patterns match specific admin pages
- [FDP] Verify admin URL settings save correctly
- [FDP] Verify admin URL deactivation works correctly
Backend Singles
- [FDP PRO] Verify backend singles settings work for specific admin pages
- [FDP PRO] Verify backend singles settings save correctly
- [FDP PRO] Verify theme can be disabled on specific admin pages
- [FDP PRO] Verify backend singles work with admin menu cache
Mobile/Desktop
- [FDP] Verify mobile detection works correctly
- [FDP] Verify plugins are disabled on mobile when configured
- [FDP PRO] Verify plugins are disabled on desktop when configured
- [FDP] Verify device detection uses server-side detection
- [FDP] Verify
eos_dp_is_mobile()function works correctly - [FDP] Verify mobile/desktop settings save correctly
Search
- [FDP] Verify plugins are disabled on search results page
- [FDP] Verify search settings save correctly
- [FDP] Verify search URL matching works correctly
Browser/User Agent
- [FDP] Verify User Agent string matching works
- [FDP] Verify case-insensitive matching works
- [FDP] Verify multiple User Agent patterns work
- [FDP] Verify browser settings save correctly
One Place (Keep Active Only On URLs)
- [FDP PRO] Verify “one place” settings keep plugins active only on matched URLs
- [FDP PRO] Verify plugins are disabled everywhere except matched URLs
- [FDP PRO] Verify URL matching works correctly
- [FDP PRO] Verify one place settings save correctly
Integration Actions
- [FDP] Verify plugins can be disabled during specific action hooks
- [FDP] Verify action hook matching works correctly
- [FDP] Verify integration settings save correctly
Logged Users (PRO)
- [FDP PRO] Verify plugins can be disabled for logged-in users
- [FDP PRO] Verify user condition expressions work correctly
- [FDP PRO] Verify user meta conditions work
- [FDP PRO] Verify user capability conditions work
- [FDP PRO] Verify user role conditions work
- [FDP PRO] Verify complex expressions with AND/OR/NOT work
- [FDP PRO] Verify logged user settings save correctly
POST Requests (PRO)
- [FDP PRO] Verify plugins can be disabled during POST requests
- [FDP PRO] Verify POST action-specific deactivation works
- [FDP PRO] Verify POST request settings save correctly
REST API (PRO)
- [FDP PRO] Verify plugins can be disabled on REST API endpoints
- [FDP PRO] Verify REST API URL matching works
- [FDP PRO] Verify theme can be disabled on REST API
- [FDP PRO] Verify REST API settings save correctly
6. Frontend Behavior
Page Loading
- [FDP] Verify frontend pages load correctly with plugins disabled
- [FDP] Verify no PHP errors when plugins are disabled
- [FDP] Verify page functionality works when non-essential plugins are disabled
- [FDP] Verify critical plugins remain active when needed
- [FDP] Verify disabled plugins don’t load at all (not just deactivated)
- [FDP] Verify
fdp_disabledaction fires when FDP is disabled
URL Matching
- [FDP] Verify URL matching works with permalink structures
- [FDP] Verify URL matching works with translated URLs (WPML/Polylang)
- [FDP] Verify URL matching handles query strings correctly
- [FDP] Verify URL matching handles fragments correctly
- [FDP] Verify
fdp_request_urifilter works
Translation Support
- [FDP] Verify WPML translation URLs are handled correctly
- [FDP] Verify Polylang translation URLs are handled correctly
- [FDP] Verify Transposh translation URLs are handled correctly
- [FDP] Verify language query parameters are handled correctly
- [FDP] Verify translated post IDs are resolved correctly
Preview Mode
- [FDP] Verify preview mode works (
?eos_dp_preview=1) - [FDP] Verify preview shows correct disabled plugins
- [FDP] Verify preview nonce validation works
- [FDP] Verify preview with
js=offparameter disables JavaScript - [FDP] Verify preview button in metabox works
- [FDP] Verify preview button in Singles page works
- [FDP] Verify preview respects current settings
- [FDP] Verify preview doesn’t affect actual page behavior
Debug Mode
- [FDP] Verify debug mode works (
?eos_dp_debug_options=1) - [FDP] Verify debug information displays correctly
- [FDP] Verify disabled plugins list appears in debug output
- [FDP] Verify debug information includes reason for deactivation
- [FDP] Verify debug button works in admin
- [FDP] Verify
EOS_DP_DEBUGconstant enables debug mode - [FDP] Verify debug output appears in console when enabled
- [FDP] Verify
show_disabled_pluginsparameter works
HTTP Headers
- [FDP] Verify
Disabled-Pluginsheader is sent correctly - [FDP] Verify header shows correct count of disabled plugins
- [FDP] Verify header shows “none” when no plugins disabled
- [FDP] Verify header shows reason when FDP is disabled
Theme Replacement
- [FDP] Verify theme can be replaced for previews
- [FDP] Verify theme replacement works with REST API
- [FDP] Verify theme replacement doesn’t affect normal pages
- [FDP] Verify
eos_dp_replace_themefunction works
7. Backend / Admin Behavior
Admin Pages
- [FDP PRO] Verify admin pages load correctly
- [FDP PRO] Verify admin pages work when plugins are disabled
- [FDP PRO] Verify admin menu items from disabled plugins are hidden
- [FDP PRO] Verify admin menu cache is used correctly
- [FDP PRO] Verify admin menu cache is rebuilt when needed
- [FDP PRO] Verify admin submenu items are handled correctly
- [FDP PRO] Verify admin page hooks are cached correctly
Admin Menu Management
- [FDP PRO] Verify admin menu is rebuilt after plugin activation/deactivation
- [FDP PRO] Verify admin menu shows correct update counts (plugins, comments)
- [FDP PRO] Verify WooCommerce order count appears correctly
- [FDP PRO] Verify Yoast SEO notification count appears correctly
- [FDP PRO] Verify
fdp_woo_order_countfilter works - [FDP PRO] Verify
fdp_yoast_notification_countfilter works
Metabox
- [FDP] Verify FDP metabox appears on post edit screens
- [FDP] Verify FDP metabox appears on page edit screens
- [FDP] Verify FDP metabox appears on custom post type edit screens
- [FDP] Verify FDP metabox doesn’t appear on attachments
- [FDP] Verify metabox can be hidden via user preferences
- [FDP] Verify metabox shows correct plugin states
- [FDP] Verify metabox lock/unlock functionality works
- [FDP] Verify metabox links to Singles and Post Types pages work
- [FDP] Verify metabox preview buttons work
- [FDP] Verify metabox saves correctly with post
- [FDP] Verify metabox respects Post Types settings when locked
AJAX Functionality
- [FDP] Verify AJAX save requests work correctly
- [FDP] Verify AJAX nonce validation works
- [FDP] Verify AJAX error handling works
- [FDP] Verify
fdp_before_ajax_requestaction fires - [FDP] Verify AJAX responses are correct
- [FDP] Verify AJAX loading indicators work
Settings Import/Export (PRO)
- [FDP PRO] Verify settings can be exported
- [FDP PRO] Verify settings can be imported
- [FDP PRO] Verify imported settings are applied correctly
- [FDP PRO] Verify import validates data correctly
8. Performance & Caching Considerations
Rewrite Rules
- [FDP] Verify rewrite rules are cached correctly
- [FDP] Verify rewrite rules are rebuilt when needed
- [FDP] Verify rewrite rules warning appears when flushed during request
- [FDP] Verify
fdp_flush_rewrite_rulesaction fires correctly - [FDP] Verify rewrite rules monitoring works
- [FDP] Verify rewrite rules are updated after theme activation
- [FDP] Verify rewrite rules are updated after plugin activation/deactivation
Navigation Cache
- [FDP] Verify navigation menu is cached
- [FDP] Verify navigation cache is cleared when needed
- [FDP] Verify navigation cache rebuilds after plugin changes
- [FDP] Verify navigation cache rebuilds after language changes
- [FDP] Verify “Refresh FDP Navigation” clears cache correctly
Option Autoloading
- [FDP PRO] Verify autoloaded options are set correctly
- [FDP PRO] Verify
fdp_autoloaded_optionsfilter works - [FDP PRO] Verify frequently accessed options are autoloaded
- [FDP PRO] Verify database queries are minimized
Plugin Slug/Name Mapping
- [FDP] Verify plugin slug/name mapping is updated after plugin activation
- [FDP] Verify plugin slug/name mapping is updated after upgrade
- [FDP] Verify mapping is used correctly throughout admin interface
9. Compatibility Checks
WooCommerce
- [FDP] Verify WooCommerce pages work with plugins disabled
- [FDP] Verify WooCommerce checkout works correctly
- [FDP] Verify WooCommerce cart works correctly
- [FDP] Verify WooCommerce product pages work correctly
- [FDP] Verify WooCommerce AJAX requests work correctly
- [FDP] Verify WooCommerce order processing works
- [FDP] Verify WooCommerce admin menu counts work correctly
- [FDP] Verify
woocommerce_include_processing_order_count_in_menufilter works
Page Builders
- [FDP] Verify Elementor preview works correctly
- [FDP] Verify Elementor editor works with plugins disabled
- [FDP] Verify Beaver Builder works correctly
- [FDP] Verify Divi Builder works correctly
- [FDP] Verify Gutenberg editor works correctly
- [FDP] Verify page builder iframes are handled correctly
Translation Plugins
- [FDP] Verify WPML compatibility works
- [FDP] Verify Polylang compatibility works
- [FDP] Verify Transposh compatibility works
- [FDP] Verify language switchers are hidden on FDP pages
- [FDP] Verify translated post matching works
Caching Plugins
- [FDP] Verify compatibility with WP Super Cache
- [FDP] Verify compatibility with W3 Total Cache
- [FDP] Verify compatibility with WP Rocket
- [FDP] Verify cache is bypassed for preview mode
- [FDP] Verify cache respects disabled plugins
Security Plugins
- [FDP] Verify compatibility with Wordfence
- [FDP] Verify compatibility with iThemes Security
- [FDP] Verify compatibility with Sucuri
- [FDP] Verify security plugins don’t block FDP functionality
Query Monitor
- [FDP] Verify Query Monitor integration works
- [FDP] Verify Query Monitor is disabled on FDP pages
- [FDP] Verify Query Monitor debug output works
Code Profiler
- [FDP] Verify Code Profiler integration works
- [FDP] Verify Code Profiler mode disables plugins correctly
- [FDP] Verify Code Profiler settings save correctly
10. Error Handling & Edge Cases
Fatal Error Detection
- [FDP] Verify fatal errors are detected correctly
- [FDP] Verify fatal error notices appear in admin
- [FDP] Verify fatal error notices can be dismissed
- [FDP] Verify problematic plugins are disabled on FDP pages automatically
- [FDP] Verify fatal error information is logged correctly
- [FDP] Verify
fdp_plugin_disabledd_fatal_errortransient works
Emergency Modes
- [FDP] Verify
FDP_OFFconstant disables FDP - [FDP] Verify
FDP_EMERGENCY_LOG_ADMINworks - [FDP] Verify
FDP_EMERGENCY_ADMIN_PLUGINSworks - [FDP] Verify
FDP_EMERGENCY_ADMIN_THEME_OFFworks - [FDP] Verify emergency mode file loads correctly
Edge Cases
- [FDP] Verify empty plugin lists are handled correctly
- [FDP] Verify invalid post IDs are handled correctly
- [FDP] Verify missing post meta is handled correctly
- [FDP] Verify malformed URL patterns are handled correctly
- [FDP] Verify very long URL patterns are handled correctly
- [FDP] Verify special characters in URLs are handled correctly
- [FDP] Verify posts with same slug (different post types) are handled
- [FDP] Verify child pages with same slug as parent are handled
- [FDP] Verify homepage detection works correctly
- [FDP] Verify archive detection works for custom taxonomies
Missing Dependencies
- [FDP] Verify behavior when required functions are missing
- [FDP] Verify behavior when required constants are missing
- [FDP] Verify behavior when database options are corrupted
- [FDP] Verify behavior when MU-plugin is missing but main plugin is active
- [FDP] Verify
fdp_disabledaction fires when FDP is missing
Development Mode
- [FDP PRO] Verify development mode works (
dev_modesetting) - [FDP PRO] Verify development mode disables FDP on frontend without
fdp-devparameter - [FDP PRO] Verify development mode allows access with correct
fdp-devparameter - [FDP PRO] Verify
FDP_DEV_MODEconstant works
11. Uninstall / Cleanup
Plugin Deactivation
- [FDP] Verify deactivation removes MU-plugin file
- [FDP] Verify deactivation clears navigation cache
- [FDP] Verify deactivation doesn’t remove settings (by design)
- [FDP] Verify deactivation doesn’t cause errors
- [FDP] Verify
eos_dp_deactivate_pluginfunction runs correctly
Settings Cleanup (if uninstalling)
- [FDP] Verify uninstall removes all FDP options (if uninstall hook exists)
- [FDP] Verify uninstall removes all FDP post meta (if uninstall hook exists)
- [FDP] Verify uninstall removes all FDP user meta (if uninstall hook exists)
- [FDP] Verify uninstall removes all FDP transients (if uninstall hook exists)
- [FDP] Verify uninstall removes MU-plugin file
- [FDP] Verify uninstall doesn’t affect other plugins’ data
File Cleanup
- [FDP] Verify MU-plugin directory is cleaned up if empty
- [FDP] Verify no orphaned files remain after uninstall
- [FDP] Verify cache files are removed
12. Regression Smoke Tests
Critical Paths
- [FDP] Verify basic plugin deactivation on a single page works
- [FDP] Verify basic plugin deactivation on a single post works
- [FDP] Verify Post Types settings apply correctly
- [FDP] Verify Archive settings apply correctly
- [FDP] Verify Custom URL settings apply correctly
- [FDP] Verify settings save and persist correctly
- [FDP] Verify preview mode works
- [FDP] Verify admin interface loads correctly
Known Issues (Check Previous Release Notes)
- [FDP] Verify rewrite rules warning doesn’t appear unnecessarily
- [FDP] Verify admin menu cache doesn’t cause issues
- [FDP] Verify URL matching works with all permalink structures
- [FDP] Verify translation plugin compatibility is maintained
- [FDP] Verify WooCommerce compatibility is maintained
Browser Compatibility
- [FDP] Verify admin interface works in Chrome
- [FDP] Verify admin interface works in Firefox
- [FDP] Verify admin interface works in Safari
- [FDP] Verify admin interface works in Edge
- [FDP] Verify JavaScript functionality works in all browsers
- [FDP] Verify CSS styling is correct in all browsers
PHP Version Compatibility
- [FDP] Verify plugin works on PHP 7.2
- [FDP] Verify plugin works on PHP 7.3
- [FDP] Verify plugin works on PHP 7.4
- [FDP] Verify plugin works on PHP 8.0
- [FDP] Verify plugin works on PHP 8.1
- [FDP] Verify plugin works on PHP 8.2
- [FDP] Verify no deprecated PHP functions are used
WordPress Version Compatibility
- [FDP] Verify plugin works on WordPress 5.9
- [FDP] Verify plugin works on WordPress 6.0
- [FDP] Verify plugin works on WordPress 6.1
- [FDP] Verify plugin works on WordPress 6.2
- [FDP] Verify plugin works on WordPress 6.3
- [FDP] Verify plugin works on WordPress 6.4
- [FDP] Verify plugin works on latest WordPress version
Multisite Compatibility
- [FDP] Verify plugin works on multisite installations
- [FDP] Verify settings are site-specific
- [FDP] Verify MU-plugin is created per site
- [FDP] Verify network activation is prevented correctly
High Plugin Count
- [FDP] Verify plugin works with 50+ active plugins
- [FDP] Verify admin interface performance is acceptable
- [FDP] Verify page load performance is acceptable
- [FDP] Verify memory usage is reasonable
Complex Scenarios
- [FDP] Verify multiple conditional rules work together correctly
- [FDP] Verify priority system works with all rule types
- [FDP] Verify URL patterns with multiple wildcards work
- [FDP] Verify settings with many posts/pages save correctly
- [FDP] Verify settings with many plugins save correctly
13. FDP PRO Integration Tests
PRO Activation
- [FDP + PRO interaction] Verify FDP PRO activates correctly when FDP is active
- [FDP + PRO interaction] Verify FDP PRO MU-plugin loads correctly
- [FDP + PRO interaction] Verify FDP PRO version check works
- [FDP + PRO interaction] Verify FDP PRO license validation works
- [FDP + PRO interaction] Verify FDP PRO license expiration is detected
PRO Features Integration
- [FDP + PRO interaction] Verify PRO features appear in FDP admin
- [FDP + PRO interaction] Verify PRO menu items appear correctly
- [FDP + PRO interaction] Verify PRO settings pages load correctly
- [FDP + PRO interaction] Verify PRO filters work with FDP filters
- [FDP + PRO interaction] Verify
fdp_active_by_addonfilter works
14. Additional Features
Create Plugin
- [FDP] Verify plugin creation works correctly
- [FDP] Verify created plugin has correct structure
- [FDP] Verify created plugin can be activated
- [FDP] Verify created plugin can be edited
- [FDP] Verify
eos_dp_after_create_pluginaction fires - [FDP] Verify plugin name uniqueness is handled
Favorite Plugins
- [FDP] Verify favorite plugins can be marked
- [FDP] Verify favorite plugins appear in filtered views
- [FDP] Verify favorite plugins can be unmarked
- [FDP] Verify favorite plugins persist across sessions
Firing Order
- [FDP] Verify firing order page displays correctly
- [FDP] Verify firing order can be changed
- [FDP] Verify firing order settings save correctly
- [FDP] Verify firing order affects plugin loading
Reset Settings
- [FDP] Verify reset settings page works
- [FDP] Verify reset removes all FDP settings
- [FDP] Verify reset confirmation works
- [FDP] Verify reset doesn’t affect other plugins
Site Health
- [FDP] Verify Site Health integration works
- [FDP] Verify rewrite rules test appears
- [FDP] Verify plugin conflicts test appears
- [FDP] Verify Site Health tests run correctly
Add-ons System
- [FDP] Verify FDP add-ons are detected correctly
- [FDP] Verify add-ons load correctly
- [FDP] Verify add-ons can modify plugin lists
- [FDP] Verify add-ons page displays correctly
Testing Notes
Test Environment Setup
- Use a staging site that mirrors production
- Test with realistic data (multiple posts, pages, plugins)
- Test with various user roles
- Test with different themes
- Test with common plugin combinations
Critical Test Scenarios
- Fresh installation – Ensure new users can install and use FDP
- Upgrade path – Ensure existing users can upgrade without issues
- Complex rules – Test multiple conditional rules working together
- Edge cases – Test unusual scenarios (same slugs, special characters, etc.)
- Performance – Ensure no performance regressions
- Compatibility – Ensure compatibility with popular plugins/themes
Known Limitations to Test
- Plain permalinks are not supported (should show warning)
- Network-wide activation is not supported (should show error)
- Some features require PRO version (should show appropriate messages)
Reporting Issues
When issues are found, document:
- Steps to reproduce
- Expected behavior
- Actual behavior
- WordPress version
- PHP version
- Active plugins list
- FDP version
- FDP PRO version (if applicable)
- Browser and version
- Screenshots if applicable
- Error messages/logs
