Exemplo n.º 1
0
        public IEnumerator TestSourceCodeAssignment_DisabledLogManagerWithMultipleLogMessageAndMessageReport_SourceCodeAvailable()
        {
            BacktraceData lastData = null;

            BacktraceClient.BeforeSend = (BacktraceData data) =>
            {
                lastData = data;
                return(data);
            };
            //fake messages
            var fakeLogMessage = "log";

            BacktraceClient.HandleUnityMessage(fakeLogMessage, string.Empty, UnityEngine.LogType.Log);
            var fakeWarningMessage = "warning message";

            BacktraceClient.HandleUnityMessage(fakeWarningMessage, string.Empty, UnityEngine.LogType.Warning);

            // real exception
            var expectedExceptionMessage = "Exception message";

            BacktraceClient.Send(expectedExceptionMessage);
            yield return(new WaitForEndOfFrame());

            Assert.IsNotNull(lastData.SourceCode);

            var generatedText = lastData.SourceCode.Text;

            Assert.IsTrue(generatedText.Contains(expectedExceptionMessage));
            Assert.IsFalse(generatedText.Contains(fakeLogMessage));
            Assert.IsFalse(generatedText.Contains(fakeWarningMessage));
        }
        public void TestErrorTypeFilterShouldSetCorrectReportFilterType_ReportFilterTypeHasCorrectValue()
        {
            const string errorMessage     = "errorMessage";
            var          reportFilterType = ReportFilterType.None;

            BacktraceClient.SkipReport = (ReportFilterType type, Exception e, string msg) =>
            {
                reportFilterType = type;
                return(false);
            };
            BacktraceClient.Configuration.ReportFilterType = ReportFilterType.UnhandledException;

            BacktraceClient.HandleUnityMessage(errorMessage, string.Empty, LogType.Error);

            Assert.AreEqual(ReportFilterType.Error, reportFilterType);
        }
        public void TestErrorTypeFilter_ShouldntFilterErrorLogWhenFilterDoesntIncludeIt_ShouldInvokeSkipCallback()
        {
            const string errorMessage = "errorMessage";
            var          eventCalled  = false;

            BacktraceClient.SkipReport = (ReportFilterType type, Exception e, string msg) =>
            {
                eventCalled = true;
                return(false);
            };
            BacktraceClient.Configuration.ReportFilterType = ReportFilterType.UnhandledException;

            BacktraceClient.HandleUnityMessage(errorMessage, string.Empty, LogType.Error);

            Assert.IsTrue(eventCalled);
        }
        public IEnumerator TestErrorTypeFilter_ShouldFilterErrorLog_ShouldPreventFromSendingDataToBacktrace()
        {
            const string errorMessage = "errorMessage";
            var          eventCalled  = false;

            BacktraceClient.SkipReport = (ReportFilterType type, Exception e, string msg) =>
            {
                eventCalled = true;
                return(false);
            };
            BacktraceClient.Configuration.ReportFilterType = ReportFilterType.Error;

            BacktraceClient.HandleUnityMessage(errorMessage, string.Empty, LogType.Error);
            yield return(new WaitForEndOfFrame());

            Assert.IsFalse(eventCalled);
        }
        public IEnumerator TestSourceCodeAssignment_DisabledUnhandledException_ShouldStoreUnhandledExceptionInfo()
        {
            BacktraceClient.Configuration.HandleUnhandledExceptions = false;

            BacktraceData lastData = null;

            BacktraceClient.BeforeSend = (BacktraceData data) =>
            {
                lastData = data;
                return(data);
            };

            //fake messages
            var fakeLogMessage = "log";

            BacktraceClient.HandleUnityMessage(fakeLogMessage, string.Empty, LogType.Log);
            yield return(new WaitForEndOfFrame());

            var fakeWarningMessage = "warning message";

            BacktraceClient.HandleUnityMessage(fakeWarningMessage, string.Empty, LogType.Warning);
            yield return(new WaitForEndOfFrame());

            // real exception
            var expectedExceptionMessage = "Exception message";

            BacktraceClient.HandleUnityMessage(expectedExceptionMessage, string.Empty, LogType.Exception);
            yield return(new WaitForEndOfFrame());

            Assert.IsNull(api.LastData);

            var expectedReportMessage = "Report message";
            var report = new BacktraceReport(new Exception(expectedReportMessage));

            BacktraceClient.Send(report);
            yield return(new WaitForEndOfFrame());

            Assert.IsNotNull(lastData.SourceCode);

            var generatedText = lastData.SourceCode.Text;

            Assert.IsTrue(generatedText.Contains(expectedExceptionMessage));
            Assert.IsTrue(generatedText.Contains(fakeLogMessage));
            Assert.IsTrue(generatedText.Contains(fakeWarningMessage));
            Assert.IsTrue(generatedText.Contains(expectedReportMessage));
        }
Exemplo n.º 6
0
        public IEnumerator TestSourceCodeAssignment_DisabledLogManagerAndSendUnhandledException_SourceCodeAvailable()
        {
            var invoked = false;

            BacktraceClient.BeforeSend = (BacktraceData lastData) =>
            {
                invoked = true;
                Assert.IsNotNull(lastData.SourceCode);

                var threadName = lastData.ThreadData.MainThread;
                Assert.AreEqual(BacktraceSourceCode.SOURCE_CODE_PROPERTY, lastData.ThreadData.ThreadInformations[threadName].Stack.First().SourceCode);
                return(lastData);
            };

            BacktraceClient.HandleUnityMessage("foo", string.Empty, LogType.Exception);
            yield return(new WaitForEndOfFrame());

            Assert.IsTrue(invoked);
        }
        public IEnumerator TestSourceCodeAssignment_EnabledLogManagerAndSendUnhandledError_SourceCodeAvailable()
        {
            BacktraceData lastData = null;

            BacktraceClient.BeforeSend = (BacktraceData data) =>
            {
                lastData = data;
                return(data);
            };

            BacktraceClient.HandleUnityMessage("foo", string.Empty, LogType.Error);
            yield return(new WaitForEndOfFrame());

            Assert.IsNotNull(lastData.SourceCode);

            var threadName = lastData.ThreadData.MainThread;

            Assert.AreEqual(BacktraceSourceCode.SOURCE_CODE_PROPERTY, lastData.ThreadData.ThreadInformations[threadName].Stack.First().SourceCode);
        }