blob: 08aa6343fe22adcf2fe6323a39707de81b3d4dbf [file] [log] [blame]
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -04001/*
Kateryna Kostiuk41153692023-03-09 14:20:45 -05002 * Copyright (C) 2020-2023 Savoir-faire Linux Inc.
Kateryna Kostiuk1efd0012022-09-13 12:08:36 -04003 *
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
Kateryna Kostiuk41153692023-03-09 14:20:45 -050038 XCTAssertTrue(manager.getMenuItemsForLocalCall(conference: conference, active: active, isHandRised: true) == [.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
Kateryna Kostiuk41153692023-03-09 14:20:45 -050045 XCTAssertTrue(manager.getMenuItemsForLocalCall(conference: conference, active: active, isHandRised: true) == [.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
Kateryna Kostiuk41153692023-03-09 14:20:45 -050053 XCTAssertTrue(manager.getMenuItemsForLocalCall(conference: conference, active: active, isHandRised: true) == [.name, .lowerHand, .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
Kateryna Kostiuk41153692023-03-09 14:20:45 -050061 XCTAssertTrue(manager.getMenuItemsForLocalCall(conference: conference, active: active, isHandRised: true) == [.name, .lowerHand, .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
Kateryna Kostiuk41153692023-03-09 14:20:45 -050069 XCTAssertTrue(manager.getMenuItemsForLocalCall(conference: conference, active: active, isHandRised: true) == [.name, .lowerHand, .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
Kateryna Kostiuk41153692023-03-09 14:20:45 -050077 XCTAssertTrue(manager.getMenuItemsForLocalCall(conference: conference, active: active, isHandRised: true) == [.name, .lowerHand, .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
Kateryna Kostiuk41153692023-03-09 14:20:45 -050085 XCTAssertTrue(manager.getMenuItemsForLocalCall(conference: conference, active: active, isHandRised: true) == [.name, .lowerHand, .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
Kateryna Kostiuk41153692023-03-09 14:20:45 -050095 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role, isHandRised: true) == [.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
Kateryna Kostiuk41153692023-03-09 14:20:45 -0500105 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role, isHandRised: true) == [.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
Kateryna Kostiuk41153692023-03-09 14:20:45 -0500116 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role, isHandRised: true) == [.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
Kateryna Kostiuk41153692023-03-09 14:20:45 -0500127 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role, isHandRised: true) == [.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
Kateryna Kostiuk41153692023-03-09 14:20:45 -0500138 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role, isHandRised: true) == [.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
Kateryna Kostiuk41153692023-03-09 14:20:45 -0500149 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role, isHandRised: true) == [.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
Kateryna Kostiuk41153692023-03-09 14:20:45 -0500161 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role, isHandRised: true) == [.name, .lowerHand, .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
Kateryna Kostiuk41153692023-03-09 14:20:45 -0500173 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role, isHandRised: true) ==
174 [.name, .lowerHand, .maximize, .minimize, .muteAudio, .setModerator, .hangup])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400175 }
176
177 func testGetMenuItemsForNotActiveCallWithConferenceOneWithSmalLayout() {
178 let manager = ConferenceMenuItemsManager()
179 let conference: CallModel? = CallModel()
180 conference?.layout = .oneWithSmal
181 let call: CallModel? = CallModel()
kkostiukd64e5862021-04-20 12:30:14 -0400182 let role = RoleInCall.host
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400183 call?.state = .current
184 let active: Bool? = false
kkostiukd64e5862021-04-20 12:30:14 -0400185 let isHost = false
Kateryna Kostiuk41153692023-03-09 14:20:45 -0500186 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role, isHandRised: true) ==
187 [.name, .lowerHand, .maximize, .muteAudio, .setModerator, .hangup])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400188 }
189
190 func testGetMenuItemsForActiveCallWithConferenceOneLayout() {
191 let manager = ConferenceMenuItemsManager()
192 let conference: CallModel? = CallModel()
193 conference?.layout = .one
194 let call: CallModel? = CallModel()
195 call?.state = .current
kkostiukd64e5862021-04-20 12:30:14 -0400196 let role = RoleInCall.host
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400197 let active: Bool? = true
kkostiukd64e5862021-04-20 12:30:14 -0400198 let isHost = false
Kateryna Kostiuk41153692023-03-09 14:20:45 -0500199 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role, isHandRised: true) ==
200 [.name, .lowerHand, .minimize, .muteAudio, .setModerator, .hangup])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400201 }
202
203 func testGetMenuItemsForNotActiveCallWithConferenceOneLayout() {
204 let manager = ConferenceMenuItemsManager()
205 let conference: CallModel? = CallModel()
206 conference?.layout = .one
207 let call: CallModel? = CallModel()
208 call?.state = .current
kkostiukd64e5862021-04-20 12:30:14 -0400209 let role = RoleInCall.host
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400210 let active: Bool? = false
kkostiukd64e5862021-04-20 12:30:14 -0400211 let isHost = false
Kateryna Kostiuk41153692023-03-09 14:20:45 -0500212 XCTAssertTrue(manager.getMenuItemsFor(call: call, isHost: isHost, conference: conference, active: active, role: role, isHandRised: true) ==
213 [.name, .lowerHand, .maximize, .muteAudio, .setModerator, .hangup])
Kateryna Kostiuke500a8e2020-10-01 10:24:00 -0400214 }
215}