From 384c5ccf65d12bb8061433dde6984c826e5c19de Mon Sep 17 00:00:00 2001 From: Quentin Monnier Date: Tue, 4 Oct 2022 15:03:35 -0400 Subject: [PATCH] implement CallUITests classes (TestCases, TestPlans, Methods, Accessibility Identifiers) --- .gitlab-ci.yml | 59 +- CallUITests-Info.plist | 5 + Classes/Base.lproj/AboutView.xib | 4 +- Classes/Base.lproj/AssistantLinkView.xib | 6 +- Classes/Base.lproj/AssistantViewScreens.xib | 25 +- Classes/Base.lproj/ChatsListView.xib | 8 +- Classes/Base.lproj/DialerView.xib | 7 +- Classes/Base.lproj/FirstLoginView.xib | 31 +- Classes/Base.lproj/PhoneMainView.xib | 13 +- Classes/Base.lproj/SettingsView.xib | 5 +- Classes/Base.lproj/SideMenuView.xib | 17 +- Classes/HistoryListTableView.m | 1 + Classes/LinphoneAppDelegate.m | 2 +- Classes/LinphoneCoreSettingsStore.m | 10 +- Classes/LinphoneManager.h | 4 +- Classes/LinphoneManager.m | 16 + .../LinphoneUI/Base.lproj/StatusBarView.xib | 12 +- .../LinphoneUI/Base.lproj/UICompositeView.xib | 29 +- Classes/LinphoneUI/StatusBarView.m | 2 + Classes/PhoneMainView.m | 4 + Classes/Swift/CallManager.swift | 11 +- .../Views/ConferenceSchedulingView.swift | 3 +- .../Extensions/IOS/UIColorExtensions.swift | 1 + Classes/Swift/Voip/Theme/VoipTexts.swift | 2 + .../Voip/ViewModels/ControlsViewModel.swift | 28 +- .../ActiveCallOrConferenceView.swift | 40 +- .../IncomingCallView.swift | 6 +- .../OutgoingCallView.swift | 2 + .../Fragments/ActiveCall/ActiveCallView.swift | 17 +- .../Voip/Views/Fragments/CallStatsView.swift | 21 +- .../Fragments/CallsList/CallsListView.swift | 1 + .../Voip/Views/Fragments/ControlsView.swift | 6 + .../Views/Fragments/DismissableView.swift | 1 + .../IncomingOuntgoingCommonView.swift | 11 +- .../Voip/Views/Fragments/NumpadView.swift | 8 +- .../PausedCallOrConferenceView.swift | 14 +- .../Views/Fragments/RemotelyRecording.swift | 2 +- .../Fragments/VoipExtraButtonsView.swift | 15 +- .../Swift/Voip/VoipDialog_BACKUP_1064.swift | 134 + .../Swift/Voip/VoipDialog_BACKUP_1156.swift | 134 + .../Swift/Voip/VoipDialog_BACKUP_884.swift | 134 + .../Swift/Voip/VoipDialog_BACKUP_973.swift | 134 + Classes/Swift/Voip/VoipDialog_BASE_1064.swift | 126 + Classes/Swift/Voip/VoipDialog_BASE_1156.swift | 126 + Classes/Swift/Voip/VoipDialog_BASE_884.swift | 126 + Classes/Swift/Voip/VoipDialog_BASE_973.swift | 126 + .../Swift/Voip/VoipDialog_LOCAL_1064.swift | 126 + .../Swift/Voip/VoipDialog_LOCAL_1156.swift | 126 + Classes/Swift/Voip/VoipDialog_LOCAL_884.swift | 126 + Classes/Swift/Voip/VoipDialog_LOCAL_973.swift | 126 + .../Swift/Voip/VoipDialog_REMOTE_1064.swift | 127 + .../Swift/Voip/VoipDialog_REMOTE_1156.swift | 127 + .../Swift/Voip/VoipDialog_REMOTE_884.swift | 127 + .../Swift/Voip/VoipDialog_REMOTE_973.swift | 127 + Classes/Swift/Voip/Widgets/Avatar.swift | 2 + .../Voip/Widgets/StyledValuePicker.swift | 2 +- Classes/Swift/Voip/Widgets/UICallTimer.swift | 27 +- Podfile | 9 + Resources/images/color_A.png | Bin 277 -> 4783 bytes Settings/InAppSettings.bundle/Call.plist | 10 - Settings/InAppSettings.bundle/Network.plist | 16 + UITests/CallUITests/ActiveCallUITests.swift | 96 + UITests/CallUITests/ExtraMenuUITests.swift | 53 + UITests/CallUITests/IncomingCallUITests.swift | 36 + UITests/CallUITests/OutgoingCallUITests.swift | 39 + .../ActiveCallViewUITestsMethods.swift | 120 + .../ConferenceCallViewUITestsMethods.swift | 24 + ...aMenuActiveCallActionsUITestsMethods.swift | 87 + ...comingOutgoingCallViewUITestsMethods.swift | 133 + UITests/Methods/UITestsCoreManager.swift | 380 + UITests/Methods/UITestsScreenshots.swift | 778 ++ UITests/Methods/UITestsUtils.swift | 204 + UITests/Screenshots/IO_call_view.svg | 191 + UITests/Screenshots/Linphone.svg | 83 + UITests/Screenshots/active_call_view.svg | 369 + .../Screenshots/call_failed_error_view.svg | 103 + UITests/Screenshots/call_numpad_view.svg | 75 + UITests/Screenshots/call_stats_view.svg | 160 + UITests/Screenshots/dialer_view.svg | 76 + UITests/Screenshots/images/IO_call_view.png | Bin 0 -> 95590 bytes .../Screenshots/images/IO_call_view_mute.png | Bin 0 -> 103425 bytes .../images/IO_call_view_outgoing.png | Bin 0 -> 124185 bytes .../images/IO_call_view_speaker.png | Bin 0 -> 101436 bytes UITests/Screenshots/images/Linphone.png | Bin 0 -> 66542 bytes .../Screenshots/images/active_call_view.png | Bin 0 -> 112269 bytes .../images/active_call_view_call_stats.png | Bin 0 -> 176020 bytes .../images/active_call_view_extra_menu.png | Bin 0 -> 147314 bytes .../images/active_call_view_mute.png | Bin 0 -> 114093 bytes .../images/active_call_view_pause.png | Bin 0 -> 162549 bytes .../images/active_call_view_pause_shadow.png | Bin 0 -> 65226 bytes .../images/active_call_view_record.png | Bin 0 -> 117176 bytes .../images/active_call_view_remote_pause.png | Bin 0 -> 147873 bytes .../images/active_call_view_remote_record.png | Bin 0 -> 122282 bytes .../images/active_call_view_shadow.png | Bin 0 -> 65226 bytes .../images/active_call_view_speaker.png | Bin 0 -> 111965 bytes .../images/call_failed_error_view.png | Bin 0 -> 225988 bytes .../Screenshots/images/call_numpad_view.png | Bin 0 -> 140286 bytes .../Screenshots/images/call_stats_view.png | Bin 0 -> 155504 bytes .../images/call_stats_view_pause.png | Bin 0 -> 198070 bytes .../images/call_stats_view_remote_pause.png | Bin 0 -> 189964 bytes UITests/Screenshots/images/dialer_view.png | Bin 0 -> 122795 bytes .../Screenshots/images/dialer_view_popup.png | Bin 0 -> 312900 bytes .../images/forErrors/no_preview.png | Bin 0 -> 95373 bytes UITests/Screenshots/images/side_menu_view.png | Bin 0 -> 134371 bytes UITests/Screenshots/images/status_bar.png | Bin 0 -> 9695 bytes .../images/status_bar_call_view.png | Bin 0 -> 16347 bytes UITests/Screenshots/images/tab_bar.png | Bin 0 -> 25767 bytes UITests/Screenshots/side_menu_view.svg | 12 + UITests/Screenshots/status_bar.svg | 108 + UITests/Screenshots/tab_bar.svg | 76 + UITests/TestPlans/Debug.xctestplan | 47 + UITests/TestPlans/Default.xctestplan | 36 + .../TestPlans/PauseMode_extended.xctestplan | 56 + linphone.xcodeproj/project.pbxproj | 756 +- linphone.xcodeproj/project.pbxproj.orig | 8000 +++++++++++++++++ .../xcschemes/LinphoneTester.xcscheme | 97 - .../xcshareddata/xcschemes/linphone.xcscheme | 53 +- .../xcschemes/linphone.xcscheme.orig | 193 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + 119 files changed, 14622 insertions(+), 394 deletions(-) create mode 100644 CallUITests-Info.plist create mode 100644 Classes/Swift/Voip/VoipDialog_BACKUP_1064.swift create mode 100644 Classes/Swift/Voip/VoipDialog_BACKUP_1156.swift create mode 100644 Classes/Swift/Voip/VoipDialog_BACKUP_884.swift create mode 100644 Classes/Swift/Voip/VoipDialog_BACKUP_973.swift create mode 100644 Classes/Swift/Voip/VoipDialog_BASE_1064.swift create mode 100644 Classes/Swift/Voip/VoipDialog_BASE_1156.swift create mode 100644 Classes/Swift/Voip/VoipDialog_BASE_884.swift create mode 100644 Classes/Swift/Voip/VoipDialog_BASE_973.swift create mode 100644 Classes/Swift/Voip/VoipDialog_LOCAL_1064.swift create mode 100644 Classes/Swift/Voip/VoipDialog_LOCAL_1156.swift create mode 100644 Classes/Swift/Voip/VoipDialog_LOCAL_884.swift create mode 100644 Classes/Swift/Voip/VoipDialog_LOCAL_973.swift create mode 100644 Classes/Swift/Voip/VoipDialog_REMOTE_1064.swift create mode 100644 Classes/Swift/Voip/VoipDialog_REMOTE_1156.swift create mode 100644 Classes/Swift/Voip/VoipDialog_REMOTE_884.swift create mode 100644 Classes/Swift/Voip/VoipDialog_REMOTE_973.swift create mode 100644 UITests/CallUITests/ActiveCallUITests.swift create mode 100644 UITests/CallUITests/ExtraMenuUITests.swift create mode 100644 UITests/CallUITests/IncomingCallUITests.swift create mode 100644 UITests/CallUITests/OutgoingCallUITests.swift create mode 100644 UITests/Methods/ActiveCallViewUITestsMethods.swift create mode 100644 UITests/Methods/ConferenceCallViewUITestsMethods.swift create mode 100644 UITests/Methods/ExtraMenuActiveCallActionsUITestsMethods.swift create mode 100644 UITests/Methods/IncomingOutgoingCallViewUITestsMethods.swift create mode 100644 UITests/Methods/UITestsCoreManager.swift create mode 100644 UITests/Methods/UITestsScreenshots.swift create mode 100644 UITests/Methods/UITestsUtils.swift create mode 100644 UITests/Screenshots/IO_call_view.svg create mode 100644 UITests/Screenshots/Linphone.svg create mode 100644 UITests/Screenshots/active_call_view.svg create mode 100644 UITests/Screenshots/call_failed_error_view.svg create mode 100644 UITests/Screenshots/call_numpad_view.svg create mode 100644 UITests/Screenshots/call_stats_view.svg create mode 100644 UITests/Screenshots/dialer_view.svg create mode 100644 UITests/Screenshots/images/IO_call_view.png create mode 100644 UITests/Screenshots/images/IO_call_view_mute.png create mode 100644 UITests/Screenshots/images/IO_call_view_outgoing.png create mode 100644 UITests/Screenshots/images/IO_call_view_speaker.png create mode 100644 UITests/Screenshots/images/Linphone.png create mode 100644 UITests/Screenshots/images/active_call_view.png create mode 100644 UITests/Screenshots/images/active_call_view_call_stats.png create mode 100644 UITests/Screenshots/images/active_call_view_extra_menu.png create mode 100644 UITests/Screenshots/images/active_call_view_mute.png create mode 100644 UITests/Screenshots/images/active_call_view_pause.png create mode 100644 UITests/Screenshots/images/active_call_view_pause_shadow.png create mode 100644 UITests/Screenshots/images/active_call_view_record.png create mode 100644 UITests/Screenshots/images/active_call_view_remote_pause.png create mode 100644 UITests/Screenshots/images/active_call_view_remote_record.png create mode 100644 UITests/Screenshots/images/active_call_view_shadow.png create mode 100644 UITests/Screenshots/images/active_call_view_speaker.png create mode 100644 UITests/Screenshots/images/call_failed_error_view.png create mode 100644 UITests/Screenshots/images/call_numpad_view.png create mode 100644 UITests/Screenshots/images/call_stats_view.png create mode 100644 UITests/Screenshots/images/call_stats_view_pause.png create mode 100644 UITests/Screenshots/images/call_stats_view_remote_pause.png create mode 100644 UITests/Screenshots/images/dialer_view.png create mode 100644 UITests/Screenshots/images/dialer_view_popup.png create mode 100644 UITests/Screenshots/images/forErrors/no_preview.png create mode 100644 UITests/Screenshots/images/side_menu_view.png create mode 100644 UITests/Screenshots/images/status_bar.png create mode 100644 UITests/Screenshots/images/status_bar_call_view.png create mode 100644 UITests/Screenshots/images/tab_bar.png create mode 100644 UITests/Screenshots/side_menu_view.svg create mode 100644 UITests/Screenshots/status_bar.svg create mode 100644 UITests/Screenshots/tab_bar.svg create mode 100644 UITests/TestPlans/Debug.xctestplan create mode 100644 UITests/TestPlans/Default.xctestplan create mode 100644 UITests/TestPlans/PauseMode_extended.xctestplan create mode 100644 linphone.xcodeproj/project.pbxproj.orig delete mode 100644 linphone.xcodeproj/xcshareddata/xcschemes/LinphoneTester.xcscheme create mode 100644 linphone.xcodeproj/xcshareddata/xcschemes/linphone.xcscheme.orig create mode 100644 linphone.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2d857c68b..e7cec4238 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,26 +1,55 @@ variables: - archive_scheme: linphone - archive_path: linphone.xcarchive - export_path: linphone-adhoc-ipa - export_options_plist: linphone-adhoc.plist + workspace: linphone.xcworkspace + scheme: linphone + destination: name=iPhone 13 Pro + testResult_path: derivedData/Logs/Test + +stages: + - Build + - UITests -job-ios: +before_script: + - pod install + - pwd + - sed 's/fileprivate let tableView =/public let tableView =/g' ./Pods/DropDown/DropDown/src/DropDown.swift > tmp.swift && mv -f tmp.swift ./Pods/DropDown/DropDown/src/DropDown.swift - stage: build - tags: [ "macmini-m1-xcode13" ] - - script: +Compile & Build: + stage: Build + tags: ["macmini-m1-xcode13"] + before_script: - pod install --repo-update - pwd - sed 's/fileprivate let tableView =/public let tableView =/g' ./Pods/DropDown/DropDown/src/DropDown.swift > tmp.swift && mv -f tmp.swift ./Pods/DropDown/DropDown/src/DropDown.swift - - xcodebuild archive -scheme $archive_scheme -archivePath ./$archive_path -configuration Release -workspace ./linphone.xcworkspace -UseModernBuildSystem=YES -destination 'generic/platform=iOS' - - xcodebuild -exportArchive -archivePath ./$archive_path -exportPath ./$export_path -exportOptionsPlist ./$export_options_plist -allowProvisioningUpdates -UseModernBuildSystem=YES -destination 'generic/platform=iOS' - + - xcrun simctl shutdown "$destination" && xcrun simctl erase "$destination" + script: + - xcodebuild -workspace $workspace -scheme $scheme -UseModernBuildSystem=YES -destination "$destination" -derivedDataPath derivedData + after_script: [] artifacts: paths: - - $archive_path - - $export_path + - derivedData/Build when: always - expire_in: 1 week + expire_in: 2 hour + + +after_script: + - ${TRAINER_EXE} -p $testResult_path/*.xcresult -o $testResult_path/ + - ${XCPARSE_EXE} attachments $testResult_path/*.xcresult results --uti public.image + - mv $testResult_path/*.xcresult results && mv derivedData/logs.txt results + +Call Views: + stage: UITests + tags: ["macmini-m1-xcode13"] + dependencies: ["Compile & Build"] + script: + - xcodebuild test -workspace $workspace -scheme $scheme -sdk iphonesimulator -destination "$destination" -UseModernBuildSystem=YES -testPlan Default -derivedDataPath derivedData | tee derivedData/logs.txt + + artifacts: + paths: + - results/* + when: always + reports: + junit: + - $testResult_path/*.xml + expire_in: 4 week diff --git a/CallUITests-Info.plist b/CallUITests-Info.plist new file mode 100644 index 000000000..0c67376eb --- /dev/null +++ b/CallUITests-Info.plist @@ -0,0 +1,5 @@ + + + + + diff --git a/Classes/Base.lproj/AboutView.xib b/Classes/Base.lproj/AboutView.xib index 3aa5423fe..286b802c2 100644 --- a/Classes/Base.lproj/AboutView.xib +++ b/Classes/Base.lproj/AboutView.xib @@ -1,9 +1,9 @@ - + - + diff --git a/Classes/Base.lproj/AssistantLinkView.xib b/Classes/Base.lproj/AssistantLinkView.xib index 9990a74f9..ca7f16313 100644 --- a/Classes/Base.lproj/AssistantLinkView.xib +++ b/Classes/Base.lproj/AssistantLinkView.xib @@ -154,7 +154,7 @@ + @@ -244,7 +245,8 @@ - + + diff --git a/Classes/Base.lproj/AssistantViewScreens.xib b/Classes/Base.lproj/AssistantViewScreens.xib index 8d7a06be5..3a2eca6f0 100644 --- a/Classes/Base.lproj/AssistantViewScreens.xib +++ b/Classes/Base.lproj/AssistantViewScreens.xib @@ -72,6 +72,7 @@ + @@ -880,7 +882,7 @@ Once it is done, come back here and click on the button. - + @@ -913,7 +915,7 @@ Once it is done, come back here and click on the button. - + @@ -966,6 +968,7 @@ Once it is done, come back here and click on the button. + @@ -975,7 +978,7 @@ Once it is done, come back here and click on the button. + @@ -1614,6 +1619,7 @@ To enable it in a commercial project, please contact us. + diff --git a/Classes/Base.lproj/ChatsListView.xib b/Classes/Base.lproj/ChatsListView.xib index a9ecaa1a0..8efd7306c 100644 --- a/Classes/Base.lproj/ChatsListView.xib +++ b/Classes/Base.lproj/ChatsListView.xib @@ -1,9 +1,9 @@ - + - + @@ -96,6 +96,7 @@ - + - + @@ -266,14 +267,14 @@ + @@ -69,7 +71,9 @@