1 28 29 package com.idaremedia.antx.valueuri.tests; 30 31 import junit.framework.TestSuite; 32 33 import com.idaremedia.antx.ValueURIHandler; 34 import com.idaremedia.antx.valueuri.ShortenStringURIHandler; 35 36 45 46 public final class ShortenStringURIHandlerTest extends ValueURIHandlerTestSkeleton 47 { 48 private final static int MAXLEN = ShortenStringURIHandler.MAXLEN; 49 private final static String ABC_ETC = "abcdefghijklmnopqrstuvwxyz?"; 50 private final String EXACTSTRING; 51 private final String OVERSTRING; 52 private final String UNDERSTRING; 53 private final String EXACTLEFT, EXACTRIGHT; 54 55 56 60 public ShortenStringURIHandlerTest(String methodname) 61 { 62 super("ShortenStringURIHandler::",methodname); 63 EXACTSTRING = xstring(MAXLEN); 64 OVERSTRING = xstring(MAXLEN+5); 65 UNDERSTRING = xstring(Math.max(0,MAXLEN-5)); 66 EXACTLEFT = "..."+xstring(MAXLEN-3); 67 EXACTRIGHT = OVERSTRING.substring(0,MAXLEN-3)+"..."; 68 } 69 70 71 74 public static TestSuite suite() 75 { 76 return new TestSuite(ShortenStringURIHandlerTest.class); 77 } 78 79 83 protected ValueURIHandler newOUT() 84 { 85 return new ShortenStringURIHandler(); 86 } 87 88 private String xstring(int length) 89 { 90 final String L = "0123456789"; 91 StringBuffer sb = new StringBuffer (Math.max(length,100)); 92 while (--length>=0) { 93 sb.append(L.charAt(length % 10)); 94 } 95 return sb.substring(0); 96 } 97 98 102 106 public void testBaseline_AntX05() 107 { 108 checkBaseline(); 109 System.out.println("EXACTSTRING:"+EXACTSTRING); 110 System.out.println("OVERSTRING:"+OVERSTRING); 111 ValueURIHandler out = newOUT(); 112 String result = out.valueFrom("","$shorten:",m_rqlink); 113 assertEqual(result,"","$shorten:"); 114 } 115 116 117 121 public void testAllBlankOptionsParsedOK_AntX05() 122 { 123 ValueURIHandler out = newOUT(); 124 String result = out.valueFrom("?,,,,","$shorten:?,,,,",m_rqlink); 125 assertEqual(result,"","'$shorten:?,,,,'"); 126 127 final String BLANK= "@(blank)?@(blank),,@(blank),,"; 128 final String BLANKURI="$shorten:"+BLANK; 129 130 getProject().setProperty("blank",""); 131 result = out.valueFrom(BLANK,BLANKURI,m_rqlink); 132 assertEqual(result,"",BLANKURI); 133 result = out.valueFrom(" "+BLANK,"$shorten: "+BLANK,m_rqlink); 134 assertEqual(result," ","'$shorten: "+BLANK+"'"); 135 } 136 137 138 143 public void testStringsUnderAndExactMaxLenNotChanged_AntX05() 144 { 145 ValueURIHandler out = newOUT(); 146 String result = out.valueFrom(EXACTSTRING,"$shorten:"+EXACTSTRING,m_rqlink); 147 assertIdent(result,EXACTSTRING,"$shorten:EXACTSTRING"); 148 result = out.valueFrom(UNDERSTRING,"$shorten:"+UNDERSTRING,m_rqlink); 149 assertIdent(result,UNDERSTRING,"$shorten:UNDERSTRING"); 150 151 String urifragment = EXACTSTRING+"?"+MAXLEN+",,right"; 152 result = out.valueFrom(urifragment,"$shorten:"+urifragment,m_rqlink); 153 assertEqual(result,EXACTSTRING,"$shorten:EXACTSTRING?MAXLEN,,right"); 154 155 urifragment = UNDERSTRING+"?"+MAXLEN+",,left,,ERROR!"; 156 result = out.valueFrom(urifragment,"$shorten:"+urifragment,m_rqlink); 157 assertEqual(result,UNDERSTRING,"$shorten:UNDERSTRING?MAXLEN,,left,,ERROR!"); 158 } 159 160 161 166 public void testStringsOverMaxLengthShortenedDDD_AntX05() 167 { 168 ValueURIHandler out = newOUT(); 169 String result = out.valueFrom(OVERSTRING,"$shorten:"+OVERSTRING,m_rqlink); 170 assertEqual(result,EXACTLEFT,"$shorten:OVERSTRING"); 171 result = out.valueFrom(OVERSTRING+"?,,right","$shorten:"+OVERSTRING+"?,,right",m_rqlink); 172 assertEqual(result,EXACTRIGHT,"$shorten:OVERSTRING?,,right"); 173 result = out.valueFrom("abcdefgh?5,,left","$shorten:abcdefgh?5,,left",m_rqlink); 174 assertEqual(result,"...gh","$shorten:abcdefgh?5,,left"); 175 result = out.valueFrom("abcdefgh?5,,right","$shorten:abcdefgh?5,,right",m_rqlink); 176 assertEqual(result,"ab...","$shorten:abcdefgh?5,,right"); 177 } 178 179 180 184 public void testCustomEllipsesUsed_AntX05() 185 { 186 ValueURIHandler out = newOUT(); 187 String urifragment = ABC_ETC+"20,,left,,[snip]..."; 188 String result = out.valueFrom(urifragment,"$shorten:"+urifragment,m_rqlink); 189 assertEqual(result,"[snip]...pqrstuvwxyz","$shorten:"+urifragment); 190 urifragment = ABC_ETC+"25,,right,,..blablabla"; 191 result = out.valueFrom(urifragment,"$shorten:"+urifragment,m_rqlink); 192 assertEqual(result,"abcdefghijklmn..blablabla","$shorten:"+urifragment); 193 } 194 195 196 202 public void testTooLongCustomEllipsesIgnored_AntX05() 203 { 204 ValueURIHandler out = newOUT(); 205 String urifragment = "abcdefgh?5,,left,,[abbreviated]"; 206 String result = out.valueFrom(urifragment,"$shorten:"+urifragment,m_rqlink); 207 assertEqual(result,"...gh","$shorten:"+urifragment); 208 209 final String ellipses="[abbreviated]"; 210 final int maxlen= ellipses.length()-1; urifragment = "abcdefghijklmnopqrstuvwxyz?"+maxlen+",,right,,"+ellipses; 212 result= out.valueFrom(urifragment,"$shorten:"+urifragment,m_rqlink); 213 assertEqual(result,"abcdefghi...","$shorten:"+urifragment); 214 215 urifragment = "abcdefghijklmnopqrstuvwxyz?"+maxlen+",,left,,"+ellipses; 216 result= out.valueFrom(urifragment,"$shorten:"+urifragment,m_rqlink); 217 assertEqual(result,"...rstuvwxyz","$shorten:"+urifragment); 218 } 219 } 220 221 | Popular Tags |