public void TryParseSingleStackFrame_NullInput_ThrowsNullArgumentException()
        {
            // Arrange
            StackTraceParser stackTraceParser = new StackTraceParser();
            string           frame            = null;

            // Act
            Assert.Throws <ArgumentNullException>(() => stackTraceParser.TryParseSingleStackFrame(frame));
        }
        public void TryParseSingleStackFrame_EmptyString_ReturnNull()
        {
            // Arrange
            StackTraceParser stackTraceParser = new StackTraceParser();
            string           frame            = String.Empty;

            // Act
            StackFrame result = stackTraceParser.TryParseSingleStackFrame(frame);

            // Assert
            Assert.Null(result);
        }
        public void TryParseSingleStackFrame_NoMethodNameInInput_ReturnsStackFrameWithNullMethod()
        {
            // Arrange
            StackTraceParser stackTraceParser = new StackTraceParser();
            string           frame            = "    (http://localhost:19220/crashcauser.min.js:1:34)";

            // Act
            StackFrame result = stackTraceParser.TryParseSingleStackFrame(frame);

            // Assert
            Assert.Equal("http://localhost:19220/crashcauser.min.js", result.FilePath);
            Assert.Null(result.MethodName);
            Assert.Equal(0, result.SourcePosition.ZeroBasedLineNumber);
            Assert.Equal(33, result.SourcePosition.ZeroBasedColumnNumber);
        }
        public void TryParseSingleStackFrame_IE11StackFrameWithAnonymousFunction_CorrectStackFrame()
        {
            // Arrange
            StackTraceParser stackTraceParser = new StackTraceParser();
            string           frame            = "   at Anonymous function (http://localhost:19220/crashcauser.min.js:5:25)";

            // Act
            StackFrame result = stackTraceParser.TryParseSingleStackFrame(frame);

            // Assert
            Assert.Equal("http://localhost:19220/crashcauser.min.js", result.FilePath);
            Assert.Equal("Anonymous function", result.MethodName);
            Assert.Equal(4, result.SourcePosition.ZeroBasedLineNumber);
            Assert.Equal(24, result.SourcePosition.ZeroBasedColumnNumber);
        }
        public void TryParseSingleStackFrame_IE11StackFrame_CorrectStackFrame()
        {
            // Arrange
            StackTraceParser stackTraceParser = new StackTraceParser();
            string           frame            = "   at c (http://localhost:19220/crashcauser.min.js:3:17)";

            // Act
            StackFrame result = stackTraceParser.TryParseSingleStackFrame(frame);

            // Assert
            Assert.Equal("http://localhost:19220/crashcauser.min.js", result.FilePath);
            Assert.Equal("c", result.MethodName);
            Assert.Equal(2, result.SourcePosition.ZeroBasedLineNumber);
            Assert.Equal(16, result.SourcePosition.ZeroBasedColumnNumber);
        }
        public void TryParseSingleStackFrame_ChromeStackFrameWithScriptSubfolder_CorrectStackFrame()
        {
            // Arrange
            StackTraceParser stackTraceParser = new StackTraceParser();
            string           frame            = "    at c (http://localhost:19220/o/app_scripts/crashcauser.min.js:9:5)";

            // Act
            StackFrame result = stackTraceParser.TryParseSingleStackFrame(frame);

            // Assert
            Assert.Equal("http://localhost:19220/o/app_scripts/crashcauser.min.js", result.FilePath);
            Assert.Equal("c", result.MethodName);
            Assert.Equal(8, result.SourcePosition.ZeroBasedLineNumber);
            Assert.Equal(4, result.SourcePosition.ZeroBasedColumnNumber);
        }
        public void TryParseSingleStackFrame_ChromeStackFrameWithNoMethodName_CorrectStackFrame()
        {
            // Arrange
            StackTraceParser stackTraceParser = new StackTraceParser();
            string           frame            = " at http://localhost:19220/crashcauser.min.js:10:13";

            // Act
            StackFrame result = stackTraceParser.TryParseSingleStackFrame(frame);

            // Assert
            Assert.Equal("http://localhost:19220/crashcauser.min.js", result.FilePath);
            Assert.Null(result.MethodName);
            Assert.Equal(9, result.SourcePosition.ZeroBasedLineNumber);
            Assert.Equal(12, result.SourcePosition.ZeroBasedColumnNumber);
        }
        public void TryParseSingleStackFrame_StackFrameWithWebpackLink_CorrectStackFrame()
        {
            // Arrange
            StackTraceParser stackTraceParser = new StackTraceParser();
            string           frame            = "    at eval (webpack-internal:///./Static/jsx/InitialStep/InitialStepForm.js:167:14)";

            // Act
            StackFrame result = stackTraceParser.TryParseSingleStackFrame(frame);

            // Assert
            Assert.Equal("webpack-internal:///./Static/jsx/InitialStep/InitialStepForm.js", result.FilePath);
            Assert.Equal("eval", result.MethodName);
            Assert.Equal(167 - 1, result.SourcePosition.ZeroBasedLineNumber);
            Assert.Equal(14 - 1, result.SourcePosition.ZeroBasedColumnNumber);
        }
Beispiel #9
0
        public void TryParseSingleStackFrame_FireFoxStackFrame_CorrectStackFrame()
        {
            // Arrange
            StackTraceParser stackTraceParser = new StackTraceParser();
            string           frame            = "c@http://localhost:19220/crashcauser.min.js:4:52";

            // Act
            StackFrame result = stackTraceParser.TryParseSingleStackFrame(frame);

            // Assert
            Assert.AreEqual("http://localhost:19220/crashcauser.min.js", result.FilePath);
            Assert.AreEqual("c", result.MethodName);
            Assert.AreEqual(3, result.SourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(51, result.SourcePosition.ZeroBasedColumnNumber);
        }