[197] | 1 | package org.expeditee.items.widgets;
|
---|
[39] | 2 |
|
---|
| 3 | import junit.framework.TestCase;
|
---|
| 4 |
|
---|
| 5 | public class InteractiveWidgetTest extends TestCase {
|
---|
| 6 |
|
---|
| 7 | public void testParseArgs1() {
|
---|
| 8 |
|
---|
| 9 | assertNull(InteractiveWidget.parseArgs(null));
|
---|
| 10 | assertNull(InteractiveWidget.parseArgs(""));
|
---|
| 11 | assertNull(InteractiveWidget.parseArgs(" "));
|
---|
| 12 |
|
---|
| 13 | String[] args = InteractiveWidget.parseArgs("arg1");
|
---|
| 14 | assertEquals(1, args.length);
|
---|
| 15 | assertEquals("arg1", args[0]);
|
---|
| 16 |
|
---|
| 17 | args = InteractiveWidget.parseArgs("arg1 arg2");
|
---|
| 18 | assertEquals(2, args.length);
|
---|
| 19 | assertEquals("arg1", args[0]);
|
---|
| 20 | assertEquals("arg2", args[1]);
|
---|
| 21 |
|
---|
| 22 | args = InteractiveWidget.parseArgs(" )*^*$^ 24224 5775 13 : ");
|
---|
| 23 | assertEquals(5, args.length);
|
---|
| 24 | assertEquals(")*^*$^", args[0]);
|
---|
| 25 | assertEquals("24224", args[1]);
|
---|
| 26 | assertEquals("5775", args[2]);
|
---|
| 27 | assertEquals("13", args[3]);
|
---|
| 28 | assertEquals(":", args[4]);
|
---|
| 29 | }
|
---|
| 30 |
|
---|
| 31 | public void testParseArgs2() {
|
---|
| 32 |
|
---|
| 33 | String[] args = InteractiveWidget.parseArgs("\"");
|
---|
| 34 | assertNull(args);
|
---|
| 35 |
|
---|
| 36 | args = InteractiveWidget.parseArgs("\"\"");
|
---|
| 37 | assertEquals(1, args.length);
|
---|
| 38 | assertEquals("\"", args[0]);
|
---|
| 39 |
|
---|
| 40 | args = InteractiveWidget.parseArgs("\"\"\"\"\"\"\"");
|
---|
| 41 | assertEquals(1, args.length);
|
---|
| 42 | assertEquals("\"\"\"", args[0]);
|
---|
| 43 |
|
---|
| 44 | args = InteractiveWidget.parseArgs(" \" \" ");
|
---|
| 45 | assertEquals(1, args.length);
|
---|
| 46 | assertEquals(" ", args[0]);
|
---|
| 47 |
|
---|
| 48 | args = InteractiveWidget.parseArgs("arg1\" \"");
|
---|
| 49 | assertEquals(1, args.length);
|
---|
| 50 | assertEquals("arg1 ", args[0]);
|
---|
| 51 |
|
---|
| 52 | args = InteractiveWidget.parseArgs("arg1\" \"+8");
|
---|
| 53 | assertEquals(1, args.length);
|
---|
| 54 | assertEquals("arg1 +8", args[0]);
|
---|
| 55 |
|
---|
| 56 | args = InteractiveWidget.parseArgs("abc\" \"de 123\" \"45");
|
---|
| 57 | assertEquals(2, args.length);
|
---|
| 58 | assertEquals("abc de", args[0]);
|
---|
| 59 | assertEquals("123 45", args[1]);
|
---|
| 60 |
|
---|
| 61 | args = InteractiveWidget.parseArgs("adgdag\" adgdgadag");
|
---|
| 62 | assertEquals(1, args.length);
|
---|
| 63 | assertEquals("adgdag adgdgadag", args[0]);
|
---|
| 64 |
|
---|
| 65 | args = InteractiveWidget.parseArgs("abc\"\"\" s \" ggg");
|
---|
| 66 | assertEquals(2, args.length);
|
---|
| 67 | assertEquals("abc\" s ", args[0]);
|
---|
| 68 | assertEquals("ggg", args[1]);
|
---|
| 69 |
|
---|
| 70 | args = InteractiveWidget.parseArgs("abc\"\"123");
|
---|
| 71 | assertEquals(1, args.length);
|
---|
| 72 | assertEquals("abc\"123", args[0]);
|
---|
| 73 |
|
---|
| 74 | args = InteractiveWidget.parseArgs("file=\"a URL with spaces\" title=\"A title with spaces and \"\"quotes\"\"\"");
|
---|
| 75 | assertEquals(2, args.length);
|
---|
| 76 | assertEquals("file=a URL with spaces", args[0]);
|
---|
| 77 | assertEquals("title=A title with spaces and \"quotes\"", args[1]);
|
---|
| 78 |
|
---|
| 79 |
|
---|
| 80 | }
|
---|
| 81 |
|
---|
| 82 | public void testFormatParseArgs() {
|
---|
| 83 |
|
---|
| 84 | AssertArgParsingAndFormatting(null);
|
---|
| 85 | AssertArgParsingAndFormatting("");
|
---|
| 86 | AssertArgParsingAndFormatting(" ");
|
---|
| 87 | AssertArgParsingAndFormatting(" \"");
|
---|
| 88 | AssertArgParsingAndFormatting(" \" ");
|
---|
| 89 | AssertArgParsingAndFormatting("arg1");
|
---|
| 90 | AssertArgParsingAndFormatting("arg1 arg2");
|
---|
| 91 | AssertArgParsingAndFormatting("%%#%# 13 fgsfa sf SA sa\" f sa\" S sa\" ");
|
---|
| 92 | AssertArgParsingAndFormatting("\"\"\"\"\"\"\"");
|
---|
| 93 | AssertArgParsingAndFormatting("\"\\\\ file \"\" \"\"\" ad \"");
|
---|
| 94 | AssertArgParsingAndFormatting(" add\"\"ad\"aad ");
|
---|
| 95 | AssertArgParsingAndFormatting("abc\"\"\" s \" ggg");
|
---|
| 96 | AssertArgParsingAndFormatting("1 2 3 4 5 6 7 8 \"9 10 \"\"\" \"1");
|
---|
| 97 | AssertArgParsingAndFormatting("file=\"a URL with spaces\" title=\"A title with spaces and \"\"quotes\"\"\"");
|
---|
| 98 |
|
---|
| 99 | }
|
---|
| 100 |
|
---|
| 101 | private void AssertArgParsingAndFormatting(String str) {
|
---|
| 102 |
|
---|
| 103 | String[] args1 = InteractiveWidget.parseArgs(str);
|
---|
| 104 |
|
---|
| 105 | String formatted = InteractiveWidget.formatArgs(args1);
|
---|
| 106 |
|
---|
| 107 | String[] args2 = InteractiveWidget.parseArgs(formatted);
|
---|
| 108 |
|
---|
| 109 | if (args1 == null || args2 == null) assertEquals(args1, args2);
|
---|
| 110 | else {
|
---|
| 111 | assertEquals(args1.length, args2.length);
|
---|
| 112 | for (int i = 0; i < args1.length; i++) {
|
---|
| 113 | assertEquals(args1[i], args2[i]);
|
---|
| 114 | }
|
---|
| 115 | }
|
---|
| 116 |
|
---|
| 117 | }
|
---|
| 118 |
|
---|
| 119 | }
|
---|