package org.ovirt.engine.core.common.utils;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.regex.Pattern;
import org.junit.Test;
public class ValidationUtilsTest {
@Test
public void testcontainsIlegalCharacters() {
assertPatternMatches("Valid strings: ", ValidationUtils.NO_SPECIAL_CHARACTERS, "www_redhat_com", "127001", "www_REDHAT_1");
assertPatternDoesNotMatch("Invalid strings: ", ValidationUtils.NO_SPECIAL_CHARACTERS, "www.redhatcom", "me@localhost", "no/worries");
}
@Test
public void testIsInvalidHostname() {
String[] straValidHosts =
new String[] { "blahblah", "www.redhat.com", "www.rhn.redhat.com", "127.0.0.1",
"1::2", "1:0002:34:4:5:6:7:8" };
String[] straInvalidHosts =
new String[] { "www.redhat#com", "123/456", "www@redhat.com", "www.řhň.řěďháť.čőm", "你好世界",
"שלוםעולם" };
for (String s : straValidHosts) {
assertTrue("Valid host name: " + s, ValidationUtils.validHostname(s));
}
for (String s : straInvalidHosts) {
assertTrue("Invalid host name: " + s, !ValidationUtils.validHostname(s));
}
}
@Test
public void testTrimmingWhitespaces() {
assertPatternMatches("Valid string (no trimming whitespaces): ", ValidationUtils.NO_TRIMMING_WHITE_SPACES_PATTERN, "", "aoeu", "a o e u ř", "%2123 o ^ ooe#");
assertPatternDoesNotMatch("Invalid string (trimming whitespaces): ", ValidationUtils.NO_TRIMMING_WHITE_SPACES_PATTERN, " ", " aoeu", "a o e u ř ", " %2123 o ^ ooe##", " aoeu ");
}
@Test
public void validUri() {
assertTrue(ValidationUtils.validUri("a://asdasd:21"));
assertTrue(ValidationUtils.validUri("a://asdasd"));
assertTrue(ValidationUtils.validUri("asdasd:21"));
assertTrue(ValidationUtils.validUri("asdasd"));
assertTrue(ValidationUtils.validUri("1.2.3.4"));
assertFalse(ValidationUtils.validUri("://asdasd:12"));
assertFalse(ValidationUtils.validUri("asd asd"));
}
@Test
public void testValidIsoPath() {
assertPatternMatches("Valid isoPath: ", ValidationUtils.ISO_SUFFIX_PATTERN, "", "foo.iso", "RHEVM-123456-tools.iso");
assertPatternDoesNotMatch("Invalid isoPath: ", ValidationUtils.ISO_SUFFIX_PATTERN, "x", "sysprep.vfd", "disk.ISO");
}
private void assertPatternMatches(String message, String pattern, String... validStrings) {
for (String s : validStrings) {
assertTrue(message + s, Pattern.matches(pattern, s));
}
}
private void assertPatternDoesNotMatch(String message, String pattern, String... invalidStrings) {
for (String s : invalidStrings) {
assertTrue(message + s, !Pattern.matches(pattern, s));
}
}
}