Issue #3002820 by daffie, pavnish, dww, sokru, mmjvb: PHP Warning in template_preprocess_update_report(): Invalid argument supplied for foreach()
parent
eba9a1805f
commit
2f51f441c9
|
@ -0,0 +1,57 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\update\Kernel;
|
||||
|
||||
use Drupal\KernelTests\KernelTestBase;
|
||||
|
||||
/**
|
||||
* Tests update report functionality.
|
||||
*
|
||||
* @covers template_preprocess_update_report()
|
||||
* @group update
|
||||
*/
|
||||
class UpdateReportTest extends KernelTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected static $modules = [
|
||||
'system',
|
||||
'update',
|
||||
];
|
||||
|
||||
/**
|
||||
* @dataProvider providerTemplatePreprocessUpdateReport
|
||||
*/
|
||||
public function testTemplatePreprocessUpdateReport($variables) {
|
||||
\Drupal::moduleHandler()->loadInclude('update', 'inc', 'update.report');
|
||||
|
||||
// The function should run without an exception being thrown when the value
|
||||
// of $variables['data'] is not set or is not an array.
|
||||
template_preprocess_update_report($variables);
|
||||
|
||||
// Test that the key "no_updates_message" has been set.
|
||||
$this->assertArrayHasKey('no_updates_message', $variables);
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides data for testTemplatePreprocessUpdateReport().
|
||||
*
|
||||
* @return array
|
||||
* Array of $variables for template_preprocess_update_report().
|
||||
*/
|
||||
public function providerTemplatePreprocessUpdateReport() {
|
||||
return [
|
||||
'$variables with data not set' => [
|
||||
[],
|
||||
],
|
||||
'$variables with data as an interger' => [
|
||||
['data' => 4],
|
||||
],
|
||||
'$variables with data as a string' => [
|
||||
['data' => 'I am a string'],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
}
|
|
@ -20,7 +20,7 @@ use Drupal\update\UpdateManagerInterface;
|
|||
* - data: An array of data about each project's status.
|
||||
*/
|
||||
function template_preprocess_update_report(&$variables) {
|
||||
$data = $variables['data'];
|
||||
$data = isset($variables['data']) && is_array($variables['data']) ? $variables['data'] : [];
|
||||
|
||||
$last = \Drupal::state()->get('update.last_check', 0);
|
||||
|
||||
|
|
Loading…
Reference in New Issue