/* * The Alluxio Open Foundation licenses this work under the Apache License, version 2.0 * (the "License"). You may not use this work except in compliance with the License, which is * available at www.apache.org/licenses/LICENSE-2.0 * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied, as more fully set forth in the License. * * See the NOTICE file distributed with this work for information regarding copyright ownership. */ package alluxio.underfs.s3a; import com.amazonaws.services.s3.model.AccessControlList; import com.amazonaws.services.s3.model.CanonicalGrantee; import com.amazonaws.services.s3.model.GroupGrantee; import com.amazonaws.services.s3.model.Owner; import com.amazonaws.services.s3.model.Permission; import org.junit.Assert; import org.junit.Before; import org.junit.Test; /** * Tests for {@link S3AUtils} methods. */ public final class S3AUtilsTest { private static final String NAME = "foo"; private static final String ID = "123456789012"; private static final String OTHER_ID = "987654321098"; private CanonicalGrantee mUserGrantee; private AccessControlList mAcl; @Before public void before() throws Exception { // Setup owner. mUserGrantee = new CanonicalGrantee(ID); mUserGrantee.setDisplayName(NAME); // Setup the acl. mAcl = new AccessControlList(); mAcl.setOwner(new Owner(ID, NAME)); } @Test public void translateUserReadPermission() { mAcl.grantPermission(mUserGrantee, Permission.Read); Assert.assertEquals((short) 0500, S3AUtils.translateBucketAcl(mAcl, ID)); Assert.assertEquals((short) 0000, S3AUtils.translateBucketAcl(mAcl, OTHER_ID)); mAcl.grantPermission(mUserGrantee, Permission.ReadAcp); Assert.assertEquals((short) 0500, S3AUtils.translateBucketAcl(mAcl, ID)); Assert.assertEquals((short) 0000, S3AUtils.translateBucketAcl(mAcl, OTHER_ID)); } @Test public void translateUserWritePermission() { mAcl.grantPermission(mUserGrantee, Permission.Write); Assert.assertEquals((short) 0200, S3AUtils.translateBucketAcl(mAcl, ID)); mAcl.grantPermission(mUserGrantee, Permission.Read); Assert.assertEquals((short) 0700, S3AUtils.translateBucketAcl(mAcl, ID)); } @Test public void translateUserFullPermission() { mAcl.grantPermission(mUserGrantee, Permission.FullControl); Assert.assertEquals((short) 0700, S3AUtils.translateBucketAcl(mAcl, ID)); Assert.assertEquals((short) 0000, S3AUtils.translateBucketAcl(mAcl, OTHER_ID)); } @Test public void translateEveryoneReadPermission() { GroupGrantee allUsersGrantee = GroupGrantee.AllUsers; mAcl.grantPermission(allUsersGrantee, Permission.Read); Assert.assertEquals((short) 0500, S3AUtils.translateBucketAcl(mAcl, ID)); Assert.assertEquals((short) 0500, S3AUtils.translateBucketAcl(mAcl, OTHER_ID)); } @Test public void translateEveryoneWritePermission() { GroupGrantee allUsersGrantee = GroupGrantee.AllUsers; mAcl.grantPermission(allUsersGrantee, Permission.Write); Assert.assertEquals((short) 0200, S3AUtils.translateBucketAcl(mAcl, ID)); Assert.assertEquals((short) 0200, S3AUtils.translateBucketAcl(mAcl, OTHER_ID)); } @Test public void translateEveryoneFullPermission() { GroupGrantee allUsersGrantee = GroupGrantee.AllUsers; mAcl.grantPermission(allUsersGrantee, Permission.FullControl); Assert.assertEquals((short) 0700, S3AUtils.translateBucketAcl(mAcl, ID)); Assert.assertEquals((short) 0700, S3AUtils.translateBucketAcl(mAcl, OTHER_ID)); } @Test public void translateAuthenticatedUserReadPermission() { GroupGrantee authenticatedUsersGrantee = GroupGrantee.AuthenticatedUsers; mAcl.grantPermission(authenticatedUsersGrantee, Permission.Read); Assert.assertEquals((short) 0500, S3AUtils.translateBucketAcl(mAcl, ID)); Assert.assertEquals((short) 0500, S3AUtils.translateBucketAcl(mAcl, OTHER_ID)); } @Test public void translateAuthenticatedUserWritePermission() { GroupGrantee authenticatedUsersGrantee = GroupGrantee.AuthenticatedUsers; mAcl.grantPermission(authenticatedUsersGrantee, Permission.Write); Assert.assertEquals((short) 0200, S3AUtils.translateBucketAcl(mAcl, ID)); Assert.assertEquals((short) 0200, S3AUtils.translateBucketAcl(mAcl, OTHER_ID)); } @Test public void translateAuthenticatedUserFullPermission() { GroupGrantee authenticatedUsersGrantee = GroupGrantee.AuthenticatedUsers; mAcl.grantPermission(authenticatedUsersGrantee, Permission.FullControl); Assert.assertEquals((short) 0700, S3AUtils.translateBucketAcl(mAcl, ID)); Assert.assertEquals((short) 0700, S3AUtils.translateBucketAcl(mAcl, OTHER_ID)); } }