• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15 
16 #ifndef NOTIFYCHANGE_FUZZER_H
17 #define NOTIFYCHANGE_FUZZER_H
18 
19 #define FUZZ_PROJECT_NAME "medialibraryrefresh_fuzzer"
20 
21 #include "notify_info_inner.h"
22 #include "media_datashare_stub_impl.h"
23 #include "media_log.h"
24 #include "i_observer_manager_interface.h"
25 #include "media_observer_manager.h"
26 #include "notify_register_permission.h"
27 #include "observer_callback_recipient.h"
28 #include "userfile_manager_types.h"
29 
30 namespace OHOS {
31 namespace Media {
32 
33 const int32_t ASSET_FILE_ID = 0;
34 const string ASSET_URI = "uri";
35 const string ASSET_DATE_DAY = "20250525";
36 const int32_t ASSET_MEDIA_TYPE_IMAGE = static_cast<int32_t>(MEDIA_TYPE_IMAGE);
37 const int32_t ASSET_STRONG_ASSOCIATION_NORMAL = static_cast<int32_t>(StrongAssociationType::NORMAL);
38 const int32_t ASSET_THUMBNAIL_VISIBLE = 1;
39 const int64_t ASSET_DATE_ADDED = 123456;
40 const int64_t ASSET_DATE_TAKEN = 123456;
41 const int32_t ASSET_SUBTYPE_DEFAULT = static_cast<int32_t>(PhotoSubType::DEFAULT);
42 const int32_t ASSET_SYNC_STATUS_VISIBLE = static_cast<int32_t>(SyncStatusType::TYPE_VISIBLE);
43 const int32_t ASSET_CLEAN_FLAG_NO = static_cast<int32_t>(CleanType::TYPE_NOT_CLEAN);
44 const int32_t ASSET_BURST_COVER_LEVEL = static_cast<int32_t>(BurstCoverLevelType::COVER);
45 const string ASSET_DISPLAY_NAME = "asset_display_name";
46 const string ASSET_PATH = "asset_path";
47 
48 const std::string CREATE_PHOTO_ALBUM_TABLE = "CREATE TABLE IF NOT EXISTS " +
49     PhotoAlbumColumns::TABLE + " (" +
50     PhotoAlbumColumns::ALBUM_ID + " INT, " +
51     PhotoAlbumColumns::ALBUM_TYPE + " INT, " +
52     PhotoAlbumColumns::ALBUM_SUBTYPE + " INT, " +
53     PhotoAlbumColumns::ALBUM_NAME + " TEXT COLLATE NOCASE, " +
54     PhotoAlbumColumns::ALBUM_COVER_URI + " TEXT, " +
55     PhotoAlbumColumns::ALBUM_COUNT + " INT DEFAULT 0, " +
56     PhotoAlbumColumns::ALBUM_DATE_MODIFIED + " BIGINT DEFAULT 0, " +
57     PhotoAlbumColumns::ALBUM_DIRTY + " INT DEFAULT " +
58         std::to_string(static_cast<int32_t>(DirtyTypes::TYPE_NEW)) + ", " +
59     PhotoAlbumColumns::ALBUM_CLOUD_ID + " TEXT, " +
60     PhotoAlbumColumns::ALBUM_RELATIVE_PATH + " TEXT, " +
61     PhotoAlbumColumns::CONTAINS_HIDDEN + " INT DEFAULT 0, " +
62     PhotoAlbumColumns::HIDDEN_COUNT + " INT DEFAULT 0, " +
63     PhotoAlbumColumns::HIDDEN_COVER + " TEXT DEFAULT '', " +
64     PhotoAlbumColumns::ALBUM_ORDER + " INT," +
65     PhotoAlbumColumns::ALBUM_IMAGE_COUNT + " INT DEFAULT 0, " +
66     PhotoAlbumColumns::ALBUM_VIDEO_COUNT + " INT DEFAULT 0, " +
67     PhotoAlbumColumns::ALBUM_BUNDLE_NAME + " TEXT, " +
68     PhotoAlbumColumns::ALBUM_LOCAL_LANGUAGE + " TEXT, " +
69     PhotoAlbumColumns::ALBUM_IS_LOCAL + " INT, " +
70     PhotoAlbumColumns::ALBUM_DATE_ADDED + " BIGINT DEFAULT 0, " +
71     PhotoAlbumColumns::ALBUM_LPATH + " TEXT, " +
72     PhotoAlbumColumns::ALBUM_PRIORITY + " INT, " +
73     PhotoAlbumColumns::ALBUM_CHECK_FLAG + " INT DEFAULT 0, " +
74     PhotoAlbumColumns::COVER_DATE_TIME + " BIGINT DEFAULT 0, " +
75     PhotoAlbumColumns::COVER_URI_SOURCE + " INT DEFAULT 0, " +
76     PhotoAlbumColumns::HIDDEN_COVER_DATE_TIME + " BIGINT DEFAULT 0, " +
77     PhotoAlbumColumns::ALBUMS_ORDER + " INT DEFAULT -1, " +
78     PhotoAlbumColumns::ORDER_SECTION + " INT DEFAULT -1)";
79 
80 const std::string CREATE_PHOTO_TABLE = "CREATE TABLE IF NOT EXISTS " +
81     PhotoColumn::PHOTOS_TABLE + " (" +
82     PhotoColumn::MEDIA_ID + " INT, " +
83     PhotoColumn::MEDIA_FILE_PATH + " TEXT, " +
84     PhotoColumn::MEDIA_SIZE + " BIGINT, " +
85     PhotoColumn::MEDIA_TITLE + " TEXT, " +
86     PhotoColumn::MEDIA_NAME + " TEXT, " +
87     PhotoColumn::MEDIA_TYPE + " INT, " +
88     PhotoColumn::MEDIA_MIME_TYPE + " TEXT, " +
89     PhotoColumn::MEDIA_OWNER_PACKAGE + " TEXT, " +
90     PhotoColumn::MEDIA_OWNER_APPID + " TEXT, " +
91     PhotoColumn::MEDIA_PACKAGE_NAME + " TEXT, " +
92     PhotoColumn::MEDIA_DEVICE_NAME + " TEXT, " +
93     PhotoColumn::MEDIA_DATE_ADDED + " BIGINT, " +
94     PhotoColumn::MEDIA_DATE_MODIFIED + " BIGINT, " +
95     PhotoColumn::MEDIA_DATE_TAKEN + " BIGINT DEFAULT 0, " +
96     PhotoColumn::MEDIA_DURATION + " INT, " +
97     PhotoColumn::MEDIA_TIME_PENDING + " BIGINT DEFAULT 0, " +
98     PhotoColumn::MEDIA_IS_FAV + " INT DEFAULT 0, " +
99     PhotoColumn::MEDIA_DATE_TRASHED + " BIGINT DEFAULT 0, " +
100     PhotoColumn::MEDIA_DATE_DELETED + " BIGINT DEFAULT 0, " +
101     PhotoColumn::MEDIA_HIDDEN + " INT DEFAULT 0, " +
102     PhotoColumn::MEDIA_PARENT_ID + " INT DEFAULT 0, " +
103     PhotoColumn::MEDIA_RELATIVE_PATH + " TEXT, " +
104     PhotoColumn::MEDIA_VIRTURL_PATH + " TEXT UNIQUE, " +
105     PhotoColumn::PHOTO_DIRTY + " INT DEFAULT 1, " +
106     PhotoColumn::PHOTO_CLOUD_ID + " TEXT, " +
107     PhotoColumn::PHOTO_META_DATE_MODIFIED + "  BIGINT DEFAULT 0, " +
108     PhotoColumn::PHOTO_SYNC_STATUS + "  INT DEFAULT 0, " +
109     PhotoColumn::PHOTO_CLOUD_VERSION + " BIGINT DEFAULT 0, " +
110     PhotoColumn::PHOTO_ORIENTATION + " INT DEFAULT 0, " +
111     PhotoColumn::PHOTO_LATITUDE + " DOUBLE DEFAULT 0, " +
112     PhotoColumn::PHOTO_LONGITUDE + " DOUBLE DEFAULT 0, " +
113     PhotoColumn::PHOTO_HEIGHT + " INT, " +
114     PhotoColumn::PHOTO_WIDTH + " INT, " +
115     PhotoColumn::PHOTO_EDIT_TIME + " BIGINT DEFAULT 0, " +
116     PhotoColumn::PHOTO_LCD_VISIT_TIME + " BIGINT DEFAULT 0, " +
117     PhotoColumn::PHOTO_POSITION + " INT DEFAULT 1, " +
118     PhotoColumn::PHOTO_SUBTYPE + " INT DEFAULT 0, " +
119     PhotoColumn::PHOTO_ORIGINAL_SUBTYPE + " INT," +
120     PhotoColumn::CAMERA_SHOT_KEY + " TEXT, " +
121     PhotoColumn::PHOTO_USER_COMMENT + " TEXT, " +
122     PhotoColumn::PHOTO_ALL_EXIF  + " TEXT, " +
123     PhotoColumn::PHOTO_DATE_YEAR + " TEXT, " +
124     PhotoColumn::PHOTO_DATE_MONTH + " TEXT, " +
125     PhotoColumn::PHOTO_DATE_DAY + " TEXT, " +
126     PhotoColumn::PHOTO_SHOOTING_MODE + " TEXT, " +
127     PhotoColumn::PHOTO_SHOOTING_MODE_TAG + " TEXT, " +
128     PhotoColumn::PHOTO_LAST_VISIT_TIME + " BIGINT DEFAULT 0, " +
129     PhotoColumn::PHOTO_HIDDEN_TIME + " BIGINT DEFAULT 0, " +
130     PhotoColumn::PHOTO_THUMB_STATUS + " INT DEFAULT 0, " +
131     PhotoColumn::PHOTO_CLEAN_FLAG + " INT DEFAULT 0, " +
132     PhotoColumn::PHOTO_ID + " TEXT, " +
133     PhotoColumn::PHOTO_QUALITY + " INT, " +
134     PhotoColumn::PHOTO_FIRST_VISIT_TIME + " BIGINT DEFAULT 0, " +
135     PhotoColumn::PHOTO_DEFERRED_PROC_TYPE + " INT DEFAULT 0, " +
136     PhotoColumn::PHOTO_DYNAMIC_RANGE_TYPE + " INT DEFAULT 0, " +
137     PhotoColumn::MOVING_PHOTO_EFFECT_MODE + " INT DEFAULT 0, " +
138     PhotoColumn::PHOTO_COVER_POSITION + " BIGINT DEFAULT 0, " +
139     PhotoColumn::PHOTO_THUMBNAIL_READY + " BIGINT DEFAULT 0, " +
140     PhotoColumn::PHOTO_LCD_SIZE + " TEXT, " +
141     PhotoColumn::PHOTO_THUMB_SIZE + " TEXT," +
142     PhotoColumn::PHOTO_FRONT_CAMERA + " TEXT, " +
143     PhotoColumn::PHOTO_IS_TEMP + " INT DEFAULT 0," +
144     PhotoColumn::PHOTO_BURST_COVER_LEVEL + " INT DEFAULT 1, " +
145     PhotoColumn::PHOTO_BURST_KEY + " TEXT, " +
146     PhotoColumn::PHOTO_CE_AVAILABLE + " INT DEFAULT 0, " +
147     PhotoColumn::PHOTO_CE_STATUS_CODE + " INT, " +
148     PhotoColumn::PHOTO_STRONG_ASSOCIATION + " INT DEFAULT 0, " +
149     PhotoColumn::PHOTO_ASSOCIATE_FILE_ID + " INT DEFAULT 0, " +
150     PhotoColumn::PHOTO_HAS_CLOUD_WATERMARK + " INT DEFAULT 0, " +
151     PhotoColumn::PHOTO_DETAIL_TIME + " TEXT, " +
152     PhotoColumn::PHOTO_OWNER_ALBUM_ID + " INT DEFAULT 0, " +
153     PhotoColumn::PHOTO_ORIGINAL_ASSET_CLOUD_ID + " TEXT, " +
154     PhotoColumn::PHOTO_THUMBNAIL_VISIBLE + " INT DEFAULT 0, " +
155     PhotoColumn::PHOTO_SOURCE_PATH + " TEXT, " +
156     PhotoColumn::SUPPORTED_WATERMARK_TYPE + " INT, " +
157     PhotoColumn::PHOTO_METADATA_FLAGS + " INT DEFAULT 0, " +
158     PhotoColumn::PHOTO_CHECK_FLAG + " INT DEFAULT 0, " +
159     PhotoColumn::STAGE_VIDEO_TASK_STATUS + " INT NOT NULL DEFAULT 0, " +
160     PhotoColumn::PHOTO_IS_AUTO + " INT NOT NULL DEFAULT 0, " +
161     PhotoColumn::PHOTO_MEDIA_SUFFIX + " TEXT, " +
162     PhotoColumn::PHOTO_IS_RECENT_SHOW + " INT NOT NULL DEFAULT 1)";
163 
164 const AccurateRefresh::PhotoAssetChangeInfo NORMAL_ASSET = { ASSET_FILE_ID, ASSET_URI, ASSET_DATE_DAY,
165     "uri", // owner album uri
166     false, // isFavorite
167     ASSET_MEDIA_TYPE_IMAGE, // default image
168     false, // isHidden
169     0,  // dateTrash
170     ASSET_STRONG_ASSOCIATION_NORMAL,
171     ASSET_THUMBNAIL_VISIBLE, ASSET_DATE_ADDED, ASSET_DATE_TAKEN, ASSET_SUBTYPE_DEFAULT, ASSET_SYNC_STATUS_VISIBLE,
172     ASSET_CLEAN_FLAG_NO,
173     0, // timePending
174     false, // isTemp
175     ASSET_BURST_COVER_LEVEL,
176     0, // owner album id
177     0, // hidden time
178     0,
179     ASSET_DISPLAY_NAME,
180     ASSET_PATH,
181     1, //local
182     666 //size
183 };
184 
185 const std::vector<PhotoAlbumSubType> PHOTO_ALBUM_SUB_TYPE = {
186     PhotoAlbumSubType::FAVORITE,
187     PhotoAlbumSubType::TRASH,
188     PhotoAlbumSubType::HIDDEN,
189 };
190 } // namespace Media
191 } // namespace OHOS
192 #endif