Files
2025-10-04 08:46:46 +01:00

65 lines
2.0 KiB
Swift
Executable File

// Copyright © 2017 Schibsted. All rights reserved.
import XCTest
@testable import Layout
final class ArrayExpressionTests: XCTestCase {
func testArrayExpression() {
let node = LayoutNode()
let expression = LayoutExpression(expression: "1, 2, 3", type: .array(of: .int), for: node)
let expected = [1, 2, 3]
XCTAssertEqual(expression?.symbols, [])
XCTAssertEqual(try expression?.evaluate() as? NSArray, expected as NSArray)
}
func testSetSegmentedControlTitlesWithLiteral() {
let node = LayoutNode(
view: UISegmentedControl(),
expressions: [
"items": "'foo', 'bar', 'baz'",
]
)
let expected = ["foo", "bar", "baz"]
XCTAssertEqual(try node.value(forSymbol: "items") as? NSArray, expected as NSArray)
}
func testSetSingleSegmentedControlTitle() {
let node = LayoutNode(
view: UISegmentedControl(),
expressions: [
"items": "'foo'",
]
)
let expected = ["foo"]
XCTAssertEqual(try node.value(forSymbol: "items") as? NSArray, expected as NSArray)
}
func testSetSegmentedControlTitlesWithConstant() {
let items = ["foo", "bar", "baz"]
let node = LayoutNode(
view: UISegmentedControl(),
constants: [
"items": items,
],
expressions: [
"items": "items",
]
)
XCTAssertEqual(try node.value(forSymbol: "items") as? NSArray, items as NSArray)
}
func testSetSegmentedControlTitlesWithMixedConstantAndLiteral() {
let node = LayoutNode(
view: UISegmentedControl(),
constants: [
"items": ["foo", "bar"],
],
expressions: [
"items": "items, 'baz', 'quux'",
]
)
let expected = ["foo", "bar", "baz", "quux"]
XCTAssertEqual(try node.value(forSymbol: "items") as? NSArray, expected as NSArray)
}
}