This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.testing.sling-mock-1.1.2 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-sling-mock.git
commit 62e7e2a94fd79203a047f8e7e25bd49a111c615a Author: Stefan Seifert <[email protected]> AuthorDate: Wed Jan 14 12:06:25 2015 +0000 SLING-4267 support importing nt:resource noded in jackrabbit with empty binary data enable content loader unit tests in sling-mock-jackrabbit git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/sling-mock@1651632 13f79535-47bb-0310-9956-ffa450edef68 --- .../sling/testing/mock/sling/loader/ContentLoader.java | 9 +++++++-- .../mock/sling/loader/AbstractContentLoaderJsonDamTest.java | 13 ++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java b/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java index b577e43..3b6374e 100644 --- a/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java +++ b/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java @@ -18,6 +18,7 @@ */ package org.apache.sling.testing.mock.sling.loader; +import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.text.DateFormat; @@ -55,6 +56,7 @@ public final class ContentLoader { private static final String REFERENCE = "jcr:reference:"; private static final String PATH = "jcr:path:"; private static final String CONTENTTYPE_OCTET_STREAM = "application/octet-stream"; + private static final String JCR_DATA_PLACEHOLDER = ":jcr:data"; private static final Set<String> IGNORED_NAMES = ImmutableSet.of( JcrConstants.JCR_PRIMARYTYPE, @@ -67,7 +69,6 @@ public final class ContentLoader { JcrConstants.JCR_VERSIONHISTORY, "jcr:checkedOut", "jcr:isCheckedOut", - ":jcr:data", "rep:policy"); private final ResourceResolver resourceResolver; @@ -204,7 +205,11 @@ public final class ContentLoader { JSONArray names = jsonObject.names(); for (int i = 0; names != null && i < names.length(); i++) { final String name = names.getString(i); - if (!IGNORED_NAMES.contains(name)) { + if (StringUtils.equals(name, JCR_DATA_PLACEHOLDER)) { + // we cannot import binary data here - but to avoid complaints by JCR we create it with empty binary data + this.setProperty(props, JcrConstants.JCR_DATA, new ByteArrayInputStream(new byte[0])); + } + else if (!IGNORED_NAMES.contains(name)) { Object obj = jsonObject.get(name); if (!(obj instanceof JSONObject)) { this.setProperty(props, name, obj); diff --git a/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonDamTest.java b/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonDamTest.java index 0f00113..7222cd3 100644 --- a/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonDamTest.java +++ b/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonDamTest.java @@ -21,6 +21,8 @@ package org.apache.sling.testing.mock.sling.loader; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; +import java.io.IOException; + import javax.jcr.NamespaceRegistry; import javax.jcr.RepositoryException; import javax.jcr.Session; @@ -68,7 +70,7 @@ public abstract class AbstractContentLoaderJsonDamTest { } @Test - public void testDamAssetMetadata() { + public void testDamAssetMetadata() throws IOException { Resource assetMetadata = this.resourceResolver .getResource("/content/dam/sample/portraits/scott_reynolds.jpg/jcr:content/metadata"); ValueMap props = ResourceUtil.getValueMap(assetMetadata); @@ -80,6 +82,15 @@ public abstract class AbstractContentLoaderJsonDamTest { assertArrayEquals(new String[] { "stockphotography:business/business_people", "properties:style/color", "properties:orientation/landscape" }, props.get("app:tags", String[].class)); + + /* + TODO: this is not working yet in the different resource resolver types - goal: validate binary is present, but empty. + Resource binaryMetadata = this.resourceResolver + .getResource("/content/dam/sample/portraits/scott_reynolds.jpg/jcr:content/renditions/original/jcr:content"); + ValueMap binaryProps = ResourceUtil.getValueMap(binaryMetadata); + InputStream is = binaryProps.get(JcrConstants.JCR_DATA, InputStream.class); + assertNotNull(is); + */ } } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
