Live test demonstrating effectiveness of JCLOUDS-1401 fix.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/9a65be78 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/9a65be78 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/9a65be78 Branch: refs/heads/master Commit: 9a65be789e760cf279b6df525d6bfc7bd94732dd Parents: 34d272a Author: Jesse Glick <[email protected]> Authored: Wed Jul 11 10:19:05 2018 -0400 Committer: Ignasi Barrera <[email protected]> Committed: Wed Jul 11 09:35:34 2018 -0700 ---------------------------------------------------------------------- .../java/org/jclouds/s3/S3ClientLiveTest.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/9a65be78/apis/s3/src/test/java/org/jclouds/s3/S3ClientLiveTest.java ---------------------------------------------------------------------- diff --git a/apis/s3/src/test/java/org/jclouds/s3/S3ClientLiveTest.java b/apis/s3/src/test/java/org/jclouds/s3/S3ClientLiveTest.java index b6b53e0..425f37a 100644 --- a/apis/s3/src/test/java/org/jclouds/s3/S3ClientLiveTest.java +++ b/apis/s3/src/test/java/org/jclouds/s3/S3ClientLiveTest.java @@ -48,7 +48,10 @@ import org.jclouds.ContextBuilder; import org.jclouds.aws.domain.SessionCredentials; import org.jclouds.blobstore.KeyNotFoundException; import org.jclouds.blobstore.domain.Blob; +import org.jclouds.blobstore.domain.PageSet; +import org.jclouds.blobstore.domain.StorageMetadata; import org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest; +import org.jclouds.blobstore.options.ListContainerOptions; import org.jclouds.domain.Credentials; import org.jclouds.http.HttpResponseException; import org.jclouds.io.ByteStreams2; @@ -535,6 +538,23 @@ public class S3ClientLiveTest extends BaseBlobStoreIntegrationTest { } } + // JCLOUDS-1401 + public void testUnusualKeyCharacters() throws InterruptedException, ExecutionException, TimeoutException, IOException { + String containerName = getContainerName(); + try { + String dirName = "a%2Fb&xxx#?:$'\\\"<>Äà¥"; + String fileName = "foo%3Abar.xml"; + addToContainerAndValidate(containerName, dirName + '/' + fileName); + PageSet<? extends StorageMetadata> list = view.getBlobStore().list(containerName, + ListContainerOptions.Builder.prefix(dirName + "/")); + assertEquals(list.size(), 1); + StorageMetadata md = list.iterator().next(); + assertEquals(md.getName(), dirName + '/' + fileName); + } finally { + returnContainer(containerName); + } + } + public void testMultipartSynchronously() throws InterruptedException, IOException { HashCode oneHundredOneConstitutionsMD5 = oneHundredOneConstitutions.hash(md5()); String containerName = getContainerName();
