< Summary

Class:CopyToClipboardButton
Assembly:FPSDisplay
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WorldRuntime/Debugging/FPSDisplay/CopyToClipboardButton.cs
Covered lines:1
Uncovered lines:16
Coverable lines:17
Total lines:56
Line coverage:5.8% (1 of 17)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
CopyToClipboardButton()0%110100%
Start()0%2100%
SetFuncToCopy(...)0%2100%
CopySceneNameToClipboard()0%20400%
OnDestroy()0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WorldRuntime/Debugging/FPSDisplay/CopyToClipboardButton.cs

#LineLine coverage
 1using System;
 2using DCL.NotificationModel;
 3using UnityEngine;
 4using UnityEngine.UI;
 5using Environment = DCL.Environment;
 6using Type = DCL.NotificationModel.Type;
 7
 8[RequireComponent(typeof(Button))]
 9public class CopyToClipboardButton : MonoBehaviour
 10{
 11
 12    [SerializeField] private string groupID;
 13    [SerializeField] private string message;
 214    [SerializeField] private float timer = 1.5f;
 15
 16    private Func<string> funcToGetContent;
 17    private Model copyToast;
 18    private Button button;
 19
 20    private void Start()
 21    {
 022        copyToast = new Model()
 23        {
 24            type = Type.WARNING_NO_ICON,
 25            groupID = groupID,
 26            message = message,
 27            timer = timer
 28        };
 029        button = GetComponent<Button>();
 030        button.onClick.AddListener(CopySceneNameToClipboard);
 031    }
 32    public void SetFuncToCopy(Func<string> newFunc)
 33    {
 034        funcToGetContent = null;
 035        funcToGetContent += newFunc;
 036    }
 37
 38    private void CopySceneNameToClipboard()
 39    {
 040        string activeSceneName = funcToGetContent?.Invoke();
 041        Environment.i.platform.clipboard.WriteText(activeSceneName);
 42
 043        var notificationController = NotificationsController.i;
 044        if (notificationController != null)
 45        {
 046            notificationController.DismissAllNotifications(copyToast.groupID);
 047            notificationController.ShowNotification(copyToast);
 48        }
 049    }
 50
 51    private void OnDestroy()
 52    {
 053        button.onClick.RemoveAllListeners();
 054    }
 55
 56}