conference: add layout
- add conference layout
- add options to manage conference size
Change-Id: I7ef4300aa1439e33229629f597e88bfc4f8e8712
diff --git a/Ring/RingTests/ConferenceMenuItemsManagerTest.swift b/Ring/RingTests/ConferenceMenuItemsManagerTest.swift
new file mode 100644
index 0000000..302f61c
--- /dev/null
+++ b/Ring/RingTests/ConferenceMenuItemsManagerTest.swift
@@ -0,0 +1,189 @@
+/*
+* Copyright (C) 2020 Savoir-faire Linux Inc.
+*
+* Author: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+import XCTest
+@testable import Ring
+
+class ConferenceMenuItemsManagerTest: XCTestCase {
+
+ override func setUp() {
+ super.setUp()
+ }
+
+ override func tearDown() {
+ super.tearDown()
+ }
+
+ func testGetMenuItemsForMasterCallNil() {
+ let manager = ConferenceMenuItemsManager()
+ let conference: CallModel? = nil
+ let active = true
+ XCTAssertTrue(manager.getMenuItemsForMasterCall(conference: conference, active: active) == MenuMode.onlyName)
+ }
+
+ func testGetMenuItemsForeMasterCallWithoutActiveCall() {
+ let manager = ConferenceMenuItemsManager()
+ let conference = CallModel()
+ let active: Bool? = nil
+ XCTAssertTrue(manager.getMenuItemsForMasterCall(conference: conference, active: active) == MenuMode.onlyName)
+ }
+
+ func testGetMenuItemsForMasterCallWithConferenceGridLayout() {
+ let manager = ConferenceMenuItemsManager()
+ let conference = CallModel()
+ conference.layout = .grid
+ let active = true
+ XCTAssertTrue(manager.getMenuItemsForMasterCall(conference: conference, active: active) == MenuMode.withoutHangUPAndMinimize)
+ }
+
+ func testGetMenuItemsForActiveMasterCallWithConferenceOneWithSmalLayout() {
+ let manager = ConferenceMenuItemsManager()
+ let conference = CallModel()
+ conference.layout = .oneWithSmal
+ let active = true
+ XCTAssertTrue(manager.getMenuItemsForMasterCall(conference: conference, active: active) == MenuMode.withoutHangUp)
+ }
+
+ func testGetMenuItemsForNotActiveMasterCallWithConferenceOneWithSmalLayout() {
+ let manager = ConferenceMenuItemsManager()
+ let conference = CallModel()
+ conference.layout = .oneWithSmal
+ let active = false
+ XCTAssertTrue(manager.getMenuItemsForMasterCall(conference: conference, active: active) == MenuMode.withoutHangUPAndMinimize)
+ }
+
+ func testGetMenuItemsForActiveMasterCallWithConferenceOneLayout() {
+ let manager = ConferenceMenuItemsManager()
+ let conference = CallModel()
+ conference.layout = .one
+ let active = true
+ XCTAssertTrue(manager.getMenuItemsForMasterCall(conference: conference, active: active) == MenuMode.withoutHangUPAndMaximize)
+ }
+
+ func testGetMenuItemsForNotActiveMasterCallWithConferenceOneLayout() {
+ let manager = ConferenceMenuItemsManager()
+ let conference = CallModel()
+ conference.layout = .one
+ let active = false
+ XCTAssertTrue(manager.getMenuItemsForMasterCall(conference: conference, active: active) == MenuMode.withoutHangUPAndMinimize)
+ }
+
+ func testGetMenuItemsForNilConference() {
+ let manager = ConferenceMenuItemsManager()
+ let conference: CallModel? = nil
+ let call: CallModel? = CallModel()
+ let active = true
+ XCTAssertTrue(manager.getMenuItemsFor(call: call, conference: conference, active: active) == MenuMode.onlyName)
+ }
+
+ func testGetMenuItemsForNilCall() {
+ let manager = ConferenceMenuItemsManager()
+ let conference: CallModel? = CallModel()
+ let call: CallModel? = nil
+ let active = true
+ XCTAssertTrue(manager.getMenuItemsFor(call: call, conference: conference, active: active) == MenuMode.onlyName)
+ }
+
+ func testGetMenuItemsWithoutActiveCall() {
+ let manager = ConferenceMenuItemsManager()
+ let conference: CallModel? = CallModel()
+ let call: CallModel? = CallModel()
+ call?.state = .current
+ let active: Bool? = nil
+ XCTAssertTrue(manager.getMenuItemsFor(call: call, conference: conference, active: active) == MenuMode.onlyName)
+ }
+
+ func testGetMenuItemsForConnectingCall() {
+ let manager = ConferenceMenuItemsManager()
+ let conference: CallModel? = CallModel()
+ let call: CallModel? = CallModel()
+ call?.state = .connecting
+ let active: Bool? = true
+ XCTAssertTrue(manager.getMenuItemsFor(call: call, conference: conference, active: active) == MenuMode.withoutMaximizeAndMinimize)
+ }
+
+ func testGetMenuItemsForRingingCall() {
+ let manager = ConferenceMenuItemsManager()
+ let conference: CallModel? = CallModel()
+ let call: CallModel? = CallModel()
+ call?.state = .ringing
+ let active: Bool? = true
+ XCTAssertTrue(manager.getMenuItemsFor(call: call, conference: conference, active: active) == MenuMode.withoutMaximizeAndMinimize)
+ }
+
+ func testGetMenuItemsForHoldingCall() {
+ let manager = ConferenceMenuItemsManager()
+ let conference: CallModel? = CallModel()
+ let call: CallModel? = CallModel()
+ call?.state = .hold
+ let active: Bool? = true
+ XCTAssertTrue(manager.getMenuItemsFor(call: call, conference: conference, active: active) == MenuMode.withoutMaximizeAndMinimize)
+ }
+
+ func testGetMenuItemsForCallWithConferenceGridLayout() {
+ let manager = ConferenceMenuItemsManager()
+ let conference: CallModel? = CallModel()
+ conference?.layout = .grid
+ let call: CallModel? = CallModel()
+ call?.state = .current
+ let active: Bool? = true
+ XCTAssertTrue(manager.getMenuItemsFor(call: call, conference: conference, active: active) == MenuMode.withoutMinimize)
+ }
+
+ func testGetMenuItemsForActiveCallWithConferenceOneWithSmalLayout() {
+ let manager = ConferenceMenuItemsManager()
+ let conference: CallModel? = CallModel()
+ conference?.layout = .oneWithSmal
+ let call: CallModel? = CallModel()
+ call?.state = .current
+ let active: Bool? = true
+ XCTAssertTrue(manager.getMenuItemsFor(call: call, conference: conference, active: active) == MenuMode.all)
+ }
+
+ func testGetMenuItemsForNotActiveCallWithConferenceOneWithSmalLayout() {
+ let manager = ConferenceMenuItemsManager()
+ let conference: CallModel? = CallModel()
+ conference?.layout = .oneWithSmal
+ let call: CallModel? = CallModel()
+ call?.state = .current
+ let active: Bool? = false
+ XCTAssertTrue(manager.getMenuItemsFor(call: call, conference: conference, active: active) == MenuMode.withoutMinimize)
+ }
+
+ func testGetMenuItemsForActiveCallWithConferenceOneLayout() {
+ let manager = ConferenceMenuItemsManager()
+ let conference: CallModel? = CallModel()
+ conference?.layout = .one
+ let call: CallModel? = CallModel()
+ call?.state = .current
+ let active: Bool? = true
+ XCTAssertTrue(manager.getMenuItemsFor(call: call, conference: conference, active: active) == MenuMode.withoutMaximize)
+ }
+
+ func testGetMenuItemsForNotActiveCallWithConferenceOneLayout() {
+ let manager = ConferenceMenuItemsManager()
+ let conference: CallModel? = CallModel()
+ conference?.layout = .one
+ let call: CallModel? = CallModel()
+ call?.state = .current
+ let active: Bool? = false
+ XCTAssertTrue(manager.getMenuItemsFor(call: call, conference: conference, active: active) == MenuMode.withoutMinimize)
+ }
+}