Commit f56b4ec2 authored by Adrien Brault's avatar Adrien Brault

Fix Spellcheck response parser with multiple suggestions

parent ba0bcaec
......@@ -86,7 +86,13 @@ class Spellcheck extends ResponseParserAbstract implements ComponentParserInterf
$collations = $this->parseCollation($query, $value);
break;
default:
$suggestions[] = $this->parseSuggestion($key, $value);
if (array_key_exists(0, $value)) {
foreach ($value as $currentValue) {
$suggestions[] = $this->parseSuggestion($key, $currentValue);
}
} else {
$suggestions[] = $this->parseSuggestion($key, $value);
}
}
}
......
......@@ -50,8 +50,8 @@ class SpellcheckTest extends \PHPUnit_Framework_TestCase
$data = array(
'spellcheck' => array(
'suggestions' => array(
0 => 'delll',
1 => array (
'delll',
array (
'numFound' => 1,
'startOffset' => 0,
'endOffset' => 5,
......@@ -63,8 +63,8 @@ class SpellcheckTest extends \PHPUnit_Framework_TestCase
),
),
),
2 => 'ultrashar',
3 => array (
'ultrashar',
array (
'numFound' => 1,
'startOffset' => 6,
'endOffset' => 15,
......@@ -76,10 +76,23 @@ class SpellcheckTest extends \PHPUnit_Framework_TestCase
),
),
),
4 => 'correctlySpelled',
5 => false,
6 => 'collation',
7 => array (
'ultrashar',
array (
'numFound' => 1,
'startOffset' => 16,
'endOffset' => 25,
'origFreq' => 0,
'suggestion' => array (
0 => array (
'word' => 'ultrasharp',
'freq' => 1,
),
),
),
'correctlySpelled',
false,
'collation',
array (
0 => 'collationQuery',
1 => 'dell ultrasharp',
2 => 'hits',
......@@ -92,8 +105,8 @@ class SpellcheckTest extends \PHPUnit_Framework_TestCase
3 => 'ultrasharp',
),
),
8 => 'collation',
9 => array (
'collation',
array (
0 => 'collationQuery',
1 => 'dell ultrasharp new',
2 => 'hits',
......@@ -115,6 +128,10 @@ class SpellcheckTest extends \PHPUnit_Framework_TestCase
$suggestions = $result->getSuggestions();
$this->assertEquals(false, $result->getCorrectlySpelled());
$this->assertEquals('dell', $suggestions[0]->getWord());
$this->assertEquals('ultrasharp', $suggestions[1]->getWord());
$this->assertEquals(6, $suggestions[1]->getStartOffset());
$this->assertEquals('ultrasharp', $suggestions[2]->getWord());
$this->assertEquals(16, $suggestions[2]->getStartOffset());
$this->assertEquals('dell ultrasharp', $result->getCollation()->getQuery());
$collations = $result->getCollations();
$this->assertEquals('dell ultrasharp', $collations[0]->getQuery());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment