Example #1
0
 /**
  * このオブジェクトをプロトタイプとして, 新しい HelperObject を生成します.
  * 
  * @return Element
  */
 private function createPrototype()
 {
     $original = $this->node;
     if ($original instanceof ContainerElement) {
         $node = new ContainerElement($original->getName());
         $node->setAttributes($original->getAttributes());
         return $node;
     }
     if ($original instanceof EmptyElement) {
         $node = new EmptyElement($original->getName());
         $node->setAttributes($original->getAttributes());
         return $node;
     }
     return null;
 }
Example #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());
 }