/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
CYNARA_ADMIN_ALLOW, nullptr, CYNARA_API_SUCCESS);
}
+void tc20_admin_list_empty_bucket_func()
+{
+ const char *emptyBucket = "empty_bucket20";
+ const char *client = "client20";
+ const char *user = "user20";
+ const char *privilege = "privilege20";
+ const char *extra = nullptr;
+
+ Admin admin;
+ admin.setBucket(emptyBucket, CYNARA_ADMIN_ALLOW, extra);
+
+ CynaraPoliciesContainer emptyPolicies;
+
+ admin.listPolicies(emptyBucket, client, user, privilege, emptyPolicies);
+}
+
+void tc21_admin_list_no_bucket_func()
+{
+ const char *emptyBucket = "empty_bucket21";
+ const char *notExistingBucket = "not_existing_bucket21";
+ const char *client = "client21";
+ const char *user = "user21";
+ const char *privilege = "privilege21";
+ const char *extra = nullptr;
+
+ Admin admin;
+ admin.setBucket(emptyBucket, CYNARA_ADMIN_ALLOW, extra);
+
+ CynaraPoliciesContainer emptyPolicies;
+
+ admin.listPolicies(notExistingBucket, client, user, privilege, emptyPolicies,
+ CYNARA_API_BUCKET_NOT_FOUND);
+}
+
+void tc22_admin_list_bucket_func()
+{
+ const char *bucket = "bucket22";
+ const char *emptyBucket = "empty_bucket22";
+ const char *client = "client22";
+ const char *user = "user22";
+ const char *privilege = "privilege22";
+ const char *client2 = "client22_2";
+ const char *user2 = "user22_2";
+ const char *privilege2 = "privilege22_2";
+ const char *wildcard = CYNARA_ADMIN_WILDCARD;
+ const char *any = CYNARA_ADMIN_ANY;
+
+ const char *extra = nullptr;
+
+ Admin admin;
+ admin.setBucket(bucket, CYNARA_ADMIN_ALLOW, extra);
+ admin.setBucket(emptyBucket, CYNARA_ADMIN_ALLOW, extra);
+
+ {
+ CynaraPoliciesContainer cp;
+ cp.add(bucket, wildcard, wildcard, wildcard, CYNARA_ADMIN_BUCKET, emptyBucket);
+ cp.add(bucket, wildcard, wildcard, privilege, CYNARA_ADMIN_DENY, extra);
+ cp.add(bucket, wildcard, wildcard, privilege2, CYNARA_ADMIN_BUCKET, emptyBucket);
+ cp.add(bucket, wildcard, user, wildcard, CYNARA_ADMIN_DENY, extra);
+ cp.add(bucket, wildcard, user2, wildcard, CYNARA_ADMIN_BUCKET, emptyBucket);
+ cp.add(bucket, wildcard, user, privilege, CYNARA_ADMIN_DENY, extra);
+ cp.add(bucket, wildcard, user, privilege2, CYNARA_ADMIN_BUCKET, emptyBucket);
+ cp.add(bucket, wildcard, user2, privilege, CYNARA_ADMIN_DENY, extra);
+ cp.add(bucket, wildcard, user2, privilege2, CYNARA_ADMIN_BUCKET, emptyBucket);
+ cp.add(bucket, client, wildcard, wildcard, CYNARA_ADMIN_DENY, extra);
+ cp.add(bucket, client2, wildcard, wildcard, CYNARA_ADMIN_BUCKET, emptyBucket);
+ cp.add(bucket, client, wildcard, privilege, CYNARA_ADMIN_DENY, extra);
+ cp.add(bucket, client, wildcard, privilege2, CYNARA_ADMIN_BUCKET, emptyBucket);
+ cp.add(bucket, client2, wildcard, privilege, CYNARA_ADMIN_DENY, extra);
+ cp.add(bucket, client2, wildcard, privilege2, CYNARA_ADMIN_BUCKET, emptyBucket);
+ cp.add(bucket, client, user, wildcard, CYNARA_ADMIN_DENY, extra);
+ cp.add(bucket, client, user2, wildcard, CYNARA_ADMIN_BUCKET, emptyBucket);
+ cp.add(bucket, client2, user, wildcard, CYNARA_ADMIN_DENY, extra);
+ cp.add(bucket, client2, user2, wildcard, CYNARA_ADMIN_BUCKET, emptyBucket);
+ cp.add(bucket, client, user, privilege, CYNARA_ADMIN_DENY, extra);
+ cp.add(bucket, client, user, privilege2, CYNARA_ADMIN_BUCKET, emptyBucket);
+ cp.add(bucket, client, user2, privilege, CYNARA_ADMIN_DENY, extra);
+ cp.add(bucket, client, user2, privilege2, CYNARA_ADMIN_BUCKET, emptyBucket);
+ cp.add(bucket, client2, user, privilege, CYNARA_ADMIN_DENY, extra);
+ cp.add(bucket, client2, user, privilege2, CYNARA_ADMIN_BUCKET, emptyBucket);
+ cp.add(bucket, client2, user2, privilege, CYNARA_ADMIN_DENY, extra);
+ cp.add(bucket, client2, user2, privilege2, CYNARA_ADMIN_BUCKET, emptyBucket);
+ admin.setPolicies(cp);
+ }
+
+ CynaraPoliciesContainer expectedPolicies;
+ expectedPolicies.add(bucket, client, wildcard, wildcard, CYNARA_ADMIN_DENY, extra);
+ expectedPolicies.add(bucket, client, wildcard, privilege, CYNARA_ADMIN_DENY, extra);
+ expectedPolicies.add(bucket, client, wildcard, privilege2, CYNARA_ADMIN_BUCKET, emptyBucket);
+
+ admin.listPolicies(bucket, client, wildcard, any, expectedPolicies);
+}
+
RUNNER_TEST_GROUP_INIT(cynara_tests)
RUN_CYNARA_TEST(tc01_cynara_initialize)
RUN_CYNARA_TEST(tc17_admin_check_nested_bucket)
RUN_CYNARA_TEST(tc18_admin_check_multiple_matches)
RUN_CYNARA_TEST(tc19_admin_check_none_bucket)
+RUN_CYNARA_TEST(tc20_admin_list_empty_bucket)
+RUN_CYNARA_TEST(tc21_admin_list_no_bucket)
+RUN_CYNARA_TEST(tc22_admin_list_bucket)