@@ -76,9 +76,6 @@ class ActionObject
76
76
const ACTION_ATTRIBUTE_USERINPUT = 'userInput ' ;
77
77
const ACTION_TYPE_COMMENT = 'comment ' ;
78
78
const INVISIBLE_STEP_ACTIONS = ['retrieveEntityField ' , 'getSecret ' ];
79
- const REGEX_SINGLE_GROUP = '[\w]+ ' ;
80
- const REGEX_WITH_INDEX = '[\w]+\.[\w\[\]]+ ' ;
81
- const REGEX_WITH_PARAM = '[\w]+\.[\w]+\((?(?!}}).)+\) ' ;
82
79
83
80
/**
84
81
* The unique identifier for the action
@@ -418,14 +415,6 @@ private function resolveUrlReference()
418
415
$ url = $ this ->actionAttributes [ActionObject::ACTION_ATTRIBUTE_URL ];
419
416
420
417
$ replacement = $ this ->findAndReplaceReferences (PageObjectHandler::getInstance (), $ url );
421
-
422
- $ missingReferences = $ this ->getMissingReferences ($ replacement );
423
- if (!empty ($ missingReferences )) {
424
- throw new TestReferenceException (
425
- sprintf ('Can not resolve replacements: "%s" ' , implode ('", " ' , $ missingReferences ))
426
- );
427
- }
428
-
429
418
if ($ replacement ) {
430
419
$ this ->resolvedCustomAttributes [ActionObject::ACTION_ATTRIBUTE_URL ] = $ replacement ;
431
420
$ allPages = PageObjectHandler::getInstance ()->getAllObjects ();
@@ -439,27 +428,6 @@ private function resolveUrlReference()
439
428
}
440
429
}
441
430
442
- /**
443
- * Returns array of missing references
444
- *
445
- * @param string $replacement
446
- * @return array
447
- */
448
- private function getMissingReferences ($ replacement ): array
449
- {
450
- $ matchPatterns = [
451
- self ::REGEX_SINGLE_GROUP ,
452
- self ::REGEX_WITH_INDEX ,
453
- self ::REGEX_WITH_PARAM
454
- ];
455
-
456
- preg_match_all ($ this ->getMustachePattern ($ matchPatterns ), $ replacement , $ matches );
457
-
458
- return array_filter ($ matches [1 ], function ($ match ) {
459
- return !empty ($ match ) && false === strpos ($ match , '_ENV. ' );
460
- });
461
- }
462
-
463
431
/**
464
432
* Look up the value for EntityDataObjectName.Key and set it as the corresponding attribute in the resolved custom
465
433
* attributes.
@@ -553,12 +521,10 @@ private function stripAndReturnParameters($reference)
553
521
*/
554
522
private function findAndReplaceReferences ($ objectHandler , $ inputString )
555
523
{
556
- $ matchPatterns = [
557
- self ::REGEX_WITH_INDEX ,
558
- self ::REGEX_WITH_PARAM
559
- ];
524
+ //look for parameter area, if so use different regex
525
+ $ regex = ActionObject::ACTION_ATTRIBUTE_VARIABLE_REGEX_PATTERN ;
560
526
561
- preg_match_all ($ this -> getMustachePattern ( $ matchPatterns ) , $ inputString , $ matches );
527
+ preg_match_all ($ regex , $ inputString , $ matches );
562
528
563
529
$ outputString = $ inputString ;
564
530
@@ -756,11 +722,7 @@ private function resolveParameterization($isParameterized, $replacement, $match,
756
722
*/
757
723
private function matchParameterReferences ($ reference , $ parameters )
758
724
{
759
- $ matchPatterns = [
760
- self ::REGEX_SINGLE_GROUP
761
- ];
762
-
763
- preg_match_all ($ this ->getMustachePattern ($ matchPatterns ), $ reference , $ varMatches );
725
+ preg_match_all ('/{{[\w.]+}}/ ' , $ reference , $ varMatches );
764
726
$ varMatches [0 ] = array_unique ($ varMatches [0 ]);
765
727
$ this ->checkParameterCount ($ varMatches [0 ], $ parameters , $ reference );
766
728
@@ -831,17 +793,6 @@ private function checkParameterCount($matches, $parameters, $reference)
831
793
}
832
794
}
833
795
834
- /**
835
- * Returns Mustache regex pattern
836
- *
837
- * @param array|null $patterns
838
- * @return string
839
- */
840
- private function getMustachePattern (array $ patterns = []): string
841
- {
842
- return '/({{ ' .implode ('}})|({{ ' , $ patterns ).'}})/ ' ;
843
- }
844
-
845
796
/**
846
797
* Returns array of deprecated usages in Action.
847
798
*
0 commit comments