Files
divkit/client/ios/LayoutKit/LayoutKitTests/UI/Base/GenericCollectionLayoutTests.swift
morevsavva 6214d22b74 fixed backward compatibility.
531efa2293a929e6db9dfe8c3bff9c71fa3f702c
2024-07-18 15:43:47 +03:00

61 lines
1.6 KiB
Swift

import CoreGraphics
import XCTest
import LayoutKit
import VGSL
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)