-
-
Notifications
You must be signed in to change notification settings - Fork 85
Expand file tree
/
Copy pathformattable-markup-null-argument.php
More file actions
59 lines (46 loc) · 2.4 KB
/
formattable-markup-null-argument.php
File metadata and controls
59 lines (46 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
declare(strict_types=1);
namespace FormattableMarkupNullArgTest;
use Drupal\Component\Render\FormattableMarkup;
use Drupal\Core\StringTranslation\PluralTranslatableMarkup;
use Drupal\Core\StringTranslation\TranslatableMarkup;
// Error: null literal.
new FormattableMarkup('@name is cool', ['@name' => null]);
// Error: null literal in TranslatableMarkup.
new TranslatableMarkup('@name is cool', ['@name' => null]);
// Error: null literal in PluralTranslatableMarkup (arguments at index 3).
new PluralTranslatableMarkup(5, '1 item by @name', '@count items by @name', ['@name' => null]);
function testNullableVariable(?string $name): void {
new FormattableMarkup('@name is cool', ['@name' => $name]);
new TranslatableMarkup('@name is cool', ['@name' => $name]);
new PluralTranslatableMarkup(5, '1 item by @name', '@count items by @name', ['@name' => $name]);
}
function testSafe(string $name): void {
new FormattableMarkup('@name is cool', ['@name' => $name]);
new TranslatableMarkup('@name is cool', ['@name' => $name]);
new PluralTranslatableMarkup(5, '1 item by @name', '@count items by @name', ['@name' => $name]);
}
function testNoArguments(): void {
new TranslatableMarkup('Hello world');
new PluralTranslatableMarkup(5, '1 item', '@count items');
}
function testNullCoalescing(?string $name): void {
new FormattableMarkup('@name is cool', ['@name' => $name ?? '']);
new TranslatableMarkup('@name is cool', ['@name' => $name ?? '']);
new PluralTranslatableMarkup(5, '1 item by @name', '@count items by @name', ['@name' => $name ?? '']);
}
function testMultipleArgs(?string $name, string $email): void {
new FormattableMarkup('@name (@email)', ['@name' => $name, '@email' => $email]);
new TranslatableMarkup('@name (@email)', ['@name' => $name, '@email' => $email]);
new PluralTranslatableMarkup(5, '1 item by @name (@email)', '@count items by @name (@email)', ['@name' => $name, '@email' => $email]);
}
function testEmptyKey(string $value): void {
new FormattableMarkup('test', ['' => $value]);
new TranslatableMarkup('test', ['' => $value]);
new PluralTranslatableMarkup(5, '1 test', '@count tests', ['' => $value]);
}
function testDynamicKey(string $key, string $value): void {
new FormattableMarkup('test', [$key => $value]);
new TranslatableMarkup('test', [$key => $value]);
new PluralTranslatableMarkup(5, '1 test', '@count tests', [$key => $value]);
}