コード例 #1
0
 public function testXmlWriteFile()
 {
     $tmpfname = tempnam("/tmp", "XMLTEST");
     file_put_contents($tmpfname, "<trl></trl>");
     $model = new Kwf_Model_Xml(array('xpath' => '/trl', 'topNode' => 'text', 'filepath' => $tmpfname));
     //check ob file geladen
     $this->assertTrue((bool) strpos($model->getXmlContentString(), '<trl/>'));
     $r1 = $model->createRow(array('en' => 'english', 'de' => 'englisch'));
     $r1->save();
     $this->assertEquals(1, $model->getRows()->count());
     $r2 = $model->getRow(1);
     $this->assertEquals('englisch', $r2->de);
     $this->assertTrue($r1 === $r2);
     $r2->en = "american";
     $this->assertEquals('american', $r1->en);
     $r3 = $model->createRow(array('en' => 'german', 'de' => 'deutsch'));
     $r3->save();
     $this->assertEquals(2, $model->getRows()->count());
     $r4 = $model->getRow(2);
     $this->assertEquals('deutsch', $r4->de);
     $r2->delete();
     $this->assertEquals(1, $model->getRows()->count());
     //check ob der file richtig geschrieben wurde
     $contents = file_get_contents($tmpfname);
     $simpleXml = new SimpleXMLElement($contents);
     $xml = $simpleXml->asXML();
     $this->assertTrue((bool) strpos($xml, '<en>german</en>'));
     $this->assertTrue((bool) strpos($xml, '<de>deutsch</de>'));
     $this->assertFalse((bool) strpos($xml, '<en>english</en>'));
     $this->assertFalse((bool) strpos($xml, '<de>englisch</de>'));
     unlink($tmpfname);
 }