@@ -77,21 +77,37 @@ public function addTestMethods($class_name)
7777 * @param SessionStrategyManager $session_strategy_manager Session strategy manager.
7878 * @param IBrowserConfigurationFactory $browser_configuration_factory Browser configuration factory.
7979 * @param RemoteCoverageHelper $remote_coverage_helper Remote coverage helper.
80+ * @param array $tests Tests to process.
8081 *
8182 * @return self
8283 */
8384 public function setTestDependencies (
8485 SessionStrategyManager $ session_strategy_manager ,
8586 IBrowserConfigurationFactory $ browser_configuration_factory ,
86- RemoteCoverageHelper $ remote_coverage_helper
87+ RemoteCoverageHelper $ remote_coverage_helper ,
88+ array $ tests = null
8789 )
8890 {
89- /* @var $test BrowserTestCase */
90- foreach ( $ this ->tests () as $ test ) {
91- $ test ->setEventDispatcher ($ this ->_eventDispatcher );
92- $ test ->setSessionStrategyManager ($ session_strategy_manager );
93- $ test ->setBrowserConfigurationFactory ($ browser_configuration_factory );
94- $ test ->setRemoteCoverageHelper ($ remote_coverage_helper );
91+ if ( !isset ($ tests ) ) {
92+ $ tests = $ this ->tests ();
93+ }
94+
95+ foreach ( $ tests as $ test ) {
96+ if ( $ test instanceof \PHPUnit_Framework_TestSuite_DataProvider ) {
97+ $ this ->setTestDependencies (
98+ $ session_strategy_manager ,
99+ $ browser_configuration_factory ,
100+ $ remote_coverage_helper ,
101+ $ test ->tests ()
102+ );
103+ }
104+ else {
105+ /** @var BrowserTestCase $test */
106+ $ test ->setEventDispatcher ($ this ->_eventDispatcher );
107+ $ test ->setSessionStrategyManager ($ session_strategy_manager );
108+ $ test ->setBrowserConfigurationFactory ($ browser_configuration_factory );
109+ $ test ->setRemoteCoverageHelper ($ remote_coverage_helper );
110+ }
95111 }
96112
97113 return $ this ;
@@ -100,14 +116,24 @@ public function setTestDependencies(
100116 /**
101117 * Report back suite ending to each it's test.
102118 *
119+ * @param array $tests Tests to process.
120+ *
103121 * @return void
104122 */
105- protected function tearDown ()
123+ protected function tearDown (array $ tests = null )
106124 {
107- /* @var $test BrowserTestCase */
125+ if ( !isset ($ tests ) ) {
126+ $ tests = $ this ->tests ();
127+ }
108128
109- foreach ( $ this ->tests () as $ test ) {
110- $ test ->onTestSuiteEnded ();
129+ foreach ( $ tests as $ test ) {
130+ if ( $ test instanceof \PHPUnit_Framework_TestSuite_DataProvider ) {
131+ $ this ->tearDown ($ test ->tests ());
132+ }
133+ else {
134+ /* @var $test BrowserTestCase */
135+ $ test ->onTestSuiteEnded ();
136+ }
111137 }
112138 }
113139
0 commit comments