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.
|
* - data: An array of data about each project's status.
|
||||||
*/
|
*/
|
||||||
function template_preprocess_update_report(&$variables) {
|
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);
|
$last = \Drupal::state()->get('update.last_check', 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue