< Summary

Class:DCL.HelpAndSupportHUD.HelpAndSupportHUDController
Assembly:HelpAndSupportHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HelpAndSupportHUD/HelpAndSupportHUDController.cs
Covered lines:17
Uncovered lines:11
Coverable lines:28
Total lines:78
Line coverage:60.7% (17 of 28)
Covered branches:0
Total branches:0
Covered methods:4
Total methods:9
Method coverage:44.4% (4 of 9)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
HelpAndSupportHUDController(...)0%110100%
SetVisibility(...)0%110100%
OpenDiscord()0%2100%
OpenFaqs()0%2100%
OpenSupport()0%2100%
OpenURL(...)0%2100%
Dispose()0%110100%
OpenIntercom()0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HelpAndSupportHUD/HelpAndSupportHUDController.cs

#LineLine coverage
 1using DCL.Interface;
 2using Analytics;
 3using DCL.Browser;
 4using System.Runtime.InteropServices;
 5using UnityEngine;
 6using UnityEngine.Events;
 7
 8namespace DCL.HelpAndSupportHUD
 9{
 10    public class HelpAndSupportHUDController : IHUD
 11    {
 12        internal const string CONTACT_SUPPORT_URL = "https://decentraland.org/help";
 13        internal const string JOIN_DISCORD_URL = "https://dcl.gg/discord";
 14        internal const string FAQ_URL = "https://docs.decentraland.org/decentraland/faq/";
 1615        public IHelpAndSupportHUDView view {  get; }
 16
 17        private ISupportAnalytics analytics;
 18        internal readonly IBrowserBridge browserBridge;
 19
 320        public HelpAndSupportHUDController(IHelpAndSupportHUDView view, ISupportAnalytics analytics, IBrowserBridge brow
 21        {
 322            this.view = view;
 323            this.analytics = analytics;
 324            this.browserBridge = browserBridge;
 325            view.Initialize();
 26
 327            view.OnDiscordButtonPressed += OpenDiscord;
 328            view.OnFaqButtonPressed += OpenFaqs;
 329            view.OnSupportButtonPressed += OpenSupport;
 330        }
 31
 32        public void SetVisibility(bool visible)
 33        {
 334            view.SetVisibility(visible);
 335        }
 36
 37        private void OpenDiscord()
 38        {
 039            OpenURL(JOIN_DISCORD_URL);
 040        }
 41
 42        private void OpenFaqs()
 43        {
 044            OpenURL(FAQ_URL);
 045        }
 46
 47        private void OpenSupport()
 48        {
 049            analytics.SendOpenSupport(OpenSupportSource.ExploreHUD);
 050            OpenIntercom();
 051        }
 52
 53        internal void OpenURL(string url)
 54        {
 055            browserBridge.OpenUrl(url);
 056        }
 57
 58        public void Dispose()
 59        {
 360            view.OnDiscordButtonPressed -= OpenDiscord;
 361            view.OnFaqButtonPressed -= OpenFaqs;
 362            view.OnSupportButtonPressed -= OpenSupport;
 63
 364            view.Dispose();
 365        }
 66
 67
 68#if UNITY_WEBGL
 69        [DllImport("__Internal")]
 70        private static extern void OpenIntercom();
 71#else
 72        private void OpenIntercom()
 73        {
 074            OpenURL(CONTACT_SUPPORT_URL);
 075        }
 76#endif
 77    }
 78}