コード例 #1
0
ファイル: HelperTest.php プロジェクト: trashtoy/peach2
 /**
  * createObject() のテストです. 以下について確認します.
  * 
  * - HelperObject 型のオブジェクトを返すこと
  * - 返り値の HelperObject が, createNode() によって生成された Component をラップしていること
  * - 第 2 引数を指定した場合, 生成される HelperObject の要素にその内容が属性としてセットされること
  * - 第 2 引数を指定したが, 生成される HelperObject が要素ではない場合は無視されること
  * 
  * @covers Peach\Markup\Helper::createObject
  */
 public function testCreateObject()
 {
     $h = $this->object;
     $obj = $h->createObject("p");
     $this->assertInstanceOf("Peach\\Markup\\HelperObject", $obj);
     $h1 = $h->createObject(new ContainerElement("h1"));
     $div = $h->createObject("div");
     $emp = $h->createObject("");
     $this->assertEquals(new ContainerElement("h1"), $h1->getNode());
     $this->assertEquals(new ContainerElement("div"), $div->getNode());
     $this->assertEquals(new NodeList(), $emp->getNode());
     $obj2 = $h->createObject("input", array("type" => "text", "name" => "title", "value" => "sample attribute"));
     $input = new EmptyElement("input");
     $input->setAttributes(array("type" => "text", "name" => "title", "value" => "sample attribute"));
     $this->assertEquals($input, $obj2->getNode());
     $obj3 = $h->createObject(null, array("class" => "ignore_test"));
     $this->assertEquals(new NodeList(), $obj3->getNode());
 }
コード例 #2
0
ファイル: HelperObject.php プロジェクト: trashtoy/peach2
 /**
  * このオブジェクトをプロトタイプとして, 新しい 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;
 }
コード例 #3
0
ファイル: HelperObjectTest.php プロジェクト: trashtoy/peach2
 /**
  * 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());
 }