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 }