mirror of
https://github.com/Codappix/search_core.git
synced 2024-11-22 21:16:11 +01:00
commit
18325559ae
7 changed files with 43 additions and 35 deletions
|
@ -126,9 +126,7 @@ class SearchService
|
||||||
|
|
||||||
ArrayUtility::mergeRecursiveWithOverrule(
|
ArrayUtility::mergeRecursiveWithOverrule(
|
||||||
$filter,
|
$filter,
|
||||||
$this->configuration->get('searching.filter'),
|
$this->configuration->get('searching.filter')
|
||||||
true,
|
|
||||||
false
|
|
||||||
);
|
);
|
||||||
|
|
||||||
$searchRequest->setFilter($filter);
|
$searchRequest->setFilter($filter);
|
||||||
|
|
|
@ -13,3 +13,4 @@ Changelog
|
||||||
changelog/20180308-131-respect-page-cache-clear
|
changelog/20180308-131-respect-page-cache-clear
|
||||||
changelog/20180308-introduce-php70-type-hints
|
changelog/20180308-introduce-php70-type-hints
|
||||||
changelog/20180306-120-facet-configuration
|
changelog/20180306-120-facet-configuration
|
||||||
|
changelog/20180926-163-allow-zero-as-typoscript-filter-value
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
Bugfix 163 "It's not possible to configure a filter via TS with value 0 - zero"
|
||||||
|
===============================================================================
|
||||||
|
|
||||||
|
Prior to the change it was not possible to define a filter while searching, via
|
||||||
|
TypoScript, with the value `0`. `0` was filtered as empty value.
|
||||||
|
|
||||||
|
Now the configured filter is no longer filtered, it's up to the integrator to provide
|
||||||
|
proper configuration. Therefore `0` is now a valid and respected filter value.
|
||||||
|
|
||||||
|
See :issue:`163`.
|
|
@ -59,9 +59,9 @@ author = u'Daniel Siepmann'
|
||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = u'0.0.6'
|
version = u'0.0.7'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = u'0.0.6'
|
release = u'0.0.7'
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
#
|
#
|
||||||
|
|
|
@ -9,7 +9,7 @@ Composer
|
||||||
|
|
||||||
The extension can be installed through composer::
|
The extension can be installed through composer::
|
||||||
|
|
||||||
composer require "codappix/search_core" "~0.0.6"
|
composer require "codappix/search_core" "~0.0.7"
|
||||||
|
|
||||||
Note that you have to allow unstable packages:
|
Note that you have to allow unstable packages:
|
||||||
|
|
||||||
|
|
|
@ -164,6 +164,33 @@ class SearchServiceTest extends AbstractUnitTestCase
|
||||||
$this->subject->search($searchRequest);
|
$this->subject->search($searchRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
|
public function configuredFilterWithValueZeroAreAddedToRequestWithoutAnyFilter()
|
||||||
|
{
|
||||||
|
$this->configuration->expects($this->any())
|
||||||
|
->method('getIfExists')
|
||||||
|
->withConsecutive(['searching.size'], ['searching.facets'])
|
||||||
|
->will($this->onConsecutiveCalls(null, null));
|
||||||
|
$this->configuration->expects($this->any())
|
||||||
|
->method('get')
|
||||||
|
->will($this->onConsecutiveCalls(
|
||||||
|
['property' => '0'],
|
||||||
|
$this->throwException(new InvalidArgumentException)
|
||||||
|
));
|
||||||
|
|
||||||
|
$this->connection->expects($this->once())
|
||||||
|
->method('search')
|
||||||
|
->with($this->callback(function ($searchRequest) {
|
||||||
|
return $searchRequest->getFilter() === ['property' => '0'];
|
||||||
|
}))
|
||||||
|
->willReturn($this->getMockBuilder(SearchResultInterface::class)->getMock());
|
||||||
|
|
||||||
|
$searchRequest = new SearchRequest('SearchWord');
|
||||||
|
$this->subject->search($searchRequest);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
*/
|
*/
|
||||||
|
@ -220,34 +247,6 @@ class SearchServiceTest extends AbstractUnitTestCase
|
||||||
$this->subject->search($searchRequest);
|
$this->subject->search($searchRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @test
|
|
||||||
*/
|
|
||||||
public function emptyConfiguredFilterIsNotChangingRequestWithExistingFilter()
|
|
||||||
{
|
|
||||||
$this->configuration->expects($this->any())
|
|
||||||
->method('getIfExists')
|
|
||||||
->withConsecutive(['searching.size'], ['searching.facets'])
|
|
||||||
->will($this->onConsecutiveCalls(null, null));
|
|
||||||
$this->configuration->expects($this->any())
|
|
||||||
->method('get')
|
|
||||||
->will($this->onConsecutiveCalls(
|
|
||||||
['anotherProperty' => ''],
|
|
||||||
$this->throwException(new InvalidArgumentException)
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->connection->expects($this->once())
|
|
||||||
->method('search')
|
|
||||||
->with($this->callback(function ($searchRequest) {
|
|
||||||
return $searchRequest->getFilter() === ['anotherProperty' => 'anything'];
|
|
||||||
}))
|
|
||||||
->willReturn($this->getMockBuilder(SearchResultInterface::class)->getMock());
|
|
||||||
|
|
||||||
$searchRequest = new SearchRequest('SearchWord');
|
|
||||||
$searchRequest->setFilter(['anotherProperty' => 'anything']);
|
|
||||||
$this->subject->search($searchRequest);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -18,7 +18,7 @@ $EM_CONF[$_EXTKEY] = [
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'state' => 'beta',
|
'state' => 'beta',
|
||||||
'version' => '0.0.6',
|
'version' => '0.0.7',
|
||||||
'author' => 'Daniel Siepmann',
|
'author' => 'Daniel Siepmann',
|
||||||
'author_email' => 'coding@daniel-siepmann.de',
|
'author_email' => 'coding@daniel-siepmann.de',
|
||||||
];
|
];
|
||||||
|
|
Loading…
Reference in a new issue