Date: ' . date('Y-m-d H:i:s') . '
PHP Version: ' . PHP_VERSION . '
'; $results = array(); $all_passed = true; // ============================================ // TEST 1: Plugin Files Exist // ============================================ echo '✓ ' . $file . ' exists (' . filesize($full_path) . ' bytes)
'; } else { echo '✗ ' . $file . ' NOT FOUND
'; $all_passed = false; } } echo '✓ ' . $const . ' = ' . htmlspecialchars($value) . '
'; } else { echo '✗ ' . $const . ' NOT DEFINED
'; $all_passed = false; } } echo '✓ Table exists: ' . $table_name . '
'; // Check table structure $columns = $wpdb->get_results("DESCRIBE $table_name", ARRAY_A); echo 'Table Structure:
'; echo '| Field | Type | Null | Key | Default |
|---|---|---|---|---|
| ' . $col['Field'] . ' | '; echo '' . $col['Type'] . ' | '; echo '' . $col['Null'] . ' | '; echo '' . ($col['Key'] ? $col['Key'] : '-') . ' | '; echo '' . ($col['Default'] ? $col['Default'] : 'NULL') . ' | '; echo '
Current snippets: ' . $count . '
'; } else { echo '✗ Table does NOT exist!
'; $all_passed = false; } } catch (Exception $e) { echo '✗ Database error: ' . $e->getMessage() . '
'; $all_passed = false; } echo '✓ Snippet created with ID: ' . $insert_id . '
'; $test_results['create'] = $insert_id; } else { echo '✗ Failed to create snippet
'; echo 'Error: ' . $wpdb->last_error . '
'; $all_passed = false; $test_results['create'] = false; } } catch (Exception $e) { echo '✗ Create error: ' . $e->getMessage() . '
'; $all_passed = false; $test_results['create'] = false; } // READ echo '✓ Snippet retrieved successfully
'; echo '✗ Failed to retrieve snippet
'; $all_passed = false; $test_results['read'] = false; } } catch (Exception $e) { echo '✗ Read error: ' . $e->getMessage() . '
'; $all_passed = false; $test_results['read'] = false; } } else { echo '⚠ Skipped (create failed)
'; $test_results['read'] = false; } // UPDATE echo '✓ Snippet updated successfully
'; $test_results['update'] = true; } else { echo '✗ Title mismatch after update
'; $all_passed = false; $test_results['update'] = false; } } else { echo '✗ Update failed
'; echo 'Error: ' . $wpdb->last_error . '
'; $all_passed = false; $test_results['update'] = false; } } else { echo '✗ Snippet not found for update
'; $all_passed = false; $test_results['update'] = false; } } catch (Exception $e) { echo '✗ Update error: ' . $e->getMessage() . '
'; $all_passed = false; $test_results['update'] = false; } } else { echo '⚠ Skipped (create failed)
'; $test_results['update'] = false; } // DELETE echo '✓ Snippet deleted successfully
'; $test_results['delete'] = true; } else { echo '✗ Snippet still exists after delete
'; $all_passed = false; $test_results['delete'] = false; } } else { echo '✗ Delete operation failed
'; echo 'Error: ' . $wpdb->last_error . '
'; $all_passed = false; $test_results['delete'] = false; } } else { echo '✗ Snippet not found for delete
'; $all_passed = false; $test_results['delete'] = false; } } catch (Exception $e) { echo '✗ Delete error: ' . $e->getMessage() . '
'; $all_passed = false; $test_results['delete'] = false; } } else { echo '⚠ Skipped (create failed)
'; $test_results['delete'] = false; } echo '✓ PC_HFAP_Admin class exists
'; // Check menu registration global $menu; $menu_found = false; foreach ($menu as $item) { if (strpos($item[0], 'Headers & Footers') !== false) { echo '✓ Admin menu item found: ' . $item[0] . '
'; $menu_found = true; break; } } if (!$menu_found) { echo '⚠ Admin menu item not found in global $menu (may be hidden)
'; } } else { echo '⚠ Admin class not instantiated (may be in admin only)
'; } // Check public hooks $hooks_to_check = array( 'wp_head', 'wp_body_open', 'wp_footer', 'wp_enqueue_scripts' ); echo 'Public hooks registered:
'; foreach ($hooks_to_check as $hook) { $callbacks = $wp_filter[$hook] ?? array(); $found = false; foreach ($callbacks as $priority => $callbacks_list) { foreach ($callbacks_list as $callback) { if (is_array($callback[0] ?? null) && strpos(get_class($callback[0][0] ?? ''), 'PC_HFAP') !== false) { echo '✓ ' . $hook . ' has PC_HFAP callback
'; $found = true; break 2; } } } if (!$found) { echo '⚠ ' . $hook . ' - PC_HFAP callback not detected (may be normal)
'; } } echo 'Héllo Wörld 你好
', 'Ampersand' => 'Coffee & Tea
', ); foreach ($special_tests as $type => $code) { $data = array( 'title' => 'Special Chars Test - ' . $type, 'location' => 'header', 'code' => $code ); $snippet = new PC_HFAP_Snippet($data); $insert_id = $snippet->save(); if ($insert_id) { $retrieved = PC_HFAP_Snippet::get_by_id($insert_id); if ($retrieved && $retrieved->get_code() === $code) { echo '✓ ' . $type . ' - preserved correctly
'; } else { echo '✗ ' . $type . ' - code mismatch
'; echo 'Expected: ' . htmlspecialchars($code) . ''; echo '
Got: ' . htmlspecialchars($retrieved->get_code() ?? 'NULL') . ''; $all_passed = false; } // Clean up $retrieved->delete(); } else { echo '
✗ ' . $type . ' - insert failed
'; $all_passed = false; } } echo 'Simulating form submission with:
'; echo '✓ Nonce verification: PASSED
'; // Create snippet $data = array( 'title' => sanitize_text_field($form_data['pc_hfap_title']), 'location' => in_array($form_data['pc_hfap_location'], array('header', 'footer', 'body')) ? $form_data['pc_hfap_location'] : 'header', 'code' => wp_unslash($form_data['pc_hfap_code']) ); $snippet = new PC_HFAP_Snippet($data); $result = $snippet->save(); if ($result) { echo '✓ Form simulation: Snippet saved (ID: ' . $result . ')
'; // Clean up $snippet->delete(); } else { echo '✗ Form simulation: Save failed
'; $all_passed = false; } } else { echo '✗ Nonce verification: FAILED
'; $all_passed = false; } echo 'Test Results:
'; echo '