Skip to content

Commit adcfd82

Browse files
author
Vitaliy
authored
Merge pull request magento#239 from magento/cover-layout-block-with-tests
Covered reference block related functionality with tests
2 parents 99a277d + c6bcda6 commit adcfd82

File tree

6 files changed

+84
-0
lines changed

6 files changed

+84
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0"?>
2+
3+
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
4+
<body>
5+
<referenceContainer name="after.body.start">
6+
<referenceBlock name="test_index_index<caret>"/>
7+
</referenceContainer>
8+
</body>
9+
</page>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0"?>
2+
3+
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
4+
<body>
5+
<referenceContainer name="after.body.start">
6+
<block name="test_index_index_block" />
7+
<block name="test_index_index_block2" />
8+
</referenceContainer>
9+
</body>
10+
</page>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0"?>
2+
3+
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
4+
<body>
5+
<referenceContainer name="after.body.start">
6+
<referenceBlock name="test_index_index_block2<caret>"/>
7+
</referenceContainer>
8+
</body>
9+
</page>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
package com.magento.idea.magento2plugin.completion.xml;
6+
7+
import com.magento.idea.magento2plugin.magento.files.LayoutXml;
8+
9+
public class LayoutBlockCompletionRegistrarTest extends CompletionXmlFixtureTestCase {
10+
11+
public void testReferenceBlockMustHaveCompletion() {
12+
String filePath = this.getFixturePath(LayoutXml.DEFAULT_FILENAME);
13+
myFixture.configureByFile(filePath);
14+
15+
assertCompletionContains(filePath, new String[] {
16+
"test_index_index_block",
17+
"test_index_index_block2"
18+
});
19+
}
20+
}

Diff for: tests/com/magento/idea/magento2plugin/reference/BaseReferenceTestCase.java

+19
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.intellij.psi.PsiFile;
99
import com.intellij.psi.PsiReference;
1010
import com.intellij.psi.xml.XmlAttributeValue;
11+
import com.intellij.psi.xml.XmlTag;
1112
import com.jetbrains.php.lang.psi.elements.PhpClass;
1213
import com.magento.idea.magento2plugin.inspections.BaseInspectionsTestCase;
1314
import com.magento.idea.magento2plugin.magento.packages.File;
@@ -40,6 +41,24 @@ protected void assertHasReferenceToXmlAttributeValue(String reference) {
4041
fail(String.format(referenceNotFound, reference));
4142
}
4243

44+
protected void assertHasReferenceToXmlTag(String tagName) {
45+
String referenceNotFound = "Failed that element contains reference to the XML tag `%s`";
46+
47+
PsiElement element = getElementFromCaret();
48+
for (PsiReference psiReference: element.getReferences()) {
49+
PsiElement resolved = psiReference.resolve();
50+
if (!(resolved instanceof XmlTag)) {
51+
continue;
52+
}
53+
54+
if (((XmlTag) resolved).getName().equals(tagName)) {
55+
return;
56+
}
57+
}
58+
59+
fail(String.format(referenceNotFound, tagName));
60+
}
61+
4362
protected void assertHasReferenceToFile(String reference) {
4463
String referenceNotFound = "Failed that element contains reference to the file `%s`";
4564

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
package com.magento.idea.magento2plugin.reference.xml;
6+
7+
import com.magento.idea.magento2plugin.magento.files.LayoutXml;
8+
9+
public class LayoutBlockReferenceRegistrarTest extends ReferenceXmlFixtureTestCase {
10+
11+
public void testReferenceBlockMustHaveReference() {
12+
String filePath = this.getFixturePath(LayoutXml.DEFAULT_FILENAME);
13+
myFixture.configureByFile(filePath);
14+
15+
assertHasReferenceToXmlTag("block");
16+
}
17+
}

0 commit comments

Comments
 (0)