Clean up repository structure and release docs
This commit is contained in:
58
tests/core/PDFRecentDocumentsTests.swift
Normal file
58
tests/core/PDFRecentDocumentsTests.swift
Normal file
@@ -0,0 +1,58 @@
|
||||
import XCTest
|
||||
@testable import IHatePDFsCore
|
||||
|
||||
final class PDFRecentDocumentsTests: XCTestCase {
|
||||
func testFilteredPDFsKeepsExistingPDFsOnly() {
|
||||
let pdf = URL(fileURLWithPath: "/Users/test/Documents/reading.pdf")
|
||||
let upperPDF = URL(fileURLWithPath: "/Users/test/Documents/report.PDF")
|
||||
let text = URL(fileURLWithPath: "/Users/test/Documents/notes.txt")
|
||||
|
||||
let result = PDFRecentDocuments.filteredPDFs(
|
||||
from: [pdf, text, upperPDF],
|
||||
limit: 10,
|
||||
fileExists: { $0 == pdf || $0 == upperPDF }
|
||||
)
|
||||
|
||||
XCTAssertEqual(result, [pdf, upperPDF])
|
||||
}
|
||||
|
||||
func testFilteredPDFsDeduplicatesExcludesCurrentAndHonorsLimit() {
|
||||
let first = URL(fileURLWithPath: "/Users/test/Documents/first.pdf")
|
||||
let second = URL(fileURLWithPath: "/Users/test/Documents/second.pdf")
|
||||
let third = URL(fileURLWithPath: "/Users/test/Documents/third.pdf")
|
||||
|
||||
let result = PDFRecentDocuments.filteredPDFs(
|
||||
from: [first, second, first, third],
|
||||
currentURL: second,
|
||||
limit: 1,
|
||||
fileExists: { _ in true }
|
||||
)
|
||||
|
||||
XCTAssertEqual(result, [first])
|
||||
}
|
||||
|
||||
func testProgressStoresPageByNormalizedDocumentKey() {
|
||||
let url = URL(fileURLWithPath: "/Users/test/Documents/../Documents/reading.pdf")
|
||||
let openedAt = Date(timeIntervalSince1970: 42)
|
||||
|
||||
let records = PDFRecentDocuments.updatedProgress(
|
||||
[:],
|
||||
url: url,
|
||||
pageIndex: 8,
|
||||
openedAt: openedAt
|
||||
)
|
||||
let progress = PDFRecentDocuments.progress(for: url, in: records)
|
||||
|
||||
XCTAssertEqual(progress?.pageIndex, 8)
|
||||
XCTAssertEqual(progress?.openedAt, openedAt)
|
||||
XCTAssertEqual(progress?.key, PDFRecentDocuments.documentKey(for: url))
|
||||
}
|
||||
|
||||
func testProgressClampsSavedPageToAvailablePageCount() {
|
||||
XCTAssertEqual(PDFRecentDocuments.clampedPageIndex(nil, pageCount: 20), 0)
|
||||
XCTAssertEqual(PDFRecentDocuments.clampedPageIndex(-4, pageCount: 20), 0)
|
||||
XCTAssertEqual(PDFRecentDocuments.clampedPageIndex(4, pageCount: 20), 4)
|
||||
XCTAssertEqual(PDFRecentDocuments.clampedPageIndex(99, pageCount: 20), 19)
|
||||
XCTAssertEqual(PDFRecentDocuments.clampedPageIndex(4, pageCount: 0), 0)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user