Issue #2396793 by xjm: Token API will match tokens with empty types or tokens, e.g. [:invalid]
parent
54c74fda4d
commit
62ba78dc35
|
|
@ -185,9 +185,9 @@ class Token {
|
|||
// $type may not contain : or whitespace characters, but $name may.
|
||||
preg_match_all('/
|
||||
\[ # [ - pattern start
|
||||
([^\s\[\]:]*) # match $type not containing whitespace : [ or ]
|
||||
([^\s\[\]:]+) # match $type not containing whitespace : [ or ]
|
||||
: # : - separator
|
||||
([^\[\]]*) # match $name not containing [ or ]
|
||||
([^\[\]]+) # match $name not containing [ or ]
|
||||
\] # ] - pattern end
|
||||
/x', $text, $matches);
|
||||
|
||||
|
|
|
|||
|
|
@ -24,12 +24,18 @@ class TokenScanTest extends WebTestBase {
|
|||
// strings.
|
||||
$text = 'First a [valid:simple], but dummy token, and a dummy [valid:token with: spaces].';
|
||||
$text .= 'Then a [not valid:token].';
|
||||
$text .= 'Then an [:empty token type].';
|
||||
$text .= 'Then an [empty token:].';
|
||||
$text .= 'Then a totally empty token: [:].';
|
||||
$text .= 'Last an existing token: [node:author:name].';
|
||||
$token_wannabes = \Drupal::token()->scan($text);
|
||||
|
||||
$this->assertTrue(isset($token_wannabes['valid']['simple']), 'A simple valid token has been matched.');
|
||||
$this->assertTrue(isset($token_wannabes['valid']['token with: spaces']), 'A valid token with space characters in the token name has been matched.');
|
||||
$this->assertFalse(isset($token_wannabes['not valid']), 'An invalid token with spaces in the token type has not been matched.');
|
||||
$this->assertFalse(isset($token_wannabes['empty token']), 'An empty token has not been matched.');
|
||||
$this->assertFalse(isset($token_wannabes['']['empty token type']), 'An empty token type has not been matched.');
|
||||
$this->assertFalse(isset($token_wannabes['']['']), 'An empty token and type has not been matched.');
|
||||
$this->assertTrue(isset($token_wannabes['node']), 'An existing valid token has been matched.');
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue