b.getString(0, b.size(), false));
}
+ @Test
+ public void testNonASCII() throws Exception {
+ ApplyResult result = init("NonASCII");
+ assertEquals(1, result.getUpdatedFiles().size());
+ assertEquals(new File(db.getWorkTree(), "NonASCII"),
+ result.getUpdatedFiles().get(0));
+ checkFile(new File(db.getWorkTree(), "NonASCII"),
+ b.getString(0, b.size(), false));
+ }
+
+ @Test
+ public void testNonASCII2() throws Exception {
+ ApplyResult result = init("NonASCII2");
+ assertEquals(1, result.getUpdatedFiles().size());
+ assertEquals(new File(db.getWorkTree(), "NonASCII2"),
+ result.getUpdatedFiles().get(0));
+ checkFile(new File(db.getWorkTree(), "NonASCII2"),
+ b.getString(0, b.size(), false));
+ }
+
+ @Test
+ public void testNonASCIIAdd() throws Exception {
+ ApplyResult result = init("NonASCIIAdd");
+ assertEquals(1, result.getUpdatedFiles().size());
+ assertEquals(new File(db.getWorkTree(), "NonASCIIAdd"),
+ result.getUpdatedFiles().get(0));
+ checkFile(new File(db.getWorkTree(), "NonASCIIAdd"),
+ b.getString(0, b.size(), false));
+ }
+
+ @Test
+ public void testNonASCIIAdd2() throws Exception {
+ ApplyResult result = init("NonASCIIAdd2", false, true);
+ assertEquals(1, result.getUpdatedFiles().size());
+ assertEquals(new File(db.getWorkTree(), "NonASCIIAdd2"),
+ result.getUpdatedFiles().get(0));
+ checkFile(new File(db.getWorkTree(), "NonASCIIAdd2"),
+ b.getString(0, b.size(), false));
+ }
+
+ @Test
+ public void testNonASCIIDel() throws Exception {
+ ApplyResult result = init("NonASCIIDel", true, false);
+ assertEquals(1, result.getUpdatedFiles().size());
+ assertEquals(new File(db.getWorkTree(), "NonASCIIDel"),
+ result.getUpdatedFiles().get(0));
+ assertFalse(new File(db.getWorkTree(), "NonASCIIDel").exists());
+ }
+
private static byte[] readFile(final String patchFile) throws IOException {
final InputStream in = getTestResource(patchFile);
if (in == null) {
oldLines.add(rt.getString(i));
List<String> newLines = new ArrayList<String>(oldLines);
for (HunkHeader hh : fh.getHunks()) {
- StringBuilder hunk = new StringBuilder();
- for (int j = hh.getStartOffset(); j < hh.getEndOffset(); j++)
- hunk.append((char) hh.getBuffer()[j]);
- RawText hrt = new RawText(hunk.toString().getBytes());
+
+ byte[] b = new byte[hh.getEndOffset() - hh.getStartOffset()];
+ System.arraycopy(hh.getBuffer(), hh.getStartOffset(), b, 0,
+ b.length);
+ RawText hrt = new RawText(b);
+
List<String> hunkLines = new ArrayList<String>(hrt.size());
for (int i = 0; i < hrt.size(); i++)
hunkLines.add(hrt.getString(i));