$highlighter = new sfLuceneHighlighterXML($xml); $highlighter->addKeywords(array($keyword, $keyword2)); $highlighter->highlight(); $t->is($highlighter->export(), $expected, '->highlight() handles entities correctly'); $xml = '<?xml version="1.0" encoding="utf-8"?> <root> <child>hellÆ bäz</child> <child>i am fööbär</child> </root> '; $expected = '<?xml version="1.0" encoding="utf-8"?> <root> <child>hellÆ <s>bäz</s></child> <child>i am <h>fööbär</h></child> </root> '; $keyword = new sfLuceneHighlighterKeywordNamed(new sfLuceneHighlighterMarkerSprint('<h>%s</h>'), 'fööbär'); $keyword2 = new sfLuceneHighlighterKeywordNamed(new sfLuceneHighlighterMarkerSprint('<s>%s</s>'), 'bäz'); $highlighter = new sfLuceneHighlighterXML($xml); $highlighter->addKeywords(array($keyword, $keyword2)); $highlighter->highlight(); $t->is($highlighter->export(), $expected, '->highlight() handles UTF8 characters correctly'); try { $h = new sfLuceneHighlighterXML('<foo>&ddd;<foo></baz></bar>'); $h->highlight(); $t->fail('->highlight() rejects invalid XML'); } catch (Exception $e) { $t->pass('->highlight() rejects invalid XML'); } $highlighter = new sfLuceneHighlighterXML($xml); $t->is($highlighter->__toString(), $xml, 'highlighter implements __toString()');
<root> <child>hello & bazó</child> <child>i am foobar</child> </root> '; $expected = '<?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-200000126/DTD/xhtml1-transitional.dtd"> <root> <child>hello & <s>baz</s>ó</child> <child>i am <h>foobar</h></child> </root> '; $highlighter = new sfLuceneHighlighterXML($xml); $highlighter->addKeywords(array($keyword, $keyword2)); $highlighter->highlight(); $t->is($highlighter->export(), $expected, '->highlight() handles entities correctly'); $xml = '<?xml version="1.0"?> <root> <child>hellÆ bäz</child> <child>i am fööbär</child> </root> '; $expected = '<?xml version="1.0"?> <root> <child>hellÆ <s>bäz</s></child> <child>i am <h>fööbär</h></child> </root> '; $highlighter = new sfLuceneHighlighterXML($xml); $highlighter->addKeywords(array($keyword, $keyword2)); $highlighter->highlight();