Files
divkit/client/ios/LayoutKit/LayoutKitTests/UI/Base/GenericCollectionLayoutTests.swift
pkurchatov 27a3472171 Enabled blankLinesBetweenImports swiftformat rule
commit_hash:84ea24cbdf21ef89741080f38ec5e583172a2458
2024-12-20 12:41:02 +03:00

60 lines
1.6 KiB
Swift

import CoreGraphics
import LayoutKit
import VGSL
import XCTest
final class GenericCollectionLayoutTests: XCTestCase {
func test_WhenConstructingFromFramesAndPageSize_IncreasesContentSizeToFitLastPageSize() {
let me = GenericCollectionLayout(
frames: frames,
pageSize: pageSize
)
XCTAssertEqual(me.contentSize.truncatingRemainder(dividingBy: pageSize), .zero)
}
func test_WhenConstructingFromZeroFrameAndPageSize_IncreasesContentSizeToFitLastPageSize() {
let me = GenericCollectionLayout(
frames: [.zero],
pageSize: pageSize
)
XCTAssertEqual(me.contentSize.truncatingRemainder(dividingBy: pageSize), .zero)
}
func test_WhenConstructingWithoutFramesAndPageSize_IncreasesContentSizeToFitLastPageSize() {
let me = GenericCollectionLayout(
frames: [],
pageSize: pageSize
)
XCTAssertEqual(me.contentSize.truncatingRemainder(dividingBy: pageSize), .zero)
}
func test_WhenConstructingFromFramesAndZeroPageSize_DoesNotIncreaseContentSize() {
let frame = frames[0]
let me = GenericCollectionLayout(
frames: [frame],
pageSize: .zero
)
XCTAssertEqual(me.contentSize, CGSize(width: frame.maxX, height: frame.maxY))
}
}
extension CGSize {
fileprivate func truncatingRemainder(dividingBy other: CGSize) -> CGSize {
CGSize(
width: width.truncatingRemainder(dividingBy: other.width),
height: height.truncatingRemainder(dividingBy: other.height)
)
}
}
private let frames: [CGRect] = [
.init(x: 0, y: 0, width: 100, height: 100),
.init(x: 0, y: 0, width: 200, height: 200),
]
private let pageSize = CGSize(width: 320, height: 480)