1f6603c60Sopenharmony_ci/**
2f6603c60Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
3f6603c60Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4f6603c60Sopenharmony_ci * you may not use this file except in compliance with the License.
5f6603c60Sopenharmony_ci * You may obtain a copy of the License at
6f6603c60Sopenharmony_ci *
7f6603c60Sopenharmony_ci *   http://www.apache.org/licenses/LICENSE-2.0
8f6603c60Sopenharmony_ci *
9f6603c60Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10f6603c60Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11f6603c60Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12f6603c60Sopenharmony_ci * See the License for the specific language governing permissions and
13f6603c60Sopenharmony_ci * limitations under the License.
14f6603c60Sopenharmony_ci */
15f6603c60Sopenharmony_ci
16f6603c60Sopenharmony_ci#ifndef XTS_ACTS_TOKEN_API_EXPECT_H
17f6603c60Sopenharmony_ci#define XTS_ACTS_TOKEN_API_EXPECT_H
18f6603c60Sopenharmony_ci
19f6603c60Sopenharmony_ci#include <string>
20f6603c60Sopenharmony_ci#include <cstdio>
21f6603c60Sopenharmony_ci#include <cstring>
22f6603c60Sopenharmony_ci#include <cstdlib>
23f6603c60Sopenharmony_ci#include <fcntl.h>
24f6603c60Sopenharmony_ci#include <securec.h>
25f6603c60Sopenharmony_ci#include <sys/stat.h>
26f6603c60Sopenharmony_ci#include <sys/types.h>
27f6603c60Sopenharmony_ci#include <sys/wait.h>
28f6603c60Sopenharmony_ci#include <unistd.h>
29f6603c60Sopenharmony_ci#include "feature.h"
30f6603c60Sopenharmony_ci#include "gtest/gtest.h"
31f6603c60Sopenharmony_ci#include "iunknown.h"
32f6603c60Sopenharmony_ci#include "perm_define.h"
33f6603c60Sopenharmony_ci#include "pms.h"
34f6603c60Sopenharmony_ci#include "pms_common.h"
35f6603c60Sopenharmony_ci#include "pms_inner.h"
36f6603c60Sopenharmony_ci#include "pms_interface.h"
37f6603c60Sopenharmony_ci#include "perm_operate.h"
38f6603c60Sopenharmony_ci#include "service.h"
39f6603c60Sopenharmony_ci#include "samgr_lite.h"
40f6603c60Sopenharmony_ci
41f6603c60Sopenharmony_ci#define TEST_APP_ID "com.permission.test"
42f6603c60Sopenharmony_ci#define TEST_APP_ID2 "com.permission.test2"
43f6603c60Sopenharmony_ci#define SUBTEST_APP_ID "com.permission.subtest"
44f6603c60Sopenharmony_ci#define TEST_APP_SHORT "a"
45f6603c60Sopenharmony_ci#define TEST_APP_LONG "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
46f6603c60Sopenharmony_ci#define TEST_APP_PATH "/storage/app/etc/permissions/com.permission.test"
47f6603c60Sopenharmony_ci#define TEST_APP_INVALID "com.permission.!@#$%^&*()_+"
48f6603c60Sopenharmony_ci#define TEST_APP_NOT_EXIST "com.permission.onetwothree"
49f6603c60Sopenharmony_ci#define PERMISSION_UNDEFINED "ohos.permission.TEST"
50f6603c60Sopenharmony_ci#define PERMISSION_TOOLONG "ohos.permission.balabalabalabalabalabalabalabalabalabala"
51f6603c60Sopenharmony_ci#define PERMISSION_EMPTY ""
52f6603c60Sopenharmony_ci#define PERMISSION_UNSUPPORTED "!@#$%^&*()_+"
53f6603c60Sopenharmony_ci#define ETC_PREFIX "/storage/app/etc"
54f6603c60Sopenharmony_ci#define PERMISSION_PREFIX "/storage/app/etc/permissions"
55f6603c60Sopenharmony_ci
56f6603c60Sopenharmony_ciconst int SLEEP_TIME = 5;
57f6603c60Sopenharmony_ciconst int TEST_TASKID = 1000;
58f6603c60Sopenharmony_ciconst int SUBTEST_TASKID = 1001;
59f6603c60Sopenharmony_ciconst int ABNORMAL_TASKID = -1;
60f6603c60Sopenharmony_ciconst int SYS_PERM_NUM = 9;
61f6603c60Sopenharmony_ciconst int ABNORMAL_PERM_NUM = 3;
62f6603c60Sopenharmony_ciconst int MAX_PERM_NUM = 1024;
63f6603c60Sopenharmony_ciconst int RET_OK = 0;
64f6603c60Sopenharmony_ciconst int RET_NOK = -1;
65f6603c60Sopenharmony_ciconst int RELI_TEST_TIME = 1000;
66f6603c60Sopenharmony_ciconst int MAX_PID = 0x7fffffff;
67f6603c60Sopenharmony_ciconst int MIN_PID = 0;
68f6603c60Sopenharmony_ciconst int ABNORMAL_PKG_NUM = 5;
69f6603c60Sopenharmony_ciconst int DIR_MODE = 777;
70f6603c60Sopenharmony_ciconst int FLAG_NOT_EXIST = 123;
71f6603c60Sopenharmony_ciconst int PERFORMANCE_RUN_TIMES = 10000;
72f6603c60Sopenharmony_ciconst int MILLISECOND = 1000;
73f6603c60Sopenharmony_ci
74f6603c60Sopenharmony_ciint IsUserGrant(const char *pname);
75f6603c60Sopenharmony_ci
76f6603c60Sopenharmony_ciint CheckPermData(const PermissionTrans *pt, const PermissionSaved *ps,
77f6603c60Sopenharmony_ci                  const PermissionSaved *pre, int len, int plen);
78f6603c60Sopenharmony_ci
79f6603c60Sopenharmony_civoid ClrPers(PermissionSaved *&permissions);
80f6603c60Sopenharmony_ci
81f6603c60Sopenharmony_civoid CheckAppPermission(const char *identifier, int expRet, int expNum, const PermissionTrans *installPers,
82f6603c60Sopenharmony_ci                        const PermissionSaved *lastPers = nullptr, int lastLen = 0);
83f6603c60Sopenharmony_ci
84f6603c60Sopenharmony_civoid SubTestWithoutCheck(const char *identifier, int taskID);
85f6603c60Sopenharmony_ci
86f6603c60Sopenharmony_civoid CreateAppDir(void);
87f6603c60Sopenharmony_ci
88f6603c60Sopenharmony_ci#endif // XTS_HITS_TOKEN_API_EXPECT_H