diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2021-11-04 17:22:18 +0100 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2021-11-15 11:33:15 +0100 |
| commit | 5617e5e2a61b963a674aa5a91c65f8925fab1cb4 (patch) | |
| tree | a4370432a19074c2f24de75963c0f90cbef8ad94 | |
| parent | 1484458c39a7d87f6627d5bb88ac00d5ba4553e0 (diff) | |
| download | mullvadvpn-5617e5e2a61b963a674aa5a91c65f8925fab1cb4.tar.xz mullvadvpn-5617e5e2a61b963a674aa5a91c65f8925fab1cb4.zip | |
Update snapshot helper
| -rw-r--r-- | ios/MullvadVPNScreenshots/SnapshotHelper.swift | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/ios/MullvadVPNScreenshots/SnapshotHelper.swift b/ios/MullvadVPNScreenshots/SnapshotHelper.swift index f5b393c2c5..015cfeaa55 100644 --- a/ios/MullvadVPNScreenshots/SnapshotHelper.swift +++ b/ios/MullvadVPNScreenshots/SnapshotHelper.swift @@ -165,6 +165,12 @@ open class Snapshot: NSObject { } let screenshot = XCUIScreen.main.screenshot() + #if os(iOS) + let image = XCUIDevice.shared.orientation.isLandscape ? fixLandscapeOrientation(image: screenshot.image) : screenshot.image + #else + let image = screenshot.image + #endif + guard var simulator = ProcessInfo().environment["SIMULATOR_DEVICE_NAME"], let screenshotsDir = screenshotsDirectory else { return } do { @@ -174,7 +180,11 @@ open class Snapshot: NSObject { simulator = regex.stringByReplacingMatches(in: simulator, range: range, withTemplate: "") let path = screenshotsDir.appendingPathComponent("\(simulator)-\(name).png") - try screenshot.pngRepresentation.write(to: path) + #if swift(<5.0) + UIImagePNGRepresentation(image)?.write(to: path, options: .atomic) + #else + try image.pngData()?.write(to: path, options: .atomic) + #endif } catch let error { NSLog("Problem writing screenshot: \(name) to \(screenshotsDir)/\(simulator)-\(name).png") NSLog(error.localizedDescription) @@ -182,6 +192,23 @@ open class Snapshot: NSObject { #endif } + class func fixLandscapeOrientation(image: UIImage) -> UIImage { + #if os(watchOS) + return image + #else + if #available(iOS 10.0, *) { + let format = UIGraphicsImageRendererFormat() + format.scale = image.scale + let renderer = UIGraphicsImageRenderer(size: image.size, format: format) + return renderer.image { context in + image.draw(in: CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height)) + } + } else { + return image + } + #endif + } + class func waitForLoadingIndicatorToDisappear(within timeout: TimeInterval) { #if os(tvOS) return @@ -204,7 +231,7 @@ open class Snapshot: NSObject { #if os(OSX) let homeDir = URL(fileURLWithPath: NSHomeDirectory()) return homeDir.appendingPathComponent(cachePath) - #elseif arch(i386) || arch(x86_64) + #elseif arch(i386) || arch(x86_64) || arch(arm64) guard let simulatorHostHome = ProcessInfo().environment["SIMULATOR_HOST_HOME"] else { throw SnapshotError.cannotFindSimulatorHomeDirectory } @@ -279,4 +306,4 @@ private extension CGFloat { // Please don't remove the lines below // They are used to detect outdated configuration files -// SnapshotHelperVersion [1.23] +// SnapshotHelperVersion [1.27] |
