Skip to content

Commit ce874ba

Browse files
committed
Merge remote-tracking branch 'origin/MQE-440' into sprint-develop
2 parents 1188737 + c5cf82b commit ce874ba

File tree

6 files changed

+142
-23
lines changed

6 files changed

+142
-23
lines changed

etc/di.xml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,8 @@
207207
<item name="/config/cest/test/actionGroup/argument" xsi:type="string">name</item>
208208
<item name="/config/cest/test/createData/required-entity" xsi:type="string">createDataKey</item>
209209
<item name="/config/cest/test/updateData/required-entity" xsi:type="string">createDataKey</item>
210-
<item name="/config/cest/test/(acceptPopup|actionGroup|amOnPage|amOnUrl|appendField|assertArraySubset|attachFile|cancelPopup|checkOption|click|clickWithLeftButton|clickWithRightButton|closeTab|createData|deleteData|updateData|dontSee|dontSeeCheckboxIsChecked|dontSeeCookie|dontSeeCurrentUrlEquals|dontSeeCurrentUrlMatches|dontSeeElement|dontSeeElementInDOM|dontSeeInCurrentUrl|dontSeeInField|dontSeeInPageSource|dontSeeInSource|dontSeeInTitle|dontSeeLink|dontSeeOptionIsSelected|doubleClick|dragAndDrop|entity|executeJS|fillField|formatMoney|grabAttributeFrom|grabCookie|grabFromCurrentUrl|grabMultiple|grabPageSource|grabTextFrom|grabValueFrom|loadSessionSnapshot|loginAsAdmin|makeScreenshot|maximizeWindow|moveBack|moveForward|moveMouseOver|openNewTab|pauseExecution|performOn|pressKey|reloadPage|resetCookie|resizeWindow|scrollTo|searchAndMultiSelectOption|see|seeCheckboxIsChecked|seeCookie|seeCurrentUrlEquals|seeCurrentUrlMatches|seeElement|seeElementInDOM|seeInCurrentUrl|seeInField|seeInFormFields|seeInPageSource|seeInPopup|seeInSource|seeInTitle|seeLink|seeNumberOfElements|seeOptionIsSelected|selectOption|setCookie|switchToIFrame|switchToNextTab|switchToPreviousTab|switchToWindow|typeInPopup|uncheckOption|unselectOption|wait|waitForAjaxLoad|waitForElement|waitForElementChange|waitForElementNotVisible|waitForElementVisible|waitForJS|waitForLoadingMaskToDisappear|waitForPageLoad|waitForText)" xsi:type="string">mergeKey</item>
210+
<item name="/config/cest/test/getData/required-entity" xsi:type="string">createDataKey</item>
211+
<item name="/config/cest/test/(acceptPopup|actionGroup|amOnPage|amOnUrl|appendField|assertArraySubset|attachFile|cancelPopup|checkOption|click|clickWithLeftButton|clickWithRightButton|closeTab|createData|deleteData|updateData|getData|dontSee|dontSeeCheckboxIsChecked|dontSeeCookie|dontSeeCurrentUrlEquals|dontSeeCurrentUrlMatches|dontSeeElement|dontSeeElementInDOM|dontSeeInCurrentUrl|dontSeeInField|dontSeeInPageSource|dontSeeInSource|dontSeeInTitle|dontSeeLink|dontSeeOptionIsSelected|doubleClick|dragAndDrop|entity|executeJS|fillField|formatMoney|grabAttributeFrom|grabCookie|grabFromCurrentUrl|grabMultiple|grabPageSource|grabTextFrom|grabValueFrom|loadSessionSnapshot|loginAsAdmin|makeScreenshot|maximizeWindow|moveBack|moveForward|moveMouseOver|openNewTab|pauseExecution|performOn|pressKey|reloadPage|resetCookie|resizeWindow|scrollTo|searchAndMultiSelectOption|see|seeCheckboxIsChecked|seeCookie|seeCurrentUrlEquals|seeCurrentUrlMatches|seeElement|seeElementInDOM|seeInCurrentUrl|seeInField|seeInFormFields|seeInPageSource|seeInPopup|seeInSource|seeInTitle|seeLink|seeNumberOfElements|seeOptionIsSelected|selectOption|setCookie|switchToIFrame|switchToNextTab|switchToPreviousTab|switchToWindow|typeInPopup|uncheckOption|unselectOption|wait|waitForAjaxLoad|waitForElement|waitForElementChange|waitForElementNotVisible|waitForElementVisible|waitForJS|waitForLoadingMaskToDisappear|waitForPageLoad|waitForText)" xsi:type="string">mergeKey</item>
211212
</argument>
212213
<argument name="fileName" xsi:type="string">*Cest.xml</argument>
213214
<argument name="defaultScope" xsi:type="string">Cest</argument>
@@ -217,9 +218,9 @@
217218
<virtualType name="Magento\FunctionalTestingFramework\Test\Config\Dom\ArrayNodeConfig" type="Magento\FunctionalTestingFramework\Config\Dom\ArrayNodeConfig">
218219
<arguments>
219220
<argument name="assocArrayAttributes" xsi:type="array">
220-
<item name="/config/cest/test/(acceptPopup|actionGroup|amOnPage|amOnUrl|appendField|assertArraySubset|attachFile|cancelPopup|checkOption|click|clickWithLeftButton|clickWithRightButton|closeTab|createData|deleteData|updateData|dontSee|dontSeeCheckboxIsChecked|dontSeeCookie|dontSeeCurrentUrlEquals|dontSeeCurrentUrlMatches|dontSeeElement|dontSeeElementInDOM|dontSeeInCurrentUrl|dontSeeInField|dontSeeInPageSource|dontSeeInSource|dontSeeInTitle|dontSeeLink|dontSeeOptionIsSelected|doubleClick|dragAndDrop|entity|executeJS|fillField|formatMoney|grabAttributeFrom|grabCookie|grabFromCurrentUrl|grabMultiple|grabPageSource|grabTextFrom|grabValueFrom|loadSessionSnapshot|loginAsAdmin|makeScreenshot|maximizeWindow|moveBack|moveForward|moveMouseOver|openNewTab|pauseExecution|performOn|pressKey|reloadPage|resetCookie|resizeWindow|scrollTo|searchAndMultiSelectOption|see|seeCheckboxIsChecked|seeCookie|seeCurrentUrlEquals|seeCurrentUrlMatches|seeElement|seeElementInDOM|seeInCurrentUrl|seeInField|seeInFormFields|seeInPageSource|seeInPopup|seeInSource|seeInTitle|seeLink|seeNumberOfElements|seeOptionIsSelected|selectOption|setCookie|switchToIFrame|switchToNextTab|switchToPreviousTab|switchToWindow|typeInPopup|uncheckOption|unselectOption|wait|waitForAjaxLoad|waitForElement|waitForElementChange|waitForElementNotVisible|waitForElementVisible|waitForJS|waitForLoadingMaskToDisappear|waitForPageLoad|waitForText)" xsi:type="string">mergeKey</item>
221-
<item name="/config/cest/before/(acceptPopup|actionGroup|amOnPage|amOnUrl|appendField|assertArraySubset|attachFile|cancelPopup|checkOption|click|clickWithLeftButton|clickWithRightButton|closeTab|createData|deleteData|updateData|dontSee|dontSeeCheckboxIsChecked|dontSeeCookie|dontSeeCurrentUrlEquals|dontSeeCurrentUrlMatches|dontSeeElement|dontSeeElementInDOM|dontSeeInCurrentUrl|dontSeeInField|dontSeeInPageSource|dontSeeInSource|dontSeeInTitle|dontSeeLink|dontSeeOptionIsSelected|doubleClick|dragAndDrop|entity|executeJS|fillField|formatMoney|grabAttributeFrom|grabCookie|grabFromCurrentUrl|grabMultiple|grabPageSource|grabTextFrom|grabValueFrom|loadSessionSnapshot|loginAsAdmin|makeScreenshot|maximizeWindow|moveBack|moveForward|moveMouseOver|openNewTab|pauseExecution|performOn|pressKey|reloadPage|resetCookie|resizeWindow|scrollTo|searchAndMultiSelectOption|see|seeCheckboxIsChecked|seeCookie|seeCurrentUrlEquals|seeCurrentUrlMatches|seeElement|seeElementInDOM|seeInCurrentUrl|seeInField|seeInFormFields|seeInPageSource|seeInPopup|seeInSource|seeInTitle|seeLink|seeNumberOfElements|seeOptionIsSelected|selectOption|setCookie|switchToIFrame|switchToNextTab|switchToPreviousTab|switchToWindow|typeInPopup|uncheckOption|unselectOption|wait|waitForAjaxLoad|waitForElement|waitForElementChange|waitForElementNotVisible|waitForElementVisible|waitForJS|waitForLoadingMaskToDisappear|waitForPageLoad|waitForText)" xsi:type="string">mergeKey</item>
222-
<item name="/config/cest/after/(acceptPopup|actionGroup|amOnPage|amOnUrl|appendField|assertArraySubset|attachFile|cancelPopup|checkOption|click|clickWithLeftButton|clickWithRightButton|closeTab|createData|deleteData|updateData|dontSee|dontSeeCheckboxIsChecked|dontSeeCookie|dontSeeCurrentUrlEquals|dontSeeCurrentUrlMatches|dontSeeElement|dontSeeElementInDOM|dontSeeInCurrentUrl|dontSeeInField|dontSeeInPageSource|dontSeeInSource|dontSeeInTitle|dontSeeLink|dontSeeOptionIsSelected|doubleClick|dragAndDrop|entity|executeJS|fillField|formatMoney|grabAttributeFrom|grabCookie|grabFromCurrentUrl|grabMultiple|grabPageSource|grabTextFrom|grabValueFrom|loadSessionSnapshot|loginAsAdmin|makeScreenshot|maximizeWindow|moveBack|moveForward|moveMouseOver|openNewTab|pauseExecution|performOn|pressKey|reloadPage|resetCookie|resizeWindow|scrollTo|searchAndMultiSelectOption|see|seeCheckboxIsChecked|seeCookie|seeCurrentUrlEquals|seeCurrentUrlMatches|seeElement|seeElementInDOM|seeInCurrentUrl|seeInField|seeInFormFields|seeInPageSource|seeInPopup|seeInSource|seeInTitle|seeLink|seeNumberOfElements|seeOptionIsSelected|selectOption|setCookie|switchToIFrame|switchToNextTab|switchToPreviousTab|switchToWindow|typeInPopup|uncheckOption|unselectOption|wait|waitForAjaxLoad|waitForElement|waitForElementChange|waitForElementNotVisible|waitForElementVisible|waitForJS|waitForLoadingMaskToDisappear|waitForPageLoad|waitForText)" xsi:type="string">mergeKey</item>
221+
<item name="/config/cest/test/(acceptPopup|actionGroup|amOnPage|amOnUrl|appendField|assertArraySubset|attachFile|cancelPopup|checkOption|click|clickWithLeftButton|clickWithRightButton|closeTab|createData|deleteData|updateData|getData|dontSee|dontSeeCheckboxIsChecked|dontSeeCookie|dontSeeCurrentUrlEquals|dontSeeCurrentUrlMatches|dontSeeElement|dontSeeElementInDOM|dontSeeInCurrentUrl|dontSeeInField|dontSeeInPageSource|dontSeeInSource|dontSeeInTitle|dontSeeLink|dontSeeOptionIsSelected|doubleClick|dragAndDrop|entity|executeJS|fillField|formatMoney|grabAttributeFrom|grabCookie|grabFromCurrentUrl|grabMultiple|grabPageSource|grabTextFrom|grabValueFrom|loadSessionSnapshot|loginAsAdmin|makeScreenshot|maximizeWindow|moveBack|moveForward|moveMouseOver|openNewTab|pauseExecution|performOn|pressKey|reloadPage|resetCookie|resizeWindow|scrollTo|searchAndMultiSelectOption|see|seeCheckboxIsChecked|seeCookie|seeCurrentUrlEquals|seeCurrentUrlMatches|seeElement|seeElementInDOM|seeInCurrentUrl|seeInField|seeInFormFields|seeInPageSource|seeInPopup|seeInSource|seeInTitle|seeLink|seeNumberOfElements|seeOptionIsSelected|selectOption|setCookie|switchToIFrame|switchToNextTab|switchToPreviousTab|switchToWindow|typeInPopup|uncheckOption|unselectOption|wait|waitForAjaxLoad|waitForElement|waitForElementChange|waitForElementNotVisible|waitForElementVisible|waitForJS|waitForLoadingMaskToDisappear|waitForPageLoad|waitForText)" xsi:type="string">mergeKey</item>
222+
<item name="/config/cest/before/(acceptPopup|actionGroup|amOnPage|amOnUrl|appendField|assertArraySubset|attachFile|cancelPopup|checkOption|click|clickWithLeftButton|clickWithRightButton|closeTab|createData|deleteData|updateData|getData|dontSee|dontSeeCheckboxIsChecked|dontSeeCookie|dontSeeCurrentUrlEquals|dontSeeCurrentUrlMatches|dontSeeElement|dontSeeElementInDOM|dontSeeInCurrentUrl|dontSeeInField|dontSeeInPageSource|dontSeeInSource|dontSeeInTitle|dontSeeLink|dontSeeOptionIsSelected|doubleClick|dragAndDrop|entity|executeJS|fillField|formatMoney|grabAttributeFrom|grabCookie|grabFromCurrentUrl|grabMultiple|grabPageSource|grabTextFrom|grabValueFrom|loadSessionSnapshot|loginAsAdmin|makeScreenshot|maximizeWindow|moveBack|moveForward|moveMouseOver|openNewTab|pauseExecution|performOn|pressKey|reloadPage|resetCookie|resizeWindow|scrollTo|searchAndMultiSelectOption|see|seeCheckboxIsChecked|seeCookie|seeCurrentUrlEquals|seeCurrentUrlMatches|seeElement|seeElementInDOM|seeInCurrentUrl|seeInField|seeInFormFields|seeInPageSource|seeInPopup|seeInSource|seeInTitle|seeLink|seeNumberOfElements|seeOptionIsSelected|selectOption|setCookie|switchToIFrame|switchToNextTab|switchToPreviousTab|switchToWindow|typeInPopup|uncheckOption|unselectOption|wait|waitForAjaxLoad|waitForElement|waitForElementChange|waitForElementNotVisible|waitForElementVisible|waitForJS|waitForLoadingMaskToDisappear|waitForPageLoad|waitForText)" xsi:type="string">mergeKey</item>
223+
<item name="/config/cest/after/(acceptPopup|actionGroup|amOnPage|amOnUrl|appendField|assertArraySubset|attachFile|cancelPopup|checkOption|click|clickWithLeftButton|clickWithRightButton|closeTab|createData|deleteData|updateData|getData|dontSee|dontSeeCheckboxIsChecked|dontSeeCookie|dontSeeCurrentUrlEquals|dontSeeCurrentUrlMatches|dontSeeElement|dontSeeElementInDOM|dontSeeInCurrentUrl|dontSeeInField|dontSeeInPageSource|dontSeeInSource|dontSeeInTitle|dontSeeLink|dontSeeOptionIsSelected|doubleClick|dragAndDrop|entity|executeJS|fillField|formatMoney|grabAttributeFrom|grabCookie|grabFromCurrentUrl|grabMultiple|grabPageSource|grabTextFrom|grabValueFrom|loadSessionSnapshot|loginAsAdmin|makeScreenshot|maximizeWindow|moveBack|moveForward|moveMouseOver|openNewTab|pauseExecution|performOn|pressKey|reloadPage|resetCookie|resizeWindow|scrollTo|searchAndMultiSelectOption|see|seeCheckboxIsChecked|seeCookie|seeCurrentUrlEquals|seeCurrentUrlMatches|seeElement|seeElementInDOM|seeInCurrentUrl|seeInField|seeInFormFields|seeInPageSource|seeInPopup|seeInSource|seeInTitle|seeLink|seeNumberOfElements|seeOptionIsSelected|selectOption|setCookie|switchToIFrame|switchToNextTab|switchToPreviousTab|switchToWindow|typeInPopup|uncheckOption|unselectOption|wait|waitForAjaxLoad|waitForElement|waitForElementChange|waitForElementNotVisible|waitForElementVisible|waitForJS|waitForLoadingMaskToDisappear|waitForPageLoad|waitForText)" xsi:type="string">mergeKey</item>
223224
<item name="/config/cest/test" xsi:type="string">name</item>
224225
<item name="/config/cest" xsi:type="string">name</item>
225226
<item name="/config/cest/test/createData/required-entity" xsi:type="string">createDataKey</item>
@@ -228,6 +229,9 @@
228229
<item name="/config/cest/test/updateData/required-entity" xsi:type="string">createDataKey</item>
229230
<item name="/config/cest/before/updateData/required-entity" xsi:type="string">createDataKey</item>
230231
<item name="/config/cest/after/updateData/required-entity" xsi:type="string">createDataKey</item>
232+
<item name="/config/cest/test/getData/required-entity" xsi:type="string">createDataKey</item>
233+
<item name="/config/cest/before/getData/required-entity" xsi:type="string">createDataKey</item>
234+
<item name="/config/cest/after/getData/required-entity" xsi:type="string">createDataKey</item>
231235
<item name="/config/cest/test/actionGroup/argument" xsi:type="string">name</item>
232236
</argument>
233237
<argument name="numericArrays" xsi:type="array">

src/Magento/FunctionalTestingFramework/DataGenerator/Objects/OperationDefinitionObject.php

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -195,10 +195,6 @@ public function getApiUrl()
195195
if (!$this->apiUrl) {
196196
$this->apiUrl = $this->apiUri;
197197

198-
if (array_key_exists('path', $this->params)) {
199-
$this->addPathParam();
200-
}
201-
202198
if (array_key_exists('query', $this->params)) {
203199
$this->addQueryParams();
204200
}
@@ -267,18 +263,6 @@ public function getReturnRegex()
267263
return $this->returnRegex;
268264
}
269265

270-
/**
271-
* Function to append path params where necessary
272-
*
273-
* @return void
274-
*/
275-
private function addPathParam()
276-
{
277-
foreach ($this->params['path'] as $paramName => $paramValue) {
278-
$this->apiUrl = $this->apiUrl . "/" . $paramValue;
279-
}
280-
}
281-
282266
/**
283267
* Function to append or add query parameters
284268
*

src/Magento/FunctionalTestingFramework/DataGenerator/Persist/DataPersistenceHandler.php

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ public function createEntity($storeCode = null)
7171
$result = $curlHandler->executeRequest($this->dependentObjects);
7272
$this->setCreatedObject(
7373
$result,
74+
null,
7475
$curlHandler->getRequestDataArray(),
7576
$curlHandler->isContentTypeJson()
7677
);
@@ -92,6 +93,30 @@ public function updateEntity($storeCode = null)
9293
$result = $curlHandler->executeRequest($this->dependentObjects);
9394
$this->setCreatedObject(
9495
$result,
96+
null,
97+
$curlHandler->getRequestDataArray(),
98+
$curlHandler->isContentTypeJson()
99+
);
100+
}
101+
102+
/**
103+
* Function which executes a get request on specific operation metadata.
104+
*
105+
* @param integer|null $index
106+
* @param string $storeCode
107+
* @return void
108+
*/
109+
110+
public function getEntity($index = null, $storeCode = null)
111+
{
112+
if (!empty($storeCode)) {
113+
$this->storeCode = $storeCode;
114+
}
115+
$curlHandler = new CurlHandler('get', $this->entityObject, $this->storeCode);
116+
$result = $curlHandler->executeRequest($this->dependentObjects);
117+
$this->setCreatedObject(
118+
$result,
119+
$index,
95120
$curlHandler->getRequestDataArray(),
96121
$curlHandler->isContentTypeJson()
97122
);
@@ -136,14 +161,23 @@ public function getCreatedDataByName($dataName)
136161
* Save the created data object.
137162
*
138163
* @param string|array $response
164+
* @param integer|null $index
139165
* @param array $requestDataArray
140166
* @param bool $isJson
141167
* @return void
142168
*/
143-
private function setCreatedObject($response, $requestDataArray, $isJson)
169+
private function setCreatedObject($response, $index, $requestDataArray, $isJson)
144170
{
145171
if ($isJson) {
146-
$persistedData = array_merge($requestDataArray, json_decode($response, true));
172+
$responseData = json_decode($response, true);
173+
if (is_array($responseData) && (null !== $index)) {
174+
$responseData = $responseData[$index];
175+
}
176+
if (is_array($responseData)) {
177+
$persistedData = array_merge($requestDataArray, $responseData);
178+
} else {
179+
$persistedData = $requestDataArray;
180+
}
147181
} else {
148182
$persistedData = array_merge(
149183
$this->convertToFlatArray($requestDataArray),

src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181
<xs:enumeration value="create" />
8282
<xs:enumeration value="delete" />
8383
<xs:enumeration value="update" />
84+
<xs:enumeration value="get" />
8485
</xs:restriction>
8586
</xs:simpleType>
8687
<xs:simpleType name="authEnum" final="restriction" >

src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494
<xs:element type="createDataType" name="createData" minOccurs="0" maxOccurs="unbounded"/>
9595
<xs:element type="updateDataType" name="updateData" minOccurs="0" maxOccurs="unbounded"/>
9696
<xs:element type="deleteDataType" name="deleteData" minOccurs="0" maxOccurs="unbounded"/>
97+
<xs:element type="getDataType" name="getData" minOccurs="0" maxOccurs="unbounded"/>
9798
<xs:element type="dontSeeType" name="dontSee" minOccurs="0" maxOccurs="unbounded"/>
9899
<xs:element type="dontSeeCheckboxIsCheckedType" name="dontSeeCheckboxIsChecked" minOccurs="0" maxOccurs="unbounded"/>
99100
<xs:element type="dontSeeCookieType" name="dontSeeCookie" minOccurs="0" maxOccurs="unbounded"/>
@@ -417,6 +418,18 @@
417418
</xs:extension>
418419
</xs:simpleContent>
419420
</xs:complexType>
421+
<xs:complexType name="getDataType">
422+
<xs:choice minOccurs="0" maxOccurs="unbounded">
423+
<xs:element type="requiredEntityType" name="required-entity" minOccurs="0" maxOccurs="unbounded"/>
424+
</xs:choice>
425+
<xs:attribute type="xs:string" name="entity" use="required"/>
426+
<xs:attribute type="xs:string" name="mergeKey" use="required"/>
427+
<xs:attribute type="xs:integer" name="index"/>
428+
<xs:attribute type="xs:boolean" name="remove" default="false"/>
429+
<xs:attribute type="xs:string" name="before"/>
430+
<xs:attribute type="xs:string" name="after"/>
431+
<xs:attribute type="xs:string" name="storeCode"/>
432+
</xs:complexType>
420433
<xs:complexType name="dontSeeType">
421434
<xs:simpleContent>
422435
<xs:extension base="xs:string">

0 commit comments

Comments
 (0)