@Override
    public List<Acl.User> getAvailableAclUsers() {
        final List<Acl.User> users = new ArrayList<Acl.User>(Arrays.asList(
                new Acl.CanonicalUser(),
                new Acl.GroupUser(Acl.GroupUser.AUTHENTICATED, false) {
                    @Override
                    public String getPlaceholder() {
                        return LocaleFactory.localizedString("Google Account Holders", "S3");
                    }
                },
                new Acl.GroupUser(Acl.GroupUser.EVERYONE, false))
        );
        users.add(new Acl.EmailUser() {
            @Override
            public String getPlaceholder() {
                return LocaleFactory.localizedString("Google Account Email Address", "S3");
            }
        });
        // Google Apps customers can associate their email accounts with an Internet domain name. When you do
        // this, each email account takes the form username@yourdomain.com. You can specify a scope by using
        // any Internet domain name that is associated with a Google Apps account.
        users.add(new Acl.DomainUser(StringUtils.EMPTY) {
            @Override
            public String getPlaceholder() {
                return LocaleFactory.localizedString("Google Apps Domain", "S3");
            }
        });
        users.add(new Acl.EmailGroupUser(StringUtils.EMPTY, true) {
            @Override
            public String getPlaceholder() {
                return LocaleFactory.localizedString("Google Group Email Address", "S3");
            }
        });
        return users;
    }
@Test
    public void testRoles() {
        final GoogleStorageAccessControlListFeature f = new GoogleStorageAccessControlListFeature(session);
        final List<Acl.User> users = f.getAvailableAclUsers();
        assertTrue(f.getAvailableAclUsers().stream().filter(user -> user instanceof Acl.CanonicalUser).findAny().isPresent());
        assertTrue(f.getAvailableAclUsers().stream().filter(user -> user instanceof Acl.EmailUser).findAny().isPresent());
        assertTrue(f.getAvailableAclUsers().stream().filter(user -> user instanceof Acl.EmailGroupUser).findAny().isPresent());
        assertTrue(f.getAvailableAclUsers().stream().filter(user -> user instanceof Acl.DomainUser).findAny().isPresent());
    }