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 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?"));
237 public void validateVendorNameLengthTest() {
238 assertTrue(ValidationUtils.validateVendorNameLength("fsdlfsdlk.sdsd;"));
239 assertFalse(ValidationUtils.validateVendorNameLength("ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddsdfs"));
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?"));
252 public void validateVendorReleaseLengthTest() {
253 assertTrue(ValidationUtils.validateVendorReleaseLength("fsdlfsdlk.sdsd;"));
254 assertFalse(ValidationUtils.validateVendorReleaseLength("ddddddddddddddddddddddsdfs"));
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"));
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);
273 input = "My New Sys Name";
274 outputNorm = ValidationUtils.normaliseComponentName(input);
275 outputSys = ValidationUtils.convertToSystemName(input);
276 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
278 input = "My.New-Sys_Name";
279 outputNorm = ValidationUtils.normaliseComponentName(input);
280 outputSys = ValidationUtils.convertToSystemName(input);
281 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
283 input = "My..New-Sys_Name";
284 outputNorm = ValidationUtils.normaliseComponentName(input);
285 outputSys = ValidationUtils.convertToSystemName(input);
286 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
288 input = "My.New--sys_NAme";
289 outputNorm = ValidationUtils.normaliseComponentName(input);
290 outputSys = ValidationUtils.convertToSystemName(input);
291 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
293 input = "Layer 3 Connectivity";
294 outputNorm = ValidationUtils.normaliseComponentName(input);
295 outputSys = ValidationUtils.convertToSystemName(input);
296 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
298 input = "Layer 3 VPN";
299 outputNorm = ValidationUtils.normaliseComponentName(input);
300 outputSys = ValidationUtils.convertToSystemName(input);
301 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
303 input = "Layer-3 Connectivity";
304 outputNorm = ValidationUtils.normaliseComponentName(input);
305 outputSys = ValidationUtils.convertToSystemName(input);
306 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
308 input = "IP-connectivity";
309 outputNorm = ValidationUtils.normaliseComponentName(input);
310 outputSys = ValidationUtils.convertToSystemName(input);
311 log.debug("{} <> {} <> {}", input, outputNorm, outputSys);
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 _-- _-"));
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"));
343 public void normalizeArtifactLabel() {
344 assertEquals(ValidationUtils.normalizeArtifactLabel("Test--3 134++"), "test3134");
348 public void cleanArtifactLabel() {
349 assertEquals(ValidationUtils.cleanArtifactDisplayName("Test--3 134++"), "Test-3 134+");
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*"));
365 public void validateCategoryNameFormatTest() {
366 assertTrue(ValidationUtils.validateCategoryDisplayNameFormat("Net ele-2_3#456&+.'=:@@@@@#####"));
367 // this will fail at length
368 assertTrue(ValidationUtils.validateCategoryDisplayNameFormat(null));
370 assertFalse(ValidationUtils.validateCategoryDisplayNameFormat("Net ele-2_3#456&*+.'=:@"));
371 assertFalse(ValidationUtils.validateCategoryDisplayNameFormat(""));
372 // should start with alphanumeric
373 assertFalse(ValidationUtils.validateCategoryDisplayNameFormat("#abcdef"));
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));
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"));
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"));
399 * Validation utils end
403 * General utility start
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"));
416 public void yamlTest() {
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);
424 Map<String, Object> parameters = new HashMap<>();
425 parameters.put("k1", "val");
426 parameters.put("k2", "\"val\"");
428 String str = yaml.dump(parameters);
433 public void yamlValidTest() {
435 StringBuilder sb = new StringBuilder();
436 sb.append("key: \"!@;/?:&=+$,_.~*'()[]\"");
437 byte[] payload = sb.toString().getBytes();
439 YamlToObjectConverter yamlToObjectConverter = new YamlToObjectConverter();
441 assertTrue(yamlToObjectConverter.isValidYaml(payload));
445 public void testRemoveOnlyHtmlTags() {
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>");*/
450 String stripHtmlAndEscape = HtmlCleaner.stripHtml("<esofer><b>goo<b></b><</b><b>boo</b>");
451 assertEquals("<esofer>goo<boo", stripHtmlAndEscape);
453 stripHtmlAndEscape = HtmlCleaner.stripHtml("<esofer><b>goo<b></b><</b><b>boo</b>", true);
454 assertEquals("<esofer>goo<boo", stripHtmlAndEscape);
456 stripHtmlAndEscape = HtmlCleaner.stripHtml("<esofer><b>goo<b></b><&</b><b>boo</b>dvc&", true);
457 assertEquals("<esofer>goo<&boodvc&", stripHtmlAndEscape);
459 assertEquals("esofer>><<", HtmlCleaner.stripHtml("esofer>><<", true));
460 assertEquals("esofer>><<", HtmlCleaner.stripHtml("esofer>><<", false));
462 assertEquals("<esofer1>><<esofer2>", HtmlCleaner.stripHtml("<esofer1>><<esofer2>"));
464 assertEquals("<esofer1 a= b>><<esofer2>", HtmlCleaner.stripHtml("<esofer1 a= b><h1>><<esofer2><br>"));
466 assertEquals("<esofer1 a= 'b'>><<esofer2>",
467 HtmlCleaner.stripHtml("<esofer1 a= 'b'>><<esofer2>", true));
468 assertEquals("<esofer1 a= 'b'>><<esofer2>", HtmlCleaner.stripHtml("<esofer1 a= 'b'>><H6><<esofer2>"));
470 assertEquals("<esofer1 a= b>><<esofer2>", HtmlCleaner.stripHtml("<esofer1 a= b>><<esofer2>"));
472 assertEquals("<esofer1 sd sa= b>><<esofer2>", HtmlCleaner.stripHtml("<esofer1 sd sa= b>><<esofer2>"));
474 assertEquals("<esofer1 sd sa= b>><<esofer2>",
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("<esofer1 sd sa= b>><<esofer2>",
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("<esofer>goo<&boodvc&",
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("<<<>>>;"", 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));
500 * General utility end