Skip to content
Snippets Groups Projects

Issue #3318513 by kevinn: Allow to disable queue execution by cron service

Merged Oleh Vehera requested to merge issue/queue_ui-3318513:3318513-allow-to-disable into 3.2.x
Files
2
@@ -61,4 +61,137 @@ class BulkOperationsTest extends WebDriverTestBase {
);
}
/**
* Test reordering defined workers.
*
* @throws \Drupal\Core\Entity\EntityStorageException
* @throws \Behat\Mink\Exception\ExpectationException
*/
public function testBulkOperationsButton() {
$this->drupalLogin($this->createUser(['admin queue_ui']));
$form_url = Url::fromRoute('queue_ui.overview_form');
$driver = $this->getSession();
$page = $driver->getPage();
$session = $this->assertSession();
$this->drupalGet($form_url);
// Show weights.
$page->find('css', '[data-drupal-selector="tabledrag-toggle-weight"]')->press();
// Test clicking on button without selected items.
$session->fieldValueEquals('weight[queue_order_worker_A]', '30');
$session->fieldValueEquals('weight[queue_order_worker_B]', '20');
$session->fieldValueEquals('weight[queue_order_worker_C]', '10');
$session->fieldValueEquals('weight[queue_order_worker_D]', '0');
$session->fieldValueEquals('weight[queue_order_worker_E]', '-10');
$session->fieldValueEquals('weight[queue_order_worker_F]', '-20');
$session->fieldValueEquals('cron[queue_order_worker_A]', '60');
$session->fieldValueEquals('cron[queue_order_worker_B]', '');
$session->fieldValueEquals('cron[queue_order_worker_C]', '60');
$session->fieldValueEquals('cron[queue_order_worker_D]', '60');
$session->fieldValueEquals('cron[queue_order_worker_E]', '60');
$session->fieldValueEquals('cron[queue_order_worker_F]', '60');
$this->submitForm([
'weight[queue_order_worker_A]' => '0',
'weight[queue_order_worker_B]' => '1',
'weight[queue_order_worker_C]' => '2',
'weight[queue_order_worker_D]' => '3',
'weight[queue_order_worker_E]' => '4',
'weight[queue_order_worker_F]' => '5',
'cron[queue_order_worker_A]' => '1',
'cron[queue_order_worker_B]' => '',
'cron[queue_order_worker_C]' => '0',
'cron[queue_order_worker_D]' => '-1',
'cron[queue_order_worker_E]' => '60',
'cron[queue_order_worker_F]' => '60',
], 'Save changes');
$this->drupalGet($form_url);
$session->fieldValueEquals('weight[queue_order_worker_A]', '0');
$session->fieldValueEquals('weight[queue_order_worker_B]', '1');
$session->fieldValueEquals('weight[queue_order_worker_C]', '2');
$session->fieldValueEquals('weight[queue_order_worker_D]', '3');
$session->fieldValueEquals('weight[queue_order_worker_E]', '4');
$session->fieldValueEquals('weight[queue_order_worker_F]', '5');
$session->fieldValueEquals('cron[queue_order_worker_A]', '1');
$session->fieldValueEquals('cron[queue_order_worker_B]', '');
$session->fieldValueEquals('cron[queue_order_worker_C]', '0');
$session->fieldValueEquals('cron[queue_order_worker_D]', '-1');
$session->fieldValueEquals('cron[queue_order_worker_E]', '60');
$session->fieldValueEquals('cron[queue_order_worker_F]', '60');
$this->submitForm([], 'Apply to selected items');
$session->statusMessageExists('error');
$session->statusMessageContains('No items selected.');
$this->drupalGet($form_url);
$this->submitForm([
'operation' => 'submitBatch',
], 'Apply to selected items');
$session->statusMessageExists('error');
$session->statusMessageContains('No items selected.');
$this->drupalGet($form_url);
$this->submitForm([
'operation' => 'submitRelease',
], 'Apply to selected items');
$session->statusMessageExists('error');
$session->statusMessageContains('No items selected.');
$this->drupalGet($form_url);
$this->submitForm([
'operation' => 'submitClear',
], 'Apply to selected items');
$session->statusMessageExists('error');
$session->statusMessageContains('No items selected.');
$this->drupalGet($form_url);
$queues = [
'queue_order_worker_A',
'queue_order_worker_B',
'queue_order_worker_C',
'queue_order_worker_D',
];
$queueWorkerManager = \Drupal::service('plugin.manager.queue_worker');
$queueManager = \Drupal::service('queue');
$count = 10;
foreach ($queues as $queueId) {
$queue = $queueManager->get($queueId);
$queueTitle = $queueWorkerManager->getDefinition($queueId)['title'];
for ($i = 1; $i <= $count; $i++) {
$queue->createItem([]);
}
// Test clicking on button with selected queue and single queue item in.
$this->submitForm([
"queues[$queueId]" => $queueId,
'operation' => 'submitBatch',
], 'Apply to selected items');
$session->waitForElementVisible('css', '[data-drupal-messages]');
$session->statusMessageExists('status');
$session->statusMessageContains("Queue {$queueTitle}: 10 items successfully processed.");
$this->drupalGet($form_url);
$this->submitForm([
'operation' => 'submitRelease',
], 'Apply to selected items');
$session->statusMessageExists('error');
$session->statusMessageContains('No items selected.');
$this->drupalGet($form_url);
$this->submitForm([
'operation' => 'submitClear',
], 'Apply to selected items');
$session->statusMessageExists('error');
$session->statusMessageContains('No items selected.');
$this->drupalGet($form_url);
}
}
}
Loading