Skip to content

Commit 43415f3

Browse files
authored
Merge pull request #357 from dylanngo95/issuses-305
#305_update unit test
2 parents 15c74f3 + df5abc6 commit 43415f3

File tree

8 files changed

+187
-24
lines changed

8 files changed

+187
-24
lines changed

src/com/magento/idea/magento2plugin/indexes/IndexManager.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.magento.idea.magento2plugin.stubs.indexes.xml.AclResourceIndex;
2828
import com.magento.idea.magento2plugin.stubs.indexes.xml.MenuIndex;
2929
import com.magento.idea.magento2plugin.stubs.indexes.xml.PhpClassNameIndex;
30+
import com.magento.idea.magento2plugin.stubs.indexes.xml.UIComponentIndex;
3031

3132
@SuppressWarnings({"PMD.ClassNamingConventions", "PMD.UseUtilityClass"})
3233
public class IndexManager {
@@ -44,6 +45,7 @@ public static void manualReindex() {
4445
// layouts
4546
BlockNameIndex.KEY,
4647
ContainerNameIndex.KEY,
48+
UIComponentIndex.KEY,
4749
// events
4850
EventNameIndex.KEY,
4951
EventObserverIndex.KEY,
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="content">
6+
<uiComponent name="recently_vie<caret>"/>
7+
</referenceContainer>
8+
</body>
9+
</page>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
4+
<argument name="data" xsi:type="array">
5+
<item name="js_config" xsi:type="array">
6+
<item name="provider" xsi:type="string">widget_recently_compared.recently_compared_datasource</item>
7+
</item>
8+
</argument>
9+
</listing>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
4+
<argument name="data" xsi:type="array">
5+
<item name="js_config" xsi:type="array">
6+
<item name="provider" xsi:type="string">widget_recently_viewed.recently_viewed_datasource</item>
7+
</item>
8+
</argument>
9+
<settings>
10+
<deps>
11+
<dep>widget_recently_viewed.recently_viewed_datasource</dep>
12+
</deps>
13+
<spinner>widget_columns</spinner>
14+
</settings>
15+
<dataSource name="recently_viewed_datasource" component="Magento_Catalog/js/product/provider">
16+
<argument name="dataProvider" xsi:type="configurableObject">
17+
<argument name="data" xsi:type="array">
18+
<item name="config" xsi:type="array">
19+
<item name="productStorageConfig" xsi:type="array">
20+
<item name="namespace" xsi:type="string">product_data_storage</item>
21+
<item name="className" xsi:type="string">DataStorage</item>
22+
<item name="updateRequestConfig" xsi:type="array">
23+
<item name="url" xsi:type="serviceUrl" path="/products-render-info"/>
24+
</item>
25+
</item>
26+
<item name="identifiersConfig" xsi:type="array">
27+
<item name="namespace" xsi:type="string">recently_viewed_product</item>
28+
</item>
29+
</item>
30+
</argument>
31+
</argument>
32+
<dataProvider class="\Magento\Catalog\Ui\DataProvider\Product\Listing\DataProvider" name="recently_viewed_datasource">
33+
<settings>
34+
<requestFieldName/>
35+
<primaryFieldName/>
36+
</settings>
37+
</dataProvider>
38+
</dataSource>
39+
<columns name="widget_columns" component="Magento_Catalog/js/product/list/listing" template="Magento_Catalog/product/list/listing">
40+
<argument name="data" xsi:type="array">
41+
<item name="config" xsi:type="array">
42+
<item name="label" xsi:type="string" translate="true">Recently Viewed</item>
43+
<item name="additionalClasses" xsi:type="string">widget block-viewed-products-grid</item>
44+
<item name="listTemplate" xsi:type="string">Magento_Catalog/product/list/listing</item>
45+
</item>
46+
</argument>
47+
<settings>
48+
<displayMode>grid</displayMode>
49+
</settings>
50+
<column name="image" component="Magento_Catalog/js/product/list/columns/image" sortOrder="0" displayArea="general-area">
51+
<argument name="data" xsi:type="array">
52+
<item name="config" xsi:type="array">
53+
<item name="imageCode" xsi:type="string">recently_viewed_products_grid_content_widget</item>
54+
</item>
55+
</argument>
56+
<settings>
57+
<label translate="true">Image</label>
58+
<bodyTmpl>Magento_Catalog/product/list/columns/image_with_borders</bodyTmpl>
59+
</settings>
60+
</column>
61+
</columns>
62+
</listing>
Lines changed: 9 additions & 0 deletions
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="content">
6+
<uiComponent name="recently_viewed_2<caret>"/>
7+
</referenceContainer>
8+
</body>
9+
</page>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
package com.magento.idea.magento2plugin.completion.xml;
7+
8+
import com.magento.idea.magento2plugin.magento.files.LayoutXml;
9+
10+
public class LayoutUIComponentCompletionRegistrarTest extends CompletionXmlFixtureTestCase {
11+
12+
/**
13+
* Test ui component must have completion.
14+
*/
15+
public void testUIComponentMustHaveCompletion() {
16+
final String filePath = this.getFixturePath(LayoutXml.DEFAULT_FILENAME);
17+
myFixture.configureByFile(filePath);
18+
19+
assertCompletionContains(filePath,
20+
"recently_viewed",
21+
"recently_viewed_2"
22+
);
23+
}
24+
}

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)