Skip to content

Commit 90f3ff5

Browse files
committed
Merge branch 'MQE-741' into 2.0.3-develop
2 parents 9e16bac + 457ec7a commit 90f3ff5

File tree

13 files changed

+2169
-2029
lines changed

13 files changed

+2169
-2029
lines changed

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

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
<amOnSubdomain stepKey="aosd2" url="1"/>
1919
<amOnUrl stepKey="aou1" url="1"/>
2020
<amOnUrl stepKey="aou2" url="1"/>
21-
<appendField selector="1" stepKey="ap1"/>
22-
<appendField selector="1" stepKey="ap2"/>
21+
<appendField selector="1" stepKey="app1"/>
22+
<appendField selector="1" stepKey="app2"/>
2323
<attachFile selector="1" stepKey="atf1"/>
2424
<attachFile selector="1" stepKey="atf2"/>
2525
<cancelPopup stepKey="cp1"/>
@@ -168,8 +168,8 @@
168168
<seeInField stepKey="seeinfield12"/>
169169
<seeInFormFields selector="2" parameterArray="[2]" stepKey="seeinformfields1"/>
170170
<seeInFormFields selector="2" parameterArray="[2]" stepKey="seeinformfields12"/>
171-
<seeInPageSource html="1" stepKey="seeinsource1"/>
172-
<seeInPageSource html="1" stepKey="seeinsource12"/>
171+
<seeInPageSource html="1" stepKey="seeinpagesource1"/>
172+
<seeInPageSource html="1" stepKey="seeinpagesource12"/>
173173
<seeInPopup stepKey="seeinpopup1"/>
174174
<seeInPopup stepKey="seeinpopup12"/>
175175
<seeInSource html="1" stepKey="seeinsource1"/>
@@ -234,8 +234,8 @@
234234
<amOnSubdomain stepKey="aosd2" url="1"/>
235235
<amOnUrl stepKey="aou1" url="1"/>
236236
<amOnUrl stepKey="aou2" url="1"/>
237-
<appendField selector="1" stepKey="ap1"/>
238-
<appendField selector="1" stepKey="ap2"/>
237+
<appendField selector="1" stepKey="app1"/>
238+
<appendField selector="1" stepKey="app2"/>
239239
<attachFile selector="1" stepKey="atf1"/>
240240
<attachFile selector="1" stepKey="atf2"/>
241241
<cancelPopup stepKey="cp1"/>
@@ -384,8 +384,8 @@
384384
<seeInField stepKey="seeinfield12"/>
385385
<seeInFormFields selector="2" parameterArray="[1]" stepKey="seeinformfields1"/>
386386
<seeInFormFields selector="2" parameterArray="[1]" stepKey="seeinformfields12"/>
387-
<seeInPageSource html="1" stepKey="seeinsource1"/>
388-
<seeInPageSource html="1" stepKey="seeinsource12"/>
387+
<seeInPageSource html="1" stepKey="seeinpagesource1"/>
388+
<seeInPageSource html="1" stepKey="seeinpagesource12"/>
389389
<seeInPopup stepKey="seeinpopup1"/>
390390
<seeInPopup stepKey="seeinpopup12"/>
391391
<seeInSource html="1" stepKey="seeinsource1"/>
@@ -449,8 +449,8 @@
449449
<amOnSubdomain stepKey="aosd2" url="1"/>
450450
<amOnUrl stepKey="aou1" url="1"/>
451451
<amOnUrl stepKey="aou2" url="1"/>
452-
<appendField selector="1" stepKey="ap1"/>
453-
<appendField selector="1" stepKey="ap2"/>
452+
<appendField selector="1" stepKey="app1"/>
453+
<appendField selector="1" stepKey="app2"/>
454454
<attachFile selector="1" stepKey="atf1"/>
455455
<attachFile selector="1" stepKey="atf2"/>
456456
<cancelPopup stepKey="cp1"/>
@@ -599,8 +599,8 @@
599599
<seeInField stepKey="seeinfield12"/>
600600
<seeInFormFields selector="2" parameterArray="[1]" stepKey="seeinformfields1"/>
601601
<seeInFormFields selector="2" parameterArray="[1]" stepKey="seeinformfields12"/>
602-
<seeInPageSource html="1" stepKey="seeinsource1"/>
603-
<seeInPageSource html="1" stepKey="seeinsource12"/>
602+
<seeInPageSource html="1" stepKey="seeinpagesource1"/>
603+
<seeInPageSource html="1" stepKey="seeinpagesource12"/>
604604
<seeInPopup stepKey="seeinpopup1"/>
605605
<seeInPopup stepKey="seeinpopup12"/>
606606
<seeInSource html="1" stepKey="seeinsource1"/>

etc/di.xml

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,7 @@
153153
<argument name="schemaLocator" xsi:type="object">Magento\FunctionalTestingFramework\Config\SchemaLocator\DataProfile</argument>
154154
<argument name="idAttributes" xsi:type="array">
155155
<item name="/entities/entity" xsi:type="string">name</item>
156-
<item name="/entities/entity/data" xsi:type="string">key</item>
157-
<item name="/entities/entity/array" xsi:type="string">key</item>
156+
<item name="/entities/entity/(data|array)" xsi:type="string">key</item>
158157
<item name="/entities/entity/requiredEntity" xsi:type="string">name</item>
159158
</argument>
160159
<argument name="fileName" xsi:type="string">*Data.xml</argument>
@@ -186,9 +185,7 @@
186185
<argument name="schemaLocator" xsi:type="object">Magento\FunctionalTestingFramework\Config\SchemaLocator\Metadata</argument>
187186
<argument name="idAttributes" xsi:type="array">
188187
<item name="/operations/operation" xsi:type="string">name</item>
189-
<item name="/operations/operation/field" xsi:type="string">key</item>
190-
<item name="/operations/operation/array" xsi:type="string">key</item>
191-
<item name="/operations/operation/object" xsi:type="string">key</item>
188+
<item name="/operations/operation/(field|array|object)" xsi:type="string">key</item>
192189
</argument>
193190
<argument name="fileName" xsi:type="string">*-meta.xml</argument>
194191
<argument name="defaultScope" xsi:type="string">Metadata</argument>
@@ -199,23 +196,23 @@
199196

200197
<virtualType name="Magento\FunctionalTestingFramework\Config\SchemaLocator\TestData" type="Magento\FunctionalTestingFramework\Config\SchemaLocator">
201198
<arguments>
202-
<argument name="schemaPath" xsi:type="string">Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd</argument>
199+
<argument name="schemaPath" xsi:type="string">Magento/FunctionalTestingFramework/Test/etc/mergedTestSchema.xsd</argument>
203200
</arguments>
204201
</virtualType>
205-
<virtualType name="Magento\FunctionalTestingFramework\Config\Reader\TestData" type="Magento\FunctionalTestingFramework\Config\Reader\TestFilesystem">
202+
<virtualType name="Magento\FunctionalTestingFramework\Config\Reader\TestData" type="Magento\FunctionalTestingFramework\Test\Config\Reader\Filesystem">
206203
<arguments>
207204
<argument name="fileResolver" xsi:type="object">Magento\FunctionalTestingFramework\Config\FileResolver\Module</argument>
208205
<argument name="converter" xsi:type="object">Magento\FunctionalTestingFramework\Config\TestDataConverter</argument>
209206
<argument name="schemaLocator" xsi:type="object">Magento\FunctionalTestingFramework\Config\SchemaLocator\TestData</argument>
207+
<argument name="domDocumentClass" xsi:type="string">Magento\FunctionalTestingFramework\Test\Config\Dom</argument>
210208
<argument name="idAttributes" xsi:type="array">
211209
<item name="/tests/test" xsi:type="string">name</item>
210+
<item name="/tests/test/remove" xsi:type="string">keyForRemoval</item>
211+
<item name="/tests/test/(actionGroup|&commonTestActions;)" xsi:type="string">stepKey</item>
212212
<item name="/tests/test/actionGroup/argument" xsi:type="string">name</item>
213213
<item name="/tests/test/(createData|updateData|getData)/requiredEntity" xsi:type="string">createDataKey</item>
214-
<item name="/tests/test/(actionGroup|&commonTestActions;)" xsi:type="string">stepKey</item>
215-
<item name="/tests/test/(before|after)/(actionGroup|&commonTestActions;)" xsi:type="string">stepKey</item>
216-
<item name="/tests/test/remove" xsi:type="string">keyForRemoval</item>
217-
<item name="/tests/test/(before|after)/remove" xsi:type="string">keyForRemoval</item>
218214
<item name="/tests/test/(before|after)/(createData|updateData|getData)/requiredEntity" xsi:type="string">createDataKey</item>
215+
<item name="/tests/test/(before|after)/remove" xsi:type="string">keyForRemoval</item>
219216
<item name="/tests/test/annotations(/group)+" xsi:type="string">value</item>
220217
</argument>
221218
<argument name="fileName" xsi:type="string">*.xml</argument>
@@ -226,15 +223,14 @@
226223
<virtualType name="Magento\FunctionalTestingFramework\Test\Config\Dom\ArrayNodeConfig" type="Magento\FunctionalTestingFramework\Config\Dom\ArrayNodeConfig">
227224
<arguments>
228225
<argument name="assocArrayAttributes" xsi:type="array">
226+
<item name="/tests/test" xsi:type="string">name</item>
227+
<item name="/tests/test/remove" xsi:type="string">keyForRemoval</item>
228+
<item name="/tests/test/actionGroup/argument" xsi:type="string">name</item>
229229
<item name="/tests/test/(actionGroup|&commonTestActions;)" xsi:type="string">stepKey</item>
230230
<item name="/tests/test/(before|after)/(actionGroup|&commonTestActions;)" xsi:type="string">stepKey</item>
231-
<item name="/tests/test/remove" xsi:type="string">keyForRemoval</item>
232231
<item name="/tests/test/(before|after)/remove" xsi:type="string">keyForRemoval</item>
233-
<item name="/tests/test" xsi:type="string">name</item>
234232
<item name="/tests/test/(createData|updateData|getData)/requiredEntity" xsi:type="string">createDataKey</item>
235233
<item name="/tests/test/(before|after)/(createData|updateData|getData)/requiredEntity" xsi:type="string">createDataKey</item>
236-
<item name="/tests/test/actionGroup/argument" xsi:type="string">name</item>
237-
<item name="/tests/test/(before|after)/actionGroup/argument" xsi:type="string">name</item>
238234
</argument>
239235
<argument name="numericArrays" xsi:type="array">
240236
<item name="/tests/test/annotations/features" xsi:type="string">/tests/test/annotations/features</item>
@@ -272,7 +268,7 @@
272268

273269
<virtualType name="Magento\FunctionalTestingFramework\Config\SchemaLocator\ActionGroup" type="Magento\FunctionalTestingFramework\Config\SchemaLocator">
274270
<arguments>
275-
<argument name="schemaPath" xsi:type="string">Magento/FunctionalTestingFramework/Test/etc/actionGroup.xsd</argument>
271+
<argument name="schemaPath" xsi:type="string">Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd</argument>
276272
</arguments>
277273
</virtualType>
278274

@@ -346,12 +342,8 @@
346342
<argument name="schemaLocator" xsi:type="object">Magento\FunctionalTestingFramework\Config\SchemaLocator\SuiteData</argument>
347343
<argument name="idAttributes" xsi:type="array">
348344
<item name="/suites/suite" xsi:type="string">name</item>
349-
<item name="/suites/suite/include/group" xsi:type="string">name</item>
350-
<item name="/suites/suite/include/test" xsi:type="string">name</item>
351-
<item name="/suites/suite/include/module" xsi:type="string">name</item>
352-
<item name="/suites/suite/exclude/group" xsi:type="string">name</item>
353-
<item name="/suites/suite/exclude/test" xsi:type="string">name</item>
354-
<item name="/suites/suite/exclude/module" xsi:type="string">name</item>
345+
<item name="/suites/suite/include/(group|test|module)" xsi:type="string">name</item>
346+
<item name="/suites/suite/exclude/(group|test|module)" xsi:type="string">name</item>
355347
</argument>
356348
<argument name="fileName" xsi:type="string">*.xml</argument>
357349
<argument name="defaultScope" xsi:type="string">_suite</argument>
@@ -364,12 +356,8 @@
364356
<item name="/suites/suite" xsi:type="string">name</item>
365357
<item name="/suites/suite/(before|after)/(createData|deleteData)" xsi:type="string">stepKey</item>
366358
<item name="/suites/suite/(before|after)/createData/requiredEntity" xsi:type="string">createDataKey</item>
367-
<item name="/suites/suite/include/group" xsi:type="string">name</item>
368-
<item name="/suites/suite/include/test" xsi:type="string">name</item>
369-
<item name="/suites/suite/include/module" xsi:type="string">name</item>
370-
<item name="/suites/suite/exclude/group" xsi:type="string">name</item>
371-
<item name="/suites/suite/exclude/test" xsi:type="string">name</item>
372-
<item name="/suites/suite/exclude/module" xsi:type="string">name</item>
359+
<item name="/suites/suite/include/(group|test|module)" xsi:type="string">name</item>
360+
<item name="/suites/suite/exclude/(group|test|module)" xsi:type="string">name</item>
373361
</argument>
374362
</arguments>
375363
</virtualType>

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

Lines changed: 0 additions & 76 deletions
This file was deleted.

src/Magento/FunctionalTestingFramework/Config/FileResolverInterface.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ interface FileResolverInterface
1515
*
1616
* @param string $filename
1717
* @param string $scope
18-
* @return array
18+
* @return array|\Magento\FunctionalTestingFramework\Util\Iterator\File
1919
*/
2020
public function get($filename, $scope);
2121
}

src/Magento/FunctionalTestingFramework/Config/Reader/Filesystem.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public function read($scope = null)
135135
/**
136136
* Read configuration files
137137
*
138-
* @param array $fileList
138+
* @param \Magento\FunctionalTestingFramework\Util\Iterator\File $fileList
139139
* @return array
140140
* @throws \Exception
141141
*/
@@ -151,7 +151,7 @@ protected function readFiles($fileList)
151151
$configMerger->merge($content);
152152
}
153153
} catch (\Magento\FunctionalTestingFramework\Config\Dom\ValidationException $e) {
154-
throw new \Exception("Invalid XML in file " . $key . ":\n" . $e->getMessage());
154+
throw new \Exception("Invalid XML in file " . $fileList->getFilename() . ":\n" . $e->getMessage());
155155
}
156156
}
157157
if ($this->validationState->isValidationRequired()) {

src/Magento/FunctionalTestingFramework/Config/SchemaLocator.php

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,44 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
67
namespace Magento\FunctionalTestingFramework\Config;
78

89
/**
9-
* Class SchemaLocator
10-
* Scenario configuration schema locator
10+
* Configuration schema locator.
1111
*/
1212
class SchemaLocator implements \Magento\FunctionalTestingFramework\Config\SchemaLocatorInterface
1313
{
1414
/**
15-
* XSD schema path
15+
* Path to corresponding XSD file with validation rules for merged config.
16+
*
17+
* @var string
18+
*/
19+
private $schemaPath;
20+
21+
/**
22+
* Path to corresponding XSD file with validation rules for separate config files.
1623
*
1724
* @var string
1825
*/
19-
protected $schemaPath;
26+
private $perFileSchema;
2027

2128
/**
2229
* Class constructor
2330
*
2431
* @param string $schemaPath
32+
* @param string|null $perFileSchema
2533
*/
26-
public function __construct($schemaPath)
34+
public function __construct($schemaPath, $perFileSchema = null)
2735
{
2836
if (constant('FW_BP') && file_exists(FW_BP . DIRECTORY_SEPARATOR . $schemaPath)) {
29-
$this->schemaPath = FW_BP . DIRECTORY_SEPARATOR . $schemaPath;
37+
$this->schemaPath = FW_BP . DIRECTORY_SEPARATOR . $schemaPath;
38+
$this->perFileSchema = $perFileSchema === null ? null : FW_BP . DIRECTORY_SEPARATOR . $perFileSchema;
3039
} else {
3140
$path = dirname(dirname(dirname(__DIR__)));
3241
$path = str_replace('\\', DIRECTORY_SEPARATOR, $path);
33-
$this->schemaPath = $path . DIRECTORY_SEPARATOR . $schemaPath;
42+
$this->schemaPath = $path . DIRECTORY_SEPARATOR . $schemaPath;
43+
$this->perFileSchema = $perFileSchema === null ? null : $path . DIRECTORY_SEPARATOR . $perFileSchema;
3444
}
3545
}
3646

@@ -51,6 +61,6 @@ public function getSchema()
5161
*/
5262
public function getPerFileSchema()
5363
{
54-
return null;
64+
return $this->perFileSchema;
5565
}
5666
}

src/Magento/FunctionalTestingFramework/Config/ValidationState.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ public function __construct($appMode)
3737
*/
3838
public function isValidationRequired()
3939
{
40-
//return $this->appMode == 'developer'; // @todo
41-
return false;
40+
return $this->appMode == 'developer'; // @todo
4241
}
4342
}

0 commit comments

Comments
 (0)