From 0cd107b12b8429946fdfc175ac822eb6eb113210 Mon Sep 17 00:00:00 2001 From: Adarsh Manickam Date: Fri, 30 Oct 2020 17:01:21 +0530 Subject: [PATCH 1/3] Added tests for module name reference in module.xml --- .../moduleNameMustHaveReference/module.xml | 11 ++++++++ .../module.xml | 15 +++++++++++ .../reference/BaseReferenceTestCase.java | 15 +++++++++++ .../xml/ModuleNameReferenceRegistrarTest.java | 27 +++++++++++++++++++ 4 files changed, 68 insertions(+) create mode 100644 testData/reference/xml/ModuleNameReferenceRegistrar/moduleNameMustHaveReference/module.xml create mode 100644 testData/reference/xml/ModuleNameReferenceRegistrar/sequenceModuleNameMustHaveReference/module.xml create mode 100644 tests/com/magento/idea/magento2plugin/reference/xml/ModuleNameReferenceRegistrarTest.java diff --git a/testData/reference/xml/ModuleNameReferenceRegistrar/moduleNameMustHaveReference/module.xml b/testData/reference/xml/ModuleNameReferenceRegistrar/moduleNameMustHaveReference/module.xml new file mode 100644 index 000000000..296e145c4 --- /dev/null +++ b/testData/reference/xml/ModuleNameReferenceRegistrar/moduleNameMustHaveReference/module.xml @@ -0,0 +1,11 @@ + + + + + diff --git a/testData/reference/xml/ModuleNameReferenceRegistrar/sequenceModuleNameMustHaveReference/module.xml b/testData/reference/xml/ModuleNameReferenceRegistrar/sequenceModuleNameMustHaveReference/module.xml new file mode 100644 index 000000000..d70e3683e --- /dev/null +++ b/testData/reference/xml/ModuleNameReferenceRegistrar/sequenceModuleNameMustHaveReference/module.xml @@ -0,0 +1,15 @@ + + + + + + + + + diff --git a/tests/com/magento/idea/magento2plugin/reference/BaseReferenceTestCase.java b/tests/com/magento/idea/magento2plugin/reference/BaseReferenceTestCase.java index 94f8b20b4..bef1e1a39 100644 --- a/tests/com/magento/idea/magento2plugin/reference/BaseReferenceTestCase.java +++ b/tests/com/magento/idea/magento2plugin/reference/BaseReferenceTestCase.java @@ -9,6 +9,7 @@ import com.intellij.psi.PsiFile; import com.intellij.psi.PsiReference; import com.intellij.psi.ResolveResult; +import com.intellij.psi.impl.file.PsiDirectoryImpl; import com.intellij.psi.xml.XmlAttributeValue; import com.intellij.psi.xml.XmlFile; import com.intellij.psi.xml.XmlTag; @@ -113,6 +114,20 @@ protected void assertHasReferenceToXmlFile(final String fileName) { fail(String.format(referenceNotFound, fileName)); } + protected void assertHasReferenceToDirectory(final String directoryName) { + for (final PsiReference psiReference : getElementFromCaret().getReferences()) { + final PsiElement resolvedElement = psiReference.resolve(); + if (resolvedElement instanceof PsiDirectoryImpl + && ((PsiDirectoryImpl) resolvedElement).getName().equals(directoryName)) { + return; + } + } + + final String referenceNotFound + = "Failed that element contains reference to the directory `%s`"; + fail(String.format(referenceNotFound, directoryName)); + } + @SuppressWarnings("PMD") protected void assertHasReferencePhpClass(final String phpClassFqn) { final PsiElement element = getElementFromCaret(); diff --git a/tests/com/magento/idea/magento2plugin/reference/xml/ModuleNameReferenceRegistrarTest.java b/tests/com/magento/idea/magento2plugin/reference/xml/ModuleNameReferenceRegistrarTest.java new file mode 100644 index 000000000..f464ccd34 --- /dev/null +++ b/tests/com/magento/idea/magento2plugin/reference/xml/ModuleNameReferenceRegistrarTest.java @@ -0,0 +1,27 @@ +/* + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ + +package com.magento.idea.magento2plugin.reference.xml; + +public class ModuleNameReferenceRegistrarTest extends ReferenceXmlFixtureTestCase { + + /** + * Tests for module name reference in module.xml + */ + public void testModuleNameMustHaveReference() { + myFixture.configureByFile(this.getFixturePath("module.xml")); + + assertHasReferenceToDirectory("module-catalog"); + } + + /** + * Tests for module name reference under sequence node in module.xml + */ + public void testSequenceModuleNameMustHaveReference() { + myFixture.configureByFile(this.getFixturePath("module.xml")); + + assertHasReferenceToDirectory("module-config"); + } +} From 13fb65ac7bd71b9046892095b9277528ec9449e6 Mon Sep 17 00:00:00 2001 From: Adarsh Manickam Date: Fri, 30 Oct 2020 17:37:01 +0530 Subject: [PATCH 2/3] Added tests for module name completion in module.xml --- .../moduleNameMustHaveCompletion/module.xml | 11 +++++++ .../module.xml | 15 +++++++++ .../ModuleNameCompletionRegistrarTest.java | 33 +++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 testData/completion/xml/ModuleNameCompletionRegistrar/moduleNameMustHaveCompletion/module.xml create mode 100644 testData/completion/xml/ModuleNameCompletionRegistrar/sequenceModuleNameMustHaveCompletion/module.xml create mode 100644 tests/com/magento/idea/magento2plugin/completion/xml/ModuleNameCompletionRegistrarTest.java diff --git a/testData/completion/xml/ModuleNameCompletionRegistrar/moduleNameMustHaveCompletion/module.xml b/testData/completion/xml/ModuleNameCompletionRegistrar/moduleNameMustHaveCompletion/module.xml new file mode 100644 index 000000000..6e2792b8c --- /dev/null +++ b/testData/completion/xml/ModuleNameCompletionRegistrar/moduleNameMustHaveCompletion/module.xml @@ -0,0 +1,11 @@ + + + + + diff --git a/testData/completion/xml/ModuleNameCompletionRegistrar/sequenceModuleNameMustHaveCompletion/module.xml b/testData/completion/xml/ModuleNameCompletionRegistrar/sequenceModuleNameMustHaveCompletion/module.xml new file mode 100644 index 000000000..f7022f3a2 --- /dev/null +++ b/testData/completion/xml/ModuleNameCompletionRegistrar/sequenceModuleNameMustHaveCompletion/module.xml @@ -0,0 +1,15 @@ + + + + + + + + + diff --git a/tests/com/magento/idea/magento2plugin/completion/xml/ModuleNameCompletionRegistrarTest.java b/tests/com/magento/idea/magento2plugin/completion/xml/ModuleNameCompletionRegistrarTest.java new file mode 100644 index 000000000..633441a68 --- /dev/null +++ b/tests/com/magento/idea/magento2plugin/completion/xml/ModuleNameCompletionRegistrarTest.java @@ -0,0 +1,33 @@ +/* + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ + +package com.magento.idea.magento2plugin.completion.xml; + +public class ModuleNameCompletionRegistrarTest extends CompletionXmlFixtureTestCase { + private static final String[] LOOKUP_MODULE_NAMES = new String[] { + "Magento_Catalog", + "Magento_Config" + }; + + /** + * Tests for module name completion in module.xml + */ + public void testModuleNameMustHaveCompletion() { + final String filePath = this.getFixturePath("module.xml"); + myFixture.copyFileToProject(filePath); + + assertFileContainsCompletions(filePath, LOOKUP_MODULE_NAMES); + } + + /** + * Tests for module name completion under the sequence node in module.xml + */ + public void testSequenceModuleNameMustHaveCompletion() { + final String filePath = this.getFixturePath("module.xml"); + myFixture.copyFileToProject(filePath); + + assertFileContainsCompletions(filePath, LOOKUP_MODULE_NAMES); + } +} From 35311049b7e1b6eda51607d9b79dd35df4f8d05a Mon Sep 17 00:00:00 2001 From: Adarsh Manickam Date: Fri, 30 Oct 2020 17:44:09 +0530 Subject: [PATCH 3/3] Fixed static test failures --- .../completion/xml/ModuleNameCompletionRegistrarTest.java | 2 +- .../idea/magento2plugin/reference/BaseReferenceTestCase.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/com/magento/idea/magento2plugin/completion/xml/ModuleNameCompletionRegistrarTest.java b/tests/com/magento/idea/magento2plugin/completion/xml/ModuleNameCompletionRegistrarTest.java index 633441a68..f9cc87dcc 100644 --- a/tests/com/magento/idea/magento2plugin/completion/xml/ModuleNameCompletionRegistrarTest.java +++ b/tests/com/magento/idea/magento2plugin/completion/xml/ModuleNameCompletionRegistrarTest.java @@ -6,7 +6,7 @@ package com.magento.idea.magento2plugin.completion.xml; public class ModuleNameCompletionRegistrarTest extends CompletionXmlFixtureTestCase { - private static final String[] LOOKUP_MODULE_NAMES = new String[] { + private static final String[] LOOKUP_MODULE_NAMES = { "Magento_Catalog", "Magento_Config" }; diff --git a/tests/com/magento/idea/magento2plugin/reference/BaseReferenceTestCase.java b/tests/com/magento/idea/magento2plugin/reference/BaseReferenceTestCase.java index bef1e1a39..aeaddade7 100644 --- a/tests/com/magento/idea/magento2plugin/reference/BaseReferenceTestCase.java +++ b/tests/com/magento/idea/magento2plugin/reference/BaseReferenceTestCase.java @@ -118,7 +118,7 @@ protected void assertHasReferenceToDirectory(final String directoryName) { for (final PsiReference psiReference : getElementFromCaret().getReferences()) { final PsiElement resolvedElement = psiReference.resolve(); if (resolvedElement instanceof PsiDirectoryImpl - && ((PsiDirectoryImpl) resolvedElement).getName().equals(directoryName)) { + && ((PsiDirectoryImpl) resolvedElement).getName().equals(directoryName)) { return; } }