Merge pull request #461 from manaflow-ai/cmux/image-download-flaky
Fix flaky browser context-menu downloads and target selection
This commit is contained in:
commit
566eda80b5
2 changed files with 825 additions and 118 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -641,6 +641,40 @@ final class CmuxWebViewContextMenuTests: XCTestCase {
|
|||
|
||||
XCTAssertFalse(menu.items.contains { $0.title == "Open Link in Default Browser" })
|
||||
}
|
||||
|
||||
func testWillOpenMenuHooksDownloadImageToDiskMenuVariant() {
|
||||
let webView = CmuxWebView(frame: .zero, configuration: WKWebViewConfiguration())
|
||||
let menu = NSMenu()
|
||||
let originalTarget = NSObject()
|
||||
let originalAction = NSSelectorFromString("downloadImageToDisk:")
|
||||
let downloadItem = NSMenuItem(title: "Download Image As...", action: originalAction, keyEquivalent: "")
|
||||
downloadItem.identifier = NSUserInterfaceItemIdentifier("WKMenuItemIdentifierDownloadImageToDisk")
|
||||
downloadItem.target = originalTarget
|
||||
menu.addItem(downloadItem)
|
||||
|
||||
webView.willOpenMenu(menu, with: makeRightMouseDownEvent())
|
||||
|
||||
XCTAssertTrue(downloadItem.target === webView)
|
||||
XCTAssertNotNil(downloadItem.action)
|
||||
XCTAssertNotEqual(downloadItem.action, originalAction)
|
||||
}
|
||||
|
||||
func testWillOpenMenuHooksDownloadLinkedFileToDiskMenuVariant() {
|
||||
let webView = CmuxWebView(frame: .zero, configuration: WKWebViewConfiguration())
|
||||
let menu = NSMenu()
|
||||
let originalTarget = NSObject()
|
||||
let originalAction = NSSelectorFromString("downloadLinkToDisk:")
|
||||
let downloadItem = NSMenuItem(title: "Download Linked File As...", action: originalAction, keyEquivalent: "")
|
||||
downloadItem.identifier = NSUserInterfaceItemIdentifier("WKMenuItemIdentifierDownloadLinkToDisk")
|
||||
downloadItem.target = originalTarget
|
||||
menu.addItem(downloadItem)
|
||||
|
||||
webView.willOpenMenu(menu, with: makeRightMouseDownEvent())
|
||||
|
||||
XCTAssertTrue(downloadItem.target === webView)
|
||||
XCTAssertNotNil(downloadItem.action)
|
||||
XCTAssertNotEqual(downloadItem.action, originalAction)
|
||||
}
|
||||
}
|
||||
|
||||
final class BrowserDevToolsButtonDebugSettingsTests: XCTestCase {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue