Solr36TestConnector.php in Search API Solr 4.x
File
modules/search_api_solr_legacy/tests/modules/search_api_solr_legacy_test/src/Plugin/SolrConnector/Solr36TestConnector.php
View source
<?php
namespace Drupal\search_api_solr_legacy_test\Plugin\SolrConnector;
use Drupal\search_api_solr\Utility\Utility;
use Drupal\search_api_solr_legacy\Plugin\SolrConnector\Solr36Connector;
use Solarium\Core\Client\Endpoint;
use Solarium\Core\Client\Request;
use Solarium\Core\Client\Response;
use Solarium\Core\Query\QueryInterface;
use Solarium\Core\Query\Result\Result;
class Solr36TestConnector extends Solr36Connector {
protected static $query;
protected static $request;
protected $intercept = FALSE;
public function execute(QueryInterface $query, Endpoint $endpoint = NULL) {
self::$query = $query;
if ($this->intercept) {
return new Result($query, new Response(''));
}
return parent::execute($query, $endpoint);
}
public function executeRequest(Request $request, Endpoint $endpoint = NULL) {
self::$request = $request;
if ($this->intercept) {
return new Response('');
}
return parent::executeRequest($request, $endpoint);
}
public function getQuery() {
return self::$query;
}
public function getRequest() {
return self::$request;
}
public function getRequestParams() {
return Utility::parseRequestParams(self::$request);
}
public function setIntercept(bool $intercept) {
$this->intercept = $intercept;
}
public static function adjustBackendConfig($config_name) {
$config_factory = \Drupal::configFactory();
$config = $config_factory
->getEditable($config_name);
$backend_config = $config
->get('backend_config');
unset($backend_config['connector_config']['username']);
unset($backend_config['connector_config']['password']);
$config
->set('backend_config', [
'connector' => 'solr_36_test',
'connector_config' => [
'scheme' => 'http',
'host' => 'localhost',
'port' => 8983,
'path' => '/',
'core' => '.',
] + $backend_config['connector_config'],
] + $backend_config)
->save(TRUE);
$search_api_server_storage = \Drupal::entityTypeManager()
->getStorage('search_api_server');
$search_api_server_storage
->resetCache();
$search_api_index_storage = \Drupal::entityTypeManager()
->getStorage('search_api_index');
$search_api_index_storage
->resetCache();
}
}