From: Lukasz Wojciechowski Date: Fri, 24 Oct 2014 17:24:34 +0000 (+0200) Subject: Test async check before and after data insertion X-Git-Tag: security-manager_5.5_testing~170 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5c4489f2d70601f3336e947ed8d33953a74716a4;p=platform%2Fcore%2Ftest%2Fsecurity-tests.git Test async check before and after data insertion This test: * checks access in cynara with empty database; * verifies that after response is received cache holds result; * sets new policy (that should cause client disconnection); * verifies that cache was cleared after disconnection; * runs async checks on filled database. Change-Id: If5ab19d51f83faaa802e02dae1e7526e6a9d5c61 --- diff --git a/tests/cynara-tests/test_cases_async.cpp b/tests/cynara-tests/test_cases_async.cpp index f3f42656..0e04b33b 100644 --- a/tests/cynara-tests/test_cases_async.cpp +++ b/tests/cynara-tests/test_cases_async.cpp @@ -21,6 +21,7 @@ * @brief Tests for libcynara-client-async */ +#include #include #include @@ -167,6 +168,55 @@ void tca06_cancel_fail_func() client.cancel(id, CYNARA_API_INVALID_PARAM); } +void tca07_request_with_data_insertion_func() +{ + std::string testNo("07"); + CynaraTestAdmin admin; + const char *bucket = CYNARA_ADMIN_DEFAULT_BUCKET; + const int resultAllow = CYNARA_ADMIN_ALLOW; + CheckData data[2] = {{testNo, 1}, {testNo, 2}}; + RequestEntity callbackAllow = {RequestFunction(), + CYNARA_API_ACCESS_ALLOWED, + CYNARA_CALL_CAUSE_ANSWER}; + RequestEntity callbackDeny = {RequestFunction(), + CYNARA_API_ACCESS_DENIED, + CYNARA_CALL_CAUSE_ANSWER}; + cynara_check_id id; + Client client; + + client.checkCache(data[0], CYNARA_API_CACHE_MISS); + client.checkCache(data[1], CYNARA_API_CACHE_MISS); + + client.createRequest(data[0], id, callbackDeny); + client.assertStatus(READWRITE); + client.process(); + client.assertStatus(READ); + client.process(CYNARA_API_SUCCESS, Client::IGNORE_TIMEOUT); + client.assertStatus(READ); + + client.checkCache(data[0], CYNARA_API_ACCESS_DENIED); + client.checkCache(data[1], CYNARA_API_CACHE_MISS); + + { + CynaraPoliciesContainer cp; + cp.add(bucket, data[0].toAdminPolicy(), resultAllow); + admin.setPolicies(cp); + } + + client.checkCache(data[0], CYNARA_API_CACHE_MISS); + client.checkCache(data[1], CYNARA_API_CACHE_MISS); + + client.createRequest(data[0], id, callbackAllow); + client.assertStatus(READWRITE); + client.process(); + client.assertStatus(READ); + client.process(CYNARA_API_SUCCESS, Client::IGNORE_TIMEOUT); + client.assertStatus(READ); + + client.checkCache(data[0], CYNARA_API_ACCESS_ALLOWED); + client.checkCache(data[1], CYNARA_API_CACHE_MISS); +} + RUNNER_TEST_GROUP_INIT(cynara_async_tests) RUN_CYNARA_TEST(tca01_initialize) @@ -177,3 +227,4 @@ RUN_CYNARA_TEST(tca05_request_and_cancel1) RUN_CYNARA_TEST(tca05_request_and_cancel2) RUN_CYNARA_TEST(tca05_request_and_cancel3) RUN_CYNARA_TEST(tca06_cancel_fail) +RUN_CYNARA_TEST(tca07_request_with_data_insertion)