Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ if isTestingEnabled {
"Nimble",
], resources: [
.copy("resources/sample.pdf"),
.copy("resources/image-fixture.jpg"),
]),
.testTarget(name: "TPPDFIntegrationTests", dependencies: [
"TPPDF",
Expand Down
55 changes: 55 additions & 0 deletions Tests/TPPDFTests/Image/PDFImageEquatableTests.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
//
// PDFImageEquatableTests.swift
// TPPDF
//
// Created by Philip Niedertscheider on 11.12.2017.
// Copyright © 2016-2026 techprimate GmbH. All rights reserved.
//

import CoreGraphics
import Foundation
import Testing
@testable import TPPDF

struct PDFImageEquatableTests {
@Test func imagesWithSameSettingsAreEqual() throws {
// Arrange
let url = try #require(Bundle.module.url(forResource: "image-fixture", withExtension: "jpg"))
let image = try #require(Image(data: Data(contentsOf: url)))
let caption = PDFSimpleText(text: "EXAMPLE")
let size = CGSize(width: 100, height: 100)
let pdfImage = PDFImage(image: image, caption: caption, size: size, sizeFit: .height, quality: 0.9)
let otherImage = PDFImage(image: image, caption: caption, size: size, sizeFit: .height, quality: 0.9)

// Act
let isEqual = pdfImage == otherImage

// Assert
#expect(isEqual)
}

@Test(arguments: ["image", "caption", "missingCaption", "size", "sizeFit", "quality"])
func imagesWithDifferentSettingsAreUnequal(property: String) throws {
// Arrange
let url = try #require(Bundle.module.url(forResource: "image-fixture", withExtension: "jpg"))
let image = try #require(Image(data: Data(contentsOf: url)))
let caption = PDFSimpleText(text: "EXAMPLE")
let size = CGSize(width: 100, height: 100)
let pdfImage = PDFImage(image: image, caption: caption, size: size, sizeFit: .height, quality: 0.9)
let otherImage = PDFImage(image: image, caption: caption, size: size, sizeFit: .height, quality: 0.9)
switch property {
case "image": otherImage.image = Image()
case "caption": otherImage.caption = PDFSimpleText(text: "DIFFERENT")
case "missingCaption": otherImage.caption = nil
case "size": otherImage.size = CGSize(width: 20, height: 30)
case "sizeFit": otherImage.sizeFit = .width
default: otherImage.quality = 0.3
}

// Act
let isEqual = pdfImage == otherImage

// Assert
#expect(!isEqual)
}
}
26 changes: 26 additions & 0 deletions Tests/TPPDFTests/Image/PDFImageSizeFitTests.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
//
// PDFImageSizeFitTests.swift
// TPPDF
//
// Created by Philip Niedertscheider on 11.13.2017.
// Copyright © 2016-2026 techprimate GmbH. All rights reserved.
//

import Testing
@testable import TPPDF

struct PDFImageSizeFitTests {
@Test(arguments: [0, 1, 2])
func initializingImagePreservesEachFittingMode(modeIndex: Int) {
// Arrange
let fittingModes: [PDFImageSizeFit] = [.width, .height, .widthHeight]
let fittingMode = fittingModes[modeIndex]
let image = Image()

// Act
let pdfImage = PDFImage(image: image, sizeFit: fittingMode)

// Assert
#expect(pdfImage.sizeFit == fittingMode)
}
}
23 changes: 0 additions & 23 deletions Tests/TPPDFTests/Image/PDFImageSizeFit_Spec.swift

This file was deleted.

54 changes: 54 additions & 0 deletions Tests/TPPDFTests/Image/PDFImageTests.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
//
// PDFImageTests.swift
// TPPDF
//
// Created by Philip Niedertscheider on 11.12.2017.
// Copyright © 2016-2026 techprimate GmbH. All rights reserved.
//

import CoreGraphics
import Foundation
import Testing
@testable import TPPDF

struct PDFImageTests {
@Test func initializingWithOnlyImageUsesDefaultSettings() throws {
// Arrange
let url = try #require(Bundle.module.url(forResource: "image-fixture", withExtension: "jpg"))
let image = try #require(Image(data: Data(contentsOf: url)))

// Act
let pdfImage = PDFImage(image: image)

// Assert
#expect(pdfImage.image == image)
#expect(pdfImage.caption == nil)
#expect(pdfImage.sizeFit == .widthHeight)
#expect(pdfImage.quality == 0.85)
#expect(pdfImage.options == [.resize, .compress])
}

@Test func initializingWithCustomSettingsPreservesAllValues() throws {
// Arrange
let url = try #require(Bundle.module.url(forResource: "image-fixture", withExtension: "jpg"))
let image = try #require(Image(data: Data(contentsOf: url)))
let caption = PDFSimpleText(text: "EXAMPLE")
let size = CGSize(width: 100, height: 100)
let fittingMode = PDFImageSizeFit.height
let quality: CGFloat = 0.9
let options: PDFImageOptions = [.resize]

// Act
let pdfImage = PDFImage(
image: image, caption: caption, size: size, sizeFit: fittingMode, quality: quality, options: options
)

// Assert
#expect(pdfImage.image == image)
#expect(pdfImage.caption as? PDFSimpleText == caption)
#expect(pdfImage.size == size)
#expect(pdfImage.sizeFit == fittingMode)
#expect(pdfImage.quality == quality)
#expect(pdfImage.options == options)
}
}
103 changes: 0 additions & 103 deletions Tests/TPPDFTests/Image/PDFImage_Equatable_Spec.swift

This file was deleted.

75 changes: 0 additions & 75 deletions Tests/TPPDFTests/Image/PDFImage_Spec.swift

This file was deleted.

Binary file added Tests/TPPDFTests/resources/image-fixture.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading