public void Merge_EachEditedTheSamePage_OneConflict()
{
TestBodyMerge(ancestorBody: @"<div class='bloom-page' id='pageA'>
<div class='bloom-translationGroup'>
<div class='bloom-editable bloom-content1' contenteditable='true' lang='sse'>original a</div>
</div>
</div>
<div class='bloom-page' id='pageB'>
<div class='bloom-translationGroup'>
<div class='bloom-editable bloom-content1' contenteditable='true' lang='sse'>original b</div>
</div></div>",
ourBody: @"<div class='bloom-page' id='pageA'>
<div class='bloom-translationGroup'>
<div class='bloom-editable bloom-content1' contenteditable='true' lang='sse'>changed by us</div>
</div>
</div>
<div class='bloom-page' id='pageB'>
<div class='bloom-translationGroup'>
<div class='bloom-editable bloom-content1' contenteditable='true' lang='sse'>original b</div>
</div></div>",
theirBody: @"<div class='bloom-page' id='pageA'>
<div class='bloom-translationGroup'>
<div class='bloom-editable bloom-content1' contenteditable='true' lang='sse'>changed by them</div>
</div>
</div>
<div class='bloom-page' id='pageB'>
<div class='bloom-translationGroup'>
<div class='bloom-editable bloom-content1' contenteditable='true' lang='sse'>original b</div>
</div></div>",
testsOnResultingFile: (file) =>
{
AssertThatXmlIn.HtmlFile(file).HasSpecifiedNumberOfMatchesForXpath(
"//div[@class='bloom-page']", 2);
AssertThatXmlIn.HtmlFile(file).HasSpecifiedNumberOfMatchesForXpath(
"//div[@id='pageA']//div[text()='changed by us']", 1);
AssertThatXmlIn.HtmlFile(file).HasSpecifiedNumberOfMatchesForXpath(
"//div[@id='pageB']//div[text()='original b']", 1);
AssertThatXmlIn.HtmlFile(file).HasSpecifiedNumberOfMatchesForXpath(
"//div[@class='bloom-translationGroup']", 2);
},
testsOnEventListener: (listener) =>
{
listener.AssertExpectedConflictCount(1);
listener.AssertFirstConflictType<BothEditedTheSameAtomicElement>();
var conflict = listener.Conflicts[0];
conflict.HtmlDetails.Contains("Page number: 1");
Assert.AreEqual("BloomBook group language=sse", conflict.Context.DataLabel);
});
}