use of org.suigeneris.jrcs.diff.delta.Delta in project xwiki-platform by xwiki.
the class DiffTest method testSimpleLineDiff2.
@Test
public void testSimpleLineDiff2() throws XWikiException {
String text1 = "A\nB\nC";
String text2 = "A\nB B\nC";
List diffs = this.plugin.getDifferencesAsList(text1, text2);
assertEquals("There should be one difference", 1, diffs.size());
Delta delta = (Delta) diffs.get(0);
Chunk orig = delta.getOriginal();
Chunk revised = delta.getRevised();
assertEquals("Original should be", "B", orig.toString());
assertEquals("Revised should be", "B B", revised.toString());
}
use of org.suigeneris.jrcs.diff.delta.Delta in project jspwiki by apache.
the class SpamFilter method getChange.
/**
* Creates a simple text string describing the added content.
*
* @param context
* @param newText
* @return Empty string, if there is no change.
*/
private static Change getChange(WikiContext context, String newText) {
WikiPage page = context.getPage();
StringBuffer change = new StringBuffer();
WikiEngine engine = context.getEngine();
// Get current page version
Change ch = new Change();
try {
String oldText = engine.getPureText(page.getName(), WikiProvider.LATEST_VERSION);
String[] first = Diff.stringToArray(oldText);
String[] second = Diff.stringToArray(newText);
Revision rev = Diff.diff(first, second, new MyersDiff());
if (rev == null || rev.size() == 0) {
return ch;
}
for (int i = 0; i < rev.size(); i++) {
Delta d = rev.getDelta(i);
if (d instanceof AddDelta) {
d.getRevised().toString(change, "", "\r\n");
ch.m_adds++;
} else if (d instanceof ChangeDelta) {
d.getRevised().toString(change, "", "\r\n");
ch.m_adds++;
} else if (d instanceof DeleteDelta) {
ch.m_removals++;
}
}
} catch (DifferentiationFailedException e) {
log.error("Diff failed", e);
}
//
// Don't forget to include the change note, too
//
String changeNote = (String) page.getAttribute(WikiPage.CHANGENOTE);
if (changeNote != null) {
change.append("\r\n");
change.append(changeNote);
}
//
if (page.getAuthor() != null) {
change.append("\r\n" + page.getAuthor());
}
ch.m_change = change.toString();
return ch;
}
use of org.suigeneris.jrcs.diff.delta.Delta in project xwiki-platform by xwiki.
the class DiffTest method testSimpleLineDiff.
@Test
public void testSimpleLineDiff() throws XWikiException {
String text1 = "A";
String text2 = "A B";
List diffs = this.plugin.getDifferencesAsList(text1, text2);
assertEquals("There should be one difference", 1, diffs.size());
Delta delta = (Delta) diffs.get(0);
Chunk orig = delta.getOriginal();
Chunk revised = delta.getRevised();
assertEquals("Original should be", "A", orig.toString());
assertEquals("Revised should be", "A B", revised.toString());
}
use of org.suigeneris.jrcs.diff.delta.Delta in project xwiki-platform by xwiki.
the class DiffTest method testSimpleWordDiff4.
@Test
public void testSimpleWordDiff4() throws XWikiException {
String text1 = "I love Paris and I like London";
String text2 = "I love London and I like Paris";
List diffs = this.plugin.getWordDifferencesAsList(text1, text2);
assertEquals("There should be two differences", 2, diffs.size());
Delta delta1 = (Delta) diffs.get(0);
Chunk orig1 = delta1.getOriginal();
Chunk revised1 = delta1.getRevised();
Delta delta2 = (Delta) diffs.get(1);
Chunk orig2 = delta2.getOriginal();
Chunk revised2 = delta2.getRevised();
assertEquals("Original 1 should be", "Paris", orig1.toString());
assertEquals("Revised 1 should be", "London", revised1.toString());
assertEquals("Original 2 should be", "London", orig2.toString());
assertEquals("Revised 2 should be", "Paris", revised2.toString());
}
Aggregations