@@ -5,6 +5,9 @@ declare(strict_types=1);
55use Latte \Compiler \Nodes \FragmentNode ;
66use Latte \Compiler \Nodes \Html \AttributeNode ;
77use Latte \Compiler \Nodes \Html \ElementNode ;
8+ use Latte \Compiler \Nodes \Html \ExpressionAttributeNode ;
9+ use Latte \Compiler \Nodes \Php \Expression \VariableNode ;
10+ use Latte \Compiler \Nodes \Php \ModifierNode ;
811use Latte \Compiler \Nodes \TextNode ;
912use Latte \ContentType ;
1013use Tester \Assert ;
@@ -113,3 +116,35 @@ test('ElementNode::getAttribute() - non-existent attribute', function () {
113116 Assert::null ($ element ->getAttribute ('id ' ));
114117 Assert::null ($ element ->getAttribute ('nonexistent ' ));
115118});
119+
120+
121+ test ('ElementNode::getAttribute() - ExpressionAttributeNode HTML case insensitive ' , function () {
122+ $ element = new ElementNode ('div ' , contentType: ContentType::Html);
123+ $ element ->attributes = new FragmentNode ([
124+ new ExpressionAttributeNode (
125+ 'CLASS ' ,
126+ new VariableNode ('foo ' ),
127+ new ModifierNode ([]),
128+ ),
129+ ]);
130+
131+ Assert::same (true , $ element ->getAttribute ('class ' ));
132+ Assert::same (true , $ element ->getAttribute ('CLASS ' ));
133+ Assert::same (true , $ element ->getAttribute ('Class ' ));
134+ });
135+
136+
137+ test ('ElementNode::getAttribute() - ExpressionAttributeNode non-HTML case sensitive ' , function () {
138+ $ element = new ElementNode ('element ' , contentType: ContentType::Xml);
139+ $ element ->attributes = new FragmentNode ([
140+ new ExpressionAttributeNode (
141+ 'CLASS ' ,
142+ new VariableNode ('foo ' ),
143+ new ModifierNode ([]),
144+ ),
145+ ]);
146+
147+ Assert::same (true , $ element ->getAttribute ('CLASS ' ));
148+ Assert::null ($ element ->getAttribute ('class ' ));
149+ Assert::null ($ element ->getAttribute ('Class ' ));
150+ });
0 commit comments