public void Merge_EachEditedTheSamePage_ConflictOnSecondPage()
{
TestBodyMerge(ancestorBody: @"<div class='bloom-page' id='pageA'>
<div class='bloom-translationGroup'>
<div class='bloom-editable bloom-content1' contenteditable='true' lang='sse'>first page sse-lang text</div>
</div>
</div>
<div class='bloom-page' id='pageB'>
<div class='bloom-translationGroup'>
<div class='bloom-editable bloom-content1' contenteditable='true' lang='sse'>original sse-lang text</div>
</div>
</div>",
ourBody: @"<div class='bloom-page' id='pageA'>
<div class='bloom-translationGroup'>
<div class='bloom-editable bloom-content1' contenteditable='true' lang='sse'>first page sse-lang text</div>
</div>
</div>
<div class='bloom-page' id='pageB'>
<div class='bloom-translationGroup'>
<div class='bloom-editable bloom-content1' contenteditable='true' lang='sse'>changed by us</div>
<div class='bloom-editable bloom-content2' contenteditable='true' lang='third'>original third-lang text</div>
</div>
</div>",
theirBody: @"<div class='bloom-page' id='pageA'>
<div class='bloom-translationGroup'>
<div class='bloom-editable bloom-content1' contenteditable='true' lang='sse'>first page sse-lang text</div>
</div>
</div>
<div class='bloom-page' id='pageB'>
<div class='bloom-translationGroup'>
<div class='bloom-editable bloom-content1' contenteditable='true' lang='other'>original other-lang text</div>
<div class='bloom-editable bloom-content2' contenteditable='true' lang='sse'>changed by them</div>
</div>
</div>",
testsOnResultingFile: (file) =>
{
AssertThatXmlIn.HtmlFile(file).HasSpecifiedNumberOfMatchesForXpath(
"//div[@class='bloom-page']", 2);
AssertThatXmlIn.HtmlFile(file).HasSpecifiedNumberOfMatchesForXpath(
"//div[contains(@class, 'bloom-editable')]", 4);
AssertThatXmlIn.HtmlFile(file).HasSpecifiedNumberOfMatchesForXpath(
"//div[text()='changed by them']", 0);
AssertThatXmlIn.HtmlFile(file).HasSpecifiedNumberOfMatchesForXpath(
"//div[text()='changed by us']", 1);
AssertThatXmlIn.HtmlFile(file).HasSpecifiedNumberOfMatchesForXpath(
"//div[text()='original third-lang text']", 1);
AssertThatXmlIn.HtmlFile(file).HasSpecifiedNumberOfMatchesForXpath(
"//div[text()='original other-lang text']", 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: 2");
Assert.AreEqual("BloomBook group language=sse", conflict.Context.DataLabel);
});
}