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)); }
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); }