marshroute

Форк
0
/
PeekAndPopUtilityImplTests_releasesPeekViewController.swift 
95 строк · 3.0 Кб
1
import XCTest
2
@testable import Marshroute
3

4
final class PeekAndPopUtilityImplTests_releasesPeekViewController: BasePeekAndPopUtilityImplTestCase {    
5
    func testPeekAndPopUtility_releasesPeekViewController_ifPeekBeginsOnOffscreenRegisteredViewControllerAndSomeTransitionOccurs() {
6
        // Given
7
        let expectation = self.expectation()
8
        
9
        weak var weakPeekViewController = peekViewController
10
        
11
        unbindSourceViewControllerFromWindow()
12
        
13
        registerSourceViewControllerForPreviewing()
14
        
15
        // When
16
        beginPeekOnRegisteredViewController()
17
        
18
        invokeTransitionToPeekViewController(
19
            popAction: {
20
                self.peekViewController = nil
21
                self.peekNavigationController?.viewControllers = []
22
            }
23
        )
24
        
25
        // Then
26
        DispatchQueue.main.asyncAfter(deadline: .now() + asyncDelay) {
27
            XCTAssert(weakPeekViewController == nil)
28
            expectation.fulfill()
29
        }
30
        
31
        waitForExpectations(timeout: asyncTimeout)
32
    }
33
        
34
    func testPeekAndPopUtility_releasesPeekViewController_ifPeekGetsCommitedOnOnscreenRegisteredViewController() {
35
        // Given
36
        let expectation = self.expectation()
37
        
38
        weak var weakPeekViewController = peekViewController
39
        
40
        bindSourceViewControllerToWindow()
41
        
42
        registerSourceViewControllerForPreviewing(
43
            onPeek: { _ in
44
                self.invokeTransitionToPeekViewController(
45
                    popAction: {
46
                        self.peekViewController = nil
47
                        self.peekNavigationController?.viewControllers = []
48
                    }
49
                )
50
            }
51
        )
52
        
53
        // When
54
        beginPeekOnRegisteredViewController()
55
        
56
        commitPickOnRegisteredViewController()
57
        
58
        // Then
59
        DispatchQueue.main.asyncAfter(deadline: .now() + asyncDelay) {
60
            XCTAssert(weakPeekViewController == nil)
61
            expectation.fulfill()
62
        }
63
        
64
        waitForExpectations(timeout: asyncTimeout)
65
    }
66
    
67
    func testPeekAndPopUtility_releasesPeekViewController_ifPeekGetsInterruptedWithAnotherTransitionOnOnscreenRegisteredViewController() {
68
        // Given
69
        let expectation = self.expectation()
70
        
71
        weak var weakPeekViewController = peekViewController
72
        
73
        bindSourceViewControllerToWindow()
74
        
75
        registerSourceViewControllerForPreviewing(
76
            onPeek: { _ in
77
                self.invokeTransitionToPeekViewController()
78
                self.peekViewController = nil
79
            }
80
        )
81
        
82
        // When
83
        beginPeekOnRegisteredViewController()
84
        
85
        interruptPeekWithAnotherTransitionOnRegisteredViewController()
86
        
87
        // Then
88
        DispatchQueue.main.asyncAfter(deadline: .now() + asyncDelay) {
89
            XCTAssert(weakPeekViewController == nil)
90
            expectation.fulfill()
91
        }
92
        
93
        waitForExpectations(timeout: asyncTimeout)
94
    }
95
}    
96

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.