TestPathExpressions: Match file types in all subfolders
Since change I049316068 the matchFileTypeInCurrentFolder method cannot
be implemented for the FindOwnersGlobMatcher anymore (because all globs
are prefixed with "{**/,}"). Change the method to match file types in
all subfolders instead. This doesn't make a difference to any of the
tests that are using this method.
Signed-off-by: Edwin Kempin <ekempin@google.com>
Change-Id: I3645f46ec5dc43893840d7c264e91358e6f1e899
diff --git a/java/com/google/gerrit/plugins/codeowners/acceptance/testsuite/TestPathExpressions.java b/java/com/google/gerrit/plugins/codeowners/acceptance/testsuite/TestPathExpressions.java
index 91867cb..d2acaed 100644
--- a/java/com/google/gerrit/plugins/codeowners/acceptance/testsuite/TestPathExpressions.java
+++ b/java/com/google/gerrit/plugins/codeowners/acceptance/testsuite/TestPathExpressions.java
@@ -41,16 +41,20 @@
}
/**
- * Creates a path expression that matches all files of the given file type in the current folder.
+ * Creates a path expression that matches all files of the given file type in the current folder
+ * and all subfolders.
*
* @param fileType the file type
*/
- public String matchFileTypeInCurrentFolder(String fileType) {
+ public String matchFileType(String fileType) {
PathExpressionMatcher pathExpressionMatcher = getPathExpressionMatcher();
- if (pathExpressionMatcher instanceof GlobMatcher
- || pathExpressionMatcher instanceof FindOwnersGlobMatcher
- || pathExpressionMatcher instanceof SimplePathExpressionMatcher) {
+ if (pathExpressionMatcher instanceof GlobMatcher) {
+ return "**." + fileType;
+ } else if (pathExpressionMatcher instanceof FindOwnersGlobMatcher) {
return "*." + fileType;
+ } else if (pathExpressionMatcher instanceof SimplePathExpressionMatcher) {
+ // '...' (matches any string, including slashes), followed by '.<file-type>'
+ return "...." + fileType;
}
throw new IllegalStateException(
String.format(
diff --git a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/AbstractGetCodeOwnersForPathIT.java b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/AbstractGetCodeOwnersForPathIT.java
index d7d3da3..0826b9e 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/AbstractGetCodeOwnersForPathIT.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/AbstractGetCodeOwnersForPathIT.java
@@ -226,12 +226,12 @@
.folderPath("/foo/bar/")
.addCodeOwnerSet(
CodeOwnerSet.builder()
- .addPathExpression(testPathExpressions.matchFileTypeInCurrentFolder("txt"))
+ .addPathExpression(testPathExpressions.matchFileType("txt"))
.addCodeOwnerEmail(admin.email())
.build())
.addCodeOwnerSet(
CodeOwnerSet.builder()
- .addPathExpression(testPathExpressions.matchFileTypeInCurrentFolder("md"))
+ .addPathExpression(testPathExpressions.matchFileType("md"))
.addCodeOwnerEmail(user.email())
.build())
.create();
diff --git a/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigHierarchyTest.java b/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigHierarchyTest.java
index a99de99..4df0138 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigHierarchyTest.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigHierarchyTest.java
@@ -540,7 +540,7 @@
.addCodeOwnerSet(
CodeOwnerSet.builder()
.setIgnoreGlobalAndParentCodeOwners()
- .addPathExpression(testPathExpressions.matchFileTypeInCurrentFolder("txt"))
+ .addPathExpression(testPathExpressions.matchFileType("txt"))
.addCodeOwnerEmail(admin.email())
.build())
.create();