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