diff --git a/dev/tests/functional/tests/MFTF/DevDocs/ActionGroup/DeprecatedCommentActionGroup.xml b/dev/tests/functional/tests/MFTF/DevDocs/ActionGroup/DeprecatedCommentActionGroup.xml
new file mode 100644
index 000000000..908808a8c
--- /dev/null
+++ b/dev/tests/functional/tests/MFTF/DevDocs/ActionGroup/DeprecatedCommentActionGroup.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/dev/tests/functional/tests/MFTF/DevDocs/Data/DeprecatedMessageData.xml b/dev/tests/functional/tests/MFTF/DevDocs/Data/DeprecatedMessageData.xml
new file mode 100644
index 000000000..5835a78af
--- /dev/null
+++ b/dev/tests/functional/tests/MFTF/DevDocs/Data/DeprecatedMessageData.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ Introduction to the Magento Functional Testing Framework
+
+
diff --git a/dev/tests/functional/tests/MFTF/DevDocs/Data/MessageData.xml b/dev/tests/functional/tests/MFTF/DevDocs/Data/MessageData.xml
new file mode 100644
index 000000000..eb77e73bc
--- /dev/null
+++ b/dev/tests/functional/tests/MFTF/DevDocs/Data/MessageData.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ Introduction to the Magento Functional Testing Framework
+
+
diff --git a/dev/tests/functional/tests/MFTF/DevDocs/Page/DeprecatedMFTFDocPage.xml b/dev/tests/functional/tests/MFTF/DevDocs/Page/DeprecatedMFTFDocPage.xml
new file mode 100644
index 000000000..ee47fe954
--- /dev/null
+++ b/dev/tests/functional/tests/MFTF/DevDocs/Page/DeprecatedMFTFDocPage.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/dev/tests/functional/tests/MFTF/DevDocs/Section/ContentSection.xml b/dev/tests/functional/tests/MFTF/DevDocs/Section/ContentSection.xml
index cf82b69e9..15af0fa39 100644
--- a/dev/tests/functional/tests/MFTF/DevDocs/Section/ContentSection.xml
+++ b/dev/tests/functional/tests/MFTF/DevDocs/Section/ContentSection.xml
@@ -10,5 +10,6 @@
xsi:noNamespaceSchemaLocation="../../../../../../../src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/functional/tests/MFTF/DevDocs/Section/DeprecatedContentSection.xml b/dev/tests/functional/tests/MFTF/DevDocs/Section/DeprecatedContentSection.xml
new file mode 100644
index 000000000..cc316d6ed
--- /dev/null
+++ b/dev/tests/functional/tests/MFTF/DevDocs/Section/DeprecatedContentSection.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/dev/tests/functional/tests/MFTF/DevDocs/Test/DeprecatedDevDocsTest.xml b/dev/tests/functional/tests/MFTF/DevDocs/Test/DeprecatedDevDocsTest.xml
new file mode 100644
index 000000000..bf0078df4
--- /dev/null
+++ b/dev/tests/functional/tests/MFTF/DevDocs/Test/DeprecatedDevDocsTest.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/tests/functional/tests/MFTF/DevDocs/Test/DevDocsTest.xml b/dev/tests/functional/tests/MFTF/DevDocs/Test/DevDocsTest.xml
index 3bdeeb9e8..c6b2575b9 100644
--- a/dev/tests/functional/tests/MFTF/DevDocs/Test/DevDocsTest.xml
+++ b/dev/tests/functional/tests/MFTF/DevDocs/Test/DevDocsTest.xml
@@ -21,6 +21,6 @@
-
+
diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php
index 39e80d556..67f6f2b43 100644
--- a/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php
+++ b/dev/tests/unit/Magento/FunctionalTestFramework/Test/Handlers/TestObjectHandlerTest.php
@@ -92,7 +92,7 @@ public function testGetTestObject()
[
'features' => ['NO MODULE DETECTED'],
'group' => ['test'],
- 'description' => ['
Test files
']
+ 'description' => ['test_files' => '
Test files
', 'deprecated' => []]
],
[
TestObjectExtractor::TEST_BEFORE_HOOK => $expectedBeforeHookObject,
diff --git a/dev/tests/verification/Resources/ActionGroupContainsStepKeyInArgText.txt b/dev/tests/verification/Resources/ActionGroupContainsStepKeyInArgText.txt
index 1eb3d6566..23e0f0b69 100644
--- a/dev/tests/verification/Resources/ActionGroupContainsStepKeyInArgText.txt
+++ b/dev/tests/verification/Resources/ActionGroupContainsStepKeyInArgText.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupContainsStepKeyInArgTextCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupMergedViaInsertAfter.txt b/dev/tests/verification/Resources/ActionGroupMergedViaInsertAfter.txt
index b4745e0c0..da3d84daf 100644
--- a/dev/tests/verification/Resources/ActionGroupMergedViaInsertAfter.txt
+++ b/dev/tests/verification/Resources/ActionGroupMergedViaInsertAfter.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
*/
class ActionGroupMergedViaInsertAfterCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupMergedViaInsertBefore.txt b/dev/tests/verification/Resources/ActionGroupMergedViaInsertBefore.txt
index b27328275..22e8148d9 100644
--- a/dev/tests/verification/Resources/ActionGroupMergedViaInsertBefore.txt
+++ b/dev/tests/verification/Resources/ActionGroupMergedViaInsertBefore.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
*/
class ActionGroupMergedViaInsertBeforeCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupSkipReadiness.txt b/dev/tests/verification/Resources/ActionGroupSkipReadiness.txt
index 11025fefe..efd5a8cb5 100644
--- a/dev/tests/verification/Resources/ActionGroupSkipReadiness.txt
+++ b/dev/tests/verification/Resources/ActionGroupSkipReadiness.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupSkipReadinessCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupToExtend.txt b/dev/tests/verification/Resources/ActionGroupToExtend.txt
index 133c9fb9b..29d08c0b6 100644
--- a/dev/tests/verification/Resources/ActionGroupToExtend.txt
+++ b/dev/tests/verification/Resources/ActionGroupToExtend.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupToExtendCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupUsingCreateData.txt b/dev/tests/verification/Resources/ActionGroupUsingCreateData.txt
index fb76b4f44..b64822cf6 100644
--- a/dev/tests/verification/Resources/ActionGroupUsingCreateData.txt
+++ b/dev/tests/verification/Resources/ActionGroupUsingCreateData.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupUsingCreateDataCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt b/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt
index 5814e85e0..5eb67f577 100644
--- a/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupUsingNestedArgumentCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt b/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt
index a455d98e0..bb6404315 100644
--- a/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @group functional
- * @Description("
Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
*/
class ActionGroupWithDataOverrideTestCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithDataTest.txt b/dev/tests/verification/Resources/ActionGroupWithDataTest.txt
index 7ac32f550..6b22f83e0 100644
--- a/dev/tests/verification/Resources/ActionGroupWithDataTest.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithDataTest.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @group functional
- * @Description("
Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
*/
class ActionGroupWithDataTestCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt b/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt
index 289bbe4e1..ca5f72cc0 100644
--- a/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: Action Group With Default Argument Value and Hardcoded Value in Param")
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupWithDefaultArgumentAndStringSelectorParamCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt b/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt
index 4e94978ad..f3ad492b0 100644
--- a/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: Action Group With Passed Argument Value and Multiple Argument Values in Param")
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupWithMultipleParameterSelectorsFromDefaultArgumentCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt b/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt
index 6158b5af7..0f69c40e8 100644
--- a/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: Action Group With No Argument")
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupWithNoArgumentsCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt b/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt
index ca6474a7b..533e14b9d 100644
--- a/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @group functional
- * @Description("
Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
*/
class ActionGroupWithNoDefaultTestCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithParameterizedElementWithHyphen.txt b/dev/tests/verification/Resources/ActionGroupWithParameterizedElementWithHyphen.txt
index 52dc8bd1b..acc6aa58a 100644
--- a/dev/tests/verification/Resources/ActionGroupWithParameterizedElementWithHyphen.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithParameterizedElementWithHyphen.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupWithParameterizedElementWithHyphenCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithParameterizedElementsWithStepKeyReferences.txt b/dev/tests/verification/Resources/ActionGroupWithParameterizedElementsWithStepKeyReferences.txt
index b0758e679..ac20299a8 100644
--- a/dev/tests/verification/Resources/ActionGroupWithParameterizedElementsWithStepKeyReferences.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithParameterizedElementsWithStepKeyReferences.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupWithParameterizedElementsWithStepKeyReferencesCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt b/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt
index 254fbe0f2..e816da90b 100644
--- a/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: Action Group With Passed Argument Value and Hardcoded Value in Param")
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupWithPassedArgumentAndStringSelectorParamCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt b/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt
index e8eb29996..7d0bb58e9 100644
--- a/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @group functional
- * @Description("
Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
*/
class ActionGroupWithPersistedDataCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithSectionAndDataAsArguments.txt b/dev/tests/verification/Resources/ActionGroupWithSectionAndDataAsArguments.txt
index ec6111062..f629f32f1 100644
--- a/dev/tests/verification/Resources/ActionGroupWithSectionAndDataAsArguments.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithSectionAndDataAsArguments.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupWithSectionAndDataAsArgumentsCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt
index f4faf0773..10206867a 100644
--- a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: Action Group With Simple Data Usage From Default Argument")
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupWithSimpleDataUsageFromDefaultArgumentCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt
index 86791407d..54aec35a7 100644
--- a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: Action Group With Simple Data Usage From Passed Argument")
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupWithSimpleDataUsageFromPassedArgumentCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt
index 5d8298108..c23b99cab 100644
--- a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: Action Group With Default Argument Value and Argument Value in Param")
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupWithSingleParameterSelectorFromDefaultArgumentCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt
index 283a9fdd7..4a0932b99 100644
--- a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: Action Group With Passed Argument Value and Argument Value in Param")
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupWithSingleParameterSelectorFromPassedArgumentCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt b/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt
index 2ee5b4bf9..8098142fd 100644
--- a/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ActionGroupWithStepKeyReferencesCest
{
diff --git a/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt b/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt
index ca8325402..a8f80eae6 100644
--- a/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @group functional
- * @Description("
Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
*/
class ActionGroupWithTopLevelPersistedDataCest
{
diff --git a/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt b/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt
index 44a00dbd9..e45207249 100644
--- a/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt
+++ b/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @group functional
- * @Description("
Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
*/
class ArgumentWithSameNameAsElementCest
{
diff --git a/dev/tests/verification/Resources/AssertTest.txt b/dev/tests/verification/Resources/AssertTest.txt
index e7f24b605..bb29759d5 100644
--- a/dev/tests/verification/Resources/AssertTest.txt
+++ b/dev/tests/verification/Resources/AssertTest.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/AssertTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/AssertTest.xml
")
*/
class AssertTestCest
{
diff --git a/dev/tests/verification/Resources/BasicActionGroupTest.txt b/dev/tests/verification/Resources/BasicActionGroupTest.txt
index 02915d1a8..7d8c40f0b 100644
--- a/dev/tests/verification/Resources/BasicActionGroupTest.txt
+++ b/dev/tests/verification/Resources/BasicActionGroupTest.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @group functional
- * @Description("
Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
*/
class BasicActionGroupTestCest
{
diff --git a/dev/tests/verification/Resources/BasicFunctionalTest.txt b/dev/tests/verification/Resources/BasicFunctionalTest.txt
index e78f1b49c..ac42f395e 100644
--- a/dev/tests/verification/Resources/BasicFunctionalTest.txt
+++ b/dev/tests/verification/Resources/BasicFunctionalTest.txt
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: A Functional Cest")
* @group functional
- * @Description("
Test files
verification/TestModule/Test/BasicFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/BasicFunctionalTest.xml
")
*/
class BasicFunctionalTestCest
{
diff --git a/dev/tests/verification/Resources/BasicMergeTest.txt b/dev/tests/verification/Resources/BasicMergeTest.txt
index c6fb58e3a..8171cd892 100644
--- a/dev/tests/verification/Resources/BasicMergeTest.txt
+++ b/dev/tests/verification/Resources/BasicMergeTest.txt
@@ -16,7 +16,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
* @Title("[NO TESTCASEID]: BasicMergeTest")
* @group functional
* @group mergeTest
- * @Description("
Test files
verification/TestModule/Test/MergeFunctionalTest.xml
verification/TestModuleMerged/Test/MergeFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/MergeFunctionalTest.xml
verification/TestModuleMerged/Test/MergeFunctionalTest.xml
")
*/
class BasicMergeTestCest
{
diff --git a/dev/tests/verification/Resources/CharacterReplacementTest.txt b/dev/tests/verification/Resources/CharacterReplacementTest.txt
index 61729cc8b..24d8e2ab1 100644
--- a/dev/tests/verification/Resources/CharacterReplacementTest.txt
+++ b/dev/tests/verification/Resources/CharacterReplacementTest.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/CharacterReplacementTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/CharacterReplacementTest.xml
")
*/
class CharacterReplacementTestCest
{
diff --git a/dev/tests/verification/Resources/ChildExtendedTestAddHooks.txt b/dev/tests/verification/Resources/ChildExtendedTestAddHooks.txt
index 8362cf513..86d81f848 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestAddHooks.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestAddHooks.txt
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: ChildExtendedTestAddHooks")
* @group Parent
- * @Description("
Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
*/
class ChildExtendedTestAddHooksCest
{
diff --git a/dev/tests/verification/Resources/ChildExtendedTestMerging.txt b/dev/tests/verification/Resources/ChildExtendedTestMerging.txt
index 590ba6003..08345bd86 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestMerging.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestMerging.txt
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: ChildExtendedTestMerging")
* @group Child
- * @Description("
Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
*/
class ChildExtendedTestMergingCest
{
diff --git a/dev/tests/verification/Resources/ChildExtendedTestNoParent.txt b/dev/tests/verification/Resources/ChildExtendedTestNoParent.txt
index 5d72176c5..4cca6ec06 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestNoParent.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestNoParent.txt
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: ChildExtendedTestNoParent")
* @group Child
- * @Description("
Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
* @group skip
*/
class ChildExtendedTestNoParentCest
diff --git a/dev/tests/verification/Resources/ChildExtendedTestRemoveAction.txt b/dev/tests/verification/Resources/ChildExtendedTestRemoveAction.txt
index 766bfd331..370ffe404 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestRemoveAction.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestRemoveAction.txt
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: ChildExtendedTestRemoveAction")
* @group Child
- * @Description("
Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
*/
class ChildExtendedTestRemoveActionCest
{
diff --git a/dev/tests/verification/Resources/ChildExtendedTestRemoveHookAction.txt b/dev/tests/verification/Resources/ChildExtendedTestRemoveHookAction.txt
index 8497c29af..50b6e030d 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestRemoveHookAction.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestRemoveHookAction.txt
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: ChildExtendedTestRemoveHookAction")
* @group Child
- * @Description("
Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
*/
class ChildExtendedTestRemoveHookActionCest
{
diff --git a/dev/tests/verification/Resources/ChildExtendedTestReplace.txt b/dev/tests/verification/Resources/ChildExtendedTestReplace.txt
index 3b2e9d369..ce32f6af1 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestReplace.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestReplace.txt
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: ChildExtendedTestReplace")
* @group Child
- * @Description("
Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
*/
class ChildExtendedTestReplaceCest
{
diff --git a/dev/tests/verification/Resources/ChildExtendedTestReplaceHook.txt b/dev/tests/verification/Resources/ChildExtendedTestReplaceHook.txt
index 53ae22361..bbb6c5ef9 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestReplaceHook.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestReplaceHook.txt
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: ChildExtendedTestReplaceHook")
* @group Child
- * @Description("
Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
*/
class ChildExtendedTestReplaceHookCest
{
diff --git a/dev/tests/verification/Resources/DataActionsTest.txt b/dev/tests/verification/Resources/DataActionsTest.txt
index c3f8400b3..84a94174a 100644
--- a/dev/tests/verification/Resources/DataActionsTest.txt
+++ b/dev/tests/verification/Resources/DataActionsTest.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/DataActionsTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/DataActionsTest.xml
")
*/
class DataActionsTestCest
{
diff --git a/dev/tests/verification/Resources/DataReplacementTest.txt b/dev/tests/verification/Resources/DataReplacementTest.txt
index 2912ee8a2..b75d93f0d 100644
--- a/dev/tests/verification/Resources/DataReplacementTest.txt
+++ b/dev/tests/verification/Resources/DataReplacementTest.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/DataReplacementTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/DataReplacementTest.xml
")
*/
class DataReplacementTestCest
{
diff --git a/dev/tests/verification/Resources/DeprecatedEntitiesTest.txt b/dev/tests/verification/Resources/DeprecatedEntitiesTest.txt
new file mode 100644
index 000000000..489cb66ea
--- /dev/null
+++ b/dev/tests/verification/Resources/DeprecatedEntitiesTest.txt
@@ -0,0 +1,34 @@
+Deprecated Notice(s):- DEPRECATED ACTION GROUP in Test: DeprecatedActionGroup Deprecated action group
- DEPRECATED SECTION in Test: {{DeprecatedSection.deprecatedElement}} Deprecated section
- DEPRECATED ELEMENT in Test: {{DeprecatedSection.deprecatedElement}} Deprecated element
- DEPRECATED DATA ENTITY in Test: {{DeprecatedData.field}} Data entity deprecated
- DEPRECATED PAGE in Test: {{DeprecatedPage.url}} Deprecated page
Test files
verification/TestModule/Test/DeprecatedEntitiesTest.xml
")
+ */
+class DeprecatedEntitiesTestCest
+{
+ /**
+ * @Features({"TestModule"})
+ * @Parameter(name = "AcceptanceTester", value="$I")
+ * @param AcceptanceTester $I
+ * @return void
+ * @throws \Exception
+ */
+ public function DeprecatedEntitiesTest(AcceptanceTester $I)
+ {
+ $I->comment("Entering Action Group [deprecatedActionGroup] DeprecatedActionGroup");
+ $I->see("deprecated", "#element"); // stepKey: deprecatedSeeDeprecatedActionGroup
+ $I->comment("Exiting Action Group [deprecatedActionGroup] DeprecatedActionGroup");
+ $I->amOnPage("/test.html"); // stepKey: amOnPage
+ }
+}
diff --git a/dev/tests/verification/Resources/DeprecatedTest.txt b/dev/tests/verification/Resources/DeprecatedTest.txt
new file mode 100644
index 000000000..845d13912
--- /dev/null
+++ b/dev/tests/verification/Resources/DeprecatedTest.txt
@@ -0,0 +1,34 @@
+Deprecated Notice(s):- Test is deprecated
- DEPRECATED ACTION GROUP in Test: DeprecatedActionGroup Deprecated action group
- DEPRECATED SECTION in Test: {{DeprecatedSection.deprecatedElement}} Deprecated section
- DEPRECATED ELEMENT in Test: {{DeprecatedSection.deprecatedElement}} Deprecated element
- DEPRECATED DATA ENTITY in Test: {{DeprecatedData.field}} Data entity deprecated
- DEPRECATED PAGE in Test: {{DeprecatedPage.url}} Deprecated page
Test files
verification/TestModule/Test/DeprecatedTest.xml
")
+ */
+class DeprecatedTestCest
+{
+ /**
+ * @Features({"TestModule"})
+ * @Parameter(name = "AcceptanceTester", value="$I")
+ * @param AcceptanceTester $I
+ * @return void
+ * @throws \Exception
+ */
+ public function DeprecatedTest(AcceptanceTester $I)
+ {
+ $I->comment("Entering Action Group [deprecatedActionGroup] DeprecatedActionGroup");
+ $I->see("deprecated", "#element"); // stepKey: deprecatedSeeDeprecatedActionGroup
+ $I->comment("Exiting Action Group [deprecatedActionGroup] DeprecatedActionGroup");
+ $I->amOnPage("/test.html"); // stepKey: amOnPage
+ }
+}
diff --git a/dev/tests/verification/Resources/ExecuteInSeleniumTest.txt b/dev/tests/verification/Resources/ExecuteInSeleniumTest.txt
index cfd7a14ce..bbed61691 100644
--- a/dev/tests/verification/Resources/ExecuteInSeleniumTest.txt
+++ b/dev/tests/verification/Resources/ExecuteInSeleniumTest.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ExecuteInSeleniumTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ExecuteInSeleniumTest.xml
")
*/
class ExecuteInSeleniumTestCest
{
diff --git a/dev/tests/verification/Resources/ExecuteJsEscapingTest.txt b/dev/tests/verification/Resources/ExecuteJsEscapingTest.txt
index d0b7acc83..ad3696e00 100644
--- a/dev/tests/verification/Resources/ExecuteJsEscapingTest.txt
+++ b/dev/tests/verification/Resources/ExecuteJsEscapingTest.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ExecuteJsTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ExecuteJsTest.xml
")
*/
class ExecuteJsEscapingTestCest
{
diff --git a/dev/tests/verification/Resources/ExtendParentDataTest.txt b/dev/tests/verification/Resources/ExtendParentDataTest.txt
index d26d91b08..70cb6b70b 100644
--- a/dev/tests/verification/Resources/ExtendParentDataTest.txt
+++ b/dev/tests/verification/Resources/ExtendParentDataTest.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ExtendedDataTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ExtendedDataTest.xml
")
*/
class ExtendParentDataTestCest
{
diff --git a/dev/tests/verification/Resources/ExtendedActionGroup.txt b/dev/tests/verification/Resources/ExtendedActionGroup.txt
index 3158161d9..8996526ba 100644
--- a/dev/tests/verification/Resources/ExtendedActionGroup.txt
+++ b/dev/tests/verification/Resources/ExtendedActionGroup.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ExtendedActionGroupCest
{
diff --git a/dev/tests/verification/Resources/ExtendedChildTestInSuiteCest.txt b/dev/tests/verification/Resources/ExtendedChildTestInSuiteCest.txt
index bde2ce2b3..e4a006c8f 100644
--- a/dev/tests/verification/Resources/ExtendedChildTestInSuiteCest.txt
+++ b/dev/tests/verification/Resources/ExtendedChildTestInSuiteCest.txt
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: ExtendedChildTestInSuite")
* @group ExtendedTestInSuite
- * @Description("
Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
*/
class ExtendedChildTestInSuiteCest
{
diff --git a/dev/tests/verification/Resources/ExtendedChildTestNotInSuite.txt b/dev/tests/verification/Resources/ExtendedChildTestNotInSuite.txt
index fc67be840..1d5af7d3e 100644
--- a/dev/tests/verification/Resources/ExtendedChildTestNotInSuite.txt
+++ b/dev/tests/verification/Resources/ExtendedChildTestNotInSuite.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: ExtendedChildTestNotInSuite")
- * @Description("
Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
*/
class ExtendedChildTestNotInSuiteCest
{
diff --git a/dev/tests/verification/Resources/ExtendedRemoveActionGroup.txt b/dev/tests/verification/Resources/ExtendedRemoveActionGroup.txt
index 5ba7a3cce..fde8842e7 100644
--- a/dev/tests/verification/Resources/ExtendedRemoveActionGroup.txt
+++ b/dev/tests/verification/Resources/ExtendedRemoveActionGroup.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupTest.xml
")
*/
class ExtendedRemoveActionGroupCest
{
diff --git a/dev/tests/verification/Resources/ExtendingSkippedTest.txt b/dev/tests/verification/Resources/ExtendingSkippedTest.txt
index 73a1c89d7..93e9b6a60 100644
--- a/dev/tests/verification/Resources/ExtendingSkippedTest.txt
+++ b/dev/tests/verification/Resources/ExtendingSkippedTest.txt
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: ChildExtendedTestSkippedParent")
* @group Child
- * @Description("
Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
*/
class ExtendingSkippedTestCest
{
diff --git a/dev/tests/verification/Resources/HookActionsTest.txt b/dev/tests/verification/Resources/HookActionsTest.txt
index c61cc86e2..0b77325c1 100644
--- a/dev/tests/verification/Resources/HookActionsTest.txt
+++ b/dev/tests/verification/Resources/HookActionsTest.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/HookActionsTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/HookActionsTest.xml
")
*/
class HookActionsTestCest
{
diff --git a/dev/tests/verification/Resources/LocatorFunctionTest.txt b/dev/tests/verification/Resources/LocatorFunctionTest.txt
index f00392778..76c48a921 100644
--- a/dev/tests/verification/Resources/LocatorFunctionTest.txt
+++ b/dev/tests/verification/Resources/LocatorFunctionTest.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/LocatorFunctionTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/LocatorFunctionTest.xml
")
*/
class LocatorFunctionTestCest
{
diff --git a/dev/tests/verification/Resources/MergeMassViaInsertAfter.txt b/dev/tests/verification/Resources/MergeMassViaInsertAfter.txt
index 90c8c5373..a57ca4471 100644
--- a/dev/tests/verification/Resources/MergeMassViaInsertAfter.txt
+++ b/dev/tests/verification/Resources/MergeMassViaInsertAfter.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/BasicFunctionalTest.xml
verification/TestModule/Test/MergeFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/BasicFunctionalTest.xml
verification/TestModule/Test/MergeFunctionalTest.xml
")
*/
class MergeMassViaInsertAfterCest
{
diff --git a/dev/tests/verification/Resources/MergeMassViaInsertBefore.txt b/dev/tests/verification/Resources/MergeMassViaInsertBefore.txt
index df569d66b..7c6fdc906 100644
--- a/dev/tests/verification/Resources/MergeMassViaInsertBefore.txt
+++ b/dev/tests/verification/Resources/MergeMassViaInsertBefore.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/BasicFunctionalTest.xml
verification/TestModule/Test/MergeFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/BasicFunctionalTest.xml
verification/TestModule/Test/MergeFunctionalTest.xml
")
*/
class MergeMassViaInsertBeforeCest
{
diff --git a/dev/tests/verification/Resources/MergeSkip.txt b/dev/tests/verification/Resources/MergeSkip.txt
index bf5903065..b2a1b8918 100644
--- a/dev/tests/verification/Resources/MergeSkip.txt
+++ b/dev/tests/verification/Resources/MergeSkip.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/MergeFunctionalTest.xml
verification/TestModuleMerged/Test/MergeFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/MergeFunctionalTest.xml
verification/TestModuleMerged/Test/MergeFunctionalTest.xml
")
*/
class MergeSkipCest
{
diff --git a/dev/tests/verification/Resources/MergedActionGroupTest.txt b/dev/tests/verification/Resources/MergedActionGroupTest.txt
index e0067b479..a9c740127 100644
--- a/dev/tests/verification/Resources/MergedActionGroupTest.txt
+++ b/dev/tests/verification/Resources/MergedActionGroupTest.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @group functional
- * @Description("
Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
*/
class MergedActionGroupTestCest
{
diff --git a/dev/tests/verification/Resources/MergedReferencesTest.txt b/dev/tests/verification/Resources/MergedReferencesTest.txt
index c4cc7276e..b3fc29966 100644
--- a/dev/tests/verification/Resources/MergedReferencesTest.txt
+++ b/dev/tests/verification/Resources/MergedReferencesTest.txt
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: MergedReferencesTest")
* @group functional
- * @Description("
Test files
verification/TestModule/Test/MergeFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/MergeFunctionalTest.xml
")
*/
class MergedReferencesTestCest
{
diff --git a/dev/tests/verification/Resources/MultipleActionGroupsTest.txt b/dev/tests/verification/Resources/MultipleActionGroupsTest.txt
index 8e5ea542e..5f1db5081 100644
--- a/dev/tests/verification/Resources/MultipleActionGroupsTest.txt
+++ b/dev/tests/verification/Resources/MultipleActionGroupsTest.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @group functional
- * @Description("
Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
*/
class MultipleActionGroupsTestCest
{
diff --git a/dev/tests/verification/Resources/PageReplacementTest.txt b/dev/tests/verification/Resources/PageReplacementTest.txt
index f90a4fda7..cda119999 100644
--- a/dev/tests/verification/Resources/PageReplacementTest.txt
+++ b/dev/tests/verification/Resources/PageReplacementTest.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/PageReplacementTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/PageReplacementTest.xml
")
*/
class PageReplacementTestCest
{
diff --git a/dev/tests/verification/Resources/ParameterArrayTest.txt b/dev/tests/verification/Resources/ParameterArrayTest.txt
index af47657ea..8918bb619 100644
--- a/dev/tests/verification/Resources/ParameterArrayTest.txt
+++ b/dev/tests/verification/Resources/ParameterArrayTest.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ParameterArrayTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ParameterArrayTest.xml
")
*/
class ParameterArrayTestCest
{
diff --git a/dev/tests/verification/Resources/ParentExtendedTest.txt b/dev/tests/verification/Resources/ParentExtendedTest.txt
index 5662da744..8c756f010 100644
--- a/dev/tests/verification/Resources/ParentExtendedTest.txt
+++ b/dev/tests/verification/Resources/ParentExtendedTest.txt
@@ -15,7 +15,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: ParentExtendedTest")
* @group Parent
- * @Description("
Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ExtendedFunctionalTest.xml
")
*/
class ParentExtendedTestCest
{
diff --git a/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt b/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt
index 2f86f0af7..f6956f5d9 100644
--- a/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt
+++ b/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/ActionGroupFunctionalTest.xml
")
*/
class PersistedAndXmlEntityArgumentsCest
{
diff --git a/dev/tests/verification/Resources/PersistedReplacementTest.txt b/dev/tests/verification/Resources/PersistedReplacementTest.txt
index 009a8eac2..eb1c9995d 100644
--- a/dev/tests/verification/Resources/PersistedReplacementTest.txt
+++ b/dev/tests/verification/Resources/PersistedReplacementTest.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/PersistedReplacementTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/PersistedReplacementTest.xml
")
*/
class PersistedReplacementTestCest
{
diff --git a/dev/tests/verification/Resources/PersistenceActionGroupAppendingTest.txt b/dev/tests/verification/Resources/PersistenceActionGroupAppendingTest.txt
index 118db353a..426003bc2 100644
--- a/dev/tests/verification/Resources/PersistenceActionGroupAppendingTest.txt
+++ b/dev/tests/verification/Resources/PersistenceActionGroupAppendingTest.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/PersistenceActionGroupAppendingTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/PersistenceActionGroupAppendingTest.xml
")
*/
class PersistenceActionGroupAppendingTestCest
{
diff --git a/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt b/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt
index 221373be1..41251d2fb 100644
--- a/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt
+++ b/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/PersistenceCustomFieldsTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/PersistenceCustomFieldsTest.xml
")
*/
class PersistenceCustomFieldsTestCest
{
diff --git a/dev/tests/verification/Resources/SectionReplacementTest.txt b/dev/tests/verification/Resources/SectionReplacementTest.txt
index 2b2a8bcd6..109c198eb 100644
--- a/dev/tests/verification/Resources/SectionReplacementTest.txt
+++ b/dev/tests/verification/Resources/SectionReplacementTest.txt
@@ -13,7 +13,7 @@ use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
- * @Description("
Test files
verification/TestModule/Test/SectionReplacementTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/SectionReplacementTest.xml
")
*/
class SectionReplacementTestCest
{
diff --git a/dev/tests/verification/Resources/SkippedTest.txt b/dev/tests/verification/Resources/SkippedTest.txt
index dcad67e83..95783ca66 100644
--- a/dev/tests/verification/Resources/SkippedTest.txt
+++ b/dev/tests/verification/Resources/SkippedTest.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: skippedTest")
- * @Description("
Test files
verification/TestModule/Test/SkippedTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/SkippedTest.xml
")
*/
class SkippedTestCest
{
diff --git a/dev/tests/verification/Resources/SkippedTestNoIssues.txt b/dev/tests/verification/Resources/SkippedTestNoIssues.txt
index 3a7ca6f59..e8f4726d9 100644
--- a/dev/tests/verification/Resources/SkippedTestNoIssues.txt
+++ b/dev/tests/verification/Resources/SkippedTestNoIssues.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: skippedNoIssuesTest")
- * @Description("
Test files
verification/TestModule/Test/SkippedTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/SkippedTest.xml
")
* @group skip
*/
class SkippedTestNoIssuesCest
diff --git a/dev/tests/verification/Resources/SkippedTestTwoIssues.txt b/dev/tests/verification/Resources/SkippedTestTwoIssues.txt
index d3859978f..4a801856e 100644
--- a/dev/tests/verification/Resources/SkippedTestTwoIssues.txt
+++ b/dev/tests/verification/Resources/SkippedTestTwoIssues.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: skippedMultipleIssuesTest")
- * @Description("
Test files
verification/TestModule/Test/SkippedTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/SkippedTest.xml
")
*/
class SkippedTestTwoIssuesCest
{
diff --git a/dev/tests/verification/Resources/SkippedTestWithHooks.txt b/dev/tests/verification/Resources/SkippedTestWithHooks.txt
index 667be6747..ad59d48c3 100644
--- a/dev/tests/verification/Resources/SkippedTestWithHooks.txt
+++ b/dev/tests/verification/Resources/SkippedTestWithHooks.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: skippedTestWithHooks")
- * @Description("
Test files
verification/TestModule/Test/SkippedTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/SkippedTest.xml
")
*/
class SkippedTestWithHooksCest
{
diff --git a/dev/tests/verification/Resources/XmlCommentedActionGroupTest.txt b/dev/tests/verification/Resources/XmlCommentedActionGroupTest.txt
index 480e35b73..0eb546335 100644
--- a/dev/tests/verification/Resources/XmlCommentedActionGroupTest.txt
+++ b/dev/tests/verification/Resources/XmlCommentedActionGroupTest.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: Action Group With comment block in arguments and action group body")
- * @Description("
Test files
verification/TestModule/Test/XmlCommentedActionGroupTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/XmlCommentedActionGroupTest.xml
")
*/
class XmlCommentedActionGroupTestCest
{
diff --git a/dev/tests/verification/Resources/XmlCommentedTest.txt b/dev/tests/verification/Resources/XmlCommentedTest.txt
index 5b8057099..47d984d9e 100644
--- a/dev/tests/verification/Resources/XmlCommentedTest.txt
+++ b/dev/tests/verification/Resources/XmlCommentedTest.txt
@@ -14,7 +14,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
* @Title("[NO TESTCASEID]: Test With comment blocks in root element 'tests', in annotations and in test body.")
- * @Description("
Test files
verification/TestModule/Test/XmlCommentedTest.xml
")
+ * @Description("Test files
verification/TestModule/Test/XmlCommentedTest.xml
")
*/
class XmlCommentedTestCest
{
diff --git a/dev/tests/verification/TestModule/ActionGroup/DeprecatedActionGroup.xml b/dev/tests/verification/TestModule/ActionGroup/DeprecatedActionGroup.xml
new file mode 100644
index 000000000..8f0341c09
--- /dev/null
+++ b/dev/tests/verification/TestModule/ActionGroup/DeprecatedActionGroup.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/dev/tests/verification/TestModule/Data/DeprecatedData.xml b/dev/tests/verification/TestModule/Data/DeprecatedData.xml
new file mode 100644
index 000000000..060752419
--- /dev/null
+++ b/dev/tests/verification/TestModule/Data/DeprecatedData.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ deprecated
+
+
diff --git a/dev/tests/verification/TestModule/Page/DeprecatedPage.xml b/dev/tests/verification/TestModule/Page/DeprecatedPage.xml
new file mode 100644
index 000000000..316b8b1d7
--- /dev/null
+++ b/dev/tests/verification/TestModule/Page/DeprecatedPage.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/dev/tests/verification/TestModule/Section/DeprecatedSection.xml b/dev/tests/verification/TestModule/Section/DeprecatedSection.xml
new file mode 100644
index 000000000..a9ed20d98
--- /dev/null
+++ b/dev/tests/verification/TestModule/Section/DeprecatedSection.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/dev/tests/verification/TestModule/Test/DeprecatedEntitiesTest.xml b/dev/tests/verification/TestModule/Test/DeprecatedEntitiesTest.xml
new file mode 100644
index 000000000..733a34e80
--- /dev/null
+++ b/dev/tests/verification/TestModule/Test/DeprecatedEntitiesTest.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/dev/tests/verification/TestModule/Test/DeprecatedTest.xml b/dev/tests/verification/TestModule/Test/DeprecatedTest.xml
new file mode 100644
index 000000000..cc5ae4994
--- /dev/null
+++ b/dev/tests/verification/TestModule/Test/DeprecatedTest.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/dev/tests/verification/Tests/DeprecatedTest.php b/dev/tests/verification/Tests/DeprecatedTest.php
new file mode 100644
index 000000000..78e3326b9
--- /dev/null
+++ b/dev/tests/verification/Tests/DeprecatedTest.php
@@ -0,0 +1,33 @@
+generateAndCompareTest('DeprecatedTest');
+ }
+
+ /**
+ * Tests flat generation of a test which uses deprecated entities.
+ *
+ * @throws \Exception
+ * @throws \Magento\FunctionalTestingFramework\Exceptions\TestReferenceException
+ */
+ public function testDeprecatedEntitiesOnlyGeneration()
+ {
+ $this->generateAndCompareTest('DeprecatedEntitiesTest');
+ }
+}
diff --git a/src/Magento/FunctionalTestingFramework/Codeception/Subscriber/Console.php b/src/Magento/FunctionalTestingFramework/Codeception/Subscriber/Console.php
index 8c50f0670..90f04abae 100644
--- a/src/Magento/FunctionalTestingFramework/Codeception/Subscriber/Console.php
+++ b/src/Magento/FunctionalTestingFramework/Codeception/Subscriber/Console.php
@@ -7,17 +7,27 @@
namespace Magento\FunctionalTestingFramework\Codeception\Subscriber;
use Codeception\Event\StepEvent;
+use Codeception\Event\TestEvent;
use Codeception\Lib\Console\Message;
use Codeception\Step;
use Codeception\Step\Comment;
use Codeception\Test\Interfaces\ScenarioDriven;
use Magento\FunctionalTestingFramework\Test\Objects\ActionGroupObject;
use Magento\FunctionalTestingFramework\Test\Objects\ActionObject;
+use Magento\FunctionalTestingFramework\Util\Logger\LoggingUtil;
use Magento\FunctionalTestingFramework\Util\TestGenerator;
use Symfony\Component\Console\Formatter\OutputFormatter;
+/**
+ * @SuppressWarnings(PHPMD)
+ */
class Console extends \Codeception\Subscriber\Console
{
+ /**
+ * Regular expresion to find deprecated notices.
+ */
+ const DEPRECATED_NOTICE = '/(?.*?)<\/li>/m';
+
/**
* Test files cache.
*
@@ -53,6 +63,36 @@ public function __construct($extensionOptions = [], $options = [])
parent::__construct($options);
}
+ /**
+ * Triggered event before each test.
+ *
+ * @param TestEvent $e
+ * @return void
+ * @throws \Exception
+ */
+ public function startTest(TestEvent $e)
+ {
+ $test = $e->getTest()->getTestClass();
+ try {
+ $testReflection = new \ReflectionClass($test);
+ $isDeprecated = preg_match_all(self::DEPRECATED_NOTICE, $testReflection->getDocComment(), $match);
+ if ($isDeprecated) {
+ $this->message('DEPRECATION NOTICE(S): ')
+ ->style('debug')
+ ->writeln();
+ foreach ($match['deprecatedMessage'] as $deprecatedMessage) {
+ $this->message(' - ' . $deprecatedMessage)
+ ->style('debug')
+ ->writeln();
+ }
+ }
+ } catch (\ReflectionException $e) {
+ LoggingUtil::getInstance()->getLogger(self::class)->error($e->getMessage(), $e->getTrace());
+ }
+
+ parent::startTest($e);
+ }
+
/**
* Printing stepKey in before step action.
*
diff --git a/src/Magento/FunctionalTestingFramework/Config/Reader/Filesystem.php b/src/Magento/FunctionalTestingFramework/Config/Reader/Filesystem.php
index 2f2cb8ad3..db96b010c 100644
--- a/src/Magento/FunctionalTestingFramework/Config/Reader/Filesystem.php
+++ b/src/Magento/FunctionalTestingFramework/Config/Reader/Filesystem.php
@@ -235,7 +235,8 @@ protected function validateSchema($configMerger, $filename = null)
$error = str_replace(PHP_EOL, "", $error);
LoggingUtil::getInstance()->getLogger(Filesystem::class)->criticalFailure(
"Schema validation error ",
- ($filename ? [ "file"=> $filename, "error" => $error]: ["error" => $error])
+ ($filename ? [ "file"=> $filename, "error" => $error]: ["error" => $error]),
+ true
);
}
throw new \Exception("Schema validation errors found in xml file(s)" . $filename);
diff --git a/src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/DataObjectHandler.php b/src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/DataObjectHandler.php
index 95a2b8b93..a210710db 100644
--- a/src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/DataObjectHandler.php
+++ b/src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/DataObjectHandler.php
@@ -13,6 +13,7 @@
use Magento\FunctionalTestingFramework\ObjectManager\ObjectHandlerInterface;
use Magento\FunctionalTestingFramework\ObjectManagerFactory;
use Magento\FunctionalTestingFramework\DataGenerator\Util\DataExtensionUtil;
+use Magento\FunctionalTestingFramework\Util\Logger\LoggingUtil;
class DataObjectHandler implements ObjectHandlerInterface
{
@@ -119,6 +120,7 @@ public function getAllObjects()
* @param string[] $parserOutput Primitive array output from the Magento parser.
* @return EntityDataObject[]
* @throws XmlException
+ * @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
private function processParserOutput($parserOutput)
{
@@ -132,6 +134,7 @@ private function processParserOutput($parserOutput)
$type = $rawEntity[self::_TYPE] ?? null;
$data = [];
+ $deprecated = null;
$linkedEntities = [];
$uniquenessData = [];
$vars = [];
@@ -163,6 +166,14 @@ private function processParserOutput($parserOutput)
$parentEntity = $rawEntity[self::_EXTENDS];
}
+ if (array_key_exists(self::OBJ_DEPRECATED, $rawEntity)) {
+ $deprecated = $rawEntity[self::OBJ_DEPRECATED];
+ LoggingUtil::getInstance()->getLogger(self::class)->deprecation(
+ $deprecated,
+ ["dataName" => $filename, "deprecatedEntity" => $deprecated]
+ );
+ }
+
$entityDataObject = new EntityDataObject(
$name,
$type,
@@ -171,7 +182,8 @@ private function processParserOutput($parserOutput)
$uniquenessData,
$vars,
$parentEntity,
- $filename
+ $filename,
+ $deprecated
);
$entityDataObjects[$entityDataObject->getName()] = $entityDataObject;
diff --git a/src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/OperationDefinitionObjectHandler.php b/src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/OperationDefinitionObjectHandler.php
index b768d9bd8..8c2ec7b0a 100644
--- a/src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/OperationDefinitionObjectHandler.php
+++ b/src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/OperationDefinitionObjectHandler.php
@@ -11,6 +11,7 @@
use Magento\FunctionalTestingFramework\DataGenerator\Util\OperationElementExtractor;
use Magento\FunctionalTestingFramework\ObjectManager\ObjectHandlerInterface;
use Magento\FunctionalTestingFramework\ObjectManagerFactory;
+use Magento\FunctionalTestingFramework\Util\Logger\LoggingUtil;
class OperationDefinitionObjectHandler implements ObjectHandlerInterface
{
@@ -128,9 +129,7 @@ public function getOperationDefinition($operation, $dataType)
* @return void
* @throws \Exception
*
- * @SuppressWarnings(PHPMD.NPathComplexity)
- * @SuppressWarnings(PHPMD.UnusedPrivateMethod)
- * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
+ * @SuppressWarnings(PHPMD)
*/
private function initialize()
{
@@ -145,6 +144,7 @@ private function initialize()
$auth = $opDefArray[OperationDefinitionObjectHandler::ENTITY_OPERATION_AUTH] ?? null;
$successRegex = $opDefArray[OperationDefinitionObjectHandler::ENTITY_OPERATION_SUCCESS_REGEX] ?? null;
$returnRegex = $opDefArray[OperationDefinitionObjectHandler::ENTITY_OPERATION_RETURN_REGEX] ?? null;
+ $deprecated = $opDefArray[ObjectHandlerInterface::OBJ_DEPRECATED] ?? null;
$returnIndex = $opDefArray[OperationDefinitionObjectHandler::ENTITY_OPERATION_RETURN_INDEX] ?? 0;
$contentType = $opDefArray[OperationDefinitionObjectHandler::ENTITY_OPERATION_CONTENT_TYPE][0]['value']
?? null;
@@ -205,6 +205,13 @@ private function initialize()
}
}
+ if ($deprecated !== null) {
+ LoggingUtil::getInstance()->getLogger(self::class)->deprecation(
+ $deprecated,
+ ["operationName" => $dataDefName, "deprecatedOperation" => $deprecated]
+ );
+ }
+
$this->operationDefinitionObjects[$operation . $dataType] = new OperationDefinitionObject(
$dataDefName,
$operation,
@@ -219,7 +226,8 @@ private function initialize()
$removeBackend,
$successRegex,
$returnRegex,
- $returnIndex
+ $returnIndex,
+ $deprecated
);
}
}
diff --git a/src/Magento/FunctionalTestingFramework/DataGenerator/Objects/EntityDataObject.php b/src/Magento/FunctionalTestingFramework/DataGenerator/Objects/EntityDataObject.php
index 47a966f84..2204364f5 100644
--- a/src/Magento/FunctionalTestingFramework/DataGenerator/Objects/EntityDataObject.php
+++ b/src/Magento/FunctionalTestingFramework/DataGenerator/Objects/EntityDataObject.php
@@ -80,17 +80,25 @@ class EntityDataObject
*/
private $filename;
+ /**
+ * Deprecated message.
+ *
+ * @var string
+ */
+ private $deprecated;
+
/**
* Constructor
*
- * @param string $name
- * @param string $type
- * @param string[] $data
- * @param string[] $linkedEntities
- * @param string[] $uniquenessData
- * @param string[] $vars
- * @param string $parentEntity
- * @param string $filename
+ * @param string $name
+ * @param string $type
+ * @param string[] $data
+ * @param string[] $linkedEntities
+ * @param string[] $uniquenessData
+ * @param string[] $vars
+ * @param string $parentEntity
+ * @param string $filename
+ * @param string|null $deprecated
*/
public function __construct(
$name,
@@ -100,7 +108,8 @@ public function __construct(
$uniquenessData,
$vars = [],
$parentEntity = null,
- $filename = null
+ $filename = null,
+ $deprecated = null
) {
$this->name = $name;
$this->type = $type;
@@ -113,6 +122,17 @@ public function __construct(
$this->vars = $vars;
$this->parentEntity = $parentEntity;
$this->filename = $filename;
+ $this->deprecated = $deprecated;
+ }
+
+ /**
+ * Getter for the deprecated attr of the section.
+ *
+ * @return string
+ */
+ public function getDeprecated()
+ {
+ return $this->deprecated;
}
/**
diff --git a/src/Magento/FunctionalTestingFramework/DataGenerator/Objects/OperationDefinitionObject.php b/src/Magento/FunctionalTestingFramework/DataGenerator/Objects/OperationDefinitionObject.php
index 721a9dcc9..67fe48300 100644
--- a/src/Magento/FunctionalTestingFramework/DataGenerator/Objects/OperationDefinitionObject.php
+++ b/src/Magento/FunctionalTestingFramework/DataGenerator/Objects/OperationDefinitionObject.php
@@ -8,6 +8,7 @@
/**
* Class OperationDefinitionObject
+ * @SuppressWarnings(PHPMD)
*/
class OperationDefinitionObject
{
@@ -117,22 +118,30 @@ class OperationDefinitionObject
*/
private $removeBackend;
+ /**
+ * Deprecated message.
+ *
+ * @var string
+ */
+ private $deprecated;
+
/**
* OperationDefinitionObject constructor.
- * @param string $name
- * @param string $operation
- * @param string $dataType
- * @param string $apiMethod
- * @param string $apiUri
- * @param string $auth
- * @param array $headers
- * @param array $params
- * @param array $metaData
- * @param string $contentType
- * @param boolean $removeBackend
- * @param string $successRegex
- * @param string $returnRegex
- * @param string $returnIndex
+ * @param string $name
+ * @param string $operation
+ * @param string $dataType
+ * @param string $apiMethod
+ * @param string $apiUri
+ * @param string $auth
+ * @param array $headers
+ * @param array $params
+ * @param array $metaData
+ * @param string $contentType
+ * @param boolean $removeBackend
+ * @param string $successRegex
+ * @param string $returnRegex
+ * @param string $returnIndex
+ * @param string|null $deprecated
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/
public function __construct(
@@ -149,7 +158,8 @@ public function __construct(
$removeBackend,
$successRegex = null,
$returnRegex = null,
- $returnIndex = null
+ $returnIndex = null,
+ $deprecated = null
) {
$this->name = $name;
$this->operation = $operation;
@@ -164,6 +174,7 @@ public function __construct(
$this->returnRegex = $returnRegex;
$this->returnIndex = $returnIndex;
$this->removeBackend = $removeBackend;
+ $this->deprecated = $deprecated;
$this->apiUrl = null;
if (!empty($contentType)) {
@@ -176,6 +187,16 @@ public function __construct(
$this->headers[] = self::HTTP_CONTENT_TYPE_HEADER . ': ' . $this->contentType;
}
+ /**
+ * Getter for the deprecated attr of the section
+ *
+ * @return string
+ */
+ public function getDeprecated()
+ {
+ return $this->deprecated;
+ }
+
/**
* Getter for data's data type
*
diff --git a/src/Magento/FunctionalTestingFramework/DataGenerator/Persist/DataPersistenceHandler.php b/src/Magento/FunctionalTestingFramework/DataGenerator/Persist/DataPersistenceHandler.php
index dcb9d158a..73ee2be19 100644
--- a/src/Magento/FunctionalTestingFramework/DataGenerator/Persist/DataPersistenceHandler.php
+++ b/src/Magento/FunctionalTestingFramework/DataGenerator/Persist/DataPersistenceHandler.php
@@ -59,7 +59,10 @@ public function __construct($entityObject, $dependentObjects = [], $customFields
array_merge($entityObject->getAllData(), $customFields),
$entityObject->getLinkedEntities(),
$this->stripCustomFieldsFromUniquenessData($entityObject->getUniquenessData(), $customFields),
- $entityObject->getVarReferences()
+ $entityObject->getVarReferences(),
+ $entityObject->getParentName(),
+ $entityObject->getFilename(),
+ $entityObject->getDeprecated()
);
} else {
$this->entityObject = clone $entityObject;
diff --git a/src/Magento/FunctionalTestingFramework/DataGenerator/Util/DataExtensionUtil.php b/src/Magento/FunctionalTestingFramework/DataGenerator/Util/DataExtensionUtil.php
index 2766b39a0..3a12bdce1 100644
--- a/src/Magento/FunctionalTestingFramework/DataGenerator/Util/DataExtensionUtil.php
+++ b/src/Magento/FunctionalTestingFramework/DataGenerator/Util/DataExtensionUtil.php
@@ -93,7 +93,8 @@ public function extendEntity($entityObject)
$newUniqueReferences,
$newVarReferences,
$entityObject->getParentName(),
- $entityObject->getFilename()
+ $entityObject->getFilename(),
+ $entityObject->getDeprecated()
);
return $extendedEntity;
}
diff --git a/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd b/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd
index 8b59ccae0..58fad8d8b 100644
--- a/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd
+++ b/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd
@@ -22,6 +22,13 @@
+
+
+
+ Message and flag which shows that entity is deprecated.
+
+
+
diff --git a/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd b/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd
index aec157309..9d0d8bb35 100644
--- a/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd
+++ b/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd
@@ -69,6 +69,14 @@
+
+
+
+ Message and flag which shows that entity is deprecated.
+
+
+
+
diff --git a/src/Magento/FunctionalTestingFramework/ObjectManager/ObjectHandlerInterface.php b/src/Magento/FunctionalTestingFramework/ObjectManager/ObjectHandlerInterface.php
index 1bc79cbbb..94147dc08 100644
--- a/src/Magento/FunctionalTestingFramework/ObjectManager/ObjectHandlerInterface.php
+++ b/src/Magento/FunctionalTestingFramework/ObjectManager/ObjectHandlerInterface.php
@@ -11,6 +11,8 @@
*/
interface ObjectHandlerInterface
{
+ const OBJ_DEPRECATED = 'deprecated';
+
/**
* Function to enforce singleton design pattern
*
diff --git a/src/Magento/FunctionalTestingFramework/Page/Handlers/PageObjectHandler.php b/src/Magento/FunctionalTestingFramework/Page/Handlers/PageObjectHandler.php
index d9eec1af1..c310b9bef 100644
--- a/src/Magento/FunctionalTestingFramework/Page/Handlers/PageObjectHandler.php
+++ b/src/Magento/FunctionalTestingFramework/Page/Handlers/PageObjectHandler.php
@@ -9,6 +9,7 @@
use Magento\FunctionalTestingFramework\ObjectManager\ObjectHandlerInterface;
use Magento\FunctionalTestingFramework\ObjectManagerFactory;
use Magento\FunctionalTestingFramework\Page\Objects\PageObject;
+use Magento\FunctionalTestingFramework\Util\Logger\LoggingUtil;
use Magento\FunctionalTestingFramework\XmlParser\PageParser;
use Magento\FunctionalTestingFramework\Exceptions\XmlException;
@@ -68,9 +69,17 @@ private function __construct()
$sectionNames = array_keys($pageData[self::SECTION] ?? []);
$parameterized = $pageData[self::PARAMETERIZED] ?? false;
$filename = $pageData[self::FILENAME] ?? null;
+ $deprecated = $pageData[self::OBJ_DEPRECATED] ?? null;
+
+ if ($deprecated !== null) {
+ LoggingUtil::getInstance()->getLogger(self::class)->deprecation(
+ $deprecated,
+ ["pageName" => $filename, "deprecatedPage" => $deprecated]
+ );
+ }
$this->pageObjects[$pageName] =
- new PageObject($pageName, $url, $module, $sectionNames, $parameterized, $area, $filename);
+ new PageObject($pageName, $url, $module, $sectionNames, $parameterized, $area, $filename, $deprecated);
}
}
diff --git a/src/Magento/FunctionalTestingFramework/Page/Handlers/SectionObjectHandler.php b/src/Magento/FunctionalTestingFramework/Page/Handlers/SectionObjectHandler.php
index e77e4c502..2736100fd 100644
--- a/src/Magento/FunctionalTestingFramework/Page/Handlers/SectionObjectHandler.php
+++ b/src/Magento/FunctionalTestingFramework/Page/Handlers/SectionObjectHandler.php
@@ -10,6 +10,8 @@
use Magento\FunctionalTestingFramework\ObjectManagerFactory;
use Magento\FunctionalTestingFramework\Page\Objects\ElementObject;
use Magento\FunctionalTestingFramework\Page\Objects\SectionObject;
+use Magento\FunctionalTestingFramework\Test\Util\TestObjectExtractor;
+use Magento\FunctionalTestingFramework\Util\Logger\LoggingUtil;
use Magento\FunctionalTestingFramework\XmlParser\SectionParser;
use Magento\FunctionalTestingFramework\Exceptions\XmlException;
@@ -73,14 +75,21 @@ private function __construct()
$elementLocatorFunc = $elementData[SectionObjectHandler::LOCATOR_FUNCTION] ?? null;
$elementTimeout = $elementData[SectionObjectHandler::TIMEOUT] ?? null;
$elementParameterized = $elementData[SectionObjectHandler::PARAMETERIZED] ?? false;
-
+ $elementDeprecated = $elementData[self::OBJ_DEPRECATED] ?? null;
+ if ($elementDeprecated !== null) {
+ LoggingUtil::getInstance()->getLogger(ElementObject::class)->deprecation(
+ $elementDeprecated,
+ ["elementName" => $elementName, "deprecatedElement" => $elementDeprecated]
+ );
+ }
$elements[$elementName] = new ElementObject(
$elementName,
$elementType,
$elementSelector,
$elementLocatorFunc,
$elementTimeout,
- $elementParameterized
+ $elementParameterized,
+ $elementDeprecated
);
}
} catch (XmlException $exception) {
@@ -88,7 +97,21 @@ private function __construct()
}
$filename = $sectionData[self::FILENAME] ?? null;
- $this->sectionObjects[$sectionName] = new SectionObject($sectionName, $elements, $filename);
+ $sectionDeprecated = $sectionData[self::OBJ_DEPRECATED] ?? null;
+
+ if ($sectionDeprecated !== null) {
+ LoggingUtil::getInstance()->getLogger(SectionObject::class)->deprecation(
+ $sectionDeprecated,
+ ["sectionName" => $filename, "deprecatedSection" => $sectionDeprecated]
+ );
+ }
+
+ $this->sectionObjects[$sectionName] = new SectionObject(
+ $sectionName,
+ $elements,
+ $filename,
+ $sectionDeprecated
+ );
}
}
diff --git a/src/Magento/FunctionalTestingFramework/Page/Objects/ElementObject.php b/src/Magento/FunctionalTestingFramework/Page/Objects/ElementObject.php
index 6b0626f10..567872fc7 100644
--- a/src/Magento/FunctionalTestingFramework/Page/Objects/ElementObject.php
+++ b/src/Magento/FunctionalTestingFramework/Page/Objects/ElementObject.php
@@ -56,6 +56,13 @@ class ElementObject
*/
private $parameterized;
+ /**
+ * Deprecated message.
+ *
+ * @var string
+ */
+ private $deprecated;
+
/**
* ElementObject constructor.
* @param string $name
@@ -66,7 +73,7 @@ class ElementObject
* @param boolean $parameterized
* @throws XmlException
*/
- public function __construct($name, $type, $selector, $locatorFunction, $timeout, $parameterized)
+ public function __construct($name, $type, $selector, $locatorFunction, $timeout, $parameterized, $deprecated = null)
{
if ($selector != null && $locatorFunction != null) {
throw new XmlException("Element '{$name}' cannot have both a selector and a locatorFunction.");
@@ -83,6 +90,17 @@ public function __construct($name, $type, $selector, $locatorFunction, $timeout,
}
$this->timeout = $timeout;
$this->parameterized = $parameterized;
+ $this->deprecated = $deprecated;
+ }
+
+ /**
+ * Getter for the deprecated attr
+ *
+ * @return string
+ */
+ public function getDeprecated()
+ {
+ return $this->deprecated;
}
/**
diff --git a/src/Magento/FunctionalTestingFramework/Page/Objects/PageObject.php b/src/Magento/FunctionalTestingFramework/Page/Objects/PageObject.php
index d99c40240..e4a1acdc0 100644
--- a/src/Magento/FunctionalTestingFramework/Page/Objects/PageObject.php
+++ b/src/Magento/FunctionalTestingFramework/Page/Objects/PageObject.php
@@ -65,18 +65,34 @@ class PageObject
*/
private $filename;
+ /**
+ * Deprecated message.
+ *
+ * @var string
+ */
+ private $deprecated;
+
/**
* PageObject constructor.
- * @param string $name
- * @param string $url
- * @param string $module
- * @param array $sections
- * @param boolean $parameterized
- * @param string $area
- * @param string $filename
- */
- public function __construct($name, $url, $module, $sections, $parameterized, $area, $filename = null)
- {
+ * @param string $name
+ * @param string $url
+ * @param string $module
+ * @param array $sections
+ * @param boolean $parameterized
+ * @param string $area
+ * @param string|null $filename
+ * @param string|null $deprecated
+ */
+ public function __construct(
+ $name,
+ $url,
+ $module,
+ $sections,
+ $parameterized,
+ $area,
+ $filename = null,
+ $deprecated = null
+ ) {
$this->name = $name;
$this->url = $url;
$this->module = $module;
@@ -84,6 +100,17 @@ public function __construct($name, $url, $module, $sections, $parameterized, $ar
$this->parameterized = $parameterized;
$this->area = $area;
$this->filename = $filename;
+ $this->deprecated = $deprecated;
+ }
+
+ /**
+ * Getter for the deprecated attr of the section
+ *
+ * @return string
+ */
+ public function getDeprecated()
+ {
+ return $this->deprecated;
}
/**
diff --git a/src/Magento/FunctionalTestingFramework/Page/Objects/SectionObject.php b/src/Magento/FunctionalTestingFramework/Page/Objects/SectionObject.php
index 8c1cac326..3674eea16 100644
--- a/src/Magento/FunctionalTestingFramework/Page/Objects/SectionObject.php
+++ b/src/Magento/FunctionalTestingFramework/Page/Objects/SectionObject.php
@@ -32,17 +32,26 @@ class SectionObject
*/
private $filename;
+ /**
+ * Deprecated message.
+ *
+ * @var string
+ */
+ private $deprecated;
+
/**
* SectionObject constructor.
- * @param string $name
- * @param array $elements
- * @param string $filename
+ * @param string $name
+ * @param array $elements
+ * @param string|null $filename
+ * @param string|null $deprecated
*/
- public function __construct($name, $elements, $filename = null)
+ public function __construct($name, $elements, $filename = null, $deprecated = null)
{
$this->name = $name;
$this->elements = $elements;
$this->filename = $filename;
+ $this->deprecated = $deprecated;
}
/**
@@ -55,6 +64,16 @@ public function getName()
return $this->name;
}
+ /**
+ * Getter for the deprecated attr of the section
+ *
+ * @return string
+ */
+ public function getDeprecated()
+ {
+ return $this->deprecated;
+ }
+
/**
* Getter for the Section Filename
*
diff --git a/src/Magento/FunctionalTestingFramework/Page/etc/PageObject.xsd b/src/Magento/FunctionalTestingFramework/Page/etc/PageObject.xsd
index c6f399a67..65ac8290d 100644
--- a/src/Magento/FunctionalTestingFramework/Page/etc/PageObject.xsd
+++ b/src/Magento/FunctionalTestingFramework/Page/etc/PageObject.xsd
@@ -48,6 +48,14 @@
+
+
+
+ Message and flag which shows that entity is deprecated.
+
+
+
+
diff --git a/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd b/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd
index 44e057369..1b5b44ddd 100644
--- a/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd
+++ b/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd
@@ -44,6 +44,13 @@
+
+
+
+ Message and flag which shows that entity is deprecated.
+
+
+
@@ -58,6 +65,13 @@
+
+
+
+ Message and flag which shows that entity is deprecated.
+
+
+
diff --git a/src/Magento/FunctionalTestingFramework/Suite/etc/suiteSchema.xsd b/src/Magento/FunctionalTestingFramework/Suite/etc/suiteSchema.xsd
index 34ef37594..b36e35517 100644
--- a/src/Magento/FunctionalTestingFramework/Suite/etc/suiteSchema.xsd
+++ b/src/Magento/FunctionalTestingFramework/Suite/etc/suiteSchema.xsd
@@ -61,6 +61,13 @@
+
+
+
+ Message and flag which shows that entity is deprecated.
+
+
+
diff --git a/src/Magento/FunctionalTestingFramework/Test/Objects/ActionGroupObject.php b/src/Magento/FunctionalTestingFramework/Test/Objects/ActionGroupObject.php
index fc38a7fce..dc1b158e1 100644
--- a/src/Magento/FunctionalTestingFramework/Test/Objects/ActionGroupObject.php
+++ b/src/Magento/FunctionalTestingFramework/Test/Objects/ActionGroupObject.php
@@ -94,6 +94,13 @@ class ActionGroupObject
*/
private $cachedStepKeys = null;
+ /**
+ * Deprecation message.
+ *
+ * @var string|null
+ */
+ private $deprecated;
+
/**
* ActionGroupObject constructor.
*
@@ -103,9 +110,17 @@ class ActionGroupObject
* @param array $actions
* @param string $parentActionGroup
* @param string $filename
+ * @param string|null $deprecated
*/
- public function __construct($name, $annotations, $arguments, $actions, $parentActionGroup, $filename = null)
- {
+ public function __construct(
+ $name,
+ $annotations,
+ $arguments,
+ $actions,
+ $parentActionGroup,
+ $filename = null,
+ $deprecated = null
+ ) {
$this->varAttributes = array_merge(
ActionObject::SELECTOR_ENABLED_ATTRIBUTES,
ActionObject::DATA_ENABLED_ATTRIBUTES
@@ -117,6 +132,17 @@ public function __construct($name, $annotations, $arguments, $actions, $parentAc
$this->parsedActions = $actions;
$this->parentActionGroup = $parentActionGroup;
$this->filename = $filename;
+ $this->deprecated = $deprecated;
+ }
+
+ /**
+ * Returns deprecated messages.
+ *
+ * @return string|null
+ */
+ public function getDeprecated()
+ {
+ return $this->deprecated;
}
/**
@@ -213,7 +239,8 @@ private function getResolvedActionsWithArgs($arguments, $actionReferenceKey)
$action->getLinkedAction() == null ? null : $action->getLinkedAction() . ucfirst($actionReferenceKey),
$orderOffset,
[self::ACTION_GROUP_ORIGIN_NAME => $this->name,
- self::ACTION_GROUP_ORIGIN_TEST_REF => $actionReferenceKey]
+ self::ACTION_GROUP_ORIGIN_TEST_REF => $actionReferenceKey],
+ $action->getDeprecatedUsages()
);
}
@@ -543,10 +570,20 @@ private function addContextCommentsToActionList($actionList, $actionReferenceKey
{
$actionStartComment = self::ACTION_GROUP_CONTEXT_START . "[" . $actionReferenceKey . "] " . $this->name;
$actionEndComment = self::ACTION_GROUP_CONTEXT_END . "[" . $actionReferenceKey . "] " . $this->name;
+
+ $deprecationNotices = [];
+ if ($this->getDeprecated() !== null) {
+ $deprecationNotices[] = "DEPRECATED ACTION GROUP in Test: " . $this->name . ' ' . $this->getDeprecated();
+ }
+
$startAction = new ActionObject(
$actionStartComment,
ActionObject::ACTION_TYPE_COMMENT,
- [ActionObject::ACTION_ATTRIBUTE_USERINPUT => $actionStartComment]
+ [ActionObject::ACTION_ATTRIBUTE_USERINPUT => $actionStartComment],
+ null,
+ ActionObject::MERGE_ACTION_ORDER_BEFORE,
+ null,
+ $deprecationNotices
);
$endAction = new ActionObject(
$actionEndComment,
diff --git a/src/Magento/FunctionalTestingFramework/Test/Objects/ActionObject.php b/src/Magento/FunctionalTestingFramework/Test/Objects/ActionObject.php
index 53743330e..45b5db69d 100644
--- a/src/Magento/FunctionalTestingFramework/Test/Objects/ActionObject.php
+++ b/src/Magento/FunctionalTestingFramework/Test/Objects/ActionObject.php
@@ -84,6 +84,13 @@ class ActionObject
*/
private $stepKey;
+ /**
+ * Array of deprecated entities used in action.
+ *
+ * @var array
+ */
+ private $deprecatedUsage = [];
+
/**
* The type of action (e.g. fillField, createData, etc)
*
@@ -142,6 +149,7 @@ class ActionObject
* @param string|null $linkedAction
* @param string $order
* @param array $actionOrigin
+ * @param array $deprecatedUsage
*/
public function __construct(
$stepKey,
@@ -149,13 +157,15 @@ public function __construct(
$actionAttributes,
$linkedAction = null,
$order = ActionObject::MERGE_ACTION_ORDER_BEFORE,
- $actionOrigin = null
+ $actionOrigin = null,
+ $deprecatedUsage = []
) {
$this->stepKey = $stepKey;
$this->type = $type === self::COMMENT_ACTION ? self::ACTION_TYPE_COMMENT : $type;
$this->actionAttributes = $actionAttributes;
$this->linkedAction = $linkedAction;
$this->actionOrigin = $actionOrigin;
+ $this->deprecatedUsage = $deprecatedUsage;
if ($order === ActionObject::MERGE_ACTION_ORDER_AFTER) {
$this->orderOffset = 1;
@@ -304,7 +314,8 @@ public function trimAssertionAttributes()
if ($appConfig->getPhase() == MftfApplicationConfig::GENERATION_PHASE && $appConfig->verboseEnabled()) {
LoggingUtil::getInstance()->getLogger(ActionObject::class)->deprecation(
"use of one line Assertion actions will be deprecated in MFTF 3.0.0, please use nested syntax",
- ["action" => $this->type, "stepKey" => $this->stepKey]
+ ["action" => $this->type, "stepKey" => $this->stepKey],
+ true
);
}
return;
@@ -534,11 +545,18 @@ private function findAndReplaceReferences($objectHandler, $inputString)
$replacement = null;
$parameterized = false;
} elseif (get_class($obj) == PageObject::class) {
+ if ($obj->getDeprecated() !== null) {
+ $this->deprecatedUsage[] = "DEPRECATED PAGE in Test: " . $match . ' ' . $obj->getDeprecated();
+ }
$this->validateUrlAreaAgainstActionType($obj);
$replacement = $obj->getUrl();
$parameterized = $obj->isParameterized();
} elseif (get_class($obj) == SectionObject::class) {
+ if ($obj->getDeprecated() !== null) {
+ $this->deprecatedUsage[] = "DEPRECATED SECTION in Test: " . $match . ' ' . $obj->getDeprecated();
+ }
list(,$objField) = $this->stripAndSplitReference($match);
+
if ($obj->getElement($objField) == null) {
throw new TestReferenceException(
"Could not resolve entity reference \"{$inputString}\" "
@@ -549,7 +567,15 @@ private function findAndReplaceReferences($objectHandler, $inputString)
$parameterized = $obj->getElement($objField)->isParameterized();
$replacement = $obj->getElement($objField)->getPrioritizedSelector();
$this->setTimeout($obj->getElement($objField)->getTimeout());
+ if ($obj->getElement($objField)->getDeprecated() !== null) {
+ $this->deprecatedUsage[] = "DEPRECATED ELEMENT in Test: " . $match . ' '
+ . $obj->getElement($objField)->getDeprecated();
+ }
} elseif (get_class($obj) == EntityDataObject::class) {
+ if ($obj->getDeprecated() !== null) {
+ $this->deprecatedUsage[] = "DEPRECATED DATA ENTITY in Test: "
+ . $match . ' ' . $obj->getDeprecated();
+ }
$replacement = $this->resolveEntityDataObjectReference($obj, $match);
if (is_array($replacement)) {
@@ -766,4 +792,14 @@ private function checkParameterCount($matches, $parameters, $reference)
);
}
}
+
+ /**
+ * Returns array of deprecated usages in Action.
+ *
+ * @return array
+ */
+ public function getDeprecatedUsages()
+ {
+ return $this->deprecatedUsage;
+ }
}
diff --git a/src/Magento/FunctionalTestingFramework/Test/Util/ActionGroupAnnotationExtractor.php b/src/Magento/FunctionalTestingFramework/Test/Util/ActionGroupAnnotationExtractor.php
index 44b004105..9d3a9877e 100644
--- a/src/Magento/FunctionalTestingFramework/Test/Util/ActionGroupAnnotationExtractor.php
+++ b/src/Magento/FunctionalTestingFramework/Test/Util/ActionGroupAnnotationExtractor.php
@@ -64,7 +64,8 @@ private function validateMissingAnnotations($annotationObjects, $filename)
$message = "Action Group File {$filename} is missing required annotations.";
LoggingUtil::getInstance()->getLogger(ActionObject::class)->deprecation(
$message,
- ["actionGroup" => $filename, "missingAnnotations" => implode(", ", $missingAnnotations)]
+ ["actionGroup" => $filename, "missingAnnotations" => implode(", ", $missingAnnotations)],
+ true
);
}
}
diff --git a/src/Magento/FunctionalTestingFramework/Test/Util/ActionGroupObjectExtractor.php b/src/Magento/FunctionalTestingFramework/Test/Util/ActionGroupObjectExtractor.php
index e41329cb3..618cddc09 100644
--- a/src/Magento/FunctionalTestingFramework/Test/Util/ActionGroupObjectExtractor.php
+++ b/src/Magento/FunctionalTestingFramework/Test/Util/ActionGroupObjectExtractor.php
@@ -11,6 +11,8 @@
use Magento\FunctionalTestingFramework\Test\Objects\ActionGroupObject;
use Magento\FunctionalTestingFramework\Test\Objects\ActionObject;
use Magento\FunctionalTestingFramework\Test\Objects\ArgumentObject;
+use Magento\FunctionalTestingFramework\Test\Objects\TestObject;
+use Magento\FunctionalTestingFramework\Util\Logger\LoggingUtil;
/**
* Class ActionGroupObjectExtractor
@@ -58,7 +60,15 @@ public function __construct()
public function extractActionGroup($actionGroupData)
{
$arguments = [];
+ $deprecated = null;
+ if (array_key_exists(self::OBJ_DEPRECATED, $actionGroupData)) {
+ $deprecated = $actionGroupData[self::OBJ_DEPRECATED];
+ LoggingUtil::getInstance()->getLogger(ActionGroupObject::class)->deprecation(
+ $deprecated,
+ ["actionGroupName" => $actionGroupData[self::FILENAME], "deprecatedActionGroup" => $deprecated]
+ );
+ }
$actionGroupReference = $actionGroupData[self::EXTENDS_ACTION_GROUP] ?? null;
$actionData = $this->stripDescriptorTags(
$actionGroupData,
@@ -69,7 +79,8 @@ public function extractActionGroup($actionGroupData)
self::FILENAME,
self::ACTION_GROUP_INSERT_BEFORE,
self::ACTION_GROUP_INSERT_AFTER,
- self::EXTENDS_ACTION_GROUP
+ self::EXTENDS_ACTION_GROUP,
+ 'deprecated'
);
// TODO filename is now available to the ActionGroupObject, integrate this into debug and error statements
@@ -99,7 +110,8 @@ public function extractActionGroup($actionGroupData)
$arguments,
$actions,
$actionGroupReference,
- $actionGroupData[self::FILENAME]
+ $actionGroupData[self::FILENAME],
+ $deprecated
);
}
diff --git a/src/Magento/FunctionalTestingFramework/Test/Util/ActionMergeUtil.php b/src/Magento/FunctionalTestingFramework/Test/Util/ActionMergeUtil.php
index cd81ade24..159822db1 100644
--- a/src/Magento/FunctionalTestingFramework/Test/Util/ActionMergeUtil.php
+++ b/src/Magento/FunctionalTestingFramework/Test/Util/ActionMergeUtil.php
@@ -128,7 +128,8 @@ private function resolveSecretFieldAccess($resolvedActions)
$action->getCustomActionAttributes(),
$action->getLinkedAction(),
$action->getOrderOffset(),
- $action->getActionOrigin()
+ $action->getActionOrigin(),
+ $action->getDeprecatedUsages()
);
$actions[$action->getStepKey()] = $action;
diff --git a/src/Magento/FunctionalTestingFramework/Test/Util/AnnotationExtractor.php b/src/Magento/FunctionalTestingFramework/Test/Util/AnnotationExtractor.php
index d30ed351e..1859f3195 100644
--- a/src/Magento/FunctionalTestingFramework/Test/Util/AnnotationExtractor.php
+++ b/src/Magento/FunctionalTestingFramework/Test/Util/AnnotationExtractor.php
@@ -164,7 +164,8 @@ private function validateMissingAnnotations($annotationObjects, $filename)
$message = "Test {$filename} is missing required annotations.";
LoggingUtil::getInstance()->getLogger(ActionObject::class)->deprecation(
$message,
- ["testName" => $filename, "missingAnnotations" => implode(", ", $missingAnnotations)]
+ ["testName" => $filename, "missingAnnotations" => implode(", ", $missingAnnotations)],
+ true
);
}
}
diff --git a/src/Magento/FunctionalTestingFramework/Test/Util/BaseObjectExtractor.php b/src/Magento/FunctionalTestingFramework/Test/Util/BaseObjectExtractor.php
index 26644937d..516f79d14 100644
--- a/src/Magento/FunctionalTestingFramework/Test/Util/BaseObjectExtractor.php
+++ b/src/Magento/FunctionalTestingFramework/Test/Util/BaseObjectExtractor.php
@@ -13,6 +13,7 @@ class BaseObjectExtractor
{
const NODE_NAME = 'nodeName';
const NAME = 'name';
+ const OBJ_DEPRECATED = 'deprecated';
/**
* BaseObjectExtractor constructor.
diff --git a/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php b/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php
index d5420e355..a25db0935 100644
--- a/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php
+++ b/src/Magento/FunctionalTestingFramework/Test/Util/TestObjectExtractor.php
@@ -8,13 +8,16 @@
use Magento\FunctionalTestingFramework\Exceptions\TestFrameworkException;
use Magento\FunctionalTestingFramework\Exceptions\XmlException;
+use Magento\FunctionalTestingFramework\Page\Objects\ElementObject;
use Magento\FunctionalTestingFramework\Test\Objects\ActionObject;
use Magento\FunctionalTestingFramework\Test\Objects\TestObject;
+use Magento\FunctionalTestingFramework\Util\Logger\LoggingUtil;
use Magento\FunctionalTestingFramework\Util\ModulePathExtractor;
use Magento\FunctionalTestingFramework\Util\Validation\NameValidationUtil;
/**
* Class TestObjectExtractor
+ * @SuppressWarnings(PHPMD)
*/
class TestObjectExtractor extends BaseObjectExtractor
{
@@ -95,7 +98,8 @@ public function extractTestData($testData)
$fileNames = explode(",", $filename);
$baseFileName = $fileNames[0];
$module = $this->modulePathExtractor->extractModuleName($baseFileName);
- $testReference = $testData['extends'] ?? null;
+ $testReference = $testData['extends'] ?? null;
+ $deprecated = isset($testData[self::OBJ_DEPRECATED]) ? $testData[self::OBJ_DEPRECATED] : null;
$testActions = $this->stripDescriptorTags(
$testData,
self::NODE_NAME,
@@ -107,6 +111,7 @@ public function extractTestData($testData)
self::TEST_INSERT_BEFORE,
self::TEST_INSERT_AFTER,
self::TEST_FILENAME,
+ self::OBJ_DEPRECATED,
'extends'
);
@@ -122,12 +127,20 @@ public function extractTestData($testData)
// when $fileNames is not available
if (!isset($testAnnotations["description"])) {
$testAnnotations["description"] = [];
+ } else {
+ $testAnnotations["description"]['main'] = $testAnnotations["description"][0];
+ unset($testAnnotations["description"][0]);
+ }
+ $testAnnotations["description"]['test_files'] = $this->appendFileNamesInDescriptionAnnotation($fileNames);
+
+ $testAnnotations["description"][self::OBJ_DEPRECATED] = [];
+ if ($deprecated !== null) {
+ $testAnnotations["description"][self::OBJ_DEPRECATED][] = $deprecated;
+ LoggingUtil::getInstance()->getLogger(TestObject::class)->deprecation(
+ $deprecated,
+ ["testName" => $filename, "deprecatedTest" => $deprecated]
+ );
}
- $description = $testAnnotations["description"][0] ?? '';
- $testAnnotations["description"][0] = $this->appendFileNamesInDescriptionAnnotation(
- $description,
- $fileNames
- );
// extract before
if (array_key_exists(self::TEST_BEFORE_HOOK, $testData) && is_array($testData[self::TEST_BEFORE_HOOK])) {
@@ -152,6 +165,10 @@ public function extractTestData($testData)
);
}
+ if (!empty($testData[self::OBJ_DEPRECATED])) {
+ $testAnnotations[self::OBJ_DEPRECATED] = $testData[self::OBJ_DEPRECATED];
+ }
+
// TODO extract filename info and store
try {
return new TestObject(
@@ -170,14 +187,13 @@ public function extractTestData($testData)
/**
* Append names of test files, including merge files, in description annotation
*
- * @param string $description
- * @param array $fileNames
+ * @param array $fileNames
*
* @return string
*/
- private function appendFileNamesInDescriptionAnnotation($description, $fileNames)
+ private function appendFileNamesInDescriptionAnnotation(array $fileNames)
{
- $description .= '
Test files
';
+ $filePaths = 'Test files
';
foreach ($fileNames as $fileName) {
if (!empty($fileName) && realpath($fileName) !== false) {
@@ -187,11 +203,11 @@ private function appendFileNamesInDescriptionAnnotation($description, $fileNames
DIRECTORY_SEPARATOR
);
if (!empty($relativeFileName)) {
- $description .= $relativeFileName . '
';
+ $filePaths .= $relativeFileName . '
';
}
}
}
- return $description;
+ return $filePaths;
}
}
diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd
index 6e9e798f1..bd32ba879 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd
@@ -43,6 +43,13 @@
+
+
+
+ Message and flag which shows that entity is deprecated.
+
+
+
diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/mergedTestSchema.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/mergedTestSchema.xsd
index fe45945ee..6ded366bb 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/mergedTestSchema.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/mergedTestSchema.xsd
@@ -86,6 +86,13 @@
+
+
+
+ Message and flag which shows that entity is deprecated.
+
+
+
diff --git a/src/Magento/FunctionalTestingFramework/Util/Logger/MftfLogger.php b/src/Magento/FunctionalTestingFramework/Util/Logger/MftfLogger.php
index 0a52f6b6b..3983a755a 100644
--- a/src/Magento/FunctionalTestingFramework/Util/Logger/MftfLogger.php
+++ b/src/Magento/FunctionalTestingFramework/Util/Logger/MftfLogger.php
@@ -15,15 +15,17 @@ class MftfLogger extends Logger
/**
* Prints a deprecation warning, as well as adds a log at the WARNING level.
*
- * @param string $message The log message.
- * @param array $context The log context.
+ * @param string $message The log message.
+ * @param array $context The log context.
+ * @param boolean $verbose
* @return void
+ * @throws \Magento\FunctionalTestingFramework\Exceptions\TestFrameworkException
*/
- public function deprecation($message, array $context = [])
+ public function deprecation($message, array $context = [], $verbose = false)
{
$message = "DEPRECATION: " . $message;
// Suppress print during unit testing
- if (MftfApplicationConfig::getConfig()->getPhase() !== MftfApplicationConfig::UNIT_TEST_PHASE) {
+ if (MftfApplicationConfig::getConfig()->getPhase() !== MftfApplicationConfig::UNIT_TEST_PHASE && $verbose) {
print ($message . json_encode($context) . "\n");
}
parent::warning($message, $context);
@@ -32,15 +34,17 @@ public function deprecation($message, array $context = [])
/**
* Prints a critical failure, as well as adds a log at the CRITICAL level.
*
- * @param string $message The log message.
- * @param array $context The log context.
+ * @param string $message The log message.
+ * @param array $context The log context.
+ * @param boolean $verbose
* @return void
+ * @throws \Magento\FunctionalTestingFramework\Exceptions\TestFrameworkException
*/
- public function criticalFailure($message, array $context = [])
+ public function criticalFailure($message, array $context = [], $verbose = false)
{
$message = "FAILURE: " . $message;
// Suppress print during unit testing
- if (MftfApplicationConfig::getConfig()->getPhase() !== MftfApplicationConfig::UNIT_TEST_PHASE) {
+ if (MftfApplicationConfig::getConfig()->getPhase() !== MftfApplicationConfig::UNIT_TEST_PHASE && $verbose) {
print ($message . implode("\n", $context) . "\n");
}
parent::critical($message, $context);
diff --git a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php
index c67d8288f..e40f60dcf 100644
--- a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php
+++ b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php
@@ -7,7 +7,6 @@
namespace Magento\FunctionalTestingFramework\Util;
use Magento\FunctionalTestingFramework\Config\MftfApplicationConfig;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\Exceptions\TestFrameworkException;
@@ -17,14 +16,11 @@
use Magento\FunctionalTestingFramework\Test\Handlers\TestObjectHandler;
use Magento\FunctionalTestingFramework\Test\Objects\ActionGroupObject;
use Magento\FunctionalTestingFramework\Test\Objects\ActionObject;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
use Magento\FunctionalTestingFramework\Test\Objects\TestHookObject;
use Magento\FunctionalTestingFramework\Test\Objects\TestObject;
-use Magento\FunctionalTestingFramework\Util\Logger\LoggingUtil;
+use Magento\FunctionalTestingFramework\Test\Util\BaseObjectExtractor;
use Magento\FunctionalTestingFramework\Util\Manifest\BaseTestManifest;
-use Magento\FunctionalTestingFramework\Util\Manifest\TestManifestFactory;
use Magento\FunctionalTestingFramework\Test\Util\ActionObjectExtractor;
-use Magento\FunctionalTestingFramework\Test\Util\TestObjectExtractor;
use Magento\FunctionalTestingFramework\Util\Filesystem\DirSetupUtil;
use Magento\FunctionalTestingFramework\Test\Util\ActionMergeUtil;
use Magento\FunctionalTestingFramework\Util\Path\FilePathFormatter;
@@ -112,6 +108,13 @@ class TestGenerator
*/
private $currentGenerationScope = TestGenerator::TEST_SCOPE;
+ /**
+ * Test deprecation messages.
+ *
+ * @var array
+ */
+ private $deprecationMessages = [];
+
/**
* Private constructor for Factory
*
@@ -244,7 +247,6 @@ public function createAllTestFiles($testManifest = null, $testsToIgnore = null)
public function assembleTestPhp($testObject)
{
$usePhp = $this->generateUseStatementsPhp();
- $classAnnotationsPhp = $this->generateAnnotationsPhp($testObject->getAnnotations());
$className = $testObject->getCodeceptionName();
try {
@@ -257,6 +259,7 @@ public function assembleTestPhp($testObject)
} catch (TestReferenceException $e) {
throw new TestReferenceException($e->getMessage() . "\n" . $testObject->getFilename());
}
+ $classAnnotationsPhp = $this->generateAnnotationsPhp($testObject->getAnnotations());
$cestPhp = "exportDirName . "\Backend;\n\n";
@@ -456,7 +459,7 @@ private function generateMethodAnnotations($annotationType = null, $annotationNa
* Method which return formatted class level annotations based on type and name(s).
*
* @param string $annotationType
- * @param string $annotationName
+ * @param array $annotationName
* @return null|string
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
@@ -470,7 +473,8 @@ private function generateClassAnnotations($annotationType, $annotationName)
break;
case "description":
- $annotationToAppend = sprintf(" * @Description(\"%s\")\n", $annotationName[0]);
+ $template = " * @Description(\"%s\")\n";
+ $annotationToAppend = sprintf($template, $this->generateDescriptionAnnotation($annotationName));
break;
case "testCaseId":
@@ -491,6 +495,36 @@ private function generateClassAnnotations($annotationType, $annotationName)
return $annotationToAppend;
}
+ /**
+ * Generates Description
+ *
+ * @param array $descriptions
+ * @return string
+ */
+ private function generateDescriptionAnnotation(array $descriptions)
+ {
+ $descriptionText = "";
+
+ $descriptionText .= $descriptions["main"] ?? '';
+ if (!empty($descriptions[BaseObjectExtractor::OBJ_DEPRECATED]) || !empty($this->deprecationMessages)) {
+ $deprecatedMessages = array_merge(
+ $descriptions[BaseObjectExtractor::OBJ_DEPRECATED],
+ $this->deprecationMessages
+ );
+
+ $descriptionText .= "Deprecated Notice(s):
";
+ $descriptionText .= "";
+
+ foreach ($deprecatedMessages as $deprecatedMessage) {
+ $descriptionText .= "- " . $deprecatedMessage . "
";
+ }
+ $descriptionText .= "
";
+ }
+ $descriptionText .= $descriptions["test_files"];
+
+ return $descriptionText;
+ }
+
/**
* Creates a PHP string for the actions contained withing a block.
* Since nearly half of all Codeception methods don't share the same signature I had to setup a massive Case
@@ -511,8 +545,10 @@ public function generateStepsPhp($actionObjects, $generationScope = TestGenerato
$testSteps = '';
$this->actor = $actor;
$this->currentGenerationScope = $generationScope;
+ $this->deprecationMessages = [];
foreach ($actionObjects as $actionObject) {
+ $this->deprecationMessages = array_merge($this->deprecationMessages, $actionObject->getDeprecatedUsages());
$stepKey = $actionObject->getStepKey();
$customActionAttributes = $actionObject->getCustomActionAttributes();
$attribute = null;