Issue #2848529 by ApacheEx, dagmar, dawehner: Move DbLogTest::verifyCron to a kernel test
parent
44920d2a2f
commit
41b994cc88
|
|
@ -9,7 +9,6 @@ use Drupal\Core\Logger\RfcLogLevel;
|
|||
use Drupal\Core\Url;
|
||||
use Drupal\dblog\Controller\DbLogController;
|
||||
use Drupal\Tests\BrowserTestBase;
|
||||
use Drupal\Tests\Traits\Core\CronRunTrait;
|
||||
|
||||
/**
|
||||
* Generate events and verify dblog entries; verify user access to log reports
|
||||
|
|
@ -18,7 +17,6 @@ use Drupal\Tests\Traits\Core\CronRunTrait;
|
|||
* @group dblog
|
||||
*/
|
||||
class DbLogTest extends BrowserTestBase {
|
||||
use CronRunTrait;
|
||||
use FakeLogEntries;
|
||||
|
||||
/**
|
||||
|
|
@ -68,7 +66,6 @@ class DbLogTest extends BrowserTestBase {
|
|||
|
||||
$row_limit = 100;
|
||||
$this->verifyRowLimit($row_limit);
|
||||
$this->verifyCron($row_limit);
|
||||
$this->verifyEvents();
|
||||
$this->verifyReports();
|
||||
$this->verifyBreadcrumbs();
|
||||
|
|
@ -138,52 +135,6 @@ class DbLogTest extends BrowserTestBase {
|
|||
$this->assertTrue($current_limit == $row_limit, format_string('[Cache] Row limit variable of @count equals row limit of @limit', ['@count' => $current_limit, '@limit' => $row_limit]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that cron correctly applies the database log row limit.
|
||||
*
|
||||
* @param int $row_limit
|
||||
* The row limit.
|
||||
*/
|
||||
private function verifyCron($row_limit) {
|
||||
// Generate additional log entries.
|
||||
$this->generateLogEntries($row_limit + 10);
|
||||
// Verify that the database log row count exceeds the row limit.
|
||||
$count = db_query('SELECT COUNT(wid) FROM {watchdog}')->fetchField();
|
||||
$this->assertTrue($count > $row_limit, format_string('Dblog row count of @count exceeds row limit of @limit', ['@count' => $count, '@limit' => $row_limit]));
|
||||
|
||||
// Get the number of enabled modules. Cron adds a log entry for each module.
|
||||
$list = \Drupal::moduleHandler()->getImplementations('cron');
|
||||
$module_count = count($list);
|
||||
$cron_detailed_count = $this->runCron();
|
||||
$this->assertTrue($cron_detailed_count == $module_count + 2, format_string('Cron added @count of @expected new log entries', ['@count' => $cron_detailed_count, '@expected' => $module_count + 2]));
|
||||
|
||||
// Test disabling of detailed cron logging.
|
||||
$this->config('system.cron')->set('logging', 0)->save();
|
||||
$cron_count = $this->runCron();
|
||||
$this->assertTrue($cron_count = 1, format_string('Cron added @count of @expected new log entries', ['@count' => $cron_count, '@expected' => 1]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs cron and returns number of new log entries.
|
||||
*
|
||||
* @return int
|
||||
* Number of new watchdog entries.
|
||||
*/
|
||||
private function runCron() {
|
||||
// Get last ID to compare against; log entries get deleted, so we can't
|
||||
// reliably add the number of newly created log entries to the current count
|
||||
// to measure number of log entries created by cron.
|
||||
$last_id = db_query('SELECT MAX(wid) FROM {watchdog}')->fetchField();
|
||||
|
||||
// Run a cron job.
|
||||
$this->cronRun();
|
||||
|
||||
// Get last ID after cron was run.
|
||||
$current_id = db_query('SELECT MAX(wid) FROM {watchdog}')->fetchField();
|
||||
|
||||
return $current_id - $last_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear the entry logs by clicking on 'Clear log messages' button.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,77 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\dblog\Kernel;
|
||||
|
||||
use Drupal\KernelTests\KernelTestBase;
|
||||
use Drupal\Tests\dblog\Functional\FakeLogEntries;
|
||||
|
||||
/**
|
||||
* Generate events and verify dblog entries.
|
||||
*
|
||||
* @group dblog
|
||||
*/
|
||||
class DbLogTest extends KernelTestBase {
|
||||
|
||||
use FakeLogEntries;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected static $modules = ['dblog', 'system'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
$this->installSchema('dblog', ['watchdog']);
|
||||
$this->installSchema('system', ['key_value_expire', 'sequences']);
|
||||
$this->installConfig(['system']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that cron correctly applies the database log row limit.
|
||||
*/
|
||||
public function testDbLogCron() {
|
||||
$row_limit = 100;
|
||||
// Generate additional log entries.
|
||||
$this->generateLogEntries($row_limit + 10);
|
||||
// Verify that the database log row count exceeds the row limit.
|
||||
$count = db_query('SELECT COUNT(wid) FROM {watchdog}')->fetchField();
|
||||
$this->assertGreaterThan($row_limit, $count, format_string('Dblog row count of @count exceeds row limit of @limit', ['@count' => $count, '@limit' => $row_limit]));
|
||||
|
||||
// Get the number of enabled modules. Cron adds a log entry for each module.
|
||||
$list = $this->container->get('module_handler')->getImplementations('cron');
|
||||
$module_count = count($list);
|
||||
$cron_detailed_count = $this->runCron();
|
||||
$this->assertEquals($module_count + 2, $cron_detailed_count, format_string('Cron added @count of @expected new log entries', ['@count' => $cron_detailed_count, '@expected' => $module_count + 2]));
|
||||
|
||||
// Test disabling of detailed cron logging.
|
||||
$this->config('system.cron')->set('logging', 0)->save();
|
||||
$cron_count = $this->runCron();
|
||||
$this->assertEquals(1, $cron_count, format_string('Cron added @count of @expected new log entries', ['@count' => $cron_count, '@expected' => 1]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs cron and returns number of new log entries.
|
||||
*
|
||||
* @return int
|
||||
* Number of new watchdog entries.
|
||||
*/
|
||||
private function runCron() {
|
||||
// Get last ID to compare against; log entries get deleted, so we can't
|
||||
// reliably add the number of newly created log entries to the current count
|
||||
// to measure number of log entries created by cron.
|
||||
$last_id = db_query('SELECT MAX(wid) FROM {watchdog}')->fetchField();
|
||||
|
||||
// Run a cron job.
|
||||
$this->container->get('cron')->run();
|
||||
|
||||
// Get last ID after cron was run.
|
||||
$current_id = db_query('SELECT MAX(wid) FROM {watchdog}')->fetchField();
|
||||
|
||||
return $current_id - $last_id;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue