original_string: protected function createUrl($coverage_script_url, $test_id)
  	{
  		if ( !$coverage_script_url || !$test_id ) {
  			throw new \InvalidArgumentException('Both Coverage script URL and Test ID must be filled in');
  		}
  
  		$query_string = array(
  			'rct_mode' => 'output',
  			RemoteCoverageTool::TEST_ID_VARIABLE => $test_id,
  		);
  
  		$url = $coverage_script_url;
  		$url .= strpos($url, '?') === false ? '?' : '&';
  		$url .= http_build_query($query_string);
  
  		return $url;
  	}
code: protected function createUrl($coverage_script_url, $test_id)
  	{
  		if ( !$coverage_script_url || !$test_id ) {
  			throw new \InvalidArgumentException('Both Coverage script URL and Test ID must be filled in');
  		}
  
  		$query_string = array(
  			'rct_mode' => 'output',
  			RemoteCoverageTool::TEST_ID_VARIABLE => $test_id,
  		);
  
  		$url = $coverage_script_url;
  		$url .= strpos($url, '?') === false ? '?' : '&';
  		$url .= http_build_query($query_string);
  
  		return $url;
  	}
code_tokens: protected function createUrl ( $ coverage_script_url , $ test_id ) { if ( ! $ coverage_script_url || ! $ test_id ) { throw new \ InvalidArgumentException ( 'Both Coverage script URL and Test ID must be filled in' ) ; } $ query_string = array ( 'rct_mode' => 'output' , RemoteCoverageTool :: TEST_ID_VARIABLE => $ test_id , ) ; $ url = $ coverage_script_url ; $ url .= strpos ( $ url , '?' ) === false ? '?' : '&' ; $ url .= http_build_query ( $ query_string ) ; return $ url ; }
docstring: Returns url for remote code coverage collection.
  
  @param string $coverage_script_url Coverage script irl.
  @param string $test_id             Test ID.
  
  @return string
  @throws \InvalidArgumentException When empty coverage script url given.
docstring_tokens: Returns url for remote code coverage collection .