use std::io::Cursor;
use wikiwho::dump_parser::DumpParser;
const DUMP_WITH_ENTITIES: &str = r#"<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.11/" version="0.11" xml:lang="en">
<siteinfo><sitename>W</sitename><namespaces><namespace key="0" case="first-letter"/></namespaces></siteinfo>
<page><title>T</title><ns>0</ns><id>1</id>
<revision><id>1</id><timestamp>2020-01-01T00:00:00Z</timestamp>
<contributor><username>A</username></contributor>
<text xml:space="preserve">AAA words here. <ref>x</ref> BBB words here.</text>
</revision>
</page>
</mediawiki>"#;
#[test]
fn revision_text_survives_entity_references() {
let mut parser =
DumpParser::new(Cursor::new(DUMP_WITH_ENTITIES.as_bytes())).expect("parser init");
let page = parser
.parse_page()
.expect("parse_page")
.expect("one page present");
let text = page.revisions[0].text.as_str();
assert!(
text.contains("AAA words here."),
"leading text lost: {text:?}"
);
assert!(
text.contains("BBB words here."),
"trailing text lost: {text:?}"
);
assert!(
text.contains("<ref>"),
"entity chars lost / markup merged: {text:?}"
);
}