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