blob: 931f24c9fc52eda375291c5ce8b6e8c02ecb6e20 [file] [log] [blame]
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -04001/*
Kateryna Kostiuk1efd0012022-09-13 12:08:36 -04002 * Copyright (C) 2020 Savoir-faire Linux Inc.
3 *
4 * Author: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 */
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040020
21import XCTest
22@testable import Ring
23
24class ConferenceMenuItemsManagerTest: XCTestCase {
25
26 override func setUp() {
27 super.setUp()
28 }
29
30 override func tearDown() {
31 super.tearDown()
32 }
33
kkostiukd64e5862021-04-20 12:30:14 -040034 func testGetMenuItemsForLocalCallNil() {
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040035 let manager = ConferenceMenuItemsManager()
36 let conference: CallModel? = nil
37 let active = true
kkostiukd64e5862021-04-20 12:30:14 -040038 XCTAssertTrue(manager.getMenuItemsForLocalCall(conference: conference, active: active) == [.name])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040039 }
40
kkostiukd64e5862021-04-20 12:30:14 -040041 func testGetMenuItemsForeLocalCallWithoutActiveCall() {
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040042 let manager = ConferenceMenuItemsManager()
43 let conference = CallModel()
44 let active: Bool? = nil
kkostiukd64e5862021-04-20 12:30:14 -040045 XCTAssertTrue(manager.getMenuItemsForLocalCall(conference: conference, active: active) == [.name])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040046 }
47
kkostiukd64e5862021-04-20 12:30:14 -040048 func testGetMenuItemsForLocalCallWithConferenceGridLayout() {
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040049 let manager = ConferenceMenuItemsManager()
50 let conference = CallModel()
51 conference.layout = .grid
52 let active = true
kkostiukd64e5862021-04-20 12:30:14 -040053 XCTAssertTrue(manager.getMenuItemsForLocalCall(conference: conference, active: active) == [.name, .maximize, .muteAudio])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040054 }
55
kkostiukd64e5862021-04-20 12:30:14 -040056 func testGetMenuItemsForActiveLocalCallWithConferenceOneWithSmalLayout() {
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040057 let manager = ConferenceMenuItemsManager()
58 let conference = CallModel()
59 conference.layout = .oneWithSmal
60 let active = true
kkostiukd64e5862021-04-20 12:30:14 -040061 XCTAssertTrue(manager.getMenuItemsForLocalCall(conference: conference, active: active) == [.name, .maximize, .minimize, .muteAudio])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040062 }
63
kkostiukd64e5862021-04-20 12:30:14 -040064 func testGetMenuItemsForNotActiveLocalCallWithConferenceOneWithSmalLayout() {
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040065 let manager = ConferenceMenuItemsManager()
66 let conference = CallModel()
67 conference.layout = .oneWithSmal
68 let active = false
kkostiukd64e5862021-04-20 12:30:14 -040069 XCTAssertTrue(manager.getMenuItemsForLocalCall(conference: conference, active: active) == [.name, .maximize, .muteAudio])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040070 }
71
kkostiukd64e5862021-04-20 12:30:14 -040072 func testGetMenuItemsForActiveLocalCallWithConferenceOneLayout() {
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040073 let manager = ConferenceMenuItemsManager()
74 let conference = CallModel()
75 conference.layout = .one
76 let active = true
kkostiukd64e5862021-04-20 12:30:14 -040077 XCTAssertTrue(manager.getMenuItemsForLocalCall(conference: conference, active: active) == [.name, .minimize, .muteAudio])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040078 }
79
kkostiukd64e5862021-04-20 12:30:14 -040080 func testGetMenuItemsForNotActiveLocalCallWithConferenceOneLayout() {
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040081 let manager = ConferenceMenuItemsManager()
82 let conference = CallModel()
83 conference.layout = .one
84 let active = false
kkostiukd64e5862021-04-20 12:30:14 -040085 XCTAssertTrue(manager.getMenuItemsForLocalCall(conference: conference, active: active) == [.name, .maximize, .muteAudio])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040086 }
87
88 func testGetMenuItemsForNilConference() {
89 let manager = ConferenceMenuItemsManager()
90 let conference: CallModel? = nil
91 let call: CallModel? = CallModel()
92 let active = true
kkostiukd64e5862021-04-20 12:30:14 -040093 let role = RoleInCall.host
94 let isHost = false
95 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role) == [.name])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -040096 }
97
98 func testGetMenuItemsForNilCall() {
99 let manager = ConferenceMenuItemsManager()
100 let conference: CallModel? = CallModel()
101 let call: CallModel? = nil
102 let active = true
kkostiukd64e5862021-04-20 12:30:14 -0400103 let role = RoleInCall.host
104 let isHost = false
105 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role) == [.name])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400106 }
107
108 func testGetMenuItemsWithoutActiveCall() {
109 let manager = ConferenceMenuItemsManager()
110 let conference: CallModel? = CallModel()
111 let call: CallModel? = CallModel()
112 call?.state = .current
kkostiukd64e5862021-04-20 12:30:14 -0400113 let role = RoleInCall.host
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400114 let active: Bool? = nil
kkostiukd64e5862021-04-20 12:30:14 -0400115 let isHost = false
116 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role) == [.name])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400117 }
118
119 func testGetMenuItemsForConnectingCall() {
120 let manager = ConferenceMenuItemsManager()
121 let conference: CallModel? = CallModel()
122 let call: CallModel? = CallModel()
123 call?.state = .connecting
kkostiukd64e5862021-04-20 12:30:14 -0400124 let role = RoleInCall.host
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400125 let active: Bool? = true
kkostiukd64e5862021-04-20 12:30:14 -0400126 let isHost = false
127 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role) == [.name, .hangup])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400128 }
129
130 func testGetMenuItemsForRingingCall() {
131 let manager = ConferenceMenuItemsManager()
132 let conference: CallModel? = CallModel()
133 let call: CallModel? = CallModel()
134 call?.state = .ringing
kkostiukd64e5862021-04-20 12:30:14 -0400135 let role = RoleInCall.host
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400136 let active: Bool? = true
kkostiukd64e5862021-04-20 12:30:14 -0400137 let isHost = false
138 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role) == [.name, .hangup])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400139 }
140
141 func testGetMenuItemsForHoldingCall() {
142 let manager = ConferenceMenuItemsManager()
143 let conference: CallModel? = CallModel()
144 let call: CallModel? = CallModel()
145 call?.state = .hold
kkostiukd64e5862021-04-20 12:30:14 -0400146 let role = RoleInCall.host
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400147 let active: Bool? = true
kkostiukd64e5862021-04-20 12:30:14 -0400148 let isHost = false
149 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role) == [.name, .hangup])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400150 }
151
152 func testGetMenuItemsForCallWithConferenceGridLayout() {
153 let manager = ConferenceMenuItemsManager()
154 let conference: CallModel? = CallModel()
155 conference?.layout = .grid
156 let call: CallModel? = CallModel()
157 call?.state = .current
kkostiukd64e5862021-04-20 12:30:14 -0400158 let role = RoleInCall.host
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400159 let active: Bool? = true
kkostiukd64e5862021-04-20 12:30:14 -0400160 let isHost = false
161 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role) == [.name, .maximize, .muteAudio, .setModerator, .hangup])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400162 }
163
164 func testGetMenuItemsForActiveCallWithConferenceOneWithSmalLayout() {
165 let manager = ConferenceMenuItemsManager()
166 let conference: CallModel? = CallModel()
167 conference?.layout = .oneWithSmal
168 let call: CallModel? = CallModel()
kkostiukd64e5862021-04-20 12:30:14 -0400169 let role = RoleInCall.host
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400170 call?.state = .current
171 let active: Bool? = true
kkostiukd64e5862021-04-20 12:30:14 -0400172 let isHost = false
173 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role) == [.name, .maximize, .minimize, .muteAudio, .setModerator, .hangup])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400174 }
175
176 func testGetMenuItemsForNotActiveCallWithConferenceOneWithSmalLayout() {
177 let manager = ConferenceMenuItemsManager()
178 let conference: CallModel? = CallModel()
179 conference?.layout = .oneWithSmal
180 let call: CallModel? = CallModel()
kkostiukd64e5862021-04-20 12:30:14 -0400181 let role = RoleInCall.host
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400182 call?.state = .current
183 let active: Bool? = false
kkostiukd64e5862021-04-20 12:30:14 -0400184 let isHost = false
185 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role) == [.name, .maximize, .muteAudio, .setModerator, .hangup])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400186 }
187
188 func testGetMenuItemsForActiveCallWithConferenceOneLayout() {
189 let manager = ConferenceMenuItemsManager()
190 let conference: CallModel? = CallModel()
191 conference?.layout = .one
192 let call: CallModel? = CallModel()
193 call?.state = .current
kkostiukd64e5862021-04-20 12:30:14 -0400194 let role = RoleInCall.host
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400195 let active: Bool? = true
kkostiukd64e5862021-04-20 12:30:14 -0400196 let isHost = false
197 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role) == [.name, .minimize, .muteAudio, .setModerator, .hangup])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400198 }
199
200 func testGetMenuItemsForNotActiveCallWithConferenceOneLayout() {
201 let manager = ConferenceMenuItemsManager()
202 let conference: CallModel? = CallModel()
203 conference?.layout = .one
204 let call: CallModel? = CallModel()
205 call?.state = .current
kkostiukd64e5862021-04-20 12:30:14 -0400206 let role = RoleInCall.host
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400207 let active: Bool? = false
kkostiukd64e5862021-04-20 12:30:14 -0400208 let isHost = false
209 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role) == [.name, .maximize, .muteAudio, .setModerator, .hangup])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400210 }
211}