/** * getInstance() をテストします. * 以下を確認します. * * - 返り値が XmlRenderer のインスタンスである * - どの返り値も, 同一のインスタンスを返す * * @covers Peach\Markup\XmlRenderer::getInstance */ public function testGetInstance() { $obj1 = XmlRenderer::getInstance(); $obj2 = XmlRenderer::getInstance(); $this->assertSame("Peach\\Markup\\XmlRenderer", get_class($obj1)); $this->assertSame($obj1, $obj2); }
/** * init() のテストです. 以下を確認します. * * - 引数に true を指定した場合は XHTML 形式, false を指定した場合は HTML 形式のグローバル Helper が初期化されること * - 引数を省略した場合は HTML 形式で初期化されること * * @covers Peach\Markup\Html::init * @covers Peach\Markup\Html::createHelper * @covers Peach\Markup\Html::createBuilder */ public function testInit() { $xr = XmlRenderer::getInstance(); $sr = SgmlRenderer::getInstance(); Html::init(true); $b1 = Html::getBuilder(); $this->assertSame($xr, $b1->getRenderer()); Html::init(false); $b2 = Html::getBuilder(); $this->assertSame($sr, $b2->getRenderer()); Html::init(); $b3 = Html::getBuilder(); $this->assertSame($sr, $b3->getRenderer()); }
/** * getRenderer() と setRenderer() のテストです. 以下について確認します. * * - 初期状態では getRenderer() が null を返すこと * - setRenderer() でセットした Renderer オブジェクトが getRenderer() で取得できること * - null を指定するとセットした Renderer オブジェクトが解除されること * - 不正な値をセットした場合は InvalidArgumentException をスローすること * * @covers Peach\Markup\DefaultBuilder::getRenderer * @covers Peach\Markup\DefaultBuilder::setRenderer * @covers Peach\Markup\DefaultBuilder::initRenderer */ public function testAccessRenderer() { $builder = $this->object; $this->assertNull($builder->getRenderer()); $subject = XmlRenderer::getInstance(); $builder->setRenderer($subject); $this->assertSame($subject, $builder->getRenderer()); $builder->setRenderer(null); $this->assertNull($builder->getRenderer()); $builder->setRenderer("xhtml"); $this->assertSame($subject, $builder->getRenderer()); $builder->setRenderer("sgml"); $this->assertSame(SgmlRenderer::getInstance(), $builder->getRenderer()); $this->setExpectedException("InvalidArgumentException"); $builder->setRenderer("InvalidValue"); }
/** * handleEmptyElement のテストです. 以下を確認します. * * - SGML 形式の場合 "<tagName>" となること * - XML 形式の場合 "<tagName />" となること * * @covers Peach\Markup\DefaultContext::handleEmptyElement * @covers Peach\Markup\DefaultContext::indent */ public function testHandleEmptyElement() { $input = new EmptyElement("input"); $input->setAttributes(array("type" => "checkbox", "name" => "flag", "value" => 1)); $input->setAttribute("checked"); $expected1 = '<input type="checkbox" name="flag" value="1" checked="checked" />'; $obj1 = new DefaultContext(XmlRenderer::getInstance()); $obj1->handleEmptyElement($input); $this->assertSame($expected1, $obj1->getResult()); $expected2 = '<input type="checkbox" name="flag" value="1" checked>'; $obj2 = new DefaultContext(SgmlRenderer::getInstance()); $obj2->handleEmptyElement($input); $this->assertSame($expected2, $obj2->getResult()); }