Headers & Footers Plugin - Final Verification

Date: ' . date('Y-m-d H:i:s') . '

PHP Version: ' . PHP_VERSION . '

'; $results = array(); $all_passed = true; // ============================================ // TEST 1: Plugin Files Exist // ============================================ echo '
'; echo '

TEST 1: Plugin Files Verification

'; $required_files = array( 'pc-headers-and-footers-and-ad-pixels-5ake.php', 'includes/class-database.php', 'includes/class-snippet.php', 'admin/class-admin.php', 'public/class-public.php' ); foreach ($required_files as $file) { $full_path = dirname(__FILE__) . '/' . $file; if (file_exists($full_path)) { echo '

✓ ' . $file . ' exists (' . filesize($full_path) . ' bytes)

'; } else { echo '

✗ ' . $file . ' NOT FOUND

'; $all_passed = false; } } echo '
'; // ============================================ // TEST 2: Plugin Constants // ============================================ echo '
'; echo '

TEST 2: Plugin Constants

'; $constants = array( 'PC_HFAP_VERSION', 'PC_HFAP_PLUGIN_DIR', 'PC_HFAP_PLUGIN_URL', 'PC_HFAP_PLUGIN_BASENAME' ); foreach ($constants as $const) { if (defined($const)) { $value = constant($const); if (strlen($value) > 50) { $value = substr($value, 0, 50) . '...'; } echo '

✓ ' . $const . ' = ' . htmlspecialchars($value) . '

'; } else { echo '

✗ ' . $const . ' NOT DEFINED

'; $all_passed = false; } } echo '
'; // ============================================ // TEST 3: Database Table // ============================================ echo '
'; echo '

TEST 3: Database Table

'; try { PC_HFAP_Database::create_tables(); global $wpdb; $table_name = PC_HFAP_Database::get_table_name(); $table_exists = $wpdb->get_var($wpdb->prepare('SHOW TABLES LIKE %s', $table_name)); if ($table_name === $table_exists) { echo '

✓ Table exists: ' . $table_name . '

'; // Check table structure $columns = $wpdb->get_results("DESCRIBE $table_name", ARRAY_A); echo '

Table Structure:

'; echo ''; echo ''; foreach ($columns as $col) { echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
FieldTypeNullKeyDefault
' . $col['Field'] . '' . $col['Type'] . '' . $col['Null'] . '' . ($col['Key'] ? $col['Key'] : '-') . '' . ($col['Default'] ? $col['Default'] : 'NULL') . '
'; // Count existing snippets $count = $wpdb->get_var("SELECT COUNT(*) FROM $table_name"); 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 '
'; // ============================================ // TEST 4: CRUD Operations // ============================================ echo '
'; echo '

TEST 4: CRUD Operations

'; $test_results = array(); // CREATE echo '

Create Snippet

'; try { $data = array( 'title' => 'Verification Test - ' . time(), 'location' => 'header', 'code' => '' ); $snippet = new PC_HFAP_Snippet($data); $insert_id = $snippet->save(); if ($insert_id) { 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 '

Read Snippet

'; if ($test_results['create']) { try { $retrieved = PC_HFAP_Snippet::get_by_id($test_results['create']); if ($retrieved && $retrieved->get_id()) { echo '

✓ Snippet retrieved successfully

'; echo ''; $test_results['read'] = true; } else { 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 '

Update Snippet

'; if ($test_results['create']) { try { $snippet = PC_HFAP_Snippet::get_by_id($test_results['create']); if ($snippet) { $new_title = 'Updated Title - ' . time(); $new_code = ''; $snippet->set_title($new_title); $snippet->set_code($new_code); $update_result = $snippet->save(); if ($update_result !== false) { // Verify update $updated = PC_HFAP_Snippet::get_by_id($test_results['create']); if ($updated->get_title() === $new_title) { 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 '

Delete Snippet

'; if ($test_results['create']) { try { $snippet = PC_HFAP_Snippet::get_by_id($test_results['create']); if ($snippet) { $delete_result = $snippet->delete(); if ($delete_result) { // Verify deletion $deleted = PC_HFAP_Snippet::get_by_id($test_results['create']); if (!$deleted) { 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 '
'; // ============================================ // TEST 5: WordPress Hooks // ============================================ echo '
'; echo '

TEST 5: WordPress Hooks

'; // Check if admin class is instantiated global $pc_hfap_admin; if (isset($pc_hfap_admin) || class_exists('PC_HFAP_Admin')) { 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 '
'; // ============================================ // TEST 6: Code with Special Characters // ============================================ echo '
'; echo '

TEST 6: Special Character Handling

'; $special_tests = array( 'JavaScript' => '', 'CSS' => '', 'HTML Comment' => '', 'Quotes' => '
Test
', 'Unicode' => '

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 '
'; // ============================================ // TEST 7: Admin Form Simulation // ============================================ echo '
'; echo '

TEST 7: Admin Form Simulation

'; $form_data = array( 'pc_hfap_title' => 'Form Test Snippet ' . time(), 'pc_hfap_location' => 'footer', 'pc_hfap_code' => '', 'pc_hfap_nonce' => wp_create_nonce('pc_hfap_save_snippet'), 'submit_snippet' => '1' ); echo '

Simulating form submission with:

'; echo ''; // Verify nonce if (wp_verify_nonce($form_data['pc_hfap_nonce'], 'pc_hfap_save_snippet')) { 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 '
'; // ============================================ // FINAL SUMMARY // ============================================ echo '
'; echo '

FINAL SUMMARY

'; echo '

Test Results:

'; echo ''; if ($all_passed) { echo '

✓ ALL TESTS PASSED - PLUGIN IS WORKING CORRECTLY

'; } else { echo '

✗ SOME TESTS FAILED - REVIEW RESULTS ABOVE

'; } echo '
'; echo '

Quick Links

'; echo ''; echo '';