Skip to content

Commit 8afb61a

Browse files
committed
Add cache test
1 parent 1649d0d commit 8afb61a

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

libs/SalesforceSDKCore/SalesforceSDKCoreTests/WebViewStateManagerTests.swift

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)