UpdateFetcherTest.php in Drupal 8
File
core/modules/update/tests/src/Unit/UpdateFetcherTest.php
View source
<?php
namespace Drupal\Tests\update\Unit;
use Drupal\Tests\UnitTestCase;
use Drupal\update\UpdateFetcher;
class UpdateFetcherTest extends UnitTestCase {
protected $updateFetcher;
protected function setUp() {
$config_factory = $this
->getConfigFactoryStub([
'update.settings' => [
'fetch_url' => 'http://www.example.com',
],
]);
$http_client_mock = $this
->createMock('\\GuzzleHttp\\ClientInterface');
$this->updateFetcher = new UpdateFetcher($config_factory, $http_client_mock);
}
public function testUpdateBuildFetchUrl(array $project, $site_key, $expected) {
$url = $this->updateFetcher
->buildFetchUrl($project, $site_key);
$this
->assertEquals($url, $expected);
}
public function providerTestUpdateBuildFetchUrl() {
$data = [];
$project['name'] = 'update_test';
$project['project_type'] = '';
$project['info']['version'] = '';
$project['info']['project status url'] = 'http://www.example.com';
$project['includes'] = [
'module1' => 'Module 1',
'module2' => 'Module 2',
];
$site_key = '';
$expected = "http://www.example.com/{$project['name']}/current";
$data[] = [
$project,
$site_key,
$expected,
];
$site_key = 'site_key';
$project['project_type'] = 'disabled';
$expected = "http://www.example.com/{$project['name']}/current";
$data[] = [
$project,
$site_key,
$expected,
];
$project['project_type'] = '';
$expected = "http://www.example.com/{$project['name']}/current";
$expected .= '?site_key=site_key';
$expected .= '&list=' . rawurlencode('module1,module2');
$data[] = [
$project,
$site_key,
$expected,
];
$project['info']['project status url'] = 'http://www.example.com/?project=';
$expected = "http://www.example.com/?project=/{$project['name']}/current";
$expected .= '&site_key=site_key';
$expected .= '&list=' . rawurlencode('module1,module2');
$data[] = [
$project,
$site_key,
$expected,
];
return $data;
}
}