Skip to content

Commit df5abc6

Browse files
committed
#305_add unit test
1 parent 1358921 commit df5abc6

File tree

6 files changed

+79
-27
lines changed

6 files changed

+79
-27
lines changed

testData/reference/xml/LayoutUIComponentReferenceRegistrar/uIComponentMustHaveReference/default.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
44
<body>
5-
<referenceContainer name="after.body.start">
6-
<uiComponent name="test_index_i<caret>"/>
5+
<referenceContainer name="content">
6+
<uiComponent name="recently_viewed_2<caret>"/>
77
</referenceContainer>
88
</body>
99
</page>

tests/com/magento/idea/magento2plugin/completion/xml/LayoutUIComponentCompletionRegistrarTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,18 @@
22
* Copyright © Magento, Inc. All rights reserved.
33
* See COPYING.txt for license details.
44
*/
5+
56
package com.magento.idea.magento2plugin.completion.xml;
67

78
import com.magento.idea.magento2plugin.magento.files.LayoutXml;
89

910
public class LayoutUIComponentCompletionRegistrarTest extends CompletionXmlFixtureTestCase {
1011

12+
/**
13+
* Test ui component must have completion.
14+
*/
1115
public void testUIComponentMustHaveCompletion() {
12-
String filePath = this.getFixturePath(LayoutXml.DEFAULT_FILENAME);
16+
final String filePath = this.getFixturePath(LayoutXml.DEFAULT_FILENAME);
1317
myFixture.configureByFile(filePath);
1418

1519
assertCompletionContains(filePath,

tests/com/magento/idea/magento2plugin/reference/BaseReferenceTestCase.java

Lines changed: 54 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,39 @@
22
* Copyright © Magento, Inc. All rights reserved.
33
* See COPYING.txt for license details.
44
*/
5+
56
package com.magento.idea.magento2plugin.reference;
67

78
import com.intellij.psi.PsiElement;
89
import com.intellij.psi.PsiFile;
910
import com.intellij.psi.PsiReference;
1011
import com.intellij.psi.xml.XmlAttributeValue;
12+
import com.intellij.psi.xml.XmlFile;
1113
import com.intellij.psi.xml.XmlTag;
1214
import com.jetbrains.php.lang.psi.elements.PhpClass;
1315
import com.magento.idea.magento2plugin.inspections.BaseInspectionsTestCase;
1416
import com.magento.idea.magento2plugin.magento.packages.File;
1517

16-
abstract public class BaseReferenceTestCase extends BaseInspectionsTestCase {
18+
public abstract class BaseReferenceTestCase extends BaseInspectionsTestCase {
1719

18-
private static final String testDataFolderPath = "testData" + File.separator + "reference" + File.separator;
20+
private static final String testDataFolderPath = "testData" //NOPMD
21+
+ File.separator
22+
+ "reference"
23+
+ File.separator;
1924

2025
@Override
2126
protected void setUp() throws Exception {
2227
super.setUp();
2328
myFixture.setTestDataPath(testDataFolderPath);
2429
}
2530

26-
protected void assertHasReferenceToXmlAttributeValue(String reference) {
27-
String referenceNotFound = "Failed that element contains reference to the attribute value `%s`";
31+
protected void assertHasReferenceToXmlAttributeValue(final String reference) {
32+
final String referenceNotFound //NOPMD
33+
= "Failed that element contains reference to the attribute value `%s`";
2834

29-
PsiElement element = getElementFromCaret();
30-
for (PsiReference psiReference: element.getReferences()) {
31-
PsiElement resolved = psiReference.resolve();
35+
final PsiElement element = getElementFromCaret();
36+
for (final PsiReference psiReference : element.getReferences()) {
37+
final PsiElement resolved = psiReference.resolve();
3238
if (!(resolved instanceof XmlAttributeValue)) {
3339
continue;
3440
}
@@ -41,12 +47,13 @@ protected void assertHasReferenceToXmlAttributeValue(String reference) {
4147
fail(String.format(referenceNotFound, reference));
4248
}
4349

44-
protected void assertHasReferenceToXmlTag(String tagName) {
45-
String referenceNotFound = "Failed that element contains reference to the XML tag `%s`";
50+
protected void assertHasReferenceToXmlTag(final String tagName) {
51+
final String referenceNotFound //NOPMD
52+
= "Failed that element contains reference to the XML tag `%s`";
4653

47-
PsiElement element = getElementFromCaret();
48-
for (PsiReference psiReference: element.getReferences()) {
49-
PsiElement resolved = psiReference.resolve();
54+
final PsiElement element = getElementFromCaret();
55+
for (final PsiReference psiReference : element.getReferences()) {
56+
final PsiElement resolved = psiReference.resolve();
5057
if (!(resolved instanceof XmlTag)) {
5158
continue;
5259
}
@@ -59,12 +66,32 @@ protected void assertHasReferenceToXmlTag(String tagName) {
5966
fail(String.format(referenceNotFound, tagName));
6067
}
6168

62-
protected void assertHasReferenceToFile(String reference) {
63-
String referenceNotFound = "Failed that element contains reference to the file `%s`";
69+
protected void assertHasReferenceToXmlFile(final String fileName) {
70+
final String referenceNotFound //NOPMD
71+
= "Failed that element contains reference to the XML tag `%s`";
72+
73+
final PsiElement element = getElementFromCaret();
74+
for (final PsiReference psiReference : element.getReferences()) {
75+
final PsiElement resolved = psiReference.resolve();
76+
if (!(resolved instanceof XmlFile)) {
77+
continue;
78+
}
79+
80+
if (((XmlFile) resolved).getName().equals(fileName)) {
81+
return;
82+
}
83+
}
84+
85+
fail(String.format(referenceNotFound, fileName));
86+
}
87+
88+
protected void assertHasReferenceToFile(final String reference) {
89+
final String referenceNotFound //NOPMD
90+
= "Failed that element contains reference to the file `%s`";
6491

65-
PsiElement element = getElementFromCaret();
66-
for (PsiReference psiReference: element.getReferences()) {
67-
PsiElement resolved = psiReference.resolve();
92+
final PsiElement element = getElementFromCaret();
93+
for (final PsiReference psiReference : element.getReferences()) {
94+
final PsiElement resolved = psiReference.resolve();
6895
if (!(resolved instanceof PsiFile)) {
6996
continue;
7097
}
@@ -76,18 +103,21 @@ protected void assertHasReferenceToFile(String reference) {
76103
fail(String.format(referenceNotFound, reference));
77104
}
78105

79-
protected void assertHasReferencePhpClass(String phpClassFqn) {
80-
PsiElement element = getElementFromCaret();
81-
PsiReference[] references = element.getReferences();
106+
@SuppressWarnings("PMD")
107+
protected void assertHasReferencePhpClass(final String phpClassFqn) {
108+
final PsiElement element = getElementFromCaret();
109+
final PsiReference[] references = element.getReferences();
110+
String result = ((PhpClass) references[references.length - 1]
111+
.resolve())
112+
.getPresentableFQN();
82113
assertEquals(
83-
phpClassFqn,
84-
((PhpClass) references[references.length -1].resolve())
85-
.getPresentableFQN()
114+
phpClassFqn,
115+
result
86116
);
87117
}
88118

89119
protected void assertEmptyReference() {
90-
PsiElement element = getElementFromCaret();
120+
final PsiElement element = getElementFromCaret();
91121
assertEmpty(element.getReferences());
92122
}
93123

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

0 commit comments

Comments
 (0)