2 * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef SECURITY_MANAGER_TEST_POLICYREQUEST
18 #define SECURITY_MANAGER_TEST_POLICYREQUEST
21 #include <sys/types.h>
25 #include <security-manager.h>
27 namespace SecurityManagerTest {
32 static constexpr char LEVEL_ALLOW[] = "Allow";
33 static constexpr char LEVEL_DENY[] = "Deny";
34 static constexpr char LEVEL_ASK_USER[] = "Ask user";
38 PolicyEntry(const std::string &appId,
39 const std::string &user,
40 const std::string &privilege
44 PolicyEntry(policy_entry &entry);
46 policy_entry *get() const { return m_entry; }
47 std::string getUser() const { return m_user.second; }
48 std::string getAppId() const { return m_appId.second; }
49 std::string getPrivilege() const { return m_privilege.second; }
50 std::string getCurrentLevel() const { return m_currentLevel.second; }
51 std::string getMaxLevel() const { return m_maxLevel.second; }
52 void setLevel(const std::string &level);
53 void setMaxLevel(const std::string &level);
56 friend std::ostream& operator<<(std::ostream &, const PolicyEntry&);
57 bool operator==(const PolicyEntry &) const;
58 std::string toString() const;
61 policy_entry *m_entry;
62 std::pair<bool, std::string> m_appId;
63 std::pair<bool, std::string> m_user;
64 std::pair<bool, std::string> m_privilege;
65 std::pair<bool, std::string> m_currentLevel;
66 std::pair<bool, std::string> m_maxLevel;
69 std::ostream& operator<<(std::ostream &os, const SecurityManagerTest::PolicyEntry &request);
75 PolicyRequest(const PolicyRequest&) = delete;
76 PolicyRequest& operator=(const PolicyRequest&) = delete;
79 void addEntry(PolicyEntry &entry, lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS);
81 policy_update_req *get() const { return m_req; }
82 friend std::ostream& operator<<(std::ostream &, const PolicyRequest&);
85 policy_update_req *m_req;
86 std::vector<PolicyEntry> m_entries;
89 std::ostream& operator<<(std::ostream &os, const SecurityManagerTest::PolicyRequest &request);
91 } // namespace SecurityManagerTest
96 struct hash<SecurityManagerTest::PolicyEntry> {
97 size_t operator()(const SecurityManagerTest::PolicyEntry &x) const { return hash<string>()(x.toString()); }
102 #endif // SECURITY_MANAGER_TEST_USERREQUEST