From 200ff818513ef29c638c220d7e1597902d1fe7f3 Mon Sep 17 00:00:00 2001
From: Matthieu Marcillaud <marcimat@rezo.net>
Date: Mon, 10 Jul 2023 18:15:53 +0200
Subject: [PATCH] tests: tests form_hidden en phpunit

---
 ecrire/tests/Filtre/Form/FormHiddenTest.php   | 47 +++++++++++++++++++
 .../legacy/unit/filtres/form_hidden.html      | 36 --------------
 2 files changed, 47 insertions(+), 36 deletions(-)
 create mode 100644 ecrire/tests/Filtre/Form/FormHiddenTest.php
 delete mode 100644 ecrire/tests/legacy/unit/filtres/form_hidden.html

diff --git a/ecrire/tests/Filtre/Form/FormHiddenTest.php b/ecrire/tests/Filtre/Form/FormHiddenTest.php
new file mode 100644
index 0000000000..8e00324cf3
--- /dev/null
+++ b/ecrire/tests/Filtre/Form/FormHiddenTest.php
@@ -0,0 +1,47 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Spip\Test\Filtre\Form;
+
+use PHPUnit\Framework\Attributes\DataProvider;
+use PHPUnit\Framework\Attributes\Depends;
+use PHPUnit\Framework\TestCase;
+use RuntimeException;
+use Spip\Test\SquelettesTestCase;
+
+class FormHiddenTest extends SquelettesTestCase
+{
+	public function testParametreUrl() {
+		$this->assertSame('x?y=1', parametre_url('x', 'y', '1'));
+		$this->assertSame('x?y=2', parametre_url(parametre_url('x', 'y', '1'), 'y', '2'));
+
+		$this->assertEqualsCode('x?y=1', '[(#VAL{x}|parametre_url{y,1})]');
+		$this->assertEqualsCode('x?y=2', '[(#VAL{x}|parametre_url{y,1}|parametre_url{y,2})]');
+	}
+
+	public function testParametreUrlArray() {
+		$this->assertSame('x?t[]=1&amp;t[]=2', parametre_url('x', 't[]', [1, 2]));
+
+		$this->assertEqualsCode('x?t[]=1&amp;t[]=2', '[(#VAL{x}|parametre_url{t\[\],#LISTE{1,2}})]');
+	}
+
+	public function testFormHiddenUnused() {
+		$url = parametre_url(parametre_url('x', 'toto', '1'), 'toto', '%!');
+		$url .= '&amp;toto=3=2';
+		$hiddens = form_hidden($url);
+		$this->assertCount(1, extraire_balises($hiddens, 'input'), 'bug compte d’input');
+
+		$url = parametre_url('x', 'toto', '3=2');
+		$url .= '&amp;toto=p';
+		$hiddens = form_hidden($url);
+		$this->assertSame('3=2', extraire_attribut(extraire_balise($hiddens, 'input'), 'value'), 'bug value input');
+	}
+
+	public function testFormHiddenArray() {
+		$url = parametre_url('x', 't[]', ['1', '%!']);
+		$url .= '&amp;t[]=3=2';
+		$hiddens = form_hidden($url);
+		$this->assertCount(3, extraire_balises($hiddens, 'input'), 'bug compte d’input');
+	}
+}
diff --git a/ecrire/tests/legacy/unit/filtres/form_hidden.html b/ecrire/tests/legacy/unit/filtres/form_hidden.html
deleted file mode 100644
index 2aac415f55..0000000000
--- a/ecrire/tests/legacy/unit/filtres/form_hidden.html
+++ /dev/null
@@ -1,36 +0,0 @@
-#SET{t,t#EVAL{chr(91).chr(93)}}
-
-
-[(#REM)
-
-	Verifier que parametre_url fonctionne
-
-]
-[(#VAL{x}|parametre_url{y,1}|=={'x?y=1'}|?{'', erreur parametre url 1})]
-[(#VAL{x}|parametre_url{y,1}|parametre_url{y,2}|=={'x?y=2'}|?{'',
-erreur parametre url 2<br />})]
-
-
-[(#VAL{x}|parametre_url{#GET{t},#LISTE{1,2}}|=={
-#VAL{x}|concat{'?'}|concat{#GET{t}}|concat{'=1&amp;'}|concat{#GET{t}}|concat{'=2'}
-}|?{'',
-erreur parametre url tableau<br />})]
-
-
-[(#REM)
-
-	Verifie que form_hidden n'ajoute pas des valeurs pour rien
-
-]
-
-[(#VAL{x}|parametre_url{toto,1}|parametre_url{toto,%!}|concat{&amp;toto=3=2}|form_hidden|extraire_balises{input}|count|=={1}|?{'',
-bug compte d'input<br />})]
-
-[(#VAL{x}|parametre_url{toto,3=2}|concat{&amp;toto=p}|form_hidden|extraire_balise{input}|extraire_attribut{value}|=={'3=2'}|?{'',
-bug value<br />})]
-
-[(#REM) si var est un tableau, il faut conserver tous les input ]
-[(#VAL{x}|parametre_url{#GET{t},#LISTE{1,%!}}|concat{&amp;#GET{t}}|concat{=3=2}|form_hidden|extraire_balises{input}|count|=={3}|?{'',
-bug tableau<br />})]
-
-OK
\ No newline at end of file
-- 
GitLab