. */ namespace Xibo\Tests\Integration; use Xibo\Helper\Random; use Xibo\OAuth2\Client\Entity\XiboLayout; use Xibo\Tests\Helper\LayoutHelperTrait; use Xibo\Tests\LocalWebTestCase; /** * Class TemplateTest * @package Xibo\Tests */ class TemplateTest extends LocalWebTestCase { use LayoutHelperTrait; /** * Show Templates */ public function testListAll() { $response = $this->sendRequest('GET','/template'); $this->assertSame(200, $response->getStatusCode()); $this->assertNotEmpty($response->getBody()); $object = json_decode($response->getBody()); $this->assertObjectHasAttribute('data', $object); } /** * Add Template */ public function testAdd() { # Create random name and new layout $layout = $this->createLayout(); # Generate second random name $name2 = Random::generateString(8, 'phpunit'); # Create template using our layout and new name $response = $this->sendRequest('POST','/template/' . $layout->layoutId, [ 'name' => $name2, 'includeWidgets' => 1, 'tags' => 'phpunit', 'description' => $layout->description ]); # Check if successful $this->assertSame(200, $response->getStatusCode(), $response->getBody()); $object = json_decode($response->getBody()); $this->assertObjectHasAttribute('data', $object); $this->assertObjectHasAttribute('id', $object); # Check if it has edited name $this->assertSame($name2, $object->data->layout); // Expect 2 tags phpunit added in this request and template tag. $this->assertSame(2,count($object->data->tags)); $templateId = $object->id; # delete template as we no longer need it $template = (new XiboLayout($this->getEntityProvider()))->getByTemplateId($templateId); $template->delete(); # delete layout as we no longer need it $layout->delete(); } }