Skip to content

Commit 160e7d0

Browse files
committed
Fixed: ProxyTextField.Selection/marked and added unit tests.
1 parent 53414ee commit 160e7d0

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

Sources/DiffableTextViewsXiOS/Views/ProxyTextField+Selection.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public extension ProxyTextField.Selection {
2828

2929
@inlinable var marked: String {
3030
// UITextField.markedTextRange is sometimes nil
31-
wrapped.markedTextRange.map(wrapped.text(in:))! ?? String()
31+
wrapped.markedTextRange.flatMap(wrapped.text(in:)) ?? String()
3232
}
3333

3434
//=------------------------------------------------------------------------=

Tests/DiffableTextViewsXiOSTests/Views/ViewsTests+UITextField.swift

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import UIKit
1414
import XCTest
1515

16+
@testable import DiffableTextViewsXiOS
17+
1618
//*============================================================================*
1719
// MARK: * ViewsTests x UITextField
1820
//*============================================================================*
@@ -23,24 +25,28 @@ final class ViewsTestsXUITextField: XCTestCase {
2325
// MARK: State
2426
//=------------------------------------------------------------------------=
2527

26-
let uiTextField = UITextField()
28+
lazy var wrapped = BasicTextField()
29+
lazy var proxy = ProxyTextField(wrapped)
2730

2831
//=------------------------------------------------------------------------=
2932
// MARK: Tests
3033
//=------------------------------------------------------------------------=
3134

3235
func testForceUnwrappingTextIsOK() {
33-
uiTextField.text = nil
34-
XCTAssertNotNil(uiTextField.text)
36+
wrapped.text = nil
37+
XCTAssertNotNil(wrapped.text)
38+
XCTAssertEqual(proxy.text.value, String())
3539
}
3640

3741
func testForceUnwrappingSelectedTextRangeIsOK() {
38-
uiTextField.selectedTextRange = nil
39-
XCTAssertNotNil(uiTextField.selectedTextRange)
42+
wrapped.selectedTextRange = nil
43+
XCTAssertNotNil(wrapped.selectedTextRange)
44+
XCTAssertEqual(proxy.selection.value, String())
4045
}
4146

4247
func testForceUnwrappingMarkedTextRangeIsBad() {
43-
XCTAssertNil(uiTextField.markedTextRange)
48+
XCTAssertNil(wrapped.markedTextRange)
49+
XCTAssertEqual(proxy.selection.marked, String())
4450
}
4551
}
4652

0 commit comments

Comments
 (0)