Guest User

Untitled

a guest
Jan 19th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. import XCTest
  2. import SnapshotTesting
  3.  
  4. class ImageProcessorSingleImageTests: XCTestCase {
  5. func test1920x1280() {
  6. let imageNameSets = [
  7. ["1920x1280-1"],
  8. ["1280x1920-1"]
  9. ]
  10.  
  11. let paperSizes: [PaperSize] = [
  12. .fourBySix,
  13. .fourBySixStrips,
  14. .fiveBySeven,
  15. .fiveBySevenStrips
  16. ]
  17.  
  18. for imageNames in imageNameSets {
  19. for paperSize in paperSizes {
  20. self.testPrint(imageNames, paperSize)
  21. }
  22. }
  23. }
  24.  
  25. func testPrint(_ imageNames: [String], _ paperSize: PaperSize) {
  26. let testID = String(format: "%@.%@",
  27. imageNames.reduce("") { return $0.appending($1) },
  28. paperSize.description
  29. )
  30.  
  31. let item = self.item(using: imageNames)
  32.  
  33. let expect = self.expect
  34.  
  35. self.processor.makePrintImage(forItem: item, withPaperSize: paperSize) {
  36. (image) in
  37.  
  38. assertSnapshot(matching: image, as: .dump, named: testID)
  39.  
  40. if let image = image {
  41. assertSnapshot(matching: image, as: .image, named: testID)
  42. } else {
  43. XCTAssert(false)
  44. }
  45.  
  46. expect.fulfill()
  47. }
  48.  
  49. wait(for: [expect], timeout: 1.0)
  50. }
  51. }
  52.  
  53. extension XCTestCase {
  54. func item(using imageNames: [String] = []) -> FoboItem {
  55. var item = ImageItem()
  56. item.originals = imageNames.map { Overlay(name: $0, assetID: AssetID($0)) }
  57. return item
  58. }
  59.  
  60. open var expect: XCTestExpectation {
  61. return XCTestExpectation(description: "Deliver result")
  62. }
  63. }
  64.  
  65. extension AssetStorage {
  66. public static var mock: AssetStorage {
  67. var once = AssetStorage()
  68. once.assetsForIDs = {
  69. assetIDs in
  70.  
  71. return assetIDs.map { PhotosAsset($0) }
  72. }
  73. once.requestImage = {
  74. asset, targetSize, contentMode, options, completion in
  75.  
  76. completion(UIImage.testBundle(asset.localIdentifier), [:])
  77.  
  78. return 0
  79. }
  80. once.requestAVAsset = {
  81. asset, options, completion in
  82.  
  83. return 0
  84. }
  85. once.findOrCreateAlbum = {
  86. albumName in
  87.  
  88. return nil
  89. }
  90. once.findAlbum = {
  91. albumName in
  92.  
  93. return nil
  94. }
  95. return once
  96. }
  97. }
Add Comment
Please, Sign In to add comment