/* * Copyright 1999-2006 University of Chicago * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.dcache.ftp.client.test; import org.dcache.ftp.client.dc.AsciiTranslator; import org.dcache.ftp.client.Buffer; import junit.framework.TestCase; import junit.framework.Test; import junit.framework.TestSuite; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class AsciiTranslatorTest extends TestCase { static Logger logger = LoggerFactory.getLogger(AsciiTranslatorTest.class); public static void main(String[] argv) { junit.textui.TestRunner.run (suite()); } public static Test suite() { return new TestSuite(AsciiTranslatorTest.class); } public AsciiTranslatorTest(String name) { super(name); } public void test1() { crlnTest("\n"); } public void test2() { crlnTest("\r\n"); } public void crlnTest(String lineSep) { AsciiTranslator t = new AsciiTranslator(true, false, lineSep.getBytes()); check(t, "1abcdef", "1abcdef"); check(t, "2abc\r\ndef", "2abc" + lineSep + "def"); check(t, "3abc\r\r\ndef", "3abc\r" + lineSep + "def"); check(t, "4abc\n\n\n\n", "4abc\n\n\n\n"); check(t, "a\rb\r\nc\n\n\r\rd", "a\rb" + lineSep + "c\n\n\r\rd"); check(t, "abc\r", "abc"); check(t, "def", "\rdef"); check(t, "a\r\n\nbc\r", "a" + lineSep + "\nbc"); check(t, "\n\r\ndef", lineSep + lineSep + "def"); } public void test3() { lnTest("\n"); } public void test4() { lnTest("\r\n"); } public void lnTest(String lineSep) { AsciiTranslator t = new AsciiTranslator(false, true, lineSep.getBytes()); check(t, "1abcdef", "1abcdef"); check(t, "2abc\r\ndef", "2abc\r" + lineSep + "def"); check(t, "3abc\r\r\ndef", "3abc\r\r" + lineSep + "def"); check(t, "4abc\n\n\n", "4abc" + lineSep + lineSep + lineSep); check(t, "a\rb\r\nc\n\n\r\rd", "a\rb\r" + lineSep + "c" + lineSep + lineSep + "\r\rd"); check(t, "abc\r", "abc\r"); check(t, "a\r\n\nbc\r", "a\r" + lineSep + lineSep + "bc\r"); check(t, "\n\r\ndef", lineSep + "\r" + lineSep + "def"); } private void check(AsciiTranslator t, String inputStr, String expectedStr) { byte [] input = inputStr.getBytes(); byte [] output = t.translate(new Buffer(input, input.length)).getBuffer(); assertEquals(expectedStr, new String(output)); } }