Skip to content

Commit

Permalink
Add tests for highlighting PHP attributes
Browse files Browse the repository at this point in the history
  • Loading branch information
javiereguiluz authored and wouterj committed May 17, 2024
1 parent 35ae0d5 commit 9764478
Show file tree
Hide file tree
Showing 3 changed files with 202 additions and 0 deletions.
4 changes: 4 additions & 0 deletions tests/IntegrationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,10 @@ public function parserUnitBlockProvider()
'blockName' => 'code-blocks/php-annotations',
];

yield 'code-block-php-attributes' => [
'blockName' => 'code-blocks/php-attributes',
];

yield 'code-block-text' => [
'blockName' => 'code-blocks/text',
];
Expand Down
147 changes: 147 additions & 0 deletions tests/fixtures/expected/blocks/code-blocks/php-attributes.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
<div translate="no" data-loc="48" class="notranslate codeblock codeblock-length-md codeblock-php-attributes codeblock-php">
<div class="codeblock-scroll">
<pre class="codeblock-lines">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</pre>
<pre class="codeblock-code">
<code>
<span class="hljs-comment">// src/SomePath/SomeClass.php</span>
<span class="hljs-keyword">namespace</span> <span class="hljs-title">App</span>\<span class="hljs-title">SomePath</span>;
<span class="hljs-keyword">use</span><span class="hljs-title">Symfony</span>\<span class="hljs-title">Component</span>\<span class="hljs-title">Validator</span>\<span class="hljs-title">Constraints</span> <span class="hljs-title">as</span> <span class="hljs-title">Assert</span>;
<span class="hljs-class">
<span class="hljs-keyword">class</span>
<span class="hljs-title">SomeClass</span>
</span>
{
<span class="hljs-php-attribute">#[AttributeName]</span>
<span class="hljs-keyword">private</span>
<span class="hljs-variable">
<span class="hljs-variable-other-marker">$</span> property1</span>
;
<span class="hljs-php-attribute">#[AttributeName(</span>
<span class="hljs-php-attribute">)]</span>
<span class="hljs-keyword">private</span>
<span class="hljs-variable">
<span class="hljs-variable-other-marker">$</span> property2</span>
;
<span class="hljs-php-attribute">#[AttributeName(</span>
<span class="hljs-string">'value'</span>
<span class="hljs-php-attribute">)]</span>
<span class="hljs-keyword">private</span>
<span class="hljs-variable">
<span class="hljs-variable-other-marker">$</span> property3</span>
;
<span class="hljs-php-attribute">#[AttributeName(</span>
<span class="hljs-string">'value'</span>
, option:
<span class="hljs-string">'value'</span>
<span class="hljs-php-attribute">)]</span>
<span class="hljs-keyword">private</span>
<span class="hljs-variable">
<span class="hljs-variable-other-marker">$</span> property4</span>
;
<span class="hljs-php-attribute">#[AttributeName(</span>
[<span class="hljs-string">'value'</span> =&gt; <span class="hljs-string">'value'</span>]<span class="hljs-php-attribute">)]</span>
<span class="hljs-keyword">private</span>
<span class="hljs-variable">
<span class="hljs-variable-other-marker">$</span> property5</span>
;
<span class="hljs-php-attribute">#[AttributeName(</span>
<span class="hljs-string">'value'</span>
, option:
<span class="hljs-string">'value'</span>
<span class="hljs-php-attribute">)]</span>
<span class="hljs-keyword">private</span>
<span class="hljs-variable">
<span class="hljs-variable-other-marker">$</span> property6</span>
;
<span class="hljs-php-attribute">#[Assert\AttributeName(</span>
<span class="hljs-string">'value'</span>
<span class="hljs-php-attribute">)]</span>
<span class="hljs-keyword">private</span>
<span class="hljs-variable">
<span class="hljs-variable-other-marker">$</span> property7</span>
;
<span class="hljs-php-attribute">#[Assert\AttributeName(</span>
<span class="hljs-string">'value'</span>
, option:
<span class="hljs-string">'value'</span>
<span class="hljs-php-attribute">)]</span>
<span class="hljs-keyword">private</span>
<span class="hljs-variable">
<span class="hljs-variable-other-marker">$</span> property8</span>
;
<span class="hljs-php-attribute">#[Route(</span>
<span class="hljs-string">'/blog/{page&lt;\d+&gt;}'</span>
, name:
<span class="hljs-string">'blog_list'</span>
<span class="hljs-php-attribute">)]</span>
<span class="hljs-keyword">private</span>
<span class="hljs-variable">
<span class="hljs-variable-other-marker">$</span> property9</span>
;
<span class="hljs-php-attribute">#[Assert\GreaterThanOrEqual(</span>
value:
<span class="hljs-number">18</span>
,
<span class="hljs-php-attribute">)]</span>
<span class="hljs-keyword">private</span>
<span class="hljs-variable">
<span class="hljs-variable-other-marker">$</span> property10</span>
;
<span class="hljs-php-attribute">#[ORM\CustomIdGenerator(</span>
class:
<span class="hljs-string">'doctrine.uuid_generator'</span>
<span class="hljs-php-attribute">)]</span>
<span class="hljs-keyword">private</span>
<span class="hljs-variable">
<span class="hljs-variable-other-marker">$</span> property11</span>
;
}</code></pre>
</div>
</div>
51 changes: 51 additions & 0 deletions tests/fixtures/source/blocks/code-blocks/php-attributes.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
.. code-block:: php-attributes
// src/SomePath/SomeClass.php
namespace App\SomePath;
use Symfony\Component\Validator\Constraints as Assert;
class SomeClass
{
#[AttributeName]
private $property1;
#[AttributeName()]
private $property2;
#[AttributeName('value')]
private $property3;
#[AttributeName('value', option: 'value')]
private $property4;
#[AttributeName(['value' => 'value'])]
private $property5;
#[AttributeName(
'value',
option: 'value'
)]
private $property6;
#[Assert\AttributeName('value')]
private $property7;
#[Assert\AttributeName(
'value',
option: 'value'
)]
private $property8;
#[Route('/blog/{page<\d+>}', name: 'blog_list')]
private $property9;
#[Assert\GreaterThanOrEqual(
value: 18,
)]
private $property10;
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]
private $property11;
}

0 comments on commit 9764478

Please sign in to comment.