Improve handling 'empty'/null string in Service fields
[sdc.git] / common-app-api / src / test / java / org / openecomp / sdc / common / test / CommonUtilsTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.common.test;
22
23 import org.junit.Test;
24 import org.openecomp.sdc.common.api.Constants;
25 import org.openecomp.sdc.common.util.GeneralUtility;
26 import org.openecomp.sdc.common.util.HtmlCleaner;
27 import org.openecomp.sdc.common.util.ValidationUtils;
28 import org.openecomp.sdc.common.util.YamlToObjectConverter;
29 import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory;
31 import org.yaml.snakeyaml.DumperOptions;
32 import org.yaml.snakeyaml.Yaml;
33
34 import java.util.ArrayList;
35 import java.util.HashMap;
36 import java.util.List;
37 import java.util.Map;
38
39 import static org.junit.Assert.*;
40
41 public class CommonUtilsTest {
42         private static Logger log = LoggerFactory.getLogger(CommonUtilsTest.class.getName());
43
44         /*
45          * Validation utils start
46          */
47         @Test
48         public void testValidateServiceName() {
49
50                 assertTrue(ValidationUtils.validateComponentNamePattern("1111222"));
51                 assertTrue(ValidationUtils.validateComponentNamePattern("sfE4444"));
52                 assertTrue(ValidationUtils.validateComponentNamePattern("1111sfd222"));
53                 assertTrue(ValidationUtils.validateComponentNamePattern("11sdf 1124_22"));
54                 assertTrue(ValidationUtils.validateComponentNamePattern("111----1222"));
55                 assertTrue(ValidationUtils.validateComponentNamePattern("1111f .222"));
56                 assertTrue(ValidationUtils.validateComponentNamePattern("1111222"));
57                 assertFalse(ValidationUtils.validateComponentNamePattern("11!11222"));
58                 assertFalse(ValidationUtils.validateComponentNamePattern("111|`1222"));
59                 assertFalse(ValidationUtils.validateComponentNamePattern("."));
60                 assertFalse(ValidationUtils.validateComponentNamePattern(""));
61                 assertTrue(ValidationUtils.validateComponentNamePattern("s"));
62         }
63
64         @Test
65         public void validateServiceNameLengthTest() {
66                 assertTrue(ValidationUtils.validateComponentNameLength("fsdlfsdlksdsd;"));
67                 // assertFalse(ValidationUtils.validateComponentNameLength("ddddddddddddddddddddddsdfsddddddddddddddddddddddsdfs"));
68         }
69
70         @Test
71         public void testValidateIcon() {
72
73                 assertTrue(ValidationUtils.validateIcon("something"));
74                 assertTrue(ValidationUtils.validateIcon("sfE4444"));
75                 assertTrue(ValidationUtils.validateIcon("1111sfd222"));
76                 assertTrue(ValidationUtils.validateIcon("11sdf1124_22"));
77                 assertTrue(ValidationUtils.validateIcon("111----1222"));
78                 assertFalse(ValidationUtils.validateIcon("1111f.222"));
79                 assertTrue(ValidationUtils.validateIcon("1111222"));
80                 assertFalse(ValidationUtils.validateIcon("1111 222"));
81                 assertFalse(ValidationUtils.validateIcon("11!11222"));
82                 assertFalse(ValidationUtils.validateIcon("111|`1222"));
83
84         }
85
86
87         @Test
88         public void testValidateIconLength() {
89                 assertTrue(ValidationUtils.validateIconLength("fsdlfsdlksdsd"));
90                 assertFalse(ValidationUtils.validateIconLength("ddddddddddddddddddddddsdfsddddddddddddddddddddddsdfs"));
91         }
92
93         @Test
94         public void testValidateProjectCode() {
95
96                 assertTrue(ValidationUtils.validateProjectCode("15555"));
97                 assertTrue(ValidationUtils.validateProjectCode("12434501"));
98                 assertTrue(ValidationUtils.validateProjectCode("00000"));
99                 assertTrue(ValidationUtils.validateProjectCode("something"));
100                 assertTrue(ValidationUtils.validateProjectCode("som ething"));
101                 assertTrue(ValidationUtils.validateProjectCode("3255 656"));
102                 assertTrue(ValidationUtils.validateProjectCode("43535t636"));
103                 assertFalse(ValidationUtils.validateProjectCode("098&656"));
104         }
105
106         @Test
107         public void testValidateProjectCodeLength() {
108
109                 assertTrue(ValidationUtils.validateProjectCodeLegth("00000"));
110                 assertFalse(ValidationUtils.validateProjectCodeLegth("ddddddddddddddddddddddsdfsddddddddddddddddddddddsdfs"));
111
112         }
113
114         @Test
115         public void testValidateContactId() {
116
117                 assertTrue(ValidationUtils.validateContactId("ml7889"));
118                 assertTrue(ValidationUtils.validateContactId("Ml7889"));
119                 assertTrue(ValidationUtils.validateContactId("ml788r"));
120                 assertTrue(ValidationUtils.validateContactId("something"));
121                 assertTrue(ValidationUtils.validateContactId("mlk111"));
122                 assertTrue(ValidationUtils.validateContactId("12ml89"));
123                 assertFalse(ValidationUtils.validateContactId("!!78900"));
124         }
125
126         @Test
127         public void testRemoveHtml() {
128
129         assertEquals("gooboo", ValidationUtils.removeHtmlTags("<b>goo<b></b></b><b>boo</b>"));
130         assertEquals("goo&lt;boo", ValidationUtils.removeHtmlTags("<b>goo<b></b><</b><b>boo</b>"));
131         assertEquals("goo boo", ValidationUtils.removeHtmlTags("goo boo"));
132         assertEquals("goo# . boo12", ValidationUtils.removeHtmlTags("goo# . boo12"));
133         }
134
135         @Test
136         public void testnormaliseWhitespace() {
137
138         assertEquals("goo boo", ValidationUtils.normaliseWhitespace("goo boo"));
139         assertEquals("goo boo ", ValidationUtils.normaliseWhitespace("goo boo   "));
140         assertEquals("goo boo", ValidationUtils.normaliseWhitespace("goo    boo"));
141         }
142
143         @Test
144         public void teststripOctets() {
145         assertEquals("goo boo", ValidationUtils.stripOctets("goo%1F boo"));
146         assertEquals("goo boo ", ValidationUtils.stripOctets("goo boo %1F"));
147         assertEquals("goo boo", ValidationUtils.stripOctets("%1Fgoo boo"));
148         }
149
150         @Test
151         public void testRemoveNoneUtf8Chars() {
152         assertEquals("goo boo", ValidationUtils.removeNoneUtf8Chars("goo boo"));
153         assertEquals("goo boo!!._", ValidationUtils.removeNoneUtf8Chars("goo boo!!._"));
154         assertEquals("goo       boo", ValidationUtils.removeNoneUtf8Chars("goo  boo"));
155         assertEquals("goo  bo123o", ValidationUtils.removeNoneUtf8Chars("goo  bo123o"));
156         assertEquals("goo  bo123o", ValidationUtils.removeNoneUtf8Chars("goo  קקbo123oגכקק"));
157         assertEquals("goo  bo123o", ValidationUtils.removeNoneUtf8Chars("goo  bo1������23o"));
158         }
159
160         @Test
161         public void validateEnglishTest() {
162                 assertTrue(ValidationUtils.validateIsEnglish("ml7889"));
163                 assertFalse(ValidationUtils.validateIsEnglish("ml7889קר"));
164                 assertFalse(ValidationUtils.validateIsEnglish("ml7889文"));
165         }
166
167         @Test
168         public void removeDuplicateFromListTest() {
169                 List<String> tagsBefore = new ArrayList<>();
170                 tagsBefore.add("tag1");
171                 tagsBefore.add("tag7");
172                 tagsBefore.add("tag3");
173                 tagsBefore.add("tag4");
174                 tagsBefore.add("tag1");
175
176                 List<String> tagsAfter = new ArrayList<>();
177                 tagsAfter.add("tag1");
178                 tagsAfter.add("tag7");
179                 tagsAfter.add("tag3");
180                 tagsAfter.add("tag4");
181                 assertTrue(tagsAfter.containsAll(ValidationUtils.removeDuplicateFromList(tagsBefore)));
182                 tagsBefore = new ArrayList<>();
183                 tagsBefore.add("tag1");
184                 tagsBefore.add("tag7");
185                 tagsBefore.add("tag3");
186                 tagsBefore.add("tag4");
187                 tagsBefore.add("Tag1");
188
189                 tagsAfter = new ArrayList<>();
190                 tagsAfter.add("tag1");
191                 tagsAfter.add("tag7");
192                 tagsAfter.add("tag3");
193                 tagsAfter.add("tag4");
194                 tagsAfter.add("Tag1");
195                 assertTrue(tagsAfter.containsAll(ValidationUtils.removeDuplicateFromList(tagsBefore)));
196         }
197
198         @Test
199         public void validateTagLengthTest() {
200                 assertTrue(ValidationUtils.validateTagLength("fsdlfsdlkfjkljsdf"));
201                 // assertFalse(ValidationUtils.validateTagLength("ddddddddddddddddddddddsdfsddddddddddddddddddddddsdfs"));
202
203         }
204
205         @Test
206         public void validateTagListLengthTest() {
207                 assertTrue(ValidationUtils.validateTagListLength("fsdlfsdlkfjkljsdf,dsfsdfsdf".length()));
208                 StringBuilder sb = new StringBuilder();
209                 for (int i = 0; i <= 1024; i++) {
210                         sb.append("a");
211                 }
212                 assertFalse(ValidationUtils.validateTagListLength(sb.toString().length()));
213
214         }
215
216         @Test
217         public void validateDescriptionLengthTest() {
218                 assertTrue(ValidationUtils.validateDescriptionLength("fsdlfsdlkfjkljsddgfgdfgdfgdfgff"));
219                 StringBuilder sb = new StringBuilder();
220                 for (int i = 0; i <= 1024; i++) {
221                         sb.append("a");
222                 }
223                 assertFalse(ValidationUtils.validateDescriptionLength(sb.toString()));
224
225         }
226
227         @Test
228         public void validateVendorNameTest() {
229                 assertTrue(ValidationUtils.validateVendorName("fsdlfsdlk"));
230                 assertTrue(ValidationUtils.validateVendorName("fsdlfsdlk.sdsd;"));
231                 assertFalse(ValidationUtils.validateVendorName("sadf:"));
232                 assertFalse(ValidationUtils.validateVendorName("sadf/"));
233                 assertFalse(ValidationUtils.validateVendorName("sadf?"));
234         }
235
236         @Test
237         public void validateVendorNameLengthTest() {
238                 assertTrue(ValidationUtils.validateVendorNameLength("fsdlfsdlk.sdsd;"));
239                 assertFalse(ValidationUtils.validateVendorNameLength("ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddsdfs"));
240         }
241
242         @Test
243         public void validateVendorReleaseTest() {
244                 assertTrue(ValidationUtils.validateVendorRelease("fsdlfsdlk"));
245                 assertTrue(ValidationUtils.validateVendorRelease("fsdlfsdlk.sdsd;"));
246                 assertFalse(ValidationUtils.validateVendorRelease("sadf:"));
247                 assertFalse(ValidationUtils.validateVendorRelease("sadf/"));
248                 assertFalse(ValidationUtils.validateVendorRelease("sadf?"));
249         }
250
251         @Test
252         public void validateVendorReleaseLengthTest() {
253                 assertTrue(ValidationUtils.validateVendorReleaseLength("fsdlfsdlk.sdsd;"));
254                 assertFalse(ValidationUtils.validateVendorReleaseLength("ddddddddddddddddddddddsdfs"));
255         }
256
257         @Test
258         public void hasBeenCertifiedTest() {
259                 assertTrue(ValidationUtils.hasBeenCertified("1.2"));
260                 assertTrue(ValidationUtils.hasBeenCertified("2.2"));
261                 assertTrue(ValidationUtils.hasBeenCertified("1.0"));
262                 assertFalse(ValidationUtils.hasBeenCertified("0.1"));
263
264         }
265
266         @Test
267         public void normalizedNameTest() {
268                 String input = "MyNewSysName";
269                 String outputNorm = ValidationUtils.normaliseComponentName(input);
270                 String outputSys = ValidationUtils.convertToSystemName(input);
271                 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
272
273                 input = "My New Sys Name";
274                 outputNorm = ValidationUtils.normaliseComponentName(input);
275                 outputSys = ValidationUtils.convertToSystemName(input);
276                 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
277
278                 input = "My.New-Sys_Name";
279                 outputNorm = ValidationUtils.normaliseComponentName(input);
280                 outputSys = ValidationUtils.convertToSystemName(input);
281                 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
282
283                 input = "My..New-Sys_Name";
284                 outputNorm = ValidationUtils.normaliseComponentName(input);
285                 outputSys = ValidationUtils.convertToSystemName(input);
286                 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
287
288                 input = "My.New--sys_NAme";
289                 outputNorm = ValidationUtils.normaliseComponentName(input);
290                 outputSys = ValidationUtils.convertToSystemName(input);
291                 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
292
293                 input = "Layer 3 Connectivity";
294                 outputNorm = ValidationUtils.normaliseComponentName(input);
295                 outputSys = ValidationUtils.convertToSystemName(input);
296                 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
297
298                 input = "Layer 3 VPN";
299                 outputNorm = ValidationUtils.normaliseComponentName(input);
300                 outputSys = ValidationUtils.convertToSystemName(input);
301                 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
302
303                 input = "Layer-3      Connectivity";
304                 outputNorm = ValidationUtils.normaliseComponentName(input);
305                 outputSys = ValidationUtils.convertToSystemName(input);
306                 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
307
308                 input = "IP-connectivity";
309                 outputNorm = ValidationUtils.normaliseComponentName(input);
310                 outputSys = ValidationUtils.convertToSystemName(input);
311                 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
312
313         }
314
315         @Test
316         public void normalizeFileNameTest() {
317         assertEquals("too.jpeg", ValidationUtils.normalizeFileName("too.jpeg"));
318         assertEquals("too..jpeg", ValidationUtils.normalizeFileName("too..jpeg"));
319         assertEquals("too..jpeg", ValidationUtils.normalizeFileName("t*o:o..jpe<>g"));
320         assertEquals("goo.too..jpeg", ValidationUtils.normalizeFileName("goo.t*o:o..jpe<>g"));
321         assertEquals("goo.too..jpeg", ValidationUtils.normalizeFileName("   goo.t*o:o..jpe<>g  "));
322         assertEquals("goo-too-mo.jpeg", ValidationUtils.normalizeFileName("goo   too----mo.jpeg"));
323         assertEquals("goo-too-mo.jpeg", ValidationUtils.normalizeFileName(".\\..\\goo   too----mo.jpeg"));
324         assertEquals("goo-too-mo.jpeg", ValidationUtils.normalizeFileName("__--goo   too----mo.jpeg--__"));
325         assertEquals("goo-too-mo.jpeg", ValidationUtils.normalizeFileName("_ -goo   too----mo.jpeg _--  _-"));
326
327         }
328
329         @Test
330         public void validateUrlTest() {
331                 assertTrue(ValidationUtils.validateUrl("http://google.co.il/"));
332                 assertTrue(ValidationUtils.validateUrl("https://google.co.il/"));
333                 assertTrue(ValidationUtils.validateUrl("https://google.co.il/go/go"));
334                 assertTrue(ValidationUtils.validateUrl("https://google.co.il/go/go"));
335                 assertTrue(ValidationUtils.validateUrl("http://google.co.il/go/go"));
336                 assertFalse(ValidationUtils.validateUrl("google.co.il/go/go"));
337                 assertFalse(ValidationUtils.validateUrl("https://google.co.il/go/go!"));
338                 assertFalse(ValidationUtils.validateUrl("https://g;oogle.co.il/go/go"));
339
340         }
341
342         @Test
343         public void normalizeArtifactLabel() {
344                 assertEquals(ValidationUtils.normalizeArtifactLabel("Test--3    134++"), "test3134");
345         }
346
347         @Test
348         public void cleanArtifactLabel() {
349                 assertEquals(ValidationUtils.cleanArtifactDisplayName("Test--3    134++"), "Test-3 134+");
350         }
351
352         @Test
353         public void validateArtifactLabel() {
354                 assertTrue(ValidationUtils.validateArtifactLabel("dsflkjsdf345JKL"));
355                 assertTrue(ValidationUtils.validateArtifactLabel("dsfsd lkj  "));
356                 assertTrue(ValidationUtils.validateArtifactLabel("sdfdsf---+"));
357                 assertTrue(ValidationUtils.validateArtifactLabel("   -  +"));
358                 assertFalse(ValidationUtils.validateArtifactLabel("sfsdfhkj111="));
359                 assertFalse(ValidationUtils.validateArtifactLabel("sfsdfhkj111=dfsf%"));
360                 assertFalse(ValidationUtils.validateArtifactLabel("sdfsdfljghgklsdg908*"));
361
362         }
363
364         @Test
365         public void validateCategoryNameFormatTest() {
366                 assertTrue(ValidationUtils.validateCategoryDisplayNameFormat("Net           ele-2_3#456&+.'=:@@@@@#####"));
367                 // this will fail at length
368                 assertTrue(ValidationUtils.validateCategoryDisplayNameFormat(null));
369                 // * is not allowed
370                 assertFalse(ValidationUtils.validateCategoryDisplayNameFormat("Net ele-2_3#456&*+.'=:@"));
371                 assertFalse(ValidationUtils.validateCategoryDisplayNameFormat(""));
372                 // should start with alphanumeric
373                 assertFalse(ValidationUtils.validateCategoryDisplayNameFormat("#abcdef"));
374         }
375
376         @Test
377         public void validateCategoryNameLengthTest() {
378                 assertTrue(ValidationUtils.validateCategoryDisplayNameLength("Netele-2_3#456&+.'=:@@@@@"));
379                 assertTrue(ValidationUtils.validateCategoryDisplayNameLength("Nete"));
380                 assertFalse(ValidationUtils.validateCategoryDisplayNameLength("Netele-2_3#456&+.'=:@@@@@1"));
381                 assertFalse(ValidationUtils.validateCategoryDisplayNameLength("Ne"));
382                 assertFalse(ValidationUtils.validateCategoryDisplayNameLength(null));
383         }
384
385         @Test
386         public void normalizeCategoryNameTest() {
387                 assertEquals("NeteLE-2_3 of #456&+. & Goal a Abc'=:@ AT & T", ValidationUtils.normalizeCategoryName4Display(
388                                 "   neteLE---2___3 OF ###456&&&+++...     aNd goal A abc'''==::@@@@@     AT and T  "));
389                 assertEquals("The Bank of America", ValidationUtils.normalizeCategoryName4Display("The Bank OF America"));
390         }
391
392         @Test
393         public void normalizeCategoryLabelTest() {
394                 assertEquals("netele-2_3 of #456&+.&goal a abc'=:@ at&t",
395                                 ValidationUtils.normalizeCategoryName4Uniqueness("NeteLE-2_3 of #456&+.&Goal a Abc'=:@ AT&T"));
396         }
397
398         /*
399          * Validation utils end
400          */
401
402         /*
403          * General utility start
404          */
405
406         @Test
407         public void validateFileExtension() {
408                 assertEquals(Constants.EMPTY_STRING, GeneralUtility.getFilenameExtension("lalatru"));
409                 assertEquals(Constants.EMPTY_STRING, GeneralUtility.getFilenameExtension("aa."));
410                 assertEquals(Constants.EMPTY_STRING, GeneralUtility.getFilenameExtension(null));
411                 assertEquals("yaml", GeneralUtility.getFilenameExtension("lala.tru.yaml"));
412                 assertEquals("txt", GeneralUtility.getFilenameExtension("kuku.txt"));
413         }
414
415         @Test
416         public void yamlTest() {
417
418                 log.debug("\"kuku\"");
419                 DumperOptions options = new DumperOptions();
420                 // options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
421                 options.setDefaultScalarStyle(DumperOptions.ScalarStyle.FOLDED);
422                 Yaml yaml = new Yaml(options);
423
424                 Map<String, Object> parameters = new HashMap<>();
425                 parameters.put("k1", "val");
426                 parameters.put("k2", "\"val\"");
427
428                 String str = yaml.dump(parameters);
429                 log.debug(str);
430         }
431         
432         @Test
433         public void yamlValidTest() {
434
435                 StringBuilder sb = new StringBuilder();
436                 sb.append("key: \"!@;/?:&=+$,_.~*'()[]\"");
437                 byte[] payload = sb.toString().getBytes();
438
439                 YamlToObjectConverter yamlToObjectConverter = new YamlToObjectConverter();
440
441                 assertTrue(yamlToObjectConverter.isValidYaml(payload));
442         }
443
444         @Test
445         public void testRemoveOnlyHtmlTags() {
446
447                 assertEquals("gooboo", HtmlCleaner.stripHtml("<b>goo<b></b></b><b>boo</b>"));
448                 /*String str = HtmlCleaner.stripHtml("<esofer><b>goo<b></b><</b><b>boo</b>");*/
449
450                 String stripHtmlAndEscape = HtmlCleaner.stripHtml("<esofer><b>goo<b></b><</b><b>boo</b>");
451                 assertEquals("<esofer>goo<boo", stripHtmlAndEscape);
452
453                 stripHtmlAndEscape = HtmlCleaner.stripHtml("<esofer><b>goo<b></b><</b><b>boo</b>", true);
454                 assertEquals("&lt;esofer&gt;goo&lt;boo", stripHtmlAndEscape);
455
456                 stripHtmlAndEscape = HtmlCleaner.stripHtml("<esofer><b>goo<b></b><&</b><b>boo</b>dvc&", true);
457                 assertEquals("&lt;esofer&gt;goo&lt;&amp;boodvc&amp;", stripHtmlAndEscape);
458
459                 assertEquals("esofer&gt;&gt;&lt;&lt;", HtmlCleaner.stripHtml("esofer>><<", true));
460                 assertEquals("esofer>><<", HtmlCleaner.stripHtml("esofer>><<", false));
461
462                 assertEquals("<esofer1>><<esofer2>", HtmlCleaner.stripHtml("<esofer1>><<esofer2>"));
463
464                 assertEquals("<esofer1 a= b>><<esofer2>", HtmlCleaner.stripHtml("<esofer1 a= b><h1>><<esofer2><br>"));
465
466                 assertEquals("&lt;esofer1 a= 'b'&gt;&gt;&lt;&lt;esofer2&gt;",
467                                 HtmlCleaner.stripHtml("<esofer1 a= 'b'>><<esofer2>", true));
468                 assertEquals("<esofer1 a= 'b'>><<esofer2>", HtmlCleaner.stripHtml("<esofer1 a= 'b'>><H6><<esofer2>"));
469
470                 assertEquals("<esofer1 a= b>><<esofer2>", HtmlCleaner.stripHtml("<esofer1 a= b>><<esofer2>"));
471
472                 assertEquals("<esofer1 sd sa= b>><<esofer2>", HtmlCleaner.stripHtml("<esofer1 sd sa= b>><<esofer2>"));
473
474                 assertEquals("&lt;esofer1 sd sa= b&gt;&gt;&lt;&lt;esofer2&gt;",
475                                 HtmlCleaner.stripHtml("<esofer1 sd sa= b>><<esofer2>", true));
476                 assertEquals("<esofer1 sd sa= b>><<esofer2>", HtmlCleaner.stripHtml("<esofer1 sd sa= b>><<esofer2>", false));
477                 assertEquals("&lt;esofer1 sd sa= b&gt;&gt;&lt;&lt;esofer2&gt;",
478                                 HtmlCleaner.stripHtml("<esofer1 sd sa= b>><<esofer2>", true));
479                 assertEquals("<esofer1 sd sa= b>><<esofer2>",
480                                 HtmlCleaner.stripHtml("<esofer1 sd sa= b>><br><H1><<esofer2>", false));
481                 assertEquals("&lt;esofer&gt;goo&lt;&amp;boodvc&amp;",
482                                 HtmlCleaner.stripHtml("<esofer><b>goo<b></b><&</b><b>boo</b>dvc&", true));
483                 assertEquals("<esofer>goo<&boodvc&", HtmlCleaner.stripHtml("<esofer><b>goo<b></b><&</b><b>boo</b>dvc&", false));
484                 assertEquals("<<<>>>;\"", HtmlCleaner.stripHtml("<<<>>>;\"", false));
485                 assertEquals("&lt;&lt;&lt;&gt;&gt;&gt;;&quot;", HtmlCleaner.stripHtml("<<<>>>;\"", true));
486                 assertEquals("<<<>>>;\"", HtmlCleaner.stripHtml("<<<>>>;\"", false));
487                 assertEquals("abc ab a", HtmlCleaner.stripHtml("abc ab a", true));
488                 assertEquals("abc ab a", HtmlCleaner.stripHtml("abc ab a", false));
489                 assertEquals("< esofer1 sd &<>sa= b>><<esofer2>",
490                                 HtmlCleaner.stripHtml("< esofer1 sd &<>sa= b>><br><H1><<esofer2>", false));
491                 assertEquals("sa= b>><<esofer2>", HtmlCleaner.stripHtml("<br sd &<>sa= b>><br><H1><<esofer2>", false));
492                 assertEquals("< br sd &<>sa= b>><<esofer2>",
493                                 HtmlCleaner.stripHtml("< br sd &<>sa= b>><br><H1><<esofer2>", false));
494                 assertEquals("sa= b>><<esofer2>", HtmlCleaner.stripHtml("</br sd &<>sa= b>><br><H1><<esofer2>", false));
495                 assertEquals("sa= b>><<esofer2>", HtmlCleaner.stripHtml("<br sd &</>sa= b>><br><H1><<esofer2>", false));
496
497         }
498
499         /*
500          * General utility end
501          */
502 }