function LocaleUrlRewritingTest::checkUrl
Check URL rewriting for the given language.
The test is performed with a fixed URL (the default front page) to simply check that language prefixes are not added to it and that the prefixed URL is actually not working.
Parameters
string $language: The language prefix, e.g. 'es'.
string $message1: Message to display in assertion that language prefixes are not added.
string $message2: The message to display confirming prefixed URL is not working.
1 call to LocaleUrlRewritingTest::checkUrl()
- LocaleUrlRewritingTest::testUrlRewritingEdgeCases in modules/
locale/ locale.test - Check that disabled or non-installed languages are not considered.
File
-
modules/
locale/ locale.test, line 2690
Class
- LocaleUrlRewritingTest
- Test that URL rewriting works as expected.
Code
private function checkUrl($language, $message1, $message2) {
$options = array(
'language' => $language,
);
$base_path = trim(base_path(), '/');
$rewritten_path = trim(str_replace(array(
'?q=',
$base_path,
), '', url('node', $options)), '/');
$segments = explode('/', $rewritten_path, 2);
$prefix = $segments[0];
$path = isset($segments[1]) ? $segments[1] : $prefix;
// If the rewritten URL has not a language prefix we pick the right one from
// the language object so we can always check the prefixed URL.
if ($this->assertNotEqual($language->prefix, $prefix, $message1)) {
$prefix = $language->prefix;
}
$this->drupalGet("{$prefix}/{$path}");
$this->assertResponse(404, $message2);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.