import WebKit import XCTest @testable import Yuvomi final class BrowserModelTests: XCTestCase { @MainActor func testMainViewHasNoNativeBridgeOrAutomaticPopupAccess() { let model = BrowserModel() XCTAssertFalse(model.web.configuration.preferences.javaScriptCanOpenWindowsAutomatically) XCTAssertTrue(model.web.configuration.userContentController.userScripts.isEmpty) XCTAssertTrue(model.web.configuration.websiteDataStore.isPersistent) XCTAssertFalse(model.web.isInspectable) } @MainActor func testLateExportCancellationDoesNotEraseAnotherServersDownload() { let model = BrowserModel() let previous = URL(fileURLWithPath: "/old-selection.txt") let current = URL(fileURLWithPath: "/new-selection.txt") model.download = WebDestination(url: current) model.removeDownload(expected: previous) XCTAssertEqual(model.download?.url, current) model.removeDownload(expected: current) XCTAssertNil(model.download) } @MainActor func testServerErasureReplacesHistoryContext() async { let model = BrowserModel() let previousView = model.web await withCheckedContinuation { continuation in model.erase { continuation.resume() } } XCTAssertFalse(previousView === model.web) XCTAssertNil(model.server) XCTAssertFalse(model.canGoBack) XCTAssertNil(model.error) } }