From db2dbc44b831a4a19cb5a21aa082f9847e1f91f0 Mon Sep 17 00:00:00 2001 From: rpayanm <rpayanm@2209454.no-reply.drupal.org> Date: Thu, 4 Aug 2022 05:03:52 +0000 Subject: [PATCH] 3294612-noderevisiondeletegettimestring-is-not --- src/Commands/NodeRevisionDeleteCommands.php | 10 ++--- src/NodeRevisionDelete.php | 13 +++---- src/NodeRevisionDeleteInterface.php | 8 ++-- tests/src/Unit/NodeRevisionDeleteTest.php | 43 +++++++++++++-------- 4 files changed, 39 insertions(+), 35 deletions(-) diff --git a/src/Commands/NodeRevisionDeleteCommands.php b/src/Commands/NodeRevisionDeleteCommands.php index 0a8c8ec..5b22faf 100644 --- a/src/Commands/NodeRevisionDeleteCommands.php +++ b/src/Commands/NodeRevisionDeleteCommands.php @@ -267,11 +267,11 @@ class NodeRevisionDeleteCommands extends DrushCommands { $config->set('node_revision_delete_when_to_delete_time', $node_revision_delete_when_to_delete_time); $config->save(); + $time = $this->nodeRevisionDelete->getTimeNumberString($time) == 1 ? $time['singular'] : $time['plural']; // We need to update the max_number in the existing content type // configuration if the new value is lower than the actual. $this->nodeRevisionDelete->updateTimeMaxNumberConfig('when_to_delete', $max_number); - $time = $this->nodeRevisionDelete->getTimeNumberString($max_number, $time); $message = dt('<info>The maximum inactivity time was set to @max_number @time.</info>', ['@max_number' => $max_number, '@time' => $time]); $this->writeln($message); } @@ -279,9 +279,8 @@ class NodeRevisionDeleteCommands extends DrushCommands { // Getting the values from the config. $node_revision_delete_when_to_delete_time = $config->get('node_revision_delete_when_to_delete_time'); $max_number = $node_revision_delete_when_to_delete_time['max_number']; - $time = $node_revision_delete_when_to_delete_time['time']; + $time = $this->nodeRevisionDelete->getTimeNumberString($time) == 1 ? $time['singular'] : $time['plural']; - $time = $this->nodeRevisionDelete->getTimeNumberString($max_number, $time); $message = dt('<info>The maximum inactivity time is: @max_number @time.</info>', ['@max_number' => $max_number, '@time' => $time]); $this->writeln($message); } @@ -322,9 +321,9 @@ class NodeRevisionDeleteCommands extends DrushCommands { // We need to update the max_number in the existing content type // configuration if the new value is lower than the actual. $this->nodeRevisionDelete->updateTimeMaxNumberConfig('minimum_age_to_delete', $max_number); + $time = $this->nodeRevisionDelete->getTimeNumberString($time) == 1 ? $time['singular'] : $time['plural']; // Is singular or plural? - $time = $this->nodeRevisionDelete->getTimeNumberString($max_number, $time); $message = dt('<info>The maximum time for the minimum age was set to @max_number @time.</info>', ['@max_number' => $max_number, '@time' => $time]); $this->writeln($message); } @@ -332,10 +331,9 @@ class NodeRevisionDeleteCommands extends DrushCommands { // Getting the values from the config. $node_revision_delete_minimum_age_to_delete_time = $config->get('node_revision_delete_minimum_age_to_delete_time'); $max_number = $node_revision_delete_minimum_age_to_delete_time['max_number']; - $time = $node_revision_delete_minimum_age_to_delete_time['time']; + $time = $this->nodeRevisionDelete->getTimeNumberString($time) == 1 ? $time['singular'] : $time['plural']; // Is singular or plural? - $time = $this->nodeRevisionDelete->getTimeNumberString($max_number, $time); $message = dt('<info>The maximum time for the minimum age is: @max_number @time.</info>', ['@max_number' => $max_number, '@time' => $time]); $this->writeln($message); } diff --git a/src/NodeRevisionDelete.php b/src/NodeRevisionDelete.php index 15852b5..d42bd86 100644 --- a/src/NodeRevisionDelete.php +++ b/src/NodeRevisionDelete.php @@ -132,19 +132,16 @@ class NodeRevisionDelete implements NodeRevisionDeleteInterface { // Getting the config. $config_name_time = $this->configFactory->get($this->configurationFileName)->get('node_revision_delete_' . $config_name . '_time'); // Is singular or plural? - $time = $this->getTimeNumberString($number, $config_name_time['time']); + $time = $this->getTimeNumberString($config_name_time['time']); // Return the time string for the $config_name parameter. $result = ''; switch ($config_name) { case 'minimum_age_to_delete': - $result = $number . ' ' . $time; + $result = $number . ' ' . ($number == 1 ? $time['singular'] : $time['plural']); break; case 'when_to_delete': - $result = $this->t('After @number @time of inactivity', [ - '@number' => $number, - '@time' => $time, - ]); + $result = $this->formatPlural($number, "After 1 {$time['singular']} of inactivity", "After @count {$time['plural']} of inactivity"); break; } @@ -154,7 +151,7 @@ class NodeRevisionDelete implements NodeRevisionDeleteInterface { /** * {@inheritdoc} */ - public function getTimeNumberString(string $number, string $time): TranslatableMarkup { + public function getTimeNumberString(string $time): array { // Time options. $time_options = [ 'days' => [ @@ -171,7 +168,7 @@ class NodeRevisionDelete implements NodeRevisionDeleteInterface { ], ]; - return $number == 1 ? $time_options[$time]['singular'] : $time_options[$time]['plural']; + return $time_options[$time]; } /** diff --git a/src/NodeRevisionDeleteInterface.php b/src/NodeRevisionDeleteInterface.php index 3a79ebb..03baf76 100644 --- a/src/NodeRevisionDeleteInterface.php +++ b/src/NodeRevisionDeleteInterface.php @@ -74,15 +74,13 @@ interface NodeRevisionDeleteInterface { /** * Return the time option in singular or plural. * - * @param string $number - * The number. * @param string $time * The time option (days, weeks or months). * - * @return \Drupal\Core\StringTranslation\TranslatableMarkup - * The singular or plural value for the time. + * @return array + * The singular and plural for the time. */ - public function getTimeNumberString(string $number, string $time): TranslatableMarkup; + public function getTimeNumberString(string $time): array; /** * Return the list of candidate nodes for node revision delete. diff --git a/tests/src/Unit/NodeRevisionDeleteTest.php b/tests/src/Unit/NodeRevisionDeleteTest.php index cd71149..59f224b 100644 --- a/tests/src/Unit/NodeRevisionDeleteTest.php +++ b/tests/src/Unit/NodeRevisionDeleteTest.php @@ -245,19 +245,21 @@ class NodeRevisionDeleteTest extends UnitTestCase { /** * Tests the getTimeNumberString() method. * - * @param int $expected - * The expected result from calling the function. - * @param string $number - * The number. * @param string $time * The time option (days, weeks or months). + * @param array $expected + * The expected result from calling the function. * * @covers ::getTimeNumberString * @dataProvider providerGetTimeNumberString */ - public function testGetTimeNumberString($expected, $number, $time) { + public function testGetTimeNumberString($time, array $expected) { // Testing the method. - $this->assertEquals($expected, $this->nodeRevisionDelete->getTimeNumberString($number, $time)); + $this->assertEquals($expected['singular'], $this->nodeRevisionDelete + ->getTimeNumberString($time)['singular']->getUntranslatedString()); + + $this->assertEquals($expected['plural'], $this->nodeRevisionDelete + ->getTimeNumberString($time)['plural']->getUntranslatedString()); } /** @@ -266,24 +268,33 @@ class NodeRevisionDeleteTest extends UnitTestCase { * @return array * An array of arrays, each containing: * - 'expected' - Expected return from getTimeNumberString(). - * - 'number' - The number. * - 'time' - The time option (days, weeks or months). * * @see testGetTimeNumberString() */ public function providerGetTimeNumberString() { // Days. - $tests['day singular'] = ['day', 1, 'days']; - $tests['day plural 1'] = ['days', 2, 'days']; - $tests['day plural 2'] = ['days', 10, 'days']; + $tests['days'] = [ + 'days', [ + 'singular' => 'day', + 'plural' => 'days', + ], + ]; // Weeks. - $tests['week singular'] = ['week', 1, 'weeks']; - $tests['week plural 1'] = ['weeks', 2, 'weeks']; - $tests['week plural 2'] = ['weeks', 10, 'weeks']; + $tests['weeks'] = [ + 'weeks', [ + 'singular' => 'week', + 'plural' => 'weeks', + ], + ]; // Months. - $tests['month singular'] = ['month', 1, 'months']; - $tests['month plural 1'] = ['months', 2, 'months']; - $tests['month plural 2'] = ['months', 10, 'months']; + $tests['months'] = [ + 'months', + [ + 'singular' => 'month', + 'plural' => 'months', + ], + ]; return $tests; } -- GitLab