$this->
assertFalse($output, '\Drupal::theme() returns FALSE when a hook suggestion is not implemented.'
);
} /**
* Tests function theme_get_suggestions() for SA-CORE-2009-003.
*/
public function testThemeSuggestions() { // Set the front page as something random otherwise the CLI
// test runner fails.
$this->
config('system.site'
)->
set('page.front', '/nobody-home'
)->
save();
$args =
['node', '1', 'edit'
];
$suggestions =
theme_get_suggestions($args, 'page'
);
$this->
assertEquals(['page__node', 'page__node__%', 'page__node__1', 'page__node__edit'
],
$suggestions, 'Found expected node edit page suggestions'
);
// Check attack vectors.
$args =
['node', '\\1'
];
$suggestions =
theme_get_suggestions($args, 'page'
);
$this->
assertEquals(['page__node', 'page__node__%', 'page__node__1'
],
$suggestions, 'Removed invalid \\ from suggestions'
);
$args =
['node', '1/'
];
$suggestions =
theme_get_suggestions($args, 'page'
);
$this->
assertEquals(['page__node', 'page__node__%', 'page__node__1'
],
$suggestions, 'Removed invalid / from suggestions'
);
$args =
['node', "1\0"
];
$suggestions =
theme_get_suggestions($args, 'page'
);
$this->
assertEquals(['page__node', 'page__node__%', 'page__node__1'
],
$suggestions, 'Removed invalid \\0 from suggestions'
);