1/* 2 * Copyright (c) 2021 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 16import { paramMock } from "../utils" 17 18export function mockStorage() { 19 const storageMock = { 20 getStorageSync: function (...args) { 21 console.warn("Storage.getStorageSync interface mocked in the Previewer. How this interface works on the" + 22 " Previewer may be different from that on a real device.") 23 return storage; 24 }, 25 getStorage: function (...args) { 26 console.warn("Storage.getStorage interface mocked in the Previewer. How this interface works on the" + 27 " Previewer may be different from that on a real device.") 28 const len = args.length 29 if (len > 0 && typeof args[len - 1] === 'function') { 30 args[len - 1].call(this, paramMock.businessErrorMock, storage); 31 } else { 32 return new Promise((resolve, reject) => { 33 resolve(storage); 34 }) 35 } 36 }, 37 deleteStorageSync: function (...args) { 38 console.warn("Storage.deleteStorageSync interface mocked in the Previewer. How this interface works on the" + 39 " Previewer may be different from that on a real device.") 40 }, 41 deleteStorage: function (...args) { 42 console.warn("Storage.deleteStorage interface mocked in the Previewer. How this interface works on the" + 43 " Previewer may be different from that on a real device.") 44 const len = args.length 45 if (len > 0 && typeof args[len - 1] === 'function') { 46 args[len - 1].call(this, paramMock.businessErrorMock); 47 } else { 48 return new Promise((resolve, reject) => { 49 resolve(); 50 }) 51 } 52 }, 53 removeStorageFromCacheSync: function (...args) { 54 console.warn("Storage.removeStorageFromCacheSync interface mocked in the Previewer. How this interface works on the" + 55 " Previewer may be different from that on a real device.") 56 }, 57 removeStorageFromCache: function (...args) { 58 console.warn("Storage.removeStorageFromCache interface mocked in the Previewer. How this interface works on the" + 59 " Previewer may be different from that on a real device.") 60 const len = args.length 61 if (len > 0 && typeof args[len - 1] === 'function') { 62 args[len - 1].call(this, paramMock.businessErrorMock); 63 } else { 64 return new Promise((resolve, reject) => { 65 resolve(); 66 }) 67 } 68 }, 69 }; 70 const storageObserver = { 71 key: "[PC Preview] unknown key", 72 }; 73 const storage = { 74 getSync: function (...args) { 75 console.warn("Storage.getSync interface mocked in the Previewer. How this interface works on the" + 76 " Previewer may be different from that on a real device.") 77 return paramMock.paramNumberMock; 78 }, 79 get: function (...args) { 80 console.warn("Storage.get interface mocked in the Previewer. How this interface works on the" + 81 " Previewer may be different from that on a real device.") 82 const len = args.length 83 if (len > 0 && typeof args[len - 1] === 'function') { 84 args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock); 85 } else { 86 return new Promise((resolve, reject) => { 87 resolve(paramMock.paramNumberMock); 88 }) 89 } 90 }, 91 hasSync: function (...args) { 92 console.warn("Storage.hasSync interface mocked in the Previewer. How this interface works on the" + 93 " Previewer may be different from that on a real device.") 94 return paramMock.paramBooleanMock; 95 }, 96 has: function (...args) { 97 console.warn("Storage.has interface mocked in the Previewer. How this interface works on the" + 98 " Previewer may be different from that on a real device.") 99 const len = args.length 100 if (len > 0 && typeof args[len - 1] === 'function') { 101 args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramBooleanMock); 102 } else { 103 return new Promise((resolve, reject) => { 104 resolve(paramMock.paramBooleanMock); 105 }) 106 } 107 }, 108 putSync: function (...args) { 109 console.warn("Storage.putSync interface mocked in the Previewer. How this interface works on the" + 110 " Previewer may be different from that on a real device.") 111 }, 112 put: function (...args) { 113 console.warn("Storage.put interface mocked in the Previewer. How this interface works on the" + 114 " Previewer may be different from that on a real device.") 115 const len = args.length 116 if (len > 0 && typeof args[len - 1] === 'function') { 117 args[len - 1].call(this, paramMock.businessErrorMock); 118 } else { 119 return new Promise((resolve, reject) => { 120 resolve(); 121 }) 122 } 123 }, 124 deleteSync: function (...args) { 125 console.warn("Storage.deleteSync interface mocked in the Previewer. How this interface works on the" + 126 " Previewer may be different from that on a real device.") 127 }, 128 delete: function (...args) { 129 console.warn("Storage.delete interface mocked in the Previewer. How this interface works on the" + 130 " Previewer may be different from that on a real device.") 131 const len = args.length 132 if (len > 0 && typeof args[len - 1] === 'function') { 133 args[len - 1].call(this, paramMock.businessErrorMock); 134 } else { 135 return new Promise((resolve, reject) => { 136 resolve(); 137 }) 138 } 139 }, 140 clearSync: function (...args) { 141 console.warn("Storage.clearSync interface mocked in the Previewer. How this interface works on the" + 142 " Previewer may be different from that on a real device.") 143 }, 144 clear: function (...args) { 145 console.warn("Storage.clear interface mocked in the Previewer. How this interface works on the" + 146 " Previewer may be different from that on a real device.") 147 const len = args.length 148 if (len > 0 && typeof args[len - 1] === 'function') { 149 args[len - 1].call(this, paramMock.businessErrorMock); 150 } else { 151 return new Promise((resolve, reject) => { 152 resolve(); 153 }) 154 } 155 }, 156 flushSync: function (...args) { 157 console.warn("Storage.flushSync interface mocked in the Previewer. How this interface works on the" + 158 " Previewer may be different from that on a real device.") 159 }, 160 flush: function (...args) { 161 console.warn("Storage.flush interface mocked in the Previewer. How this interface works on the" + 162 " Previewer may be different from that on a real device.") 163 const len = args.length 164 if (len > 0 && typeof args[len - 1] === 'function') { 165 args[len - 1].call(this, paramMock.businessErrorMock); 166 } else { 167 return new Promise((resolve, reject) => { 168 resolve(); 169 }) 170 } 171 }, 172 on: function (...args) { 173 console.warn("Storage.on interface mocked in the Previewer. How this interface works on the" + 174 " Previewer may be different from that on a real device.") 175 return storageObserver; 176 }, 177 off: function (...args) { 178 console.warn("Storage.off interface mocked in the Previewer. How this interface works on the" + 179 " Previewer may be different from that on a real device.") 180 return storageObserver; 181 }, 182 }; 183 return storageMock; 184} 185 186