Headers & Footers Plugin - Comprehensive Test'; echo '
Test Date: ' . date('Y-m-d H:i:s') . '
'; $all_passed = true; // Test 1: Include Classes echo '✓ Classes loaded successfully
'; } catch (Exception $e) { echo '✗ Failed to load classes: ' . $e->getMessage() . '
'; $all_passed = false; } // Test 2: Database Table Creation echo '✓ Table exists: ' . $table_name . '
'; } else { echo '✗ Table does not exist!
'; $all_passed = false; } } catch (Exception $e) { echo '✗ Database error: ' . $e->getMessage() . '
'; $all_passed = false; } // Test 3: Insert Snippet echo '✓ Snippet created with ID: ' . $result . '
'; } else { echo '✗ Failed to create snippet
'; global $wpdb; echo 'Error: ' . $wpdb->last_error . '
'; $all_passed = false; } } catch (Exception $e) { echo '✗ Insert error: ' . $e->getMessage() . '
'; $all_passed = false; } // Test 4: Retrieve Snippet echo '✓ Snippet retrieved successfully
'; echo '✗ Failed to retrieve snippet
'; $all_passed = false; } } catch (Exception $e) { echo '✗ Retrieve error: ' . $e->getMessage() . '
'; $all_passed = false; } } else { echo '⚠ Skipped (no test snippet ID)
'; } // Test 5: Update Snippet echo '✓ Snippet updated successfully
'; } else { echo '✗ Update did not persist
'; $all_passed = false; } } else { echo '✗ Update failed
'; global $wpdb; echo 'Error: ' . $wpdb->last_error . '
'; $all_passed = false; } } else { echo '✗ Snippet not found for update
'; $all_passed = false; } } catch (Exception $e) { echo '✗ Update error: ' . $e->getMessage() . '
'; $all_passed = false; } } else { echo '⚠ Skipped (no test snippet ID)
'; } // Test 6: Get All Snippets echo '✓ Retrieved ' . count($snippets) . ' snippet(s)
'; if (!empty($snippets)) { echo '| ID | Title | Location |
|---|---|---|
| ' . $s->get_id() . ' | '; echo '' . esc_html($s->get_title()) . ' | '; echo '' . $s->get_location() . ' | '; echo '
✗ Get all error: ' . $e->getMessage() . '
'; $all_passed = false; } // Test 7: Delete Snippet echo '✓ Snippet deleted successfully
'; } else { echo '✗ Snippet still exists after delete
'; $all_passed = false; } } else { echo '✗ Delete failed
'; global $wpdb; echo 'Error: ' . $wpdb->last_error . '
'; $all_passed = false; } } else { echo '✗ Snippet not found for delete
'; $all_passed = false; } } catch (Exception $e) { echo '✗ Delete error: ' . $e->getMessage() . '
'; $all_passed = false; } } else { echo '⚠ Skipped (no test snippet ID)
'; } // Test 8: Test with Different Locations echo '✓ Created ' . $location . ' snippet (ID: ' . $result . ')
'; } else { echo '✗ Failed to create ' . $location . ' snippet
'; $all_passed = false; } } } catch (Exception $e) { echo '✗ Location test error: ' . $e->getMessage() . '
'; $all_passed = false; } // Test 9: Get Snippets by Location echo 'Header snippets: ' . count($headers) . '
'; echo 'Body snippets: ' . count($bodies) . '
'; echo 'Footer snippets: ' . count($footers) . '
'; echo '✓ Location queries work correctly
'; } catch (Exception $e) { echo '✗ Location query error: ' . $e->getMessage() . '
'; $all_passed = false; } // Clean up test snippets echo '✓ Cleaned up ' . $deleted . ' test snippet(s)
'; } // Delete location test snippets foreach ($location_test_ids as $location => $id) { $wpdb->delete($table_name, array('id' => $id), array('%d')); } echo '✓ Cleaned up location test snippets
'; } catch (Exception $e) { echo '✗ Cleanup error: ' . $e->getMessage() . '
'; } // Final Result echo '✓ ALL TESTS PASSED!
'; } else { echo '✗ SOME TESTS FAILED
'; } echo '