public function DbLogResourceTest::testWatchdog in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/dblog/src/Tests/Rest/DbLogResourceTest.php \Drupal\dblog\Tests\Rest\DbLogResourceTest::testWatchdog()
Writes a log messages and retrieves it via the REST API.
File
- core/
modules/ dblog/ src/ Tests/ Rest/ DbLogResourceTest.php, line 37 - Contains \Drupal\dblog\Tests\Rest\DbLogResourceTest.
Class
- DbLogResourceTest
- Tests the watchdog database log resource.
Namespace
Drupal\dblog\Tests\RestCode
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, array(
':type' => 'rest',
))
->fetchField();
// Create a user account that has the required permissions to read
// the watchdog resource via the REST API.
$account = $this
->drupalCreateUser(array(
'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['error'], 'Log entry with ID 9999 was not found', 'Response message is correct.');
}