3 namespace Drupal\Tests\Core\Http;
5 use Drupal\Core\Http\ClientFactory;
6 use Drupal\Core\Site\Settings;
7 use Drupal\Tests\UnitTestCase;
10 * @coversDefaultClass \Drupal\Core\Http\ClientFactory
13 class ClientFactoryTest extends UnitTestCase {
16 * The client factory under test.
18 * @var \Drupal\Core\Http\ClientFactory
25 protected function setUp() {
26 $stack = $this->getMockBuilder('GuzzleHttp\HandlerStack')
27 ->disableOriginalConstructor()
29 $this->factory = new ClientFactory($stack);
33 * @covers ::fromOptions
34 * @dataProvider providerTestCreateFromOptions
36 * @param array $settings_config
37 * @param array $parameter_config
38 * @param array $expected_config_keys
40 public function testCreateFromOptions($settings_config, $parameter_config, $expected_config_keys) {
41 if ($settings_config) {
42 new Settings(['http_client_config' => $settings_config]);
48 $client = $this->factory->fromOptions($parameter_config);
50 foreach ($expected_config_keys as $key => $expected) {
51 $this->assertSame($expected, $client->getConfig($key));
56 * Data provider for testCreateFromOptions
60 public function providerTestCreateFromOptions() {
62 [[], [], ['verify' => TRUE, 'timeout' => 30]],
63 [['timeout' => 40], [], ['verify' => TRUE, 'timeout' => 40]],
64 [[], ['timeout' => 50], ['verify' => TRUE, 'timeout' => 50]],
65 [['timeout' => 40], ['timeout' => 50], ['verify' => TRUE, 'timeout' => 50]],