Files
shopify-ai-backup/chat/templates/headers and footers/pc-head-and-foot/ultimate-test.php
2026-02-09 18:09:12 +00:00

197 lines
5.9 KiB
PHP

<?php
/**
* ULTIMATE PLUGIN TEST
*/
require_once dirname(__FILE__) . '/../../../../wp-load.php';
header('Content-Type: text/html; charset=utf-8');
echo '<!DOCTYPE html>
<html>
<head>
<title>Ultimate Plugin Test</title>
<style>
body{font-family:sans-serif;max-width:800px;margin:40px auto;padding:20px}
h1{color:#23282d}
.test{padding:15px;margin:10px 0;border-radius:5px}
.pass{background:#d4edda;color:#155724;border:1px solid #c3e6cb}
.fail{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}
.info{background:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}
</style>
</head>
<body>
<h1>Headers & Footers Plugin - Ultimate Test</h1>
<p>WordPress: ' . get_bloginfo('version') . ' | PHP: ' . PHP_VERSION . '</p>';
$all_passed = true;
$start_time = microtime(true);
// TEST 1: Files
echo '<div class="test info"><strong>TEST 1: Plugin Files</strong></div>';
$files = array(
'Main plugin' => plugin_dir_path(__FILE__) . 'pc-headers-and-footers-and-ad-pixels-5ake.php',
'Database class' => dirname(__FILE__) . '/includes/class-database.php',
'Snippet class' => dirname(__FILE__) . '/includes/class-snippet.php',
'Admin class' => dirname(__FILE__) . '/admin/class-admin.php',
'Public class' => dirname(__FILE__) . '/public/class-public.php',
);
foreach ($files as $name => $path) {
if (file_exists($path)) {
echo "<p class='pass'>OK: $name exists</p>";
} else {
echo "<p class='fail'>FAIL: $name MISSING!</p>";
$all_passed = false;
}
}
// TEST 2: Classes
echo '<div class="test info"><strong>TEST 2: Classes</strong></div>';
if (class_exists('PC_HFAP_Database')) {
echo "<p class='pass'>OK: PC_HFAP_Database class exists</p>";
} else {
echo "<p class='fail'>FAIL: PC_HFAP_Database class not found</p>";
$all_passed = false;
}
if (class_exists('PC_HFAP_Snippet')) {
echo "<p class='pass'>OK: PC_HFAP_Snippet class exists</p>";
} else {
echo "<p class='fail'>FAIL: PC_HFAP_Snippet class not found</p>";
$all_passed = false;
}
// TEST 3: Database
echo '<div class="test info"><strong>TEST 3: Database Table</strong></div>';
try {
global $wpdb;
PC_HFAP_Database::create_tables();
$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 "<p class='pass'>OK: Table \'$table_name\' exists</p>";
$count = $wpdb->get_var("SELECT COUNT(*) FROM $table_name");
echo "<p class='info'>Current snippets: $count</p>";
} else {
echo "<p class='fail'>FAIL: Table does not exist!</p>";
$all_passed = false;
}
} catch (Exception $e) {
echo "<p class='fail'>FAIL: Database error: " . $e->getMessage() . '</p>';
$all_passed = false;
}
// TEST 4: CRUD
echo '<div class="test info"><strong>TEST 4: CRUD Operations</strong></div>';
$test_id = 0;
// CREATE
try {
$data = array(
'title' => 'Ultimate Test ' . time(),
'location' => 'header',
'code' => '<script>/* Test */</script>'
);
$snippet = new PC_HFAP_Snippet($data);
$result = $snippet->save();
if ($result) {
$test_id = $result;
echo "<p class='pass'>OK: CREATE - Snippet ID $result created</p>";
} else {
echo "<p class='fail'>FAIL: CREATE - Failed to create snippet</p>";
echo "<p>Error: " . $wpdb->last_error . '</p>';
$all_passed = false;
}
} catch (Exception $e) {
echo "<p class='fail'>FAIL: CREATE Exception: " . $e->getMessage() . '</p>';
$all_passed = false;
}
// READ
if ($test_id > 0) {
try {
$snippet = PC_HFAP_Snippet::get_by_id($test_id);
if ($snippet && $snippet->get_id()) {
echo "<p class='pass'>OK: READ - Retrieved snippet</p>";
} else {
echo "<p class='fail'>FAIL: READ - Could not retrieve</p>";
$all_passed = false;
}
} catch (Exception $e) {
echo "<p class='fail'>FAIL: READ Exception</p>";
$all_passed = false;
}
// UPDATE
try {
$snippet = PC_HFAP_Snippet::get_by_id($test_id);
if ($snippet) {
$snippet->set_title('Updated ' . time());
$snippet->set_code('<style>/* Updated */</style>');
$update_result = $snippet->save();
if ($update_result !== false) {
echo "<p class='pass'>OK: UPDATE - Snippet updated</p>";
} else {
echo "<p class='fail'>FAIL: UPDATE - Failed</p>";
$all_passed = false;
}
}
} catch (Exception $e) {
echo "<p class='fail'>FAIL: UPDATE Exception</p>";
$all_passed = false;
}
// DELETE
try {
$snippet = PC_HFAP_Snippet::get_by_id($test_id);
if ($snippet) {
$delete_result = $snippet->delete();
if ($delete_result) {
echo "<p class='pass'>OK: DELETE - Snippet deleted</p>";
} else {
echo "<p class='fail'>FAIL: DELETE - Failed</p>";
$all_passed = false;
}
}
} catch (Exception $e) {
echo "<p class='fail'>FAIL: DELETE Exception</p>";
$all_passed = false;
}
} else {
echo "<p class='fail'>FAIL: SKIPPED READ/UPDATE/DELETE (no ID)</p>";
$all_passed = false;
}
// FINAL
$end_time = microtime(true);
$duration = round(($end_time - $start_time) * 1000, 2);
echo '<hr>';
echo '<div class="test" style="background:#23282d;color:white;text-align:center">';
echo '<h2>COMPLETED IN ' . $duration . 'ms</h2>';
if ($all_passed) {
echo '<h1 style="color:#28a745">ALL TESTS PASSED</h1>';
} else {
echo '<h1 style="color:#dc3545">SOME TESTS FAILED</h1>';
}
echo '</div>';
echo '<h3>Quick Links</h3>';
echo '<ul>';
echo '<li><a href="' . admin_url('admin.php?page=pc-hfap-snippets') . '">Admin Page</a></li>';
echo '<li><a href="' . admin_url('admin.php?page=pc-hfap-add-snippet') . '">Add New</a></li>';
echo '</ul>';
echo '</body></html>';