fix(cua): compile batch attribute regression assertions
This commit is contained in:
1 parent
c327aa7ddd
commit
6b3a196a3f
2 files changed
+3
-2
No files matched your search
@@ -172,9 +172,10 @@ final class AXAccess {
|
||||
let error = AXUIElementCopyMultipleAttributeValues(element, names as CFArray, [], &output)
|
||||
if error == .notImplemented || error == .attributeUnsupported { return nil }
|
||||
guard error == .success else { throw failure(error, "read node attributes") }
|
||||
guard let output, let values = output as? [AnyObject], values.count == names.count else {
|
||||
guard let output, CFArrayGetCount(output) == names.count else {
|
||||
throw NativeFailure(code: "NATIVE_ERROR", message: "Accessibility batch returned mismatched attribute values")
|
||||
}
|
||||
let values = output as [AnyObject]
|
||||
return Dictionary(uniqueKeysWithValues: zip(names, values))
|
||||
}
|
||||
static func batchAttribute(_ value: CFTypeRef, name: String) throws -> CFTypeRef? {
|
||||
|
||||
@@ -30,7 +30,7 @@ private func wrappedAXError(_ code: AXError) throws -> AXValue {
|
||||
let position = try #require(AXValueCreate(.cgPoint, &point))
|
||||
let values: [CFTypeRef] = ["Title" as CFString, kCFBooleanTrue, NSNumber(value: 7), [] as CFArray, position]
|
||||
for value in values {
|
||||
let decoded = try #require(AXAccess.batchAttribute(value, name: "AXValue"))
|
||||
let decoded = try #require(try AXAccess.batchAttribute(value, name: "AXValue"))
|
||||
#expect(CFGetTypeID(decoded) == CFGetTypeID(value))
|
||||
#expect(CFEqual(decoded, value))
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user