You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by an...@apache.org on 2021/06/10 14:09:38 UTC
[sling-org-apache-sling-feature-cpconverter] 01/01: SLING-10467 :
Converted content package referres to paths moved to repo-init
This is an automated email from the ASF dual-hosted git repository.
angela pushed a commit to branch SLING-10467
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git
commit bac191a6039c2f1e5a3ea18636cd3e93bb96da6d
Author: angela <an...@adobe.com>
AuthorDate: Thu Jun 10 16:09:19 2021 +0200
SLING-10467 : Converted content package referres to paths moved to repo-init
---
.../ConverterUserAndPermissionTest.java | 51 ++++++++++++++++++++--
1 file changed, 47 insertions(+), 4 deletions(-)
diff --git a/src/test/java/org/apache/sling/feature/cpconverter/ConverterUserAndPermissionTest.java b/src/test/java/org/apache/sling/feature/cpconverter/ConverterUserAndPermissionTest.java
index 8355e13..e5c76c5 100644
--- a/src/test/java/org/apache/sling/feature/cpconverter/ConverterUserAndPermissionTest.java
+++ b/src/test/java/org/apache/sling/feature/cpconverter/ConverterUserAndPermissionTest.java
@@ -39,10 +39,12 @@ import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
@@ -127,9 +129,10 @@ public class ConverterUserAndPermissionTest extends AbstractConverterTest {
Set<String> expected = new HashSet<>(COMMON_EXPECTED_PATHS);
expected.add("jcr_root/apps/.content.xml");
-
+
verifyContentPackage(converted, notExpected, expected);
assertExpectedPolicies(converted);
+ assertFilterXml(converted);
} finally {
deleteDirTree(outputDirectory);
}
@@ -138,10 +141,10 @@ public class ConverterUserAndPermissionTest extends AbstractConverterTest {
/**
* "demo-cp3.zip" contains the same content as "demo-cp.zip" but with altered order leading to ACE being read before
* the corresponding system-user, whose principal is referenced in the ACE.
- *
+ *
* This test would fail if user/group information was not collected during the first pass (i.e. corresponding
* handlers listed in {@link org.apache.sling.feature.cpconverter.vltpkg.RecollectorVaultPackageScanner}.
- *
+ *
* @throws Exception
*/
@Test
@@ -164,6 +167,7 @@ public class ConverterUserAndPermissionTest extends AbstractConverterTest {
verifyContentPackage(converted, notExpected, expected);
assertExpectedPolicies(converted);
+ assertFilterXml(converted);
} finally {
deleteDirTree(outputDirectory);
}
@@ -192,6 +196,7 @@ public class ConverterUserAndPermissionTest extends AbstractConverterTest {
File converted = new File(unrefOutputDir, "my_packages/demo-cp/0.0.0/demo-cp-0.0.0-cp2fm-converted.zip");
verifyContentPackage(converted, COMMON_NOT_EXPECTED_PATHS, COMMON_EXPECTED_PATHS);
assertExpectedPolicies(converted);
+ assertFilterXml(converted);
} finally {
deleteDirTree(outputDirectory);
}
@@ -202,7 +207,7 @@ public class ConverterUserAndPermissionTest extends AbstractConverterTest {
assertPolicy(converted, "jcr_root/home/groups/demo-cp/EsYrXeBdSRkna2kqbxjl/_rep_policy.xml", null, "cp-group1");
assertPolicy(converted, "jcr_root/home/users/demo-cp/XPXhA_RKMFRKNO8ViIhn/_rep_policy.xml", null, "cp-user1");
}
-
+
private static void assertPolicy(@NotNull File contentPackage, @NotNull String path, @Nullable String unExpectedPrincipalName, @NotNull String... expectedPrincipalNames) throws IOException {
try (ZipFile zipFile = new ZipFile(contentPackage)) {
ZipEntry entry = zipFile.getEntry(path);
@@ -220,4 +225,42 @@ public class ConverterUserAndPermissionTest extends AbstractConverterTest {
}
}
}
+
+ private static void assertFilterXml(@NotNull File contentPackage) throws IOException {
+ try (ZipFile zipFile = new ZipFile(contentPackage)) {
+ ZipEntry entry = zipFile.getEntry("META-INF/vault/filter.xml");
+ assertNotNull(entry);
+ assertFalse(entry.isDirectory());
+
+ try (InputStream in = zipFile.getInputStream(entry)) {
+ String filterXml = IOUtils.toString(in, StandardCharsets.UTF_8);
+
+ List<String> expected = new ArrayList<>();
+ expected.add("/home/users/demo-cp");
+ expected.add("/home/groups/demo-cp");
+ expected.add("/demo-cp");
+
+ for (String expectedPath : expected) {
+ String p = getFilterPath(expectedPath);
+ assertTrue(p, filterXml.contains(p));
+ }
+
+ List<String> notExpected = new ArrayList<>();
+ notExpected.add("/apps/demo-cp");
+ notExpected.add("/home/users/system/demo-cp");
+ notExpected.add("/home/users/system/cq:services/demo-cp");
+
+ for (String unexpectedPath : notExpected) {
+ String p = getFilterPath(unexpectedPath);
+ assertFalse(p, filterXml.contains(p));
+ }
+ }
+ }
+ }
+
+ @NotNull
+ private static String getFilterPath(@NotNull String path) {
+ String p = (path.startsWith("jcr_root")) ? path.substring("jcr_root".length()) : path;
+ return "<filter root=\""+p+"\"/>";
+ }
}