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