Esempio n. 1
0
 public function testMappedTwice()
 {
     $d = new RenderDict(array("foo" => "bar"), V::val(0));
     $n = NameSource::instantiate("test");
     $f = F::text("foobar");
     $rdict1 = null;
     $rhtml1 = null;
     $rdict2 = null;
     $rhtml2 = null;
     $transformation = V::fn(function ($dict, $html) use(&$rdict1, &$rhtml1) {
         $rdict1 = $dict;
         $rhtml1 = $html;
         return H::nop();
     });
     $transformation2 = V::fn(function ($dict, $html) use(&$rdict2, &$rhtml2) {
         $rdict2 = $dict;
         $rhtml2 = $html;
         return H::text("baz");
     });
     $f2 = $f->mapHTML($transformation)->mapHTML($transformation2);
     $i = $f2->instantiate($n);
     $r1 = $i["builder"]->build();
     $this->assertInstanceOf("Lechimp\\Formlets\\Internal\\RenderDict", $rdict1);
     $this->assertInstanceOf("Lechimp\\Formlets\\Internal\\RenderDict", $rdict2);
     $this->assertInstanceOf("Lechimp\\Formlets\\Internal\\HTMLText", $rhtml1);
     $this->assertInstanceOf("Lechimp\\Formlets\\Internal\\HTMLNop", $rhtml2);
     $this->assertEquals($rhtml1->render(), "foobar");
     $this->assertEquals($rhtml2->render(), "");
     $this->assertInstanceOf("Lechimp\\Formlets\\Internal\\HTMLText", $r1);
     $this->assertEquals($r1->render(), "baz");
     $r2 = $i["builder"]->buildWithDict($d);
     $this->assertInstanceOf("Lechimp\\Formlets\\Internal\\RenderDict", $rdict1);
     $this->assertInstanceOf("Lechimp\\Formlets\\Internal\\RenderDict", $rdict2);
     $this->assertEquals($d, $rdict1);
     $this->assertEquals($d, $rdict2);
     $this->assertInstanceOf("Lechimp\\Formlets\\Internal\\HTMLText", $rhtml1);
     $this->assertInstanceOf("Lechimp\\Formlets\\Internal\\HTMLNop", $rhtml2);
     $this->assertEquals($rhtml1->render(), "foobar");
     $this->assertEquals($rhtml2->render(), "");
     $this->assertInstanceOf("Lechimp\\Formlets\\Internal\\HTMLText", $r2);
     $this->assertEquals($r2->render(), "baz");
 }
Esempio n. 2
0
 public function formlets()
 {
     return array(array(F::text("TEXT")));
 }
Esempio n. 3
0
 /**
  * Get a formlet that contains no value and represents a text.
  *
  * @param  string   $content
  * @return IFormlet
  */
 public static function text($content)
 {
     return F::text($content);
 }
 public function formlets_and_values()
 {
     $data = array();
     $pure_val = F::pure(V::val(42));
     $pure_fn = F::pure(F::id());
     $formlets = array(array($pure_val, false), array($pure_fn, true), array(F::text("TEXT")->cmb($pure_val), false), array(F::text("TEXT")->cmb($pure_fn), true), array($pure_val->cmb(F::text("TEXT")), false), array($pure_fn->cmb(F::text("TEXT")), true), array($pure_fn->cmb(F::input("text")), false), array($pure_fn->cmb(F::textarea_raw()), false), array($pure_fn->cmb(F::text_input()), false), array($pure_fn->cmb(F::textarea()), false), array($pure_fn->cmb(F::checkbox()), false), array(F::submit("SUBMIT")->cmb($pure_val), false), array(F::submit("SUBMIT")->cmb($pure_fn), true), array($pure_val->cmb(F::submit("SUBMIT")), false), array($pure_fn->cmb(F::submit("SUBMIT")), true), array(F::email("*****@*****.**"), false), array(F::hidden("foo"), false), array(F::number(1, 0, 1000, 1, array(), "no int", "not in range", "step_length"), false), array(F::password("foo"), false), array(F::radio(array("100" => "100"), "100"), false), array(F::search("foo"), false), array(F::url("foo"), false), array(F::select(array("100" => "100")), false));
     $functions = array(F::id());
     $values = array(0, 1, 2);
     foreach ($formlets as $formlet) {
         foreach ($functions as $fn1) {
             foreach ($functions as $fn2) {
                 foreach ($values as $value) {
                     $data[] = array($formlet[0], $fn1, $fn2, V::val($value), $formlet[1]);
                 }
             }
         }
     }
     return $data;
 }