public IEnumerator TestFingerprintBehaviorForNormalizedExceptionMessage_ShouldntGenerateFingerprintForDisabledOption_FingerprintDoesntExist() { BacktraceClient.Configuration = GetValidClientConfiguration(); BacktraceClient.Configuration.UseNormalizedExceptionMessage = false; BacktraceClient.Refresh(); // exception without stack trace might happened when exception occured because of // invalid game object setting or via weird crash // exception below has empty exception stack trace var exception = new BacktraceUnhandledException("00:00:00 00/00/00 Unhandled exception", string.Empty); var report = new BacktraceReport(exception); bool eventFired = false; BacktraceClient.BeforeSend = (BacktraceData data) => { Assert.IsFalse(data.Attributes.Attributes.ContainsKey("_mod_fingerprint")); eventFired = true; // prevent backtrace data from sending to Backtrace. return(null); }; yield return(BacktraceClient.StartCoroutine(CallBacktraceClientAndWait(report))); Assert.IsTrue(eventFired); }
public IEnumerator TestFingerprintBehaviorForNormalizedExceptionMessage_ShouldGenerateFingerprintAndShouldntRemoveAnyLetter_ShouldIncludeFingerprintInBacktraceReport() { BacktraceClient.Configuration = GetValidClientConfiguration(); BacktraceClient.Configuration.UseNormalizedExceptionMessage = true; BacktraceClient.Refresh(); var normalizedMessage = "Unhandledexception"; var exception = new BacktraceUnhandledException(normalizedMessage, string.Empty); var report = new BacktraceReport(exception); bool eventFired = false; BacktraceClient.BeforeSend = (BacktraceData data) => { const string modFingerprintKey = "_mod_fingerprint"; Assert.IsTrue(data.Attributes.Attributes.ContainsKey(modFingerprintKey)); Assert.IsNotNull(data.Attributes.Attributes[modFingerprintKey]); Assert.AreEqual(normalizedMessage.GetSha(), data.Attributes.Attributes[modFingerprintKey]); // prevent backtrace data from sending to Backtrace. eventFired = true; // prevent backtrace data from sending to Backtrace. return(null); }; yield return(BacktraceClient.StartCoroutine(CallBacktraceClientAndWait(report))); Assert.IsTrue(eventFired); }
public IEnumerator TestFingerprintBehaviorForNormalizedExceptionMessage_ShouldGenerateFingerprintForExceptionReportWithoutStackTrace_ShouldIncludeFingerprintInBacktraceReport() { BacktraceClient.Configuration = GetValidClientConfiguration(); BacktraceClient.Configuration.UseNormalizedExceptionMessage = true; BacktraceClient.Refresh(); // exception without stack trace might happened when exception occured because of // invalid game object setting or via weird crash // exception below has empty exception stack trace var exception = new BacktraceUnhandledException("00:00:00 00/00/00 Unhandled exception", string.Empty); var expectedNormalizedMessage = "Unhandledexception"; var report = new BacktraceReport(exception); bool eventFired = false; BacktraceClient.BeforeSend = (BacktraceData data) => { Assert.IsNotNull(data.Attributes.Attributes["_mod_fingerprint"]); Assert.AreEqual(expectedNormalizedMessage.GetSha(), data.Attributes.Attributes["_mod_fingerprint"]); eventFired = true; // prevent backtrace data from sending to Backtrace. return(null); }; yield return(BacktraceClient.StartCoroutine(CallBacktraceClientAndWait(report))); Assert.IsTrue(eventFired); }