diff --git a/dev/tests/verification/Resources/ExecuteJsEscapingTest.txt b/dev/tests/verification/Resources/ExecuteJsEscapingTest.txt new file mode 100644 index 000000000..94dc2cbdb --- /dev/null +++ b/dev/tests/verification/Resources/ExecuteJsEscapingTest.txt @@ -0,0 +1,35 @@ +executeJS("return \$javascriptVariable"); + $mftfVariableNotEscaped = $I->executeJS("return {$doNotEscape}"); + } +} diff --git a/dev/tests/verification/TestModule/Test/ExecuteJsTest.xml b/dev/tests/verification/TestModule/Test/ExecuteJsTest.xml new file mode 100644 index 000000000..2429fa484 --- /dev/null +++ b/dev/tests/verification/TestModule/Test/ExecuteJsTest.xml @@ -0,0 +1,15 @@ + + + + + + + + + diff --git a/dev/tests/verification/Tests/ExecuteJsTest.php b/dev/tests/verification/Tests/ExecuteJsTest.php new file mode 100644 index 000000000..67a5f3c6f --- /dev/null +++ b/dev/tests/verification/Tests/ExecuteJsTest.php @@ -0,0 +1,22 @@ + \$javascriptVariable in the executeJs function + * + * @throws \Exception + * @throws \Magento\FunctionalTestingFramework\Exceptions\TestReferenceException + */ + public function testExecuteJsTest() + { + $this->generateAndCompareTest('ExecuteJsEscapingTest'); + } +} diff --git a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php index 5c2b18d1f..3929bf041 100644 --- a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php +++ b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php @@ -618,6 +618,10 @@ public function generateStepsPhp($actionObjects, $hookObject = false, $actor = " // Argument must be a closure function, not a string. $function = trim($function, '"'); } + // turn $javaVariable => \$javaVariable but not {$mftfVariable} + if ($actionObject->getType() == "executeJS") { + $function = preg_replace('/(?