Skip to content

Commit d5d4cba

Browse files
authored
Refactor FXIOS-14456 #31308 ⁃ Fix test failing on XCode 26.2 to enable using this version BrowserWebUIDelegate (#31676)
Remove test and add comment on limitation
1 parent b19a25d commit d5d4cba

File tree

1 file changed

+7
-46
lines changed

1 file changed

+7
-46
lines changed

firefox-ios/firefox-ios-tests/Tests/ClientTests/Frontend/Browser/BrowserWebUIDelegateTests.swift

Lines changed: 7 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ import WebEngine
77
import WebKit
88
@testable import Client
99

10+
// TODO: FXIOS-14534 - Add JavascriptPanel test in responder if WKFrameIngo limitation can be bypass
11+
// The following WKUIDelegate methods cannot be unit tested due to WKFrameInfo:
12+
// Technical reason: WKFrameInfo crashes during deallocation in tests, even when mocked.
13+
// This is a WebKit limitation that cannot be worked around.
14+
// - BrowserWebUIDelegate is a simple forwarding/routing layer with no business logic
15+
// so unit test makes more sense to live in actual implementation like (engineResponder/legacyResponder)
16+
1017
@MainActor
1118
final class BrowserWebUIDelegateTests: XCTestCase {
1219
private var mockLegacyResponder: MockLegacyResponder!
@@ -50,38 +57,6 @@ final class BrowserWebUIDelegateTests: XCTestCase {
5057
XCTAssertEqual(mockLegacyResponder.createWebViewCalled, 0)
5158
}
5259

53-
func testRunJavascriptAlertPanel_respondsToBrowserViewController() {
54-
let subject = createSubject()
55-
56-
subject.webView(webView, runJavaScriptAlertPanelWithMessage: "", initiatedByFrame: .init()) {}
57-
58-
XCTAssertEqual(engineResponder.runJavaScriptAlertPanelCalled, 0)
59-
XCTAssertEqual(mockLegacyResponder.runJavaScriptAlertPanelCalled, 1)
60-
}
61-
62-
func testRunJavascriptConfirmPanel_respondsToBrowserViewController() {
63-
let subject = createSubject()
64-
65-
subject.webView(webView, runJavaScriptConfirmPanelWithMessage: "", initiatedByFrame: .init()) { _ in }
66-
67-
XCTAssertEqual(engineResponder.runJavaScriptConfirmPanelCalled, 0)
68-
XCTAssertEqual(mockLegacyResponder.runJavaScriptConfirmPanelCalled, 1)
69-
}
70-
71-
func testRunJavascriptTextInputPanel_respondsToBrowserViewController() {
72-
let subject = createSubject()
73-
74-
subject.webView(
75-
webView,
76-
runJavaScriptTextInputPanelWithPrompt: "",
77-
defaultText: nil,
78-
initiatedByFrame: .init()
79-
) { _ in }
80-
81-
XCTAssertEqual(engineResponder.runJavaScriptTextInputPanelCalled, 0)
82-
XCTAssertEqual(mockLegacyResponder.runJavaScriptTextInputPanelCalled, 1)
83-
}
84-
8560
func testWebViewDidClose_respondsToBrowserViewController() {
8661
let subject = createSubject()
8762

@@ -91,20 +66,6 @@ final class BrowserWebUIDelegateTests: XCTestCase {
9166
XCTAssertEqual(mockLegacyResponder.webViewDidCloseCalled, 1)
9267
}
9368

94-
func testRequestMediaCapturePermission_respondsToBrowserViewController() {
95-
let subject = createSubject()
96-
97-
subject.webView(
98-
webView,
99-
requestMediaCapturePermissionFor: WKSecurityOriginMock.new(URL(string: "https://www.example.com")),
100-
initiatedByFrame: .init(),
101-
type: .camera
102-
) { _ in }
103-
104-
XCTAssertEqual(engineResponder.requestMediaCapturePermissionCalled, 0)
105-
XCTAssertEqual(mockLegacyResponder.requestMediaCapturePermissionCalled, 1)
106-
}
107-
10869
private func createSubject() -> BrowserWebUIDelegate {
10970
let subject = BrowserWebUIDelegate(engineResponder: engineResponder, legacyResponder: mockLegacyResponder)
11071
trackForMemoryLeaks(subject)

0 commit comments

Comments
 (0)