22
33namespace Behat \Mink \Tests \Driver ;
44
5+ use Behat \Mink \Element \NodeElement ;
6+
57class CoreDriverTest extends \PHPUnit_Framework_TestCase
68{
79 public function testNoExtraMethods ()
@@ -17,6 +19,34 @@ public function testNoExtraMethods()
1719 }
1820 }
1921
22+ public function testCreateNodeElements ()
23+ {
24+ $ driver = $ this ->getMockBuilder ('Behat\Mink\Driver\CoreDriver ' )
25+ ->setMethods (array ('findElementXpaths ' ))
26+ ->getMockForAbstractClass ();
27+
28+ $ session = $ this ->getMockBuilder ('Behat\Mink\Session ' )
29+ ->disableOriginalConstructor ()
30+ ->getMock ();
31+
32+ $ driver ->setSession ($ session );
33+
34+ $ driver ->expects ($ this ->once ())
35+ ->method ('findElementXpaths ' )
36+ ->with ('xpath ' )
37+ ->willReturn (array ('xpath1 ' , 'xpath2 ' ));
38+
39+ /** @var NodeElement[] $elements */
40+ $ elements = $ driver ->find ('xpath ' );
41+
42+ $ this ->assertInternalType ('array ' , $ elements );
43+ $ this ->assertCount (2 , $ elements );
44+ $ this ->assertContainsOnlyInstancesOf ('Behat\Mink\Element\NodeElement ' , $ elements );
45+
46+ $ this ->assertSame ('xpath1 ' , $ elements [0 ]->getXpath ());
47+ $ this ->assertSame ('xpath2 ' , $ elements [1 ]->getXpath ());
48+ }
49+
2050 /**
2151 * @dataProvider getDriverInterfaceMethods
2252 */
@@ -29,6 +59,10 @@ public function testInterfaceMethods(\ReflectionMethod $method)
2959 sprintf ('CoreDriver should implement a dummy %s method ' , $ method ->getName ())
3060 );
3161
62+ if ('setSession ' === $ method ->getName ()) {
63+ return ; // setSession is actually implemented, so we don't expect an exception here.
64+ }
65+
3266 $ driver = $ this ->getMockForAbstractClass ('Behat\Mink\Driver\CoreDriver ' );
3367
3468 $ this ->setExpectedException ('Behat\Mink\Exception\UnsupportedDriverActionException ' );
0 commit comments