@@ -210,4 +210,53 @@ class JSStorageTest {
210210 assertEquals(" native" , retrievedArray[1 ].jsonPrimitive.content)
211211 assertEquals(false , retrievedArray[2 ].jsonPrimitive.content.toBoolean())
212212 }
213+
214+ @Test
215+ fun testJSStorageRemoveValue () {
216+ // 1. set from js and remove from js
217+ engine.sync {
218+ evaluate(""" storage.setValue("jsJs", "value1")""" )
219+ evaluate(""" storage.removeValue("jsJs")""" )
220+ }
221+ assertNull(exceptionThrown)
222+ assertNull(jsStorage.getValue(" jsJs" ))
223+ val jsJsValue = engine.await(true ) {
224+ evaluate(""" storage.getValue("jsJs")""" )
225+ }
226+ assertNull(jsJsValue)
227+
228+ // 2. set from native and remove from native
229+ jsStorage.setValue(" nativeNative" , " value2" )
230+ assertEquals(" value2" , jsStorage.getValue(" nativeNative" ))
231+ jsStorage.removeValue(" nativeNative" )
232+ assertNull(jsStorage.getValue(" nativeNative" ))
233+ val nativeNativeValue = engine.await {
234+ evaluate(""" storage.getValue("nativeNative")""" )
235+ }
236+ assertNull(nativeNativeValue)
237+
238+ // 3. set from js and remove from native
239+ engine.sync {
240+ evaluate(""" storage.setValue("jsNative", "value3")""" )
241+ }
242+ assertEquals(" value3" , jsStorage.getValue(" jsNative" ))
243+ jsStorage.removeValue(" jsNative" )
244+ assertNull(jsStorage.getValue(" jsNative" ))
245+ val jsNativeValue = engine.await(true ) {
246+ evaluate(""" storage.getValue("jsNative")""" )
247+ }
248+ assertNull(jsNativeValue)
249+
250+ // 4. set from native and remove from js
251+ jsStorage.setValue(" nativeJs" , " value4" )
252+ assertEquals(" value4" , jsStorage.getValue(" nativeJs" ))
253+ engine.sync {
254+ evaluate(""" storage.removeValue("nativeJs")""" )
255+ }
256+ assertNull(jsStorage.getValue(" nativeJs" ))
257+ val nativeJsValue = engine.await(true ) {
258+ evaluate(""" storage.getValue("nativeJs")""" )
259+ }
260+ assertNull(nativeJsValue)
261+ }
213262}
0 commit comments