View Javadoc

1   // Copyright (C) 2007 Philip Aston
2   // All rights reserved.
3   //
4   // This file is part of The Grinder software distribution. Refer to
5   // the file LICENSE which is part of The Grinder distribution for
6   // licensing details. The Grinder distribution is available on the
7   // Internet at http://grinder.sourceforge.net/
8   //
9   // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
10  // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
11  // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
12  // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
13  // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
14  // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
15  // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
16  // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
18  // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
19  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
20  // OF THE POSSIBILITY OF SUCH DAMAGE.
21  
22  package net.grinder.util;
23  
24  import junit.framework.TestCase;
25  
26  public class TestSimpleStringEscaper extends TestCase {
27  
28    public void testEncode() throws Exception {
29  
30      final String[][] data = new String[][] {
31          {"", ""},
32          {"\n\\", "\\n\n\\\\"},
33          {"\r\n", "\\r\\n\n"},
34          {"You should have cottoned on", "You should have cottoned on"},
35          {"That Allan\nis a cowboy killer", "That Allan\\n\nis a cowboy killer"},
36      };
37  
38      final SimpleStringEscaper escaper = new SimpleStringEscaper();
39  
40      for (int i = 0; i < data.length; ++i) {
41        final String original = data[i][0];
42        final String expected = data[i][1];
43  
44        assertEquals(expected, escaper.escape(original));
45        assertEquals(original, escaper.unescape(escaper.escape(original)));
46      }
47    }
48  
49    public void testDecode() throws Exception {
50  
51      final String[][] data = new String[][] {
52          {"", ""},
53          {"\n\n\r\n\\n", "\n"},
54          {"You should \n have cottoned on", "You should  have cottoned on"},
55          {"\\blah", "\\blah"},
56      };
57  
58      final SimpleStringEscaper escaper = new SimpleStringEscaper();
59  
60      for (int i = 0; i < data.length; ++i) {
61        final String original = data[i][0];
62        final String expected = data[i][1];
63  
64        assertEquals(expected, escaper.unescape(original));
65      }
66    }
67  }