From cc944df7edfa84aff5e685cc60bed269e25858df Mon Sep 17 00:00:00 2001 From: Kevin Kozan Date: Fri, 21 Sep 2018 14:36:47 -0500 Subject: [PATCH] MQE-1222: Selector Fails To Resolve Correctly in Action Group - Added support for passing in data into arguments as `{{mydata.value}}` - verification udpate for the above. --- ...tionGroupWithSectionAndDataAsArguments.txt | 32 +++++++++++++++++++ .../ActionGroup/BasicActionGroup.xml | 8 +++++ .../TestModule/Test/ActionGroupTest.xml | 7 ++++ .../Tests/ActionGroupGenerationTest.php | 11 +++++++ .../Test/Objects/ArgumentObject.php | 9 ++++-- 5 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 dev/tests/verification/Resources/ActionGroupWithSectionAndDataAsArguments.txt diff --git a/dev/tests/verification/Resources/ActionGroupWithSectionAndDataAsArguments.txt b/dev/tests/verification/Resources/ActionGroupWithSectionAndDataAsArguments.txt new file mode 100644 index 000000000..18881c269 --- /dev/null +++ b/dev/tests/verification/Resources/ActionGroupWithSectionAndDataAsArguments.txt @@ -0,0 +1,32 @@ +waitForElementVisible("#element .John"); + } +} diff --git a/dev/tests/verification/TestModule/ActionGroup/BasicActionGroup.xml b/dev/tests/verification/TestModule/ActionGroup/BasicActionGroup.xml index 75ac71ef2..245447f7d 100644 --- a/dev/tests/verification/TestModule/ActionGroup/BasicActionGroup.xml +++ b/dev/tests/verification/TestModule/ActionGroup/BasicActionGroup.xml @@ -118,4 +118,12 @@ + + + + + + + + diff --git a/dev/tests/verification/TestModule/Test/ActionGroupTest.xml b/dev/tests/verification/TestModule/Test/ActionGroupTest.xml index 848fe8bcc..ee5572605 100644 --- a/dev/tests/verification/TestModule/Test/ActionGroupTest.xml +++ b/dev/tests/verification/TestModule/Test/ActionGroupTest.xml @@ -158,4 +158,11 @@ + + + + + + + diff --git a/dev/tests/verification/Tests/ActionGroupGenerationTest.php b/dev/tests/verification/Tests/ActionGroupGenerationTest.php index 65d65d04d..ecb014d18 100644 --- a/dev/tests/verification/Tests/ActionGroupGenerationTest.php +++ b/dev/tests/verification/Tests/ActionGroupGenerationTest.php @@ -195,4 +195,15 @@ public function testActionGroupWithSkipReadiness() { $this->generateAndCompareTest('ActionGroupSkipReadiness'); } + + /** + * Test an action group with an arg containing stepKey text + * + * @throws \Exception + * @throws \Magento\FunctionalTestingFramework\Exceptions\TestReferenceException + */ + public function testActionGroupWithSectionAndDataArguments() + { + $this->generateAndCompareTest('ActionGroupWithSectionAndDataAsArguments'); + } } diff --git a/src/Magento/FunctionalTestingFramework/Test/Objects/ArgumentObject.php b/src/Magento/FunctionalTestingFramework/Test/Objects/ArgumentObject.php index c829e66b3..d553993e0 100644 --- a/src/Magento/FunctionalTestingFramework/Test/Objects/ArgumentObject.php +++ b/src/Magento/FunctionalTestingFramework/Test/Objects/ArgumentObject.php @@ -104,8 +104,8 @@ public function getResolvedValue($isInnerArgument) * Takes in boolean to determine if the replacement is being done with an inner argument (as in if it's a parameter) * * Example Type Non Inner Inner - * {{XML.DATA}}: {{XML.DATA}} XML.DATA - * $TEST.DATA$: $TEST.DATA$ $TEST.DATA$ + * {{XML.DATA}} {{XML.DATA}} XML.DATA + * $TEST.DATA$ $TEST.DATA$ $TEST.DATA$ * stringLiteral stringLiteral 'stringLiteral' * * @param boolean $isInnerArgument @@ -114,6 +114,11 @@ public function getResolvedValue($isInnerArgument) private function resolveStringArgument($isInnerArgument) { if ($isInnerArgument) { + if (preg_match('/{{[\w.\[\]]+}}/', $this->value)) { + return ltrim(rtrim($this->value, "}"), "{"); + } elseif (preg_match('/\${1,2}[\w.\[\]]+\${1,2}/', $this->value)) { + return $this->value; + } return "'" . $this->value . "'"; } else { return $this->value;