mirror of
https://github.com/ReactiveX/RxSwift.git
synced 2024-10-05 06:27:29 +03:00
Adds reactive extensions for UISearchController and tests to cover them
This commit is contained in:
parent
20113e40b0
commit
2f16a4faa7
@ -24,6 +24,9 @@
|
||||
842A5A2C1C357F92003568D5 /* NSTextStorage+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842A5A281C357F7D003568D5 /* NSTextStorage+Rx.swift */; };
|
||||
842A5A2D1C357F93003568D5 /* NSTextStorage+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842A5A281C357F7D003568D5 /* NSTextStorage+Rx.swift */; };
|
||||
842A5A2E1C357F94003568D5 /* NSTextStorage+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842A5A281C357F7D003568D5 /* NSTextStorage+Rx.swift */; };
|
||||
846436E31C9AF65B0035B40D /* RxSearchControllerDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 846436E11C9AF64C0035B40D /* RxSearchControllerDelegateProxy.swift */; };
|
||||
846436E51C9AF65E0035B40D /* RxSearchControllerDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 846436E11C9AF64C0035B40D /* RxSearchControllerDelegateProxy.swift */; };
|
||||
846436E61C9AF6670035B40D /* RxSearchControllerDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 846436E11C9AF64C0035B40D /* RxSearchControllerDelegateProxy.swift */; };
|
||||
8476A0211C3D5DC60040BA22 /* UIImagePickerController+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8476A01F1C3D5D580040BA22 /* UIImagePickerController+RxTests.swift */; };
|
||||
8476A0221C3D5DC60040BA22 /* UIImagePickerController+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8476A01F1C3D5D580040BA22 /* UIImagePickerController+RxTests.swift */; };
|
||||
8476A0231C3D5DC80040BA22 /* UIImagePickerController+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8476A01F1C3D5D580040BA22 /* UIImagePickerController+RxTests.swift */; };
|
||||
@ -36,6 +39,10 @@
|
||||
84C225A31C33F00B008724EC /* RxTextStorageDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C225A21C33F00B008724EC /* RxTextStorageDelegateProxy.swift */; };
|
||||
84C225A41C33F00B008724EC /* RxTextStorageDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C225A21C33F00B008724EC /* RxTextStorageDelegateProxy.swift */; };
|
||||
84C225A51C33F00B008724EC /* RxTextStorageDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C225A21C33F00B008724EC /* RxTextStorageDelegateProxy.swift */; };
|
||||
84E4D3921C9AFD3400ADFDC9 /* UISearchController+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E4D3901C9AFCD500ADFDC9 /* UISearchController+Rx.swift */; };
|
||||
84E4D3931C9AFD3500ADFDC9 /* UISearchController+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E4D3901C9AFCD500ADFDC9 /* UISearchController+Rx.swift */; };
|
||||
84E4D3941C9AFD3600ADFDC9 /* UISearchController+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E4D3901C9AFCD500ADFDC9 /* UISearchController+Rx.swift */; };
|
||||
84E4D3961C9B011000ADFDC9 /* UISearchController+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E4D3951C9B011000ADFDC9 /* UISearchController+RxTests.swift */; };
|
||||
9BA1CBD31C0F7D550044B50A /* UIActivityIndicatorView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */; };
|
||||
9BA1CBFD1C0F84A10044B50A /* UIActivityIndicatorView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */; };
|
||||
9BA1CBFE1C0F84C40044B50A /* UIActivityIndicatorView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */; };
|
||||
@ -1332,10 +1339,13 @@
|
||||
7F600F3D1C5D0C0100535B1D /* UIRefreshControl+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIRefreshControl+Rx.swift"; sourceTree = "<group>"; };
|
||||
7F600F421C5D0D2D00535B1D /* UIRefreshControl+RxTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIRefreshControl+RxTests.swift"; sourceTree = "<group>"; };
|
||||
842A5A281C357F7D003568D5 /* NSTextStorage+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSTextStorage+Rx.swift"; sourceTree = "<group>"; };
|
||||
846436E11C9AF64C0035B40D /* RxSearchControllerDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxSearchControllerDelegateProxy.swift; sourceTree = "<group>"; };
|
||||
8476A01F1C3D5D580040BA22 /* UIImagePickerController+RxTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIImagePickerController+RxTests.swift"; sourceTree = "<group>"; };
|
||||
8479BC441C3ACDA400FB8B54 /* RxImagePickerDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxImagePickerDelegateProxy.swift; sourceTree = "<group>"; };
|
||||
8479BC4A1C3ACED100FB8B54 /* UIImagePickerController+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIImagePickerController+Rx.swift"; sourceTree = "<group>"; };
|
||||
84C225A21C33F00B008724EC /* RxTextStorageDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTextStorageDelegateProxy.swift; sourceTree = "<group>"; };
|
||||
84E4D3901C9AFCD500ADFDC9 /* UISearchController+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UISearchController+Rx.swift"; sourceTree = "<group>"; };
|
||||
84E4D3951C9B011000ADFDC9 /* UISearchController+RxTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UISearchController+RxTests.swift"; sourceTree = "<group>"; };
|
||||
9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIActivityIndicatorView+Rx.swift"; sourceTree = "<group>"; };
|
||||
A111CE961B91C97C00D0DCEE /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
AAE623751C82475700FC7801 /* UIProgressView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIProgressView+Rx.swift"; sourceTree = "<group>"; };
|
||||
@ -2219,6 +2229,7 @@
|
||||
7F600F421C5D0D2D00535B1D /* UIRefreshControl+RxTests.swift */,
|
||||
7EDBAEAB1C89B1A5006CBE67 /* UITabBarItem+RxTests.swift */,
|
||||
C8B2908C1C94D6C500E923D0 /* UISearchBar+RxTests.swift */,
|
||||
84E4D3951C9B011000ADFDC9 /* UISearchController+RxTests.swift */,
|
||||
);
|
||||
path = RxCocoaTests;
|
||||
sourceTree = "<group>";
|
||||
@ -2357,6 +2368,7 @@
|
||||
8479BC4A1C3ACED100FB8B54 /* UIImagePickerController+Rx.swift */,
|
||||
C8BCD3EC1C14B5FB005F1280 /* UIView+Rx.swift */,
|
||||
7EDBAEB71C89B9B7006CBE67 /* UITabBarItem+Rx.swift */,
|
||||
84E4D3901C9AFCD500ADFDC9 /* UISearchController+Rx.swift */,
|
||||
);
|
||||
path = iOS;
|
||||
sourceTree = "<group>";
|
||||
@ -2399,6 +2411,7 @@
|
||||
C88254021B8A752B00B02D69 /* RxTextViewDelegateProxy.swift */,
|
||||
84C225A21C33F00B008724EC /* RxTextStorageDelegateProxy.swift */,
|
||||
8479BC441C3ACDA400FB8B54 /* RxImagePickerDelegateProxy.swift */,
|
||||
846436E11C9AF64C0035B40D /* RxSearchControllerDelegateProxy.swift */,
|
||||
);
|
||||
path = Proxies;
|
||||
sourceTree = "<group>";
|
||||
@ -3256,8 +3269,10 @@
|
||||
C8DB967E1BF7496C0084BD53 /* KVORepresentable.swift in Sources */,
|
||||
C8D132441C42D15E00B59FFF /* SectionedViewDataSourceType.swift in Sources */,
|
||||
C849EF8B1C3195950048AC4A /* Variable+Driver.swift in Sources */,
|
||||
84E4D3921C9AFD3400ADFDC9 /* UISearchController+Rx.swift in Sources */,
|
||||
C88254341B8A752B00B02D69 /* UITableView+Rx.swift in Sources */,
|
||||
C88254161B8A752B00B02D69 /* RxCollectionViewReactiveArrayDataSource.swift in Sources */,
|
||||
846436E31C9AF65B0035B40D /* RxSearchControllerDelegateProxy.swift in Sources */,
|
||||
C8C4B4A91C17722400828BD5 /* _RXObjCRuntime.m in Sources */,
|
||||
C8093EEF1B8A732E0088E94D /* KVOObserver.swift in Sources */,
|
||||
C882541F1B8A752B00B02D69 /* RxCollectionViewDelegateProxy.swift in Sources */,
|
||||
@ -3435,6 +3450,7 @@
|
||||
C835093F1C38706E0027C24C /* ElementIndexPair.swift in Sources */,
|
||||
C83509381C38706E0027C24C /* NSObject+RxTests.swift in Sources */,
|
||||
C83509631C38706E0027C24C /* SubjectConcurrencyTest.swift in Sources */,
|
||||
84E4D3961C9B011000ADFDC9 /* UISearchController+RxTests.swift in Sources */,
|
||||
C83509511C38706E0027C24C /* HistoricalSchedulerTest.swift in Sources */,
|
||||
C835096B1C38706E0027C24C /* XCTest+AllTests.swift in Sources */,
|
||||
C83509541C38706E0027C24C /* Observable+BindingTest.swift in Sources */,
|
||||
@ -4157,6 +4173,7 @@
|
||||
C8D132471C42D15E00B59FFF /* SectionedViewDataSourceType.swift in Sources */,
|
||||
C849EF8E1C3195950048AC4A /* Variable+Driver.swift in Sources */,
|
||||
C8F0C0161BBBFBB9001B112F /* UITableView+Rx.swift in Sources */,
|
||||
84E4D3941C9AFD3600ADFDC9 /* UISearchController+Rx.swift in Sources */,
|
||||
C8F0C0171BBBFBB9001B112F /* RxCollectionViewReactiveArrayDataSource.swift in Sources */,
|
||||
C8C4B4AC1C17722400828BD5 /* _RXObjCRuntime.m in Sources */,
|
||||
C8F0C0181BBBFBB9001B112F /* KVOObserver.swift in Sources */,
|
||||
@ -4196,6 +4213,7 @@
|
||||
C8F0C0341BBBFBB9001B112F /* Logging.swift in Sources */,
|
||||
C8F0C0351BBBFBB9001B112F /* UICollectionView+Rx.swift in Sources */,
|
||||
C8F0C0361BBBFBB9001B112F /* RxCollectionViewDataSourceType.swift in Sources */,
|
||||
846436E61C9AF6670035B40D /* RxSearchControllerDelegateProxy.swift in Sources */,
|
||||
C8F0C0371BBBFBB9001B112F /* NSNotificationCenter+Rx.swift in Sources */,
|
||||
C8F0C0381BBBFBB9001B112F /* UITextField+Rx.swift in Sources */,
|
||||
C8F0C0391BBBFBB9001B112F /* NSURLSession+Rx.swift in Sources */,
|
||||
@ -4252,6 +4270,7 @@
|
||||
D203C50B1BB9C53E00D02D00 /* UIScrollView+Rx.swift in Sources */,
|
||||
C8C4B4AB1C17722400828BD5 /* _RXObjCRuntime.m in Sources */,
|
||||
D203C50C1BB9C53E00D02D00 /* UISearchBar+Rx.swift in Sources */,
|
||||
846436E51C9AF65E0035B40D /* RxSearchControllerDelegateProxy.swift in Sources */,
|
||||
D2138C971BB9BEE700339B5C /* RxCLLocationManagerDelegateProxy.swift in Sources */,
|
||||
D203C4FB1BB9C53700D02D00 /* RxCollectionViewDelegateProxy.swift in Sources */,
|
||||
D203C5031BB9C53E00D02D00 /* UIBarButtonItem+Rx.swift in Sources */,
|
||||
@ -4298,6 +4317,7 @@
|
||||
D2138C8A1BB9BEBE00339B5C /* Logging.swift in Sources */,
|
||||
7EDBAEBE1C89B9B7006CBE67 /* UITabBarItem+Rx.swift in Sources */,
|
||||
C8DB968A1BF756F40084BD53 /* KVORepresentable+CoreGraphics.swift in Sources */,
|
||||
84E4D3931C9AFD3500ADFDC9 /* UISearchController+Rx.swift in Sources */,
|
||||
C8FD21B01C67E14C00863EC3 /* UIBindingObserver.swift in Sources */,
|
||||
D203C50F1BB9C53E00D02D00 /* UIStepper+Rx.swift in Sources */,
|
||||
);
|
||||
|
40
RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift
Normal file
40
RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift
Normal file
@ -0,0 +1,40 @@
|
||||
//
|
||||
// RxSearchControllerDelegateProxy.swift
|
||||
// Rx
|
||||
//
|
||||
// Created by Segii Shulga on 3/17/16.
|
||||
// Copyright © 2016 Krunoslav Zaher. All rights reserved.
|
||||
//
|
||||
|
||||
#if os(iOS)
|
||||
|
||||
import Foundation
|
||||
#if !RX_NO_MODULE
|
||||
import RxSwift
|
||||
#endif
|
||||
import UIKit
|
||||
|
||||
public class RxSearchControllerDelegateProxy
|
||||
: DelegateProxy
|
||||
, DelegateProxyType
|
||||
, UISearchControllerDelegate {
|
||||
|
||||
/**
|
||||
For more information take a look at `DelegateProxyType`.
|
||||
*/
|
||||
public class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) {
|
||||
let searchController: UISearchController = castOrFatalError(object)
|
||||
searchController.delegate = castOptionalOrFatalError(delegate)
|
||||
}
|
||||
|
||||
/**
|
||||
For more information take a look at `DelegateProxyType`.
|
||||
*/
|
||||
public class func currentDelegateFor(object: AnyObject) -> AnyObject? {
|
||||
let searchController: UISearchController = castOrFatalError(object)
|
||||
return searchController.delegate
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
70
RxCocoa/iOS/UISearchController+Rx.swift
Normal file
70
RxCocoa/iOS/UISearchController+Rx.swift
Normal file
@ -0,0 +1,70 @@
|
||||
//
|
||||
// UISearchController+Rx.swift
|
||||
// Rx
|
||||
//
|
||||
// Created by Segii Shulga on 3/17/16.
|
||||
// Copyright © 2016 Krunoslav Zaher. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
#if os(iOS)
|
||||
import Foundation
|
||||
|
||||
#if !RX_NO_MODULE
|
||||
import RxSwift
|
||||
#endif
|
||||
import UIKit
|
||||
|
||||
extension UISearchController {
|
||||
/**
|
||||
Reactive wrapper for `delegate`.
|
||||
For more information take a look at `DelegateProxyType` protocol documentation.
|
||||
*/
|
||||
public var rx_delegate: DelegateProxy {
|
||||
return proxyForObject(RxSearchControllerDelegateProxy.self, self)
|
||||
}
|
||||
/**
|
||||
Reactive wrapper for `delegate` message.
|
||||
*/
|
||||
public var rx_didDismiss: Observable<Void> {
|
||||
return rx_delegate
|
||||
.observe("didDismissSearchController:")
|
||||
.map {_ in}
|
||||
}
|
||||
/**
|
||||
Reactive wrapper for `delegate` message.
|
||||
*/
|
||||
public var rx_didPresent: Observable<Void> {
|
||||
return rx_delegate
|
||||
.observe("didPresentSearchController:")
|
||||
.map {_ in}
|
||||
}
|
||||
/**
|
||||
Reactive wrapper for `delegate` message.
|
||||
*/
|
||||
public var rx_present: Observable<Void> {
|
||||
return rx_delegate
|
||||
.observe("presentSearchController:")
|
||||
.map {_ in}
|
||||
}
|
||||
/**
|
||||
Reactive wrapper for `delegate` message.
|
||||
*/
|
||||
public var rx_willDismiss: Observable<Void> {
|
||||
return rx_delegate
|
||||
.observe("willDismissSearchController:")
|
||||
.map {_ in}
|
||||
}
|
||||
/**
|
||||
Reactive wrapper for `delegate` message.
|
||||
*/
|
||||
public var rx_willPresent: Observable<Void> {
|
||||
return rx_delegate
|
||||
.observe("willPresentSearchController:")
|
||||
.map {_ in}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -49,7 +49,10 @@ import XCTest
|
||||
, TestDelegateProtocol {
|
||||
optional func testEventHappened(value: Int)
|
||||
}
|
||||
|
||||
#if os(iOS)
|
||||
extension RxSearchControllerDelegateProxy: TestDelegateProtocol {
|
||||
}
|
||||
#endif
|
||||
|
||||
// MARK: Tests
|
||||
|
||||
@ -96,6 +99,14 @@ extension DelegateProxyTest {
|
||||
}
|
||||
}
|
||||
|
||||
// MARK UISearchController
|
||||
#if os(iOS)
|
||||
extension DelegateProxyTest {
|
||||
func test_UISearchController() {
|
||||
performDelegateTest(UISearchControllerSubclass())
|
||||
}
|
||||
}
|
||||
#endif
|
||||
// MARK: Mocks
|
||||
|
||||
class ExtendTableViewDelegateProxy
|
||||
@ -270,4 +281,20 @@ class UITextViewSubclass
|
||||
.observe("testEventHappened:")
|
||||
.map { a in (a[0] as! NSNumber).integerValue }
|
||||
}
|
||||
}
|
||||
}
|
||||
#if os(iOS)
|
||||
class UISearchControllerSubclass
|
||||
: UISearchController
|
||||
, TestDelegateControl {
|
||||
|
||||
func doThatTest(value: Int) {
|
||||
(delegate as! TestDelegateProtocol).testEventHappened?(value)
|
||||
}
|
||||
|
||||
var test: Observable<Int> {
|
||||
return rx_delegate
|
||||
.observe("testEventHappened:")
|
||||
.map { a in (a[0] as! NSNumber).integerValue }
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
121
Tests/RxCocoaTests/UISearchController+RxTests.swift
Normal file
121
Tests/RxCocoaTests/UISearchController+RxTests.swift
Normal file
@ -0,0 +1,121 @@
|
||||
//
|
||||
// UISearchController+RxTests.swift
|
||||
// Rx
|
||||
//
|
||||
// Created by Segii Shulga on 3/17/16.
|
||||
// Copyright © 2016 Krunoslav Zaher. All rights reserved.
|
||||
//
|
||||
|
||||
#if os(iOS)
|
||||
|
||||
import Foundation
|
||||
import RxSwift
|
||||
import RxCocoa
|
||||
import XCTest
|
||||
import UIKit
|
||||
|
||||
class UISearchController_RxTests: RxTest {
|
||||
|
||||
func testDidDismissSearchController() {
|
||||
var completed = false
|
||||
var didDismissed = false
|
||||
|
||||
autoreleasepool {
|
||||
let searchController = UISearchController()
|
||||
|
||||
_ = searchController.rx_didDismiss
|
||||
.subscribe(onNext: {
|
||||
didDismissed = true
|
||||
}, onCompleted: {
|
||||
completed = true
|
||||
})
|
||||
searchController.delegate!.didDismissSearchController!(searchController)
|
||||
}
|
||||
|
||||
XCTAssertTrue(completed)
|
||||
XCTAssertTrue(didDismissed)
|
||||
}
|
||||
|
||||
func testDidPresentSearchController() {
|
||||
var completed = false
|
||||
var didPresent = false
|
||||
|
||||
autoreleasepool {
|
||||
let searchController = UISearchController()
|
||||
|
||||
_ = searchController.rx_didPresent
|
||||
.subscribe(onNext: {
|
||||
didPresent = true
|
||||
}, onCompleted: {
|
||||
completed = true
|
||||
})
|
||||
searchController.delegate!.didPresentSearchController!(searchController)
|
||||
}
|
||||
|
||||
XCTAssertTrue(completed)
|
||||
XCTAssertTrue(didPresent)
|
||||
}
|
||||
|
||||
func testPresentSearchController() {
|
||||
var completed = false
|
||||
var presented = false
|
||||
|
||||
autoreleasepool {
|
||||
let searchController = UISearchController()
|
||||
|
||||
_ = searchController.rx_present
|
||||
.subscribe(onNext: {
|
||||
presented = true
|
||||
}, onCompleted: {
|
||||
completed = true
|
||||
})
|
||||
searchController.delegate!.presentSearchController!(searchController)
|
||||
}
|
||||
|
||||
XCTAssertTrue(completed)
|
||||
XCTAssertTrue(presented)
|
||||
}
|
||||
|
||||
func testWillDismissSearchController() {
|
||||
var completed = false
|
||||
var willDismiss = false
|
||||
|
||||
autoreleasepool {
|
||||
let searchController = UISearchController()
|
||||
|
||||
_ = searchController.rx_willDismiss
|
||||
.subscribe(onNext: {
|
||||
willDismiss = true
|
||||
}, onCompleted: {
|
||||
completed = true
|
||||
})
|
||||
searchController.delegate!.willDismissSearchController!(searchController)
|
||||
}
|
||||
|
||||
XCTAssertTrue(completed)
|
||||
XCTAssertTrue(willDismiss)
|
||||
}
|
||||
|
||||
func testWillPresentSearchController() {
|
||||
var completed = false
|
||||
var willPresent = false
|
||||
|
||||
autoreleasepool {
|
||||
let searchController = UISearchController()
|
||||
|
||||
_ = searchController.rx_willPresent
|
||||
.subscribe(onNext: {
|
||||
willPresent = true
|
||||
}, onCompleted: {
|
||||
completed = true
|
||||
})
|
||||
searchController.delegate!.willPresentSearchController!(searchController)
|
||||
}
|
||||
|
||||
XCTAssertTrue(completed)
|
||||
XCTAssertTrue(willPresent)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user