Fixed an issue where Appium couldn't long press message bubbles

This commit is contained in:
Morgan Pretty 2023-02-14 17:04:30 +11:00
parent 2f8ac7deaf
commit 2bcc049405
2 changed files with 13 additions and 2 deletions

View File

@ -1,6 +1,7 @@
// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
import UIKit
import SessionUIKit
import SignalUtilitiesKit
import SessionUtilitiesKit
import SessionMessagingKit
@ -771,12 +772,18 @@ final class VisibleMessageCell: MessageCell, TappableLabelDelegate {
// MARK: - Interaction
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
if let bodyTappableLabel = bodyTappableLabel {
let btIngetBodyTappableLabelCoordinates = convert(point, to: bodyTappableLabel)
// We are currently using Appium to do automated UI testing, unfortunately it seems to run into
// issues when trying to long-press an element which has custom interaction logic - the TappableLabel
// only needs to custom handle touches for interacting with links so we check to see if it contains
// links before forwarding touches to it
if let bodyTappableLabel: TappableLabel = bodyTappableLabel, bodyTappableLabel.containsLinks {
let btIngetBodyTappableLabelCoordinates: CGPoint = convert(point, to: bodyTappableLabel)
if bodyTappableLabel.bounds.contains(btIngetBodyTappableLabelCoordinates) {
return bodyTappableLabel
}
}
return super.hitTest(point, with: event)
}

View File

@ -55,6 +55,10 @@ public class TappableLabel: UILabel {
}
}
public var containsLinks: Bool {
return !links.isEmpty
}
// MARK: - Initialization
public override init(frame: CGRect) {