module-webdriver icon indicating copy to clipboard operation
module-webdriver copied to clipboard

Default timeouts are set to zero, instead of 30 seconds

Open vl-lapikov opened this issue 5 years ago • 2 comments

Hey Guys,

Here https://codeception.com/docs/modules/WebDriver Codeception claims, that default timeouts (connection_timeout and request_timeout) are 30 seconds. Because of the bug, I think they are set to 0 now, which makes curl_exec() later to wait indefinitely.

Check this code https://github.com/Codeception/module-webdriver/blob/master/src/Codeception/Module/WebDriver.php#L362

$this->connectionTimeoutInMs = $this->config['connection_timeout'] * 1000;
$this->requestTimeoutInMs = $this->config['request_timeout'] * 1000;

by default both values are null, but multipling null * 1000 results in 0, not null. Later here https://github.com/php-webdriver/php-webdriver/blob/main/lib/Remote/RemoteWebDriver.php#L101 it is strictly compared with null, but since the value is 0 it passes the condition and sets timeout to 0 which makes curl to wait indefinitely.

vl-lapikov avatar Aug 05 '20 15:08 vl-lapikov

I think you are right. Can you make a test and a fix?

SamMousa avatar Aug 06 '20 05:08 SamMousa

Yeah, I'll work on it.

vl-lapikov avatar Aug 06 '20 11:08 vl-lapikov