Mercurial > hg > isophonics-drupal-site
view core/modules/dblog/src/Tests/Rest/DbLogResourceTest.php @ 5:c69a71b4f40f
Add slideshow module
author | Chris Cannam |
---|---|
date | Thu, 07 Dec 2017 14:46:23 +0000 |
parents | 4c8ae668cc8c |
children |
line wrap: on
line source
<?php namespace Drupal\dblog\Tests\Rest; use Drupal\Component\Serialization\Json; use Drupal\Core\Url; use Drupal\rest\Tests\RESTTestBase; /** * Tests the watchdog database log resource. * * @group dblog */ class DbLogResourceTest extends RESTTestBase { /** * Modules to enable. * * @var array */ public static $modules = ['hal', 'dblog']; protected function setUp() { parent::setUp(); // Enable REST API for the watchdog resource. $this->enableService('dblog'); } /** * Writes a log messages and retrieves it via the REST API. */ public function testWatchdog() { // Write a log message to the DB. $this->container->get('logger.channel.rest')->notice('Test message'); // Get the ID of the written message. $id = db_query_range("SELECT wid FROM {watchdog} WHERE type = :type ORDER BY wid DESC", 0, 1, [':type' => 'rest']) ->fetchField(); // Create a user account that has the required permissions to read // the watchdog resource via the REST API. $account = $this->drupalCreateUser(['restful get dblog']); $this->drupalLogin($account); $response = $this->httpRequest(Url::fromRoute('rest.dblog.GET.' . $this->defaultFormat, ['id' => $id, '_format' => $this->defaultFormat]), 'GET'); $this->assertResponse(200); $this->assertHeader('content-type', $this->defaultMimeType); $log = Json::decode($response); $this->assertEqual($log['wid'], $id, 'Log ID is correct.'); $this->assertEqual($log['type'], 'rest', 'Type of log message is correct.'); $this->assertEqual($log['message'], 'Test message', 'Log message text is correct.'); // Request an unknown log entry. $response = $this->httpRequest(Url::fromRoute('rest.dblog.GET.' . $this->defaultFormat, ['id' => 9999, '_format' => $this->defaultFormat]), 'GET'); $this->assertResponse(404); $decoded = Json::decode($response); $this->assertEqual($decoded['message'], 'Log entry with ID 9999 was not found', 'Response message is correct.'); // Make a bad request (a true malformed request would never be a route match). $response = $this->httpRequest(Url::fromRoute('rest.dblog.GET.' . $this->defaultFormat, ['id' => 0, '_format' => $this->defaultFormat]), 'GET'); $this->assertResponse(400); $decoded = Json::decode($response); $this->assertEqual($decoded['message'], 'No log entry ID was provided', 'Response message is correct.'); } }