You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ga...@apache.org on 2018/05/22 05:24:13 UTC

[2/2] jclouds git commit: JCLOUDS-1263: Add live integration test for manipulating objects through the Swift ObjectApi with unicode characters in their path

JCLOUDS-1263: Add live integration test for manipulating objects through the Swift ObjectApi with unicode characters in their path


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/d464e8a3
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/d464e8a3
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/d464e8a3

Branch: refs/heads/2.1.x
Commit: d464e8a3704a780f7bec4873bce905413f987faa
Parents: 4288c9e
Author: Mat Mannion <m....@warwick.ac.uk>
Authored: Tue Apr 4 13:52:26 2017 +0100
Committer: Andrew Gaul <ga...@apache.org>
Committed: Mon May 21 22:23:04 2018 -0700

----------------------------------------------------------------------
 .../swift/v1/features/ObjectApiLiveTest.java    | 35 +++++++++++++++-----
 1 file changed, 27 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/d464e8a3/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java
index 98a546e..02116f6 100644
--- a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java
+++ b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java
@@ -61,21 +61,40 @@ public class ObjectApiLiveTest extends BaseSwiftApiLiveTest {
    private String containerName = getClass().getSimpleName() + "Container";
    static final Payload PAYLOAD = newByteSourcePayload(ByteSource.wrap("swifty".getBytes()));
 
+   protected void assertCanCreateReadUpdateDeleteList(String regionId, String containerName, String objectName) throws Exception {
+      assertNotNull(getApi().getContainerApi(regionId).create(containerName));
+      assertNotNull(getApi().getObjectApi(regionId, containerName).put(objectName, PAYLOAD));
+
+      SwiftObject object = getApi().getObjectApi(regionId, containerName).get(objectName);
+      assertEquals(object.getName(), objectName);
+      checkObject(object);
+      assertEquals(toStringAndClose(object.getPayload().openStream()), "swifty");
+
+      String lexicographicallyBeforeName = objectName.substring(0, objectName.length() - 1);
+      object = getApi().getObjectApi(regionId, containerName)
+          .list(marker(lexicographicallyBeforeName)).get(0);
+      assertEquals(object.getName(), objectName);
+      checkObject(object);
+
+      getApi().getObjectApi(regionId, containerName).delete(objectName);
+      getApi().getContainerApi(regionId).deleteIfEmpty(containerName);
+   }
+
    public void testCreateWithSpacesAndSpecialCharacters() throws Exception {
       final String containerName = "container # ! special";
       final String objectName = "object # ! special";
 
       for (String regionId : regions) {
-         assertNotNull(getApi().getContainerApi(regionId).create(containerName));
-         assertNotNull(getApi().getObjectApi(regionId, containerName).put(objectName, PAYLOAD));
+         assertCanCreateReadUpdateDeleteList(regionId, containerName, objectName);
+      }
+   }
 
-         SwiftObject object = getApi().getObjectApi(regionId, containerName).get(objectName);
-         assertEquals(object.getName(), objectName);
-         checkObject(object);
-         assertEquals(toStringAndClose(object.getPayload().openStream()), "swifty");
+   public void testCreateAndListWithUnicodeCharacters() throws Exception {
+      final String containerName = "container-unic₪de";
+      final String objectName = "object-unic₪de";
 
-         getApi().getObjectApi(regionId, containerName).delete(objectName);
-         getApi().getContainerApi(regionId).deleteIfEmpty(containerName);
+      for (String regionId : regions) {
+         assertCanCreateReadUpdateDeleteList(regionId, containerName, objectName);
       }
    }