@@ -45,33 +45,34 @@ protected function methods()
4545 * New Session: /session (POST)
4646 * Get session object for chaining
4747 *
48- * @param mixed $requiredCapabilities Required capabilities (or browser name)
49- * @param array $desiredCapabilities Desired capabilities
48+ * @param array|string $requiredCapabilities Required capabilities (or browser name)
49+ * @param array $desiredCapabilities Desired capabilities
5050 *
5151 * @return \WebDriver\Session
5252 */
5353 public function session ($ requiredCapabilities = Browser::FIREFOX , $ desiredCapabilities = array ())
5454 {
55- if (!is_array ($ desiredCapabilities )) {
56- $ desiredCapabilities = array ();
55+ // for backwards compatibility when the only required capability was browser name
56+ if (! is_array ($ requiredCapabilities )) {
57+ $ desiredCapabilities [Capability::BROWSER_NAME ] = $ requiredCapabilities ?: Browser::FIREFOX ;
58+
59+ $ requiredCapabilities = array ();
5760 }
5861
59- if (!is_array ($ requiredCapabilities )) {
60- $ desiredCapabilities = array_merge (
61- $ desiredCapabilities ,
62- array (Capability::BROWSER_NAME => $ requiredCapabilities )
63- );
62+ // required
63+ $ parameters = array (
64+ 'desiredCapabilities ' => array_merge ($ desiredCapabilities , $ requiredCapabilities )
65+ );
6466
65- $ requiredCapabilities = array ();
67+ // optional
68+ if ( ! empty ($ requiredCapabilities )) {
69+ $ parameters ['requiredCapabilities ' ] = $ requiredCapabilities ;
6670 }
6771
6872 $ results = $ this ->curl (
6973 'POST ' ,
7074 '/session ' ,
71- array (
72- 'desiredCapabilities ' => $ desiredCapabilities ,
73- 'requiredCapabilities ' => $ requiredCapabilities ,
74- ),
75+ $ parameters ,
7576 array (CURLOPT_FOLLOWLOCATION => true )
7677 );
7778
0 commit comments