Files
divkit/client/ios/DivKitTests/Extensions/DivImageExtensionsTests.swift
T
babaevmm 6797545374 update paths
commit_hash:8ab26a6d1a605474126fdbc3cc4314923edbc77f
2025-03-19 17:28:58 +03:00

89 lines
2.2 KiB
Swift

@testable import DivKit
import DivKitTestsSupport
@testable import LayoutKit
import VGSL
import XCTest
final class DivImageExtensionsTests: XCTestCase {
func test_WithImageUrl() {
let block = makeBlock(
divImage(
height: fixedSize(200),
imageUrl: "https://image.url",
width: fixedSize(100)
)
)
let expectedBlock = StateBlock(
child: DecoratingBlock(
child: ImageBlock(
imageHolder: FakeImageHolder(),
widthTrait: .fixed(100),
heightTrait: .fixed(200),
contentMode: ImageContentMode(scale: .aspectFill)
),
accessibilityElement: accessibility(traits: .image)
),
ids: []
)
assertEqual(block, expectedBlock)
}
func test_WithAccessibilityAuto() {
let block = makeBlock(
divImage(
accessibility: DivAccessibility(description: .value("Description")),
height: fixedSize(200),
imageUrl: "https://image.url",
width: fixedSize(100)
)
)
let expectedBlock = StateBlock(
child: DecoratingBlock(
child: ImageBlock(
imageHolder: FakeImageHolder(),
widthTrait: .fixed(100),
heightTrait: .fixed(200),
contentMode: ImageContentMode(scale: .aspectFill)
),
accessibilityElement: accessibility(
traits: .image,
label: "Description"
)
),
ids: []
)
assertEqual(block, expectedBlock)
}
func test_WhenWidthIsWrapContent_ThrowsError() {
XCTAssertThrowsError(
try divData(divImage(
id: "test_id",
imageUrl: "https://image.url",
width: wrapContentSize()
)).makeBlock(context: .default),
DivBlockModelingError(
"DivImage has wrap_content width",
path: .root + "0" + "test_id"
)
)
}
func test_WhenHeightIsWrapContent_ThrowsError() throws {
XCTAssertThrowsError(
try divData(divImage(
height: wrapContentSize(),
imageUrl: "https://image.url"
)).makeBlock(context: .default),
DivBlockModelingError(
"DivImage without aspect has wrap_content height",
path: .root + "0" + "image"
)
)
}
}