1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeaunamespace Facebook\WebDriver\Interactions; 4*04fd306cSNickeau 5*04fd306cSNickeauuse Facebook\WebDriver\WebDriverAction; 6*04fd306cSNickeau 7*04fd306cSNickeau/** 8*04fd306cSNickeau * An action for aggregating actions and triggering all of them afterwards. 9*04fd306cSNickeau */ 10*04fd306cSNickeauclass WebDriverCompositeAction implements WebDriverAction 11*04fd306cSNickeau{ 12*04fd306cSNickeau /** 13*04fd306cSNickeau * @var WebDriverAction[] 14*04fd306cSNickeau */ 15*04fd306cSNickeau private $actions = []; 16*04fd306cSNickeau 17*04fd306cSNickeau /** 18*04fd306cSNickeau * Add an WebDriverAction to the sequence. 19*04fd306cSNickeau * 20*04fd306cSNickeau * @param WebDriverAction $action 21*04fd306cSNickeau * @return WebDriverCompositeAction The current instance. 22*04fd306cSNickeau */ 23*04fd306cSNickeau public function addAction(WebDriverAction $action) 24*04fd306cSNickeau { 25*04fd306cSNickeau $this->actions[] = $action; 26*04fd306cSNickeau 27*04fd306cSNickeau return $this; 28*04fd306cSNickeau } 29*04fd306cSNickeau 30*04fd306cSNickeau /** 31*04fd306cSNickeau * Get the number of actions in the sequence. 32*04fd306cSNickeau * 33*04fd306cSNickeau * @return int The number of actions. 34*04fd306cSNickeau */ 35*04fd306cSNickeau public function getNumberOfActions() 36*04fd306cSNickeau { 37*04fd306cSNickeau return count($this->actions); 38*04fd306cSNickeau } 39*04fd306cSNickeau 40*04fd306cSNickeau /** 41*04fd306cSNickeau * Perform the sequence of actions. 42*04fd306cSNickeau */ 43*04fd306cSNickeau public function perform() 44*04fd306cSNickeau { 45*04fd306cSNickeau foreach ($this->actions as $action) { 46*04fd306cSNickeau $action->perform(); 47*04fd306cSNickeau } 48*04fd306cSNickeau } 49*04fd306cSNickeau} 50