dbxapp 4.1.3
CMS, Shop, Workflows und modulare Geschäftsanwendungen
Loading...
Searching...
No Matches
dbxForm_validation_result_test.php
Go to the documentation of this file.
1<?php
2
6
7require_once dirname(__DIR__, 2) . '/vendor/autoload.php';
8require_once dirname(__DIR__) . '/dbxKernel.php';
9
10$form = dbx()->get_system_obj('dbxForm');
11$form->clear();
12
13$assert = static function (bool $condition, string $message): void {
14 if (!$condition) {
15 fwrite(STDERR, "FAIL: {$message}\n");
16 exit(1);
17 }
18};
19
22$oldLanguage = (string)dbx()->get_system_var('dbx_lng', 'de');
23
24try {
25 $_GET = [];
26 $_POST = ['email' => '0'];
27
28 $value = $form->get_post('email', '', 'email');
29 $result = $form->get_validation_result('email');
30
31 $assert($value === '', 'ungueltige Formulareingabe wurde nicht durch den Default ersetzt');
32 $assert(($result['valid'] ?? true) === false, 'dbxForm speichert kein ungueltiges Validator-Ergebnis');
33 $assert(($result['code'] ?? '') === 'invalid_format', 'dbxForm verliert den Validator-Fehlercode');
34 $assert(isset($form->_errors['email']), 'dbxForm markiert das ungueltige Feld nicht');
35
36 $_POST = ['title' => ' Hallo Welt '];
37 $value = $form->get_post('title', '', 'trim|required|words');
38 $result = $form->get_validation_result('title');
39
40 $assert($value === 'Hallo Welt', 'explizite trim-Normalisierung wird von dbxForm nicht uebernommen');
41 $assert(($result['valid'] ?? false) === true, 'gueltige normalisierte Formulareingabe wurde abgelehnt');
42 $assert(($result['normalized'] ?? '') === 'Hallo Welt', 'normalisierter Wert fehlt im Formularergebnis');
43
44 $all = $form->get_validation_result();
45 $assert(isset($all['email'], $all['title']), 'Gesamtliste der Formularergebnisse ist unvollstaendig');
46
47 dbx()->set_system_var('dbx_lng', 'en');
48 $form->oValidator->setLanguage('');
49 $_POST = ['language_probe' => ''];
50 $form->get_post('language_probe', '', 'required|email');
51 $languageResult = $form->get_validation_result('language_probe');
52 $assert(
53 ($languageResult['message'] ?? '') === 'Please fill in this field.',
54 'dbxForm verwendet nicht automatisch die aktive UI-Sprache'
55 );
56
57 $form->clear();
58 $assert($form->get_validation_result() === [], 'Formular-Reset behaelt alte Validator-Ergebnisse');
59} finally {
62 dbx()->set_system_var('dbx_lng', $oldLanguage);
63 $form->oValidator->setLanguage('');
64}
65
66echo "OK: dbxForm uebernimmt strukturierte Validator-Ergebnisse und opt-in-Normalisierung.\n";
if(!defined( 'IMG_WEBP')) define( 'IMG_WEBP'
exit
Definition index.php:146
DBX schema administration.