/** * 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()); }
/** * このオブジェクトをプロトタイプとして, 新しい 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; }
/** * 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()); }