2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.openecomp.sdc.common.test;
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;
34 import java.util.ArrayList;
35 import java.util.HashMap;
36 import java.util.List;
39 import static org.junit.Assert.*;
41 public class CommonUtilsTest {
42 private static Logger log = LoggerFactory.getLogger(CommonUtilsTest.class.getName());
45 * Validation utils start
48 public void testValidateServiceName() {
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"));
65 public void validateServiceNameLengthTest() {
66 assertTrue(ValidationUtils.validateComponentNameLength("fsdlfsdlksdsd;"));
67 // assertFalse(ValidationUtils.validateComponentNameLength("ddddddddddddddddddddddsdfsddddddddddddddddddddddsdfs"));
71 public void testValidateIcon() {
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"));
88 public void testValidateIconLength() {
89 assertTrue(ValidationUtils.validateIconLength("fsdlfsdlksdsd"));
90 assertFalse(ValidationUtils.validateIconLength("ddddddddddddddddddddddsdfsddddddddddddddddddddddsdfs"));
94 public void testValidateProjectCode() {
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"));
107 public void testValidateProjectCodeLength() {
109 assertTrue(ValidationUtils.validateProjectCodeLegth("00000"));
110 assertFalse(ValidationUtils.validateProjectCodeLegth("ddddddddddddddddddddddsdfsddddddddddddddddddddddsdfs"));
115 public void testValidateContactId() {
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"));
127 public void testRemoveHtml() {
129 assertEquals("gooboo", ValidationUtils.removeHtmlTags("<b>goo<b></b></b><b>boo</b>"));
130 assertEquals("goo<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"));
136 public void testnormaliseWhitespace() {
138 assertEquals("goo boo", ValidationUtils.normaliseWhitespace("goo boo"));
139 assertEquals("goo boo ", ValidationUtils.normaliseWhitespace("goo boo "));
140 assertEquals("goo boo", ValidationUtils.normaliseWhitespace("goo boo"));
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"));
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"));
161 public void validateEnglishTest() {
162 assertTrue(ValidationUtils.validateIsEnglish("ml7889"));
163 assertFalse(ValidationUtils.validateIsEnglish("ml7889קר"));
164 assertFalse(ValidationUtils.validateIsEnglish("ml7889文"));
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");
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");
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)));
199 public void validateTagLengthTest() {
200 assertTrue(ValidationUtils.validateTagLength("fsdlfsdlkfjkljsdf"));
201 // assertFalse(ValidationUtils.validateTagLength("ddddddddddddddddddddddsdfsddddddddddddddddddddddsdfs"));
206 public void validateTagListLengthTest() {
207 assertTrue(ValidationUtils.validateTagListLength("fsdlfsdlkfjkljsdf,dsfsdfsdf".length()));
208 StringBuilder sb = new StringBuilder();
209 for (int i = 0; i <= 1024; i++) {
212 assertFalse(ValidationUtils.validateTagListLength(sb.toString().length()));
217 public void validateDescriptionLengthTest() {
218 assertTrue(ValidationUtils.validateDescriptionLength("fsdlfsdlkfjkljsddgfgdfgdfgdfgff"));
219 StringBuilder sb = new StringBuilder();
220 for (int i = 0; i <= 1024; i++) {
223 assertFalse(ValidationUtils.validateDescriptionLength(sb.toString()));
228 public void validateStringNotEmptyTest() {
229 assertTrue(ValidationUtils.validateStringNotEmpty("fsdlfsdlk"));
230 assertFalse(ValidationUtils.validateStringNotEmpty(""));
231 assertFalse(!ValidationUtils.validateStringNotEmpty(" "));
232 assertFalse(!ValidationUtils.validateStringNotEmpty(" "));
236 public void validateVendorNameTest() {
237 assertTrue(ValidationUtils.validateVendorName("fsdlfsdlk"));
238 assertTrue(ValidationUtils.validateVendorName("fsdlfsdlk.sdsd;"));
239 assertFalse(ValidationUtils.validateVendorName("sadf:"));
240 assertFalse(ValidationUtils.validateVendorName("sadf/"));
241 assertFalse(ValidationUtils.validateVendorName("sadf?"));
245 public void validateVendorNameLengthTest() {
246 assertTrue(ValidationUtils.validateVendorNameLength("fsdlfsdlk.sdsd;"));
247 assertFalse(ValidationUtils.validateVendorNameLength("ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddsdfs"));
251 public void validateVendorReleaseTest() {
252 assertTrue(ValidationUtils.validateVendorRelease("fsdlfsdlk"));
253 assertTrue(ValidationUtils.validateVendorRelease("fsdlfsdlk.sdsd;"));
254 assertFalse(ValidationUtils.validateVendorRelease("sadf:"));
255 assertFalse(ValidationUtils.validateVendorRelease("sadf/"));
256 assertFalse(ValidationUtils.validateVendorRelease("sadf?"));
260 public void validateVendorReleaseLengthTest() {
261 assertTrue(ValidationUtils.validateVendorReleaseLength("fsdlfsdlk.sdsd;"));
262 assertFalse(ValidationUtils.validateVendorReleaseLength("ddddddddddddddddddddddsdfs"));
266 public void hasBeenCertifiedTest() {
267 assertTrue(ValidationUtils.hasBeenCertified("1.2"));
268 assertTrue(ValidationUtils.hasBeenCertified("2.2"));
269 assertTrue(ValidationUtils.hasBeenCertified("1.0"));
270 assertFalse(ValidationUtils.hasBeenCertified("0.1"));
275 public void normalizedNameTest() {
276 String input = "MyNewSysName";
277 String outputNorm = ValidationUtils.normaliseComponentName(input);
278 String outputSys = ValidationUtils.convertToSystemName(input);
279 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
281 input = "My New Sys Name";
282 outputNorm = ValidationUtils.normaliseComponentName(input);
283 outputSys = ValidationUtils.convertToSystemName(input);
284 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
286 input = "My.New-Sys_Name";
287 outputNorm = ValidationUtils.normaliseComponentName(input);
288 outputSys = ValidationUtils.convertToSystemName(input);
289 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
291 input = "My..New-Sys_Name";
292 outputNorm = ValidationUtils.normaliseComponentName(input);
293 outputSys = ValidationUtils.convertToSystemName(input);
294 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
296 input = "My.New--sys_NAme";
297 outputNorm = ValidationUtils.normaliseComponentName(input);
298 outputSys = ValidationUtils.convertToSystemName(input);
299 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
301 input = "Layer 3 Connectivity";
302 outputNorm = ValidationUtils.normaliseComponentName(input);
303 outputSys = ValidationUtils.convertToSystemName(input);
304 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
306 input = "Layer 3 VPN";
307 outputNorm = ValidationUtils.normaliseComponentName(input);
308 outputSys = ValidationUtils.convertToSystemName(input);
309 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
311 input = "Layer-3 Connectivity";
312 outputNorm = ValidationUtils.normaliseComponentName(input);
313 outputSys = ValidationUtils.convertToSystemName(input);
314 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
316 input = "IP-connectivity";
317 outputNorm = ValidationUtils.normaliseComponentName(input);
318 outputSys = ValidationUtils.convertToSystemName(input);
319 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
324 public void normalizeFileNameTest() {
325 assertEquals("too.jpeg", ValidationUtils.normalizeFileName("too.jpeg"));
326 assertEquals("too..jpeg", ValidationUtils.normalizeFileName("too..jpeg"));
327 assertEquals("too..jpeg", ValidationUtils.normalizeFileName("t*o:o..jpe<>g"));
328 assertEquals("goo.too..jpeg", ValidationUtils.normalizeFileName("goo.t*o:o..jpe<>g"));
329 assertEquals("goo.too..jpeg", ValidationUtils.normalizeFileName(" goo.t*o:o..jpe<>g "));
330 assertEquals("goo-too-mo.jpeg", ValidationUtils.normalizeFileName("goo too----mo.jpeg"));
331 assertEquals("goo-too-mo.jpeg", ValidationUtils.normalizeFileName(".\\..\\goo too----mo.jpeg"));
332 assertEquals("goo-too-mo.jpeg", ValidationUtils.normalizeFileName("__--goo too----mo.jpeg--__"));
333 assertEquals("goo-too-mo.jpeg", ValidationUtils.normalizeFileName("_ -goo too----mo.jpeg _-- _-"));
338 public void validateUrlTest() {
339 assertTrue(ValidationUtils.validateUrl("http://google.co.il/"));
340 assertTrue(ValidationUtils.validateUrl("https://google.co.il/"));
341 assertTrue(ValidationUtils.validateUrl("https://google.co.il/go/go"));
342 assertTrue(ValidationUtils.validateUrl("https://google.co.il/go/go"));
343 assertTrue(ValidationUtils.validateUrl("http://google.co.il/go/go"));
344 assertFalse(ValidationUtils.validateUrl("google.co.il/go/go"));
345 assertFalse(ValidationUtils.validateUrl("https://google.co.il/go/go!"));
346 assertFalse(ValidationUtils.validateUrl("https://g;oogle.co.il/go/go"));
351 public void normalizeArtifactLabel() {
352 assertEquals(ValidationUtils.normalizeArtifactLabel("Test--3 134++"), "test3134");
356 public void cleanArtifactLabel() {
357 assertEquals(ValidationUtils.cleanArtifactDisplayName("Test--3 134++"), "Test-3 134+");
361 public void validateArtifactLabel() {
362 assertTrue(ValidationUtils.validateArtifactLabel("dsflkjsdf345JKL"));
363 assertTrue(ValidationUtils.validateArtifactLabel("dsfsd lkj "));
364 assertTrue(ValidationUtils.validateArtifactLabel("sdfdsf---+"));
365 assertTrue(ValidationUtils.validateArtifactLabel(" - +"));
366 assertFalse(ValidationUtils.validateArtifactLabel("sfsdfhkj111="));
367 assertFalse(ValidationUtils.validateArtifactLabel("sfsdfhkj111=dfsf%"));
368 assertFalse(ValidationUtils.validateArtifactLabel("sdfsdfljghgklsdg908*"));
373 public void validateCategoryNameFormatTest() {
374 assertTrue(ValidationUtils.validateCategoryDisplayNameFormat("Net ele-2_3#456&+.'=:@@@@@#####"));
375 // this will fail at length
376 assertTrue(ValidationUtils.validateCategoryDisplayNameFormat(null));
378 assertFalse(ValidationUtils.validateCategoryDisplayNameFormat("Net ele-2_3#456&*+.'=:@"));
379 assertFalse(ValidationUtils.validateCategoryDisplayNameFormat(""));
380 // should start with alphanumeric
381 assertFalse(ValidationUtils.validateCategoryDisplayNameFormat("#abcdef"));
385 public void validateCategoryNameLengthTest() {
386 assertTrue(ValidationUtils.validateCategoryDisplayNameLength("Netele-2_3#456&+.'=:@@@@@"));
387 assertTrue(ValidationUtils.validateCategoryDisplayNameLength("Nete"));
388 assertFalse(ValidationUtils.validateCategoryDisplayNameLength("Netele-2_3#456&+.'=:@@@@@1"));
389 assertFalse(ValidationUtils.validateCategoryDisplayNameLength("Ne"));
390 assertFalse(ValidationUtils.validateCategoryDisplayNameLength(null));
394 public void normalizeCategoryNameTest() {
395 assertEquals("NeteLE-2_3 of #456&+. & Goal a Abc'=:@ AT & T", ValidationUtils.normalizeCategoryName4Display(
396 " neteLE---2___3 OF ###456&&&+++... aNd goal A abc'''==::@@@@@ AT and T "));
397 assertEquals("The Bank of America", ValidationUtils.normalizeCategoryName4Display("The Bank OF America"));
401 public void normalizeCategoryLabelTest() {
402 assertEquals("netele-2_3 of #456&+.&goal a abc'=:@ at&t",
403 ValidationUtils.normalizeCategoryName4Uniqueness("NeteLE-2_3 of #456&+.&Goal a Abc'=:@ AT&T"));
407 * Validation utils end
411 * General utility start
415 public void validateFileExtension() {
416 assertEquals(Constants.EMPTY_STRING, GeneralUtility.getFilenameExtension("lalatru"));
417 assertEquals(Constants.EMPTY_STRING, GeneralUtility.getFilenameExtension("aa."));
418 assertEquals(Constants.EMPTY_STRING, GeneralUtility.getFilenameExtension(null));
419 assertEquals("yaml", GeneralUtility.getFilenameExtension("lala.tru.yaml"));
420 assertEquals("txt", GeneralUtility.getFilenameExtension("kuku.txt"));
424 public void yamlTest() {
426 log.debug("\"kuku\"");
427 DumperOptions options = new DumperOptions();
428 // options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
429 options.setDefaultScalarStyle(DumperOptions.ScalarStyle.FOLDED);
430 Yaml yaml = new Yaml(options);
432 Map<String, Object> parameters = new HashMap<>();
433 parameters.put("k1", "val");
434 parameters.put("k2", "\"val\"");
436 String str = yaml.dump(parameters);
441 public void yamlValidTest() {
443 StringBuilder sb = new StringBuilder();
444 sb.append("key: \"!@;/?:&=+$,_.~*'()[]\"");
445 byte[] payload = sb.toString().getBytes();
447 YamlToObjectConverter yamlToObjectConverter = new YamlToObjectConverter();
449 assertTrue(yamlToObjectConverter.isValidYaml(payload));
453 public void testRemoveOnlyHtmlTags() {
455 assertEquals("gooboo", HtmlCleaner.stripHtml("<b>goo<b></b></b><b>boo</b>"));
456 /*String str = HtmlCleaner.stripHtml("<esofer><b>goo<b></b><</b><b>boo</b>");*/
458 String stripHtmlAndEscape = HtmlCleaner.stripHtml("<esofer><b>goo<b></b><</b><b>boo</b>");
459 assertEquals("<esofer>goo<boo", stripHtmlAndEscape);
461 stripHtmlAndEscape = HtmlCleaner.stripHtml("<esofer><b>goo<b></b><</b><b>boo</b>", true);
462 assertEquals("<esofer>goo<boo", stripHtmlAndEscape);
464 stripHtmlAndEscape = HtmlCleaner.stripHtml("<esofer><b>goo<b></b><&</b><b>boo</b>dvc&", true);
465 assertEquals("<esofer>goo<&boodvc&", stripHtmlAndEscape);
467 assertEquals("esofer>><<", HtmlCleaner.stripHtml("esofer>><<", true));
468 assertEquals("esofer>><<", HtmlCleaner.stripHtml("esofer>><<", false));
470 assertEquals("<esofer1>><<esofer2>", HtmlCleaner.stripHtml("<esofer1>><<esofer2>"));
472 assertEquals("<esofer1 a= b>><<esofer2>", HtmlCleaner.stripHtml("<esofer1 a= b><h1>><<esofer2><br>"));
474 assertEquals("<esofer1 a= 'b'>><<esofer2>",
475 HtmlCleaner.stripHtml("<esofer1 a= 'b'>><<esofer2>", true));
476 assertEquals("<esofer1 a= 'b'>><<esofer2>", HtmlCleaner.stripHtml("<esofer1 a= 'b'>><H6><<esofer2>"));
478 assertEquals("<esofer1 a= b>><<esofer2>", HtmlCleaner.stripHtml("<esofer1 a= b>><<esofer2>"));
480 assertEquals("<esofer1 sd sa= b>><<esofer2>", HtmlCleaner.stripHtml("<esofer1 sd sa= b>><<esofer2>"));
482 assertEquals("<esofer1 sd sa= b>><<esofer2>",
483 HtmlCleaner.stripHtml("<esofer1 sd sa= b>><<esofer2>", true));
484 assertEquals("<esofer1 sd sa= b>><<esofer2>", HtmlCleaner.stripHtml("<esofer1 sd sa= b>><<esofer2>", false));
485 assertEquals("<esofer1 sd sa= b>><<esofer2>",
486 HtmlCleaner.stripHtml("<esofer1 sd sa= b>><<esofer2>", true));
487 assertEquals("<esofer1 sd sa= b>><<esofer2>",
488 HtmlCleaner.stripHtml("<esofer1 sd sa= b>><br><H1><<esofer2>", false));
489 assertEquals("<esofer>goo<&boodvc&",
490 HtmlCleaner.stripHtml("<esofer><b>goo<b></b><&</b><b>boo</b>dvc&", true));
491 assertEquals("<esofer>goo<&boodvc&", HtmlCleaner.stripHtml("<esofer><b>goo<b></b><&</b><b>boo</b>dvc&", false));
492 assertEquals("<<<>>>;\"", HtmlCleaner.stripHtml("<<<>>>;\"", false));
493 assertEquals("<<<>>>;"", HtmlCleaner.stripHtml("<<<>>>;\"", true));
494 assertEquals("<<<>>>;\"", HtmlCleaner.stripHtml("<<<>>>;\"", false));
495 assertEquals("abc ab a", HtmlCleaner.stripHtml("abc ab a", true));
496 assertEquals("abc ab a", HtmlCleaner.stripHtml("abc ab a", false));
497 assertEquals("< esofer1 sd &<>sa= b>><<esofer2>",
498 HtmlCleaner.stripHtml("< esofer1 sd &<>sa= b>><br><H1><<esofer2>", false));
499 assertEquals("sa= b>><<esofer2>", HtmlCleaner.stripHtml("<br sd &<>sa= b>><br><H1><<esofer2>", false));
500 assertEquals("< br sd &<>sa= b>><<esofer2>",
501 HtmlCleaner.stripHtml("< br sd &<>sa= b>><br><H1><<esofer2>", false));
502 assertEquals("sa= b>><<esofer2>", HtmlCleaner.stripHtml("</br sd &<>sa= b>><br><H1><<esofer2>", false));
503 assertEquals("sa= b>><<esofer2>", HtmlCleaner.stripHtml("<br sd &</>sa= b>><br><H1><<esofer2>", false));
508 * General utility end