public function testTheme()
{
$xml = '<theme id="jarvesDemoTheme">
<label>Jarves cms Demo Theme</label>
<contents>
<content>
<label>Default</label>
<file>@JarvesDemoThemeBundle/content_default.tpl</file>
</content>
<content>
<label>Sidebar Item</label>
<file>@JarvesDemoThemeBundle/content_sidebar.tpl</file>
</content>
</contents>
<layouts>
<layout key="default">
<label>Default</label>
<file>@JarvesDemoThemeBundle/layout_default.tpl</file>
</layout>
</layouts>
</theme>';
$theme = new Theme($xml, $this->getJarves());
$theme->setId('jarvesDemoTheme');
$theme->setLabel('Jarves cms Demo Theme');
$content = new ThemeContent(null, $this->getJarves());
$content->setFile('@JarvesDemoThemeBundle/content_default.tpl');
$content->setLabel('Default');
$content2 = new ThemeContent(null, $this->getJarves());
$content2->setFile('@JarvesDemoThemeBundle/content_sidebar.tpl');
$content2->setLabel('Sidebar Item');
$theme->setContents(array($content, $content2));
$layout = new ThemeLayout(null, $this->getJarves());
$layout->setFile('@JarvesDemoThemeBundle/layout_default.tpl');
$layout->setLabel('Default');
$layout->setKey('default');
$theme->setLayouts(array($layout));
$this->assertEquals($xml, $theme->toXml());
$reverse = new Theme($xml, $this->getJarves());
$this->assertEquals('jarvesDemoTheme', $reverse->getId());
$this->assertEquals('Jarves cms Demo Theme', $reverse->getLabel());
$this->assertEquals('Default', $reverse->getContents()[0]->getLabel());
$this->assertEquals('@JarvesDemoThemeBundle/content_default.tpl', $reverse->getContents()[0]->getFile());
$this->assertEquals('Default', $reverse->getLayouts()[0]->getLabel());
$this->assertEquals('@JarvesDemoThemeBundle/layout_default.tpl', $reverse->getLayouts()[0]->getFile());
$this->assertEquals($xml, $reverse->toXml());
}