Ticket_9.java
package com.univocity.parsers.issues.support;
import com.univocity.parsers.tsv.*;
import org.testng.annotations.*;
import java.io.*;
import static org.testng.Assert.*;
/**
 * @author Univocity Software Pty Ltd - <a href="mailto:dev@univocity.com">dev@univocity.com</a>
 */
public class Ticket_9 {
	@Test
	public void testEscapeSlashTabInTSV() {
		String input = "hello\tworld\tabc\\\td\\\ne\\tf\n";
		TsvParserSettings settings = new TsvParserSettings();
		settings.getFormat().setLineSeparator("\n");
		settings.getFormat().setEscapedTabChar('\t');
		settings.setLineJoiningEnabled(true);
		settings.setReadInputOnSeparateThread(false);
		TsvParser parser = new TsvParser(settings);
		StringReader reader = new StringReader(input);
		parser.beginParsing(reader);
		String[] row = parser.parseNext();
		assertEquals(row.length,3);
		assertEquals(row[0], "hello");
		assertEquals(row[1], "world");
		assertEquals(row[2], "abc\td\ne\tf");
		assertNull(parser.parseNext());
		assertTrue(parser.getContext().isStopped());
		TsvWriterSettings writerSettings = new TsvWriterSettings();
		writerSettings.setFormat(settings.getFormat());
		writerSettings.setLineJoiningEnabled(true);
		StringWriter out = new StringWriter();
		TsvWriter writer = new TsvWriter(out, writerSettings);
		writer.writeRow(row);
		writer.close();
		assertEquals(out.toString(), "hello\tworld\tabc\\\td\\\ne\\\tf\n");
	}
}