diff --git a/tests/src/Kernel/Plugin/query_type/SearchApiDateTest.php b/tests/src/Kernel/Plugin/query_type/SearchApiDateTest.php index bf3b5a0..2d5cd6c 100644 --- a/tests/src/Kernel/Plugin/query_type/SearchApiDateTest.php +++ b/tests/src/Kernel/Plugin/query_type/SearchApiDateTest.php @@ -275,6 +275,59 @@ class SearchApiDateTest extends KernelTestBase { ]; } + /** + * Tests date query type with relative configuration. + */ + public function testRelativeConfig() { + $query = new SearchApiQuery([], 'search_api_query', []); + $facet = new Facet([], 'facets_facet'); + $facet->addProcessor([ + 'processor_id' => 'date_item', + 'weights' => [], + 'settings' => [ + 'date_display' => 'config_relative', + ], + ]); + + $original_results = [ + ['count' => 1, 'filter' => '1264250230'], + ['count' => 1, 'filter' => '1464926723'], + ['count' => 1, 'filter' => '1465930475'], + // This should map to today. + ['count' => 1, 'filter' => \Drupal::time()->getRequestTime()], + // This should map to yesterday. + ['count' => 1, 'filter' => \Drupal::time()->getRequestTime() - 86450], + // This should map to tomorrow. + ['count' => 1, 'filter' => \Drupal::time()->getRequestTime() + 86450], + ]; + + $config = [ + 'facet' => $facet, + 'query' => $query, + 'results' => $original_results, + ]; + + $query_type = new SearchApiDate($config, 'search_api_date', []); + $built_facet = $query_type->build(); + $this->assertInstanceOf(FacetInterface::class, $built_facet); + + $results = $built_facet->getResults(); + $this->assertInternalType('array', $results); + + // Reset the results to an array without the proper keys, to make it a lot + // easier to check for the correct grouping. + $results = array_values($results); + $this->assertCount(4, $results); + $this->assertEquals('Older', $results[0]->getDisplayValue()); + $this->assertEquals(3, $results[0]->getCount()); + $this->assertEquals('Today', $results[1]->getDisplayValue()); + $this->assertEquals(1, $results[1]->getCount()); + $this->assertEquals('Yesterday', $results[2]->getDisplayValue()); + $this->assertEquals(1, $results[2]->getCount()); + $this->assertEquals('Tomorrow', $results[3]->getDisplayValue()); + $this->assertEquals(1, $results[3]->getCount()); + } + /** * Tests string query type without results. */