package com.intellij.javascript.karma.execution.filter; import com.intellij.execution.filters.FileHyperlinkRawData; import com.intellij.javascript.karma.filter.KarmaSourceMapStacktraceFilter; import junit.framework.TestCase; import org.jetbrains.annotations.NotNull; import java.util.List; public class KarmaSourceMapStacktraceFilterTest extends TestCase { public void testChrome() throws Exception { doTest(" at Object.<anonymous> (test/test-multiply.coffee:3:27 <- test/test-multiply.js:3:35)", new FileHyperlinkRawData("test/test-multiply.coffee", 2, 26, 28, 58)); } public void testPhantomJS() throws Exception { doTest(" test/test-multiply.coffee:3:32 <- test/test-multiply.js:3:39", new FileHyperlinkRawData("test/test-multiply.coffee", 2, 31, 1, 31)); } public void testFirefox() throws Exception { doTest(" @test/test-multiply.coffee:3:4 <- test/test-multiply.js:3:12", new FileHyperlinkRawData("test/test-multiply.coffee", 2, 3, 2, 31)); } public void testWebpack() { doTest(" ZoneAwareError@webpack:///~/zone.js/dist/zone.js:923:0 <- src/polyfills.ts:3571:28", new FileHyperlinkRawData("node_modules/zone.js/dist/zone.js", 922, -1, 16, 55)); } public void testScopedPackage() throws Exception { doTest("async/<@webpack:///~/@angular/core/@angular/core/testing.es5.js:49:0 <- src/test.ts:14768:13 [ProxyZone]", new FileHyperlinkRawData("node_modules/@angular/core/@angular/core/testing.es5.js", 48, -1, 8, 68)); doTest("webpack:///~/@angular/core/@angular/core/testing.es5.js:49:0 <- src/test.ts:14768:26", new FileHyperlinkRawData("node_modules/@angular/core/@angular/core/testing.es5.js", 48, -1, 0, 60)); } private static void doTest(@NotNull String line, @NotNull FileHyperlinkRawData expected) { List<FileHyperlinkRawData> actualList = KarmaSourceMapStacktraceFilter.FINDER.find(line); assertEquals(1, actualList.size()); assertEquals(expected, actualList.get(0)); } }