/** * Tests whether tokenized text is handled correctly. */ public function testProcessFieldsTokenized() { $override = function (&$value, &$type) { if ($type != 'tokenized_text') { $value = TestFieldsProcessorPlugin::createTokenizedText($value, NULL); $type = 'tokenized_text'; } elseif ($value == 'bar') { $value = array(array('value' => '*bar')); } elseif ($value != 'baz') { $value = "*$value"; } else { $value = ''; } }; $this->processor->setMethodOverride('processFieldValue', $override); $fields = array( 'field1' => array( 'type' => 'tokenized_text', 'values' => array( TestFieldsProcessorPlugin::createTokenizedText('foo bar baz', 3), TestFieldsProcessorPlugin::createTokenizedText('foobar'), ), ), 'field2' => array( 'type' => 'text', 'values' => array( 'foo bar baz', 'foobar', ), ), ); $items = $this->createItems($this->index, 1, $fields); $this->processor->preprocessIndexItems($items); $item_fields = $items[$this->itemIds[0]]->getFields(); $expected = array( TestFieldsProcessorPlugin::createTokenizedText('*foo *bar', 3), TestFieldsProcessorPlugin::createTokenizedText('*foobar'), ); $this->assertEquals($expected, $item_fields['field1']->getValues(), 'tokenized_text field correctly processed.'); $expected = array( TestFieldsProcessorPlugin::createTokenizedText('foo bar baz'), TestFieldsProcessorPlugin::createTokenizedText('foobar'), ); $this->assertEquals($expected, $item_fields['field2']->getValues(), 'text field correctly processed and tokenized.'); }