forked from ChatSecure/ChatSecure-iOS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathOTRImageTest.swift
49 lines (37 loc) · 1.64 KB
/
OTRImageTest.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//
// OTRImageTest.swift
// ChatSecure
//
// Created by David Chiles on 1/25/17.
// Copyright © 2017 Chris Ballinger. All rights reserved.
//
import XCTest
@testable import ChatSecureCore
class OTRImageTest: XCTestCase {
struct ImageInfo {
let name:String
let image:UIImage
}
func imageForName(_ name:String, type:String) -> UIImage? {
let bundle = Bundle(for: OTRImageTest.self)
guard let path = bundle.path(forResource: name, ofType: type) else {
return nil
}
let image = UIImage(contentsOfFile: path)
return image
}
func testImages() {
let resizeImageSize:CGFloat = 120
["portrait-orientation","portrait","small","landscape"].map { (name) -> ImageInfo in
return ImageInfo(name: name, image: self.imageForName(name, type: "jpg")!)
}.forEach { (imageInfo) in
let minSide = min(imageInfo.image.size.height, imageInfo.image.size.width)
let croppedImage = UIImage.otr_squareCropImage(imageInfo.image)
XCTAssertTrue((croppedImage.size).equalTo(CGSize(width: minSide, height: minSide)),"Checking \(imageInfo.name) square cropping.")
let newImage = UIImage.otr_prepare(forAvatarUpload: imageInfo.image, maxSize: resizeImageSize)
let expectedSide = min(resizeImageSize,minSide)
let expectedSize = CGSize(width: expectedSide, height: expectedSide)
XCTAssertTrue((newImage.size).equalTo(expectedSize),"Checking crop and resize for \(imageInfo.name). Expected \(expectedSize). Found \(newImage.size).")
}
}
}