xref: /dokuwiki/_test/tests/Form/InputElementTest.php (revision 98640fd3947e9ff996e1c9206b5f845465794486)
1*98640fd3SAndreas Gohr<?php
2*98640fd3SAndreas Gohr
3*98640fd3SAndreas Gohrnamespace dokuwiki\test\Form;
4*98640fd3SAndreas Gohr
5*98640fd3SAndreas Gohruse dokuwiki\Form;
6*98640fd3SAndreas Gohruse DOMWrap\Document;
7*98640fd3SAndreas Gohr
8*98640fd3SAndreas Gohrclass InputElementTest extends \DokuWikiTest {
9*98640fd3SAndreas Gohr
10*98640fd3SAndreas Gohr    function testDefaults() {
11*98640fd3SAndreas Gohr        $form = new Form\Form();
12*98640fd3SAndreas Gohr        $form->addTextInput('foo', 'label text')->val('this is text');
13*98640fd3SAndreas Gohr
14*98640fd3SAndreas Gohr        $html = $form->toHTML();
15*98640fd3SAndreas Gohr        $pq = (new Document())->html($html);
16*98640fd3SAndreas Gohr
17*98640fd3SAndreas Gohr        $input = $pq->find('input[name=foo]');
18*98640fd3SAndreas Gohr        $this->assertTrue($input->count() == 1);
19*98640fd3SAndreas Gohr        $this->assertEquals('this is text', $input->attr('value'));
20*98640fd3SAndreas Gohr        $this->assertEquals('text', $input->attr('type'));
21*98640fd3SAndreas Gohr
22*98640fd3SAndreas Gohr        $label = $pq->find('label');
23*98640fd3SAndreas Gohr        $this->assertTrue($label->count() == 1);
24*98640fd3SAndreas Gohr        $this->assertEquals('label text', $label->find('span')->text());
25*98640fd3SAndreas Gohr    }
26*98640fd3SAndreas Gohr
27*98640fd3SAndreas Gohr    /**
28*98640fd3SAndreas Gohr     * check that posted values overwrite preset default
29*98640fd3SAndreas Gohr     */
30*98640fd3SAndreas Gohr    function testPrefill() {
31*98640fd3SAndreas Gohr        global $INPUT;
32*98640fd3SAndreas Gohr        $INPUT->post->set('foo', 'a new text');
33*98640fd3SAndreas Gohr
34*98640fd3SAndreas Gohr        $form = new Form\Form();
35*98640fd3SAndreas Gohr        $form->addTextInput('foo', 'label text')->val('this is text');
36*98640fd3SAndreas Gohr
37*98640fd3SAndreas Gohr        $html = $form->toHTML();
38*98640fd3SAndreas Gohr        $pq = (new Document())->html($html);
39*98640fd3SAndreas Gohr
40*98640fd3SAndreas Gohr        $input = $pq->find('input[name=foo]');
41*98640fd3SAndreas Gohr        $this->assertTrue($input->count() == 1);
42*98640fd3SAndreas Gohr        $this->assertEquals('a new text', $input->attr('value'));
43*98640fd3SAndreas Gohr    }
44*98640fd3SAndreas Gohr
45*98640fd3SAndreas Gohr    function test_prefill_empty() {
46*98640fd3SAndreas Gohr        global $INPUT;
47*98640fd3SAndreas Gohr        $INPUT->post->set('foo', '');
48*98640fd3SAndreas Gohr
49*98640fd3SAndreas Gohr        $form = new Form\Form();
50*98640fd3SAndreas Gohr        $form->addTextInput('foo', 'label text')->val('this is text');
51*98640fd3SAndreas Gohr
52*98640fd3SAndreas Gohr        $html = $form->toHTML();
53*98640fd3SAndreas Gohr        $pq = (new Document())->html($html);
54*98640fd3SAndreas Gohr
55*98640fd3SAndreas Gohr        $input = $pq->find('input[name=foo]');
56*98640fd3SAndreas Gohr        $this->assertTrue($input->count() == 1);
57*98640fd3SAndreas Gohr        $this->assertEquals('', $input->attr('value'));
58*98640fd3SAndreas Gohr    }
59*98640fd3SAndreas Gohr
60*98640fd3SAndreas Gohr
61*98640fd3SAndreas Gohr    function test_password() {
62*98640fd3SAndreas Gohr        $form = new Form\Form();
63*98640fd3SAndreas Gohr        $form->addPasswordInput('foo', 'label text')->val('this is text');
64*98640fd3SAndreas Gohr
65*98640fd3SAndreas Gohr        $html = $form->toHTML();
66*98640fd3SAndreas Gohr        $pq = (new Document())->html($html);
67*98640fd3SAndreas Gohr
68*98640fd3SAndreas Gohr        $input = $pq->find('input[name=foo]');
69*98640fd3SAndreas Gohr        $this->assertTrue($input->count() == 1);
70*98640fd3SAndreas Gohr        $this->assertEquals('this is text', $input->attr('value'));
71*98640fd3SAndreas Gohr        $this->assertEquals('password', $input->attr('type'));
72*98640fd3SAndreas Gohr
73*98640fd3SAndreas Gohr        $label = $pq->find('label');
74*98640fd3SAndreas Gohr        $this->assertTrue($label->count() == 1);
75*98640fd3SAndreas Gohr        $this->assertEquals('label text', $label->find('span')->text());
76*98640fd3SAndreas Gohr    }
77*98640fd3SAndreas Gohr}
78