Skip to content

Commit 9844eda

Browse files
committed
Merge branch 'develop' into MQE-1222
2 parents cc944df + 54a61f8 commit 9844eda

File tree

15 files changed

+170
-55
lines changed

15 files changed

+170
-55
lines changed

dev/tests/unit/Magento/FunctionalTestFramework/Util/ModuleResolverTest.php

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -96,27 +96,22 @@ public function testGetModulePathsLocations()
9696
);
9797

9898
// Define the Module paths from app/code
99-
$appCodePath = MAGENTO_BP
100-
. DIRECTORY_SEPARATOR
101-
. 'app' . DIRECTORY_SEPARATOR
102-
. 'code' . DIRECTORY_SEPARATOR;
99+
$magentoBaseCodePath = MAGENTO_BP;
103100

104101
// Define the Module paths from default TESTS_MODULE_PATH
105102
$modulePath = defined('TESTS_MODULE_PATH') ? TESTS_MODULE_PATH : TESTS_BP;
106103

107104
// Define the Module paths from vendor modules
108-
$vendorCodePath = PROJECT_ROOT
109-
. DIRECTORY_SEPARATOR
110-
. 'vendor' . DIRECTORY_SEPARATOR;
105+
$projectRootCodePath = PROJECT_ROOT;
111106

112107
$mockResolver->verifyInvoked('globRelevantPaths', [$modulePath, '']);
113108
$mockResolver->verifyInvoked(
114109
'globRelevantPaths',
115-
[$appCodePath, DIRECTORY_SEPARATOR . 'Test' . DIRECTORY_SEPARATOR .'Mftf']
110+
[$magentoBaseCodePath, 'Test' . DIRECTORY_SEPARATOR .'Mftf']
116111
);
117112
$mockResolver->verifyInvoked(
118113
'globRelevantPaths',
119-
[$vendorCodePath, DIRECTORY_SEPARATOR . 'Test' . DIRECTORY_SEPARATOR .'Mftf']
114+
[$projectRootCodePath, 'Test' . DIRECTORY_SEPARATOR .'Mftf']
120115
);
121116
}
122117

@@ -151,8 +146,6 @@ public function testGetModulePathsBlacklist()
151146
function ($arg1, $arg2) {
152147
if ($arg2 === "") {
153148
$mockValue = ["somePath" => "somePath"];
154-
} elseif (strpos($arg1, "app")) {
155-
$mockValue = ["otherPath" => "otherPath"];
156149
} else {
157150
$mockValue = ["lastPath" => "lastPath"];
158151
}
@@ -161,7 +154,7 @@ function ($arg1, $arg2) {
161154
);
162155
$resolver = ModuleResolver::getInstance();
163156
$this->setMockResolverProperties($resolver, null, null, ["somePath"]);
164-
$this->assertEquals(["otherPath", "lastPath"], $resolver->getModulesPath());
157+
$this->assertEquals(["lastPath", "lastPath"], $resolver->getModulesPath());
165158
TestLoggingUtil::getInstance()->validateMockLogStatement(
166159
'info',
167160
'excluding module',

dev/tests/unit/Magento/FunctionalTestFramework/Util/Validation/DuplicateNodeValidationUtilTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public function testTestActionValidation()
2929
';
3030
$uniqueIdentifier = "stepKey";
3131
$filename = "file";
32+
$testName = "test";
3233

3334
// Perform Test
3435
$dom = new \DOMDocument();
@@ -40,8 +41,7 @@ public function testTestActionValidation()
4041
$validator->validateChildUniqueness(
4142
$testNode,
4243
$filename,
43-
$uniqueIdentifier,
44-
$exceptionCollector
44+
$testName
4545
);
4646
$this->expectException(\Exception::class);
4747
$exceptionCollector->throwException();
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
namespace Magento\AcceptanceTest\_default\Backend;
3+
4+
use Magento\FunctionalTestingFramework\AcceptanceTester;
5+
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
6+
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
7+
use \Codeception\Util\Locator;
8+
use Yandex\Allure\Adapter\Annotation\Features;
9+
use Yandex\Allure\Adapter\Annotation\Stories;
10+
use Yandex\Allure\Adapter\Annotation\Title;
11+
use Yandex\Allure\Adapter\Annotation\Description;
12+
use Yandex\Allure\Adapter\Annotation\Parameter;
13+
use Yandex\Allure\Adapter\Annotation\Severity;
14+
use Yandex\Allure\Adapter\Model\SeverityLevel;
15+
use Yandex\Allure\Adapter\Annotation\TestCaseId;
16+
17+
/**
18+
*/
19+
class ActionGroupWithParameterizedElementWithHyphenCest
20+
{
21+
/**
22+
* @Features({"TestModule"})
23+
* @Parameter(name = "AcceptanceTester", value="$I")
24+
* @param AcceptanceTester $I
25+
* @return void
26+
* @throws \Exception
27+
*/
28+
public function ActionGroupWithParameterizedElementWithHyphen(AcceptanceTester $I)
29+
{
30+
$keyoneActionGroup = $I->executeJS("#element .full-width");
31+
}
32+
}

dev/tests/verification/TestModule/ActionGroup/FunctionalActionGroup.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,4 +85,10 @@
8585
</arguments>
8686
<seeInCurrentUrl url="/{{persistedData.urlKey}}.html?___store={{xmlData.firstname}}" stepKey="checkUrl"/>
8787
</actionGroup>
88+
<actionGroup name="SectionArgumentWithParameterizedSelector">
89+
<arguments>
90+
<argument name="section" defaultValue="SampleSection"/>
91+
</arguments>
92+
<executeJS function="{{section.oneParamElement('full-width')}}" stepKey="keyone"/>
93+
</actionGroup>
8894
</actionGroups>

dev/tests/verification/TestModule/Test/ActionGroupTest.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,4 +165,10 @@
165165
<argument name="section" value="SampleSection"/>
166166
</actionGroup>
167167
</test>
168+
169+
<test name="ActionGroupWithParameterizedElementWithHyphen">
170+
<actionGroup ref="SectionArgumentWithParameterizedSelector" stepKey="actionGroup">
171+
<argument name="section" value="SampleSection"/>
172+
</actionGroup>
173+
</test>
168174
</tests>

dev/tests/verification/Tests/ActionGroupGenerationTest.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,4 +206,15 @@ public function testActionGroupWithSectionAndDataArguments()
206206
{
207207
$this->generateAndCompareTest('ActionGroupWithSectionAndDataAsArguments');
208208
}
209+
210+
/**
211+
* Test an action group with an arg that resolves into section.element with a hyphen in the parameter
212+
*
213+
* @throws \Exception
214+
* @throws \Magento\FunctionalTestingFramework\Exceptions\TestReferenceException
215+
*/
216+
public function testActionGroupWithHyphen()
217+
{
218+
$this->generateAndCompareTest('ActionGroupWithParameterizedElementWithHyphen');
219+
}
209220
}

src/Magento/FunctionalTestingFramework/DataGenerator/Config/Dom.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class Dom extends \Magento\FunctionalTestingFramework\Config\MftfDom
1818
{
1919
const DATA_FILE_NAME_ENDING = "Data";
2020
const DATA_META_FILENAME_ATTRIBUTE = "filename";
21+
const DATA_META_NAME_ATTRIBUTE = "name";
2122

2223
/**
2324
* NodeValidationUtil
@@ -74,7 +75,8 @@ public function initDom($xml, $filename = null)
7475
$entityNode->setAttribute(self::DATA_META_FILENAME_ATTRIBUTE, $filename);
7576
$this->validationUtil->validateChildUniqueness(
7677
$entityNode,
77-
$filename
78+
$filename,
79+
$entityNode->getAttribute(self::DATA_META_NAME_ATTRIBUTE)
7880
);
7981
}
8082
}

src/Magento/FunctionalTestingFramework/DataGenerator/Config/OperationDom.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class OperationDom extends \Magento\FunctionalTestingFramework\Config\MftfDom
1818
{
1919
const METADATA_FILE_NAME_ENDING = "meta";
2020
const METADATA_META_FILENAME_ATTRIBUTE = "filename";
21+
const METADATA_META_NAME_ATTRIBUTE = "name";
2122

2223
/**
2324
* NodeValidationUtil
@@ -74,7 +75,8 @@ public function initDom($xml, $filename = null)
7475
$operationNode->setAttribute(self::METADATA_META_FILENAME_ATTRIBUTE, $filename);
7576
$this->validateOperationElements(
7677
$operationNode,
77-
$filename
78+
$filename,
79+
$operationNode->getAttribute(self::METADATA_META_NAME_ATTRIBUTE)
7880
);
7981
}
8082
}
@@ -86,13 +88,15 @@ public function initDom($xml, $filename = null)
8688
* Recurse through child elements and validate uniqueKeys
8789
* @param \DOMElement $parentNode
8890
* @param string $filename
91+
* @param string $topParent
8992
* @return void
9093
*/
91-
public function validateOperationElements(\DOMElement $parentNode, $filename)
94+
public function validateOperationElements(\DOMElement $parentNode, $filename, $topParent)
9295
{
9396
$this->validationUtil->validateChildUniqueness(
9497
$parentNode,
95-
$filename
98+
$filename,
99+
$topParent
96100
);
97101
$childNodes = $parentNode->childNodes;
98102

@@ -103,7 +107,8 @@ public function validateOperationElements(\DOMElement $parentNode, $filename)
103107
}
104108
$this->validateOperationElements(
105109
$currentNode,
106-
$filename
110+
$filename,
111+
$topParent
107112
);
108113
}
109114
}

src/Magento/FunctionalTestingFramework/Page/Config/Dom.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
class Dom extends \Magento\FunctionalTestingFramework\Config\MftfDom
2121
{
2222
const PAGE_META_FILENAME_ATTRIBUTE = "filename";
23+
const PAGE_META_NAME_ATTRIBUTE = "name";
2324

2425
/**
2526
* Module Path extractor
@@ -79,7 +80,11 @@ public function initDom($xml, $filename = null)
7980
$dom = parent::initDom($xml, $filename);
8081

8182
$pagesNode = $dom->getElementsByTagName('pages')->item(0);
82-
$this->validationUtil->validateChildUniqueness($pagesNode, $filename);
83+
$this->validationUtil->validateChildUniqueness(
84+
$pagesNode,
85+
$filename,
86+
$pagesNode->getAttribute(self::PAGE_META_NAME_ATTRIBUTE)
87+
);
8388
$pageNodes = $dom->getElementsByTagName('page');
8489
$currentModule =
8590
$this->modulePathExtractor->extractModuleName($filename) .

src/Magento/FunctionalTestingFramework/Page/Config/SectionDom.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
class SectionDom extends \Magento\FunctionalTestingFramework\Config\MftfDom
2121
{
2222
const SECTION_META_FILENAME_ATTRIBUTE = "filename";
23+
const SECTION_META_NAME_ATTRIBUTE = "name";
2324

2425
/**
2526
* NodeValidationUtil
@@ -71,7 +72,11 @@ public function initDom($xml, $filename = null)
7172
$sectionNodes = $dom->getElementsByTagName('section');
7273
foreach ($sectionNodes as $sectionNode) {
7374
$sectionNode->setAttribute(self::SECTION_META_FILENAME_ATTRIBUTE, $filename);
74-
$this->validationUtil->validateChildUniqueness($sectionNode, $filename);
75+
$this->validationUtil->validateChildUniqueness(
76+
$sectionNode,
77+
$filename,
78+
$sectionNode->getAttribute(self::SECTION_META_NAME_ATTRIBUTE)
79+
);
7580
}
7681
return $dom;
7782
}

src/Magento/FunctionalTestingFramework/Test/Config/ActionGroupDom.php

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
class ActionGroupDom extends Dom
1616
{
1717
const ACTION_GROUP_FILE_NAME_ENDING = "ActionGroup.xml";
18+
const ACTION_GROUP_META_NAME_ATTRIBUTE = "name";
1819

1920
/**
2021
* Takes a dom element from xml and appends the filename based on location while also validating the action group
@@ -35,22 +36,9 @@ public function initDom($xml, $filename = null)
3536
$actionGroupNode->setAttribute(self::TEST_META_FILENAME_ATTRIBUTE, $filename);
3637
$this->validationUtil->validateChildUniqueness(
3738
$actionGroupNode,
38-
$filename
39+
$filename,
40+
$actionGroupNode->getAttribute(self::ACTION_GROUP_META_NAME_ATTRIBUTE)
3941
);
40-
$beforeNode = $actionGroupNode->getElementsByTagName('before')->item(0);
41-
$afterNode = $actionGroupNode->getElementsByTagName('after')->item(0);
42-
if (isset($beforeNode)) {
43-
$this->validationUtil->validateChildUniqueness(
44-
$beforeNode,
45-
$filename
46-
);
47-
}
48-
if (isset($afterNode)) {
49-
$this->validationUtil->validateChildUniqueness(
50-
$afterNode,
51-
$filename
52-
);
53-
}
5442
if ($actionGroupNode->getAttribute(self::TEST_MERGE_POINTER_AFTER) !== "") {
5543
$this->appendMergePointerToActions(
5644
$actionGroupNode,

src/Magento/FunctionalTestingFramework/Test/Config/Dom.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,21 +104,24 @@ public function initDom($xml, $filename = null)
104104

105105
$this->validationUtil->validateChildUniqueness(
106106
$testNode,
107-
$filename
107+
$filename,
108+
$testNode->getAttribute(self::TEST_META_NAME_ATTRIBUTE)
108109
);
109110
$beforeNode = $testNode->getElementsByTagName('before')->item(0);
110111
$afterNode = $testNode->getElementsByTagName('after')->item(0);
111112

112113
if (isset($beforeNode)) {
113114
$this->validationUtil->validateChildUniqueness(
114115
$beforeNode,
115-
$filename
116+
$filename,
117+
$testNode->getAttribute(self::TEST_META_NAME_ATTRIBUTE) . "/before"
116118
);
117119
}
118120
if (isset($afterNode)) {
119121
$this->validationUtil->validateChildUniqueness(
120122
$afterNode,
121-
$filename
123+
$filename,
124+
$testNode->getAttribute(self::TEST_META_NAME_ATTRIBUTE) . "/after"
122125
);
123126
}
124127
}

src/Magento/FunctionalTestingFramework/Test/Objects/ActionGroupObject.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ private function resolveAttributesWithArguments($arguments, $attributes)
204204
// $regexPattern match on: $matches[0] {{section.element(arg.field)}}
205205
// $matches[1] = section.element
206206
// $matches[2] = arg.field
207-
$regexPattern = '/{{([\w.\[\]]+)\(*([\w.$\',\s\[\]]+)*\)*}}/';
207+
$regexPattern = '/{{([^(}]+)\(*([^)}]+)*\)*}}/';
208208

209209
$newActionAttributes = [];
210210
foreach ($attributes as $attributeKey => $attributeValue) {

0 commit comments

Comments
 (0)