Ejemplo n.º 1
0
 /**
  * 新しい HelperObject を生成します.
  * このメソッドが返す HelperObject は, 引数の型に応じて以下のように振る舞います.
  * 
  * - 文字列の場合: その文字列を要素名に持つ {@link Element}
  * - null または空文字列の場合: 空の {@link NodeList}
  * - Node オブジェクトの場合: その Node 自身
  * 
  * 第 2 引数に配列を指定した場合, 生成された要素に対して属性をセットすることが出来ます.
  * (生成された HelperObject が要素ではない場合, 第 2 引数は無視されます)
  * 
  * @param  string|Component $var
  * @param  array $attr
  * @return HelperObject
  */
 public function createObject($var, $attr = array())
 {
     $object = new HelperObject($this, $var);
     if (count($attr)) {
         $object->attr($attr);
     }
     return $object;
 }
Ejemplo n.º 2
0
 /**
  * prototype() のテストです.
  * 返り値の HelperObject が以下の Component をラップしていることを確認します.
  * 
  * - ラップしているノードが ContainerElement だった場合, 同じ属性を持つ空の ContainerElement
  * - ラップしているノードが EmptyElement だった場合, 同じ属性を持つ EmptyElement
  * - それ以外は, 空の NodeList
  * 
  * @covers Peach\Markup\HelperObject::prototype
  * @covers Peach\Markup\HelperObject::createPrototype
  */
 public function testPrototype()
 {
     $h = $this->helper;
     $e1 = new ContainerElement("div");
     $e1->setAttributes(array("id" => "sample", "class" => "test"));
     $obj1 = new HelperObject($h, "div");
     $obj1->attr("id", "sample")->attr("class", "test")->append("First")->append("Second")->append("Third");
     $this->assertEquals($e1, $obj1->prototype()->getNode());
     $e2 = new EmptyElement("input");
     $e2->setAttributes(array("type" => "text", "name" => "subject", "value" => ""));
     $obj2 = new HelperObject($h, "input");
     $obj2->attr(array("type" => "text", "name" => "subject", "value" => ""));
     $this->assertEquals($e2, $obj2->prototype()->getNode());
     $nl = new NodeList();
     $text = new Text("This is Test");
     $obj3 = new HelperObject($h, $text);
     $this->assertEquals($nl, $obj3->prototype()->getNode());
 }