Files

215 lines
8.0 KiB
PHP

<?php
declare(strict_types=1);
require_once __DIR__ . '/ninjamail.class.php';
/**
* ninjaMail API teljes körű tesztelő szkript
*
* Anonimizált tesztkörnyezet. Valós környezetben a konfiguráció
* a NINJAMAIL_HOST és NINJAMAIL_KEY környezeti változókon keresztül
* vagy az alábbi változók megadásával állítható be.
*/
$host = getenv('NINJAMAIL_HOST') ?: 'https://example.org';
$key = getenv('NINJAMAIL_KEY') ?: '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef';
$testEmail = 'teszt.felhasznalo@example.com';
$sendEmail = 'cimzett@example.com';
echo "====================================================\n";
echo "ninjaMail API funkciók tesztelése\n";
echo "Host: $host\n";
echo "Key: " . substr($key, 0, 8) . "..." . substr($key, -8) . "\n";
echo "====================================================\n\n";
// ---------------------------------------------------------------------------
// 1. Alaposztály
// ---------------------------------------------------------------------------
echo "=== 1. ninjaMail ALAPOSZTÁLY TESZTELÉSE ===\n";
$base = new ninjaMail($host, $key);
echo "[+] check(): ";
var_dump($base->check());
echo "[+] login(): ";
try {
$login = $base->login();
echo json_encode($login, JSON_UNESCAPED_UNICODE) . "\n";
} catch (Throwable $e) {
echo "Hiba: " . $e->getMessage() . "\n";
}
// ---------------------------------------------------------------------------
// 2. Lista műveletek
// ---------------------------------------------------------------------------
echo "\n=== 2. LISTA MŰVELETEK (ninjaMail::process) ===\n";
$listId = null;
try {
echo "[+] Lista létrehozása (list -> new): ";
$createdList = $base->process('list', ['new' => true, 'name' => 'Teszt Lista 2026']);
echo json_encode($createdList, JSON_UNESCAPED_UNICODE) . "\n";
$listId = $createdList->id ?? null;
echo "[+] Listák lekérdezése (list -> get): ";
$lists = $base->process('list', ['get' => true]);
echo json_encode($lists, JSON_UNESCAPED_UNICODE) . "\n";
} catch (Throwable $e) {
echo "Hiba: " . $e->getMessage() . "\n";
}
// ---------------------------------------------------------------------------
// 3. Feliratkozások
// ---------------------------------------------------------------------------
echo "\n=== 3. ninjaMailSubscription TESZTELÉSE ===\n";
$sub = new ninjaMailSubscription($host, $key);
$activeListId = $listId ? (int)$listId : 1;
echo "[+] list($activeListId): ";
var_dump($sub->list($activeListId));
echo "[+] activated(true): ";
var_dump($sub->activated(true));
echo "[+] namechange(true): ";
var_dump($sub->namechange(true));
try {
echo "[+] subscribe(\"$testEmail\", \"Teszt Elek\"): ";
$subRes = $sub->subscribe($testEmail, 'Teszt Elek');
var_dump($subRes);
echo " Válasz: " . json_encode($sub->data, JSON_UNESCAPED_UNICODE) . "\n";
echo "[+] unsubscribe(\"$testEmail\"): ";
$unsubRes = $sub->unsubscribe($testEmail);
var_dump($unsubRes);
echo " Válasz: " . json_encode($sub->data, JSON_UNESCAPED_UNICODE) . "\n";
} catch (Throwable $e) {
echo "Hiba: " . $e->getMessage() . "\n";
}
// ---------------------------------------------------------------------------
// 4. Hírlevelek
// ---------------------------------------------------------------------------
echo "\n=== 4. ninjaMailNewsletter TESZTELÉSE ===\n";
$nl = new ninjaMailNewsletter($host, $key);
echo "[+] subject(): ";
var_dump($nl->subject('Rendszertesztek 2026 - Hírlevél'));
echo "[+] message(): ";
$longContent = '<h1>Kedves Feliratkozónk!</h1><p>Ez egy hivatalos teszt hírlevél, amely a ninjaMail API funkcionalitását teszteli. A hírlevél tartalma megfelelően hosszú szöveget tartalmaz, hogy teljesítse a rendszer tartalmi és formai követelményeit. További információkért látogasson el weboldalunkra vagy keresse ügyfélszolgálatunkat.</p><p>Üdvözlettel,<br>A rendszer üzemeltetője</p>';
var_dump($nl->message($longContent));
$newsletterId = null;
try {
echo "[+] create(): ";
$newsletterId = $nl->create();
var_dump($newsletterId);
echo " Válasz: " . json_encode($nl->data, JSON_UNESCAPED_UNICODE) . "\n";
echo "[+] newsletter() getter: ";
var_dump($nl->newsletter());
echo "[+] update(): ";
$nl->subject('Rendszertesztek 2026 - Frissített hírlevél tárgy');
$nlUp = $nl->update();
var_dump($nlUp);
echo " Válasz: " . json_encode($nl->data, JSON_UNESCAPED_UNICODE) . "\n";
echo "[+] get(): ";
$allNl = $nl->get();
echo json_encode($allNl, JSON_UNESCAPED_UNICODE) . "\n";
echo "[+] send() (időzítve +1 évre): ";
$sendNl = $nl->send(strtotime('+1 year'));
var_dump($sendNl);
echo " Válasz: " . json_encode($nl->data, JSON_UNESCAPED_UNICODE) . "\n";
} catch (Throwable $e) {
echo "Hiba: " . $e->getMessage() . "\n";
}
// ---------------------------------------------------------------------------
// 5. Kampányok
// ---------------------------------------------------------------------------
echo "\n=== 5. ninjaMailCampaign TESZTELÉSE ===\n";
$camp = new ninjaMailCampaign($host, $key);
$campaignId = null;
try {
echo "[+] create(\"API Teszt Kampány\"): ";
$campaignId = $camp->create('API Teszt Kampány');
var_dump($campaignId);
echo " Válasz: " . json_encode($camp->data, JSON_UNESCAPED_UNICODE) . "\n";
echo "[+] campaign() getter: ";
var_dump($camp->campaign());
echo "[+] update() (lista csatolása): ";
$campUp = $camp->update([(int)$activeListId]);
var_dump($campUp);
echo " Válasz: " . json_encode($camp->data, JSON_UNESCAPED_UNICODE) . "\n";
echo "[+] attach(" . ($newsletterId ?? 1) . ") (hírlevél csatolása): ";
$campAtt = $camp->attach((int)($newsletterId ?? 1));
var_dump($campAtt);
echo " Válasz: " . json_encode($camp->data, JSON_UNESCAPED_UNICODE) . "\n";
echo "[+] remove() (kampány törlése): ";
$campRem = $camp->remove();
var_dump($campRem);
echo " Válasz: " . json_encode($camp->data, JSON_UNESCAPED_UNICODE) . "\n";
} catch (Throwable $e) {
echo "Hiba: " . $e->getMessage() . "\n";
}
// ---------------------------------------------------------------------------
// 6. Egyedi levélküldés
// ---------------------------------------------------------------------------
echo "\n=== 6. ninjaMailSend TESZTELÉSE ===\n";
$sender = new ninjaMailSend($host, $key);
echo "[+] to(\"$sendEmail\"): ";
var_dump($sender->to($sendEmail));
echo "[+] subject(): ";
var_dump($sender->subject('Tranzakciós teszt e-mail'));
echo "[+] message(): ";
var_dump($sender->message('<p>Ez egy egyedi tranzakciós teszt e-mail.</p>'));
try {
echo "[+] send(): ";
$sendRes = $sender->send();
var_dump($sendRes);
echo " Válasz: " . json_encode($sender->data, JSON_UNESCAPED_UNICODE) . "\n";
} catch (Throwable $e) {
echo "Hiba: " . $e->getMessage() . "\n";
}
// ---------------------------------------------------------------------------
// 7. Statisztika
// ---------------------------------------------------------------------------
echo "\n=== 7. ninjaMailStatistics TESZTELÉSE ===\n";
$stat = new ninjaMailStatistics($host, $key);
try {
$statNlId = (int)($newsletterId ?? 1);
echo "[+] get($statNlId): ";
$statRes = $stat->get($statNlId);
echo json_encode($statRes, JSON_UNESCAPED_UNICODE) . "\n";
} catch (Throwable $e) {
echo "Hiba: " . $e->getMessage() . "\n";
}
// ---------------------------------------------------------------------------
// 8. Takarítás (ha hoztunk létre listát)
// ---------------------------------------------------------------------------
if ($listId) {
echo "\n=== 8. TAKARÍTÁS (Teszt lista törlése) ===\n";
try {
echo "[+] remove list $listId: ";
$delList = $base->process('list', ['remove' => true, 'id' => $listId]);
echo json_encode($delList, JSON_UNESCAPED_UNICODE) . "\n";
} catch (Throwable $e) {
echo "Hiba: " . $e->getMessage() . "\n";
}
}
echo "\nTesztelés befejezve.\n";