@@ -35,4 +35,38 @@ final class WebViewStateManagerTests: XCTestCase {
3535 SFSDKWebViewStateManager . sessionCookieManagementDisabled = false
3636 XCTAssertFalse ( SFSDKWebViewStateManager . sessionCookieManagementDisabled)
3737 }
38+
39+ @MainActor
40+ func testClearCache( ) async throws {
41+ // Add some test data
42+ let html = " <html><body><script>localStorage.setItem('test', 'value');</script></body></html> "
43+ let webView = WKWebView ( frame: CGRect ( x: 0 , y: 0 , width: 100 , height: 100 ) , configuration: WKWebViewConfiguration ( ) )
44+
45+ // Load HTML and wait for JavaScript to execute
46+ webView. loadHTMLString ( html, baseURL: URL ( string: " https://test.salesforce.com " ) )
47+ try await Task . sleep ( for: . seconds( 1 ) )
48+
49+ // Define data types to check
50+ let dataTypes : Set < String > = [ WKWebsiteDataTypeDiskCache,
51+ WKWebsiteDataTypeMemoryCache,
52+ WKWebsiteDataTypeFetchCache,
53+ WKWebsiteDataTypeLocalStorage,
54+ WKWebsiteDataTypeSessionStorage,
55+ WKWebsiteDataTypeIndexedDBDatabases,
56+ WKWebsiteDataTypeWebSQLDatabases,
57+ WKWebsiteDataTypeOfflineWebApplicationCache,
58+ WKWebsiteDataTypeServiceWorkerRegistrations]
59+
60+ let dataStore = WKWebsiteDataStore . default ( )
61+ // Verify data exists before clearing
62+ let initialRecords = await dataStore. dataRecords ( ofTypes: dataTypes)
63+ XCTAssertFalse ( initialRecords. isEmpty, " Expected data to exist before clearing " )
64+
65+ // Clear the cache
66+ await SFSDKWebViewStateManager . clearCache ( )
67+
68+ // Verify data was cleared
69+ let records = await dataStore. dataRecords ( ofTypes: dataTypes)
70+ XCTAssertTrue ( records. isEmpty, " Expected data to be cleared " )
71+ }
3872}
0 commit comments