Index: src/test/java/hudson/scm/SubversionSCMTest.java
===================================================================
--- src/test/java/hudson/scm/SubversionSCMTest.java (revision 27929)
+++ src/test/java/hudson/scm/SubversionSCMTest.java (working copy)
@@ -43,6 +43,7 @@
import static hudson.scm.SubversionSCM.compareSVNAuthentications;
import hudson.scm.SubversionSCM.DescriptorImpl;
import hudson.scm.browsers.Sventon;
+import hudson.util.FormValidation;
import hudson.util.NullStream;
import hudson.util.StreamTaskListener;
import org.dom4j.Document;
@@ -316,6 +317,39 @@
verify(scm,(SubversionSCM)p.getScm());
}
+ @Bug(5684)
+ public void testDoCheckExcludedUsers() throws Exception {
+ String[] validUsernames = new String[] {
+ "DOMAIN\\user",
+ "user",
+ "us_er",
+ "user123",
+ "User",
+ "", // this one is ignored
+ "DOmain12\\User34"};
+
+ for (String validUsername : validUsernames) {
+ assertEquals(
+ "User " + validUsername + " isn't OK (but it's valid).",
+ FormValidation.Kind.OK,
+ new SubversionSCM.DescriptorImpl().doCheckExcludedUsers(validUsername).kind);
+ }
+
+ String[] invalidUsernames = new String[] {
+ "\\user",
+ "DOMAIN\\",
+ "DOMAIN@user",
+ "DOMAIN.user" };
+
+ for (String invalidUsername : invalidUsernames) {
+ assertEquals(
+ "User " + invalidUsername + " isn't ERROR (but it's not valid).",
+ FormValidation.Kind.ERROR,
+ new SubversionSCM.DescriptorImpl().doCheckExcludedUsers(invalidUsername).kind);
+ }
+
+ }
+
private void verify(SubversionSCM lhs, SubversionSCM rhs) {
ModuleLocation[] ll = lhs.getLocations();
ModuleLocation[] rl = rhs.getLocations();
Index: src/main/java/hudson/scm/SubversionSCM.java
===================================================================
--- src/main/java/hudson/scm/SubversionSCM.java (revision 27929)
+++ src/main/java/hudson/scm/SubversionSCM.java (working copy)
@@ -1815,7 +1815,11 @@
return FormValidation.ok();
}
- private static final Pattern USERNAME_PATTERN = Pattern.compile("\\w+");
+ /**
+ * Regular expression for matching one username. Matches 'windows' names ('DOMAIN\user') and
+ * 'normal' names ('user'). Where user (and DOMAIN) has one or more characters in 'a-zA-Z_0-9')
+ */
+ private static final Pattern USERNAME_PATTERN = Pattern.compile("(\\w+\\\\)?+(\\w+)");
/**
* Validates the excludeUsers field
Index: pom.xml
===================================================================
--- pom.xml (revision 27929)
+++ pom.xml (working copy)
@@ -27,7 +27,7 @@
org.jvnet.hudson.plugins
plugin
- 1.346
+ 1.347
../pom.xml
@@ -55,19 +55,19 @@
org.jvnet.hudson.main
hudson-war
war
- 1.347-SNAPSHOT
+ 1.347
test
org.jvnet.hudson.main
hudson-core
- 1.347-SNAPSHOT
+ 1.347
provided
org.jvnet.hudson.main
hudson-test-harness
- 1.347-SNAPSHOT
+ 1.347
test