Exemple #1
0
        public void SerializeMappingEntry_WithOriginalFileNameNoOriginalName_FourSegments()
        {
            // Arrange
            var sourceMapGenerator = new SourceMapGenerator();

            var state = new MappingGenerateState(new List <string>()
            {
                "Name"
            }, new List <string>()
            {
                "Source"
            });

            state.IsFirstSegment = false;

            var entry = new MappingEntry()
            {
                GeneratedSourcePosition = new SourcePosition(0, 10),
                OriginalFileName        = state.Sources[0],
                OriginalSourcePosition  = new SourcePosition(0, 5),
            };

            // Act
            var result = new StringBuilder();

            sourceMapGenerator.SerializeMappingEntry(entry, state, result);

            // Assert
            Assert.AreEqual(",UAAK", result.ToString());
        }
Exemple #2
0
        public void SerializeMappingEntry_NoOriginalFileName_OneSegment()
        {
            // Arrange
            SourceMapGenerator sourceMapGenerator = new SourceMapGenerator();

            MappingGenerateState state = new MappingGenerateState(new List <string>()
            {
                "Name"
            }, new List <string>()
            {
                "Source"
            });

            MappingEntry entry = new MappingEntry()
            {
                GeneratedSourcePosition = new SourcePosition()
                {
                    ZeroBasedLineNumber = 0, ZeroBasedColumnNumber = 10
                },
                OriginalSourcePosition = new SourcePosition()
                {
                    ZeroBasedLineNumber = 0, ZeroBasedColumnNumber = 1
                },
            };

            // Act
            var result = new StringBuilder();

            sourceMapGenerator.SerializeMappingEntry(entry, state, result);

            // Assert
            Assert.Equal("U", result.ToString());
        }
Exemple #3
0
        public void SerializeMappingEntry_DifferentLineNumber_SemicolonAdded()
        {
            // Arrange
            var sourceMapGenerator = new SourceMapGenerator();

            var state = new MappingGenerateState(new List <string>()
            {
                "Name"
            }, new List <string>()
            {
                "Source"
            });

            state.LastGeneratedPosition.ZeroBasedColumnNumber = 1;

            var entry = new MappingEntry()
            {
                GeneratedSourcePosition = new SourcePosition(1, 0),
                OriginalFileName        = state.Sources[0],
                OriginalName            = state.Names[0],
                OriginalSourcePosition  = new SourcePosition(1, 0),
            };

            // Act
            var result = new StringBuilder();

            sourceMapGenerator.SerializeMappingEntry(entry, state, result);

            // Assert
            Assert.IsTrue(result.ToString().IndexOf(';') >= 0);
        }
Exemple #4
0
        public void SerializeMappingEntry_NoOriginalFileName_OneSegment()
        {
            // Arrange
            var sourceMapGenerator = new SourceMapGenerator();

            var state = new MappingGenerateState(new List <string>()
            {
                "Name"
            }, new List <string>()
            {
                "Source"
            });

            var entry = new MappingEntry()
            {
                GeneratedSourcePosition = new SourcePosition(0, 10),
                OriginalSourcePosition  = new SourcePosition(0, 1),
            };

            // Act
            var result = new StringBuilder();

            sourceMapGenerator.SerializeMappingEntry(entry, state, result);

            // Assert
            Assert.AreEqual("U", result.ToString());
        }
Exemple #5
0
        public void SerializeMappingEntry_WithOriginalFileNameAndOriginalName_FiveSegments()
        {
            // Arrange
            SourceMapGenerator sourceMapGenerator = new SourceMapGenerator();

            MappingGenerateState state = new MappingGenerateState(new List <string>()
            {
                "Name"
            }, new List <string>()
            {
                "Source"
            });

            state.AdvanceLastGeneratedPositionLine();

            MappingEntry entry = new MappingEntry(
                generatedSourcePosition: new SourcePosition(zeroBasedLineNumber: 1, zeroBasedColumnNumber: 5),
                originalSourcePosition: new SourcePosition(zeroBasedLineNumber: 1, zeroBasedColumnNumber: 6),
                originalName: state.Names[0],
                originalFileName: state.Sources[0]);

            // Act
            var result = new StringBuilder();

            sourceMapGenerator.SerializeMappingEntry(entry, state, result);

            // Assert
            Assert.Equal("KACMA", result.ToString());
        }
Exemple #6
0
        public void SerializeMappingEntry_WithOriginalFileNameAndOriginalName_FiveSegments()
        {
            // Arrange
            var sourceMapGenerator = new SourceMapGenerator();

            var state = new MappingGenerateState(new List <string>()
            {
                "Name"
            }, new List <string>()
            {
                "Source"
            });

            state.LastGeneratedPosition.ZeroBasedLineNumber = 1;

            var entry = new MappingEntry()
            {
                GeneratedSourcePosition = new SourcePosition(1, 5),
                OriginalSourcePosition  = new SourcePosition(1, 6),
                OriginalFileName        = state.Sources[0],
                OriginalName            = state.Names[0],
            };

            // Act
            var result = new StringBuilder();

            sourceMapGenerator.SerializeMappingEntry(entry, state, result);

            // Assert
            Assert.AreEqual("KACMA", result.ToString());
        }
Exemple #7
0
        public void SerializeMappingEntry_WithOriginalFileNameNoOriginalName_FourSegments()
        {
            // Arrange
            SourceMapGenerator sourceMapGenerator = new SourceMapGenerator();

            MappingGenerateState state = new MappingGenerateState(new List <string>()
            {
                "Name"
            }, new List <string>()
            {
                "Source"
            });

            state.IsFirstSegment = false;

            MappingEntry entry = new MappingEntry(
                generatedSourcePosition: new SourcePosition(zeroBasedLineNumber: 0, zeroBasedColumnNumber: 10),
                originalSourcePosition: new SourcePosition(zeroBasedLineNumber: 0, zeroBasedColumnNumber: 5),
                originalFileName: state.Sources[0]);

            // Act
            var result = new StringBuilder();

            sourceMapGenerator.SerializeMappingEntry(entry, state, result);

            // Assert
            Assert.Equal(",UAAK", result.ToString());
        }
Exemple #8
0
        public void SerializeMappingEntry_DifferentLineNumber_SemicolonAdded()
        {
            // Arrange
            SourceMapGenerator sourceMapGenerator = new SourceMapGenerator();

            MappingGenerateState state = new MappingGenerateState(new List <string>()
            {
                "Name"
            }, new List <string>()
            {
                "Source"
            });

            state.UpdateLastGeneratedPositionColumn(zeroBasedColumnNumber: 1);

            MappingEntry entry = new MappingEntry(
                generatedSourcePosition: new SourcePosition(zeroBasedLineNumber: 1, zeroBasedColumnNumber: 0),
                originalSourcePosition: new SourcePosition(zeroBasedLineNumber: 1, zeroBasedColumnNumber: 0),
                originalName: state.Names[0],
                originalFileName: state.Sources[0]);

            // Act
            var result = new StringBuilder();

            sourceMapGenerator.SerializeMappingEntry(entry, state, result);

            // Assert
            Assert.True(result.ToString().IndexOf(';') >= 0);
        }
        public void SerializeMappingEntry_NoOriginalFileName_OneSegment()
        {
            // Arrange
            SourceMapGenerator sourceMapGenerator = new SourceMapGenerator();

            MappingGenerateState state = new MappingGenerateState(new List <string>()
            {
                "Name"
            }, new List <string>()
            {
                "Source"
            });

            MappingEntry entry = new MappingEntry()
            {
                GeneratedSourcePosition = new SourcePosition()
                {
                    ZeroBasedLineNumber = 0, ZeroBasedColumnNumber = 10
                },
                OriginalSourcePosition = new SourcePosition()
                {
                    ZeroBasedLineNumber = 0, ZeroBasedColumnNumber = 1
                },
            };

            // Act
            List <char> output = new List <char>();

            sourceMapGenerator.SerializeMappingEntry(entry, state, output);

            // Assert
            Assert.AreEqual("U", new string(output.ToArray()));
        }
Exemple #10
0
        public void SerializeMappingIntoBast64_NullInput_ThrowsException()
        {
            // Arrange
            SourceMapGenerator sourceMapGenerator = new SourceMapGenerator();
            SourceMap          input = null;

            // Act
            Assert.Throws <ArgumentNullException>(() => sourceMapGenerator.GenerateSourceMapInlineComment(input));
        }
        public void SerializeMappingIntoBast64_NullInput_ThrowsException()
        {
            // Arrange
            SourceMapGenerator sourceMapGenerator = new SourceMapGenerator();
            SourceMap          input = null;

            // Act
            string output = sourceMapGenerator.GenerateSourceMapInlineComment(input);
        }
        public void SerializeMapping_NullInput_ThrowsException()
        {
            // Arrange
            SourceMapGenerator sourceMapGenerator = new SourceMapGenerator();
            SourceMap          input = null;

            // Act
            string output = sourceMapGenerator.SerializeMapping(input);
        }
Exemple #13
0
        public void SerializeMapping_NullInput_ThrowsException()
        {
            // Arrange
            SourceMapGenerator sourceMapGenerator = new SourceMapGenerator();
            SourceMap          input = null;

            // Act
            Assert.Throws <ArgumentNullException>(() => sourceMapGenerator.SerializeMapping(input));
        }
        string ProcessWithSourceMaps(IEnumerable <AssetContent> assets)
        {
            var results = assets.Select(a => new { asset = a, result = this.reactEnvironment.ExecuteWithBabel <JavaScriptWithSourceMap>("ReactNET_transform_sourcemap", a.Contents, babelConfig, a.Path) }).ToArray();

            var offset          = 0;
            var map             = new SourcemapToolkit.SourcemapParser.SourceMap();
            var sourceMapParser = new SourceMapParser();
            var outputBuilder   = new StringBuilder();

            foreach (var result in results)
            {
                var json = result.result.SourceMap.ToJson();
                using (var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(json)))
                {
                    using (var streamReader = new StreamReader(memoryStream))
                    {
                        var sourceMap = sourceMapParser.ParseSourceMap(streamReader);

                        foreach (var name in sourceMap.Names)
                        {
                            map.Names.Add(name);
                        }

                        map.Sources.Add(result.asset.Path.ToLower());

                        foreach (var mappingEntry in sourceMap.ParsedMappings)
                        {
                            if (mappingEntry.OriginalSourcePosition == null)
                            {
                                continue;
                            }

                            map.ParsedMappings.Add(mappingEntry);

                            mappingEntry.OriginalFileName = result.asset.Path.ToLower();

                            mappingEntry.GeneratedSourcePosition.ZeroBasedLineNumber += offset;
                        }

                        offset += result.result.Code.Split('\n').Length;
                    }
                }

                outputBuilder.AppendLine(result.result.Code);
            }

            var sourceMapGenerator             = new SourceMapGenerator();
            var generateSourceMapInlineComment = sourceMapGenerator.GenerateSourceMapInlineComment(map);

            outputBuilder.AppendLine(generateSourceMapInlineComment);

            return(outputBuilder.ToString());
        }
        public void SerializeMappingBase64_SimpleSourceMap_CorrectlySerialized()
        {
            // Arrange
            SourceMapGenerator sourceMapGenerator = new SourceMapGenerator();
            SourceMap          input = this.GetSimpleSourceMap();

            // Act
            string output = sourceMapGenerator.GenerateSourceMapInlineComment(input);

            // Assert
            Assert.AreEqual("//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbW9uSW50bCIsIm1hcHBpbmdzIjoiQUFDQUEsYUFBQSxDQUFjOyIsInNvdXJjZXMiOlsiaW5wdXQvQ29tbW9uSW50bC5qcyJdLCJuYW1lcyI6WyJDb21tb25TdHJpbmdzIiwiYWZyaWthYW5zIl19", output);
        }
        public void SerializeMapping_SimpleSourceMap_CorrectlySerialized()
        {
            // Arrange
            SourceMapGenerator sourceMapGenerator = new SourceMapGenerator();
            SourceMap          input = this.GetSimpleSourceMap();

            // Act
            string output = sourceMapGenerator.SerializeMapping(input);

            // Assert
            Assert.AreEqual("{\"version\":3,\"file\":\"CommonIntl\",\"mappings\":\"AACAA,aAAA,CAAc;\",\"sources\":[\"input/CommonIntl.js\"],\"names\":[\"CommonStrings\",\"afrikaans\"]}", output);
        }
Exemple #17
0
        public void SimpleGeneratorTest()
        {
            var generator = new SourceMapGenerator();
            var stdin     = "<stdin>";

            generator.AddMapping(new Mapping(stdin, new FilePosition(0, 0), new FilePosition(0, 0)));
            generator.AddMapping(new Mapping(stdin, new FilePosition(0, 1), new FilePosition(1, 0)));
            generator.AddMapping(new Mapping(stdin, new FilePosition(0, 2), new FilePosition(1, 3)));
            generator.AddMapping(new Mapping(stdin, new FilePosition(0, 3), new FilePosition(2, 0)));

            var map = generator.Generate();

            Assert.StartsWith("AAAA;AAAC,GAAC;AAAC", map.mappings);
        }
Exemple #18
0
        public void DecodeEncodeTest()
        {
            var consumer = new SourceMapConsumer();

            consumer.Parse(SimpleSourceMapObject);

            var generator = new SourceMapGenerator();

            foreach (var m in consumer.Mappings)
            {
                generator.AddMapping(m);
            }
            var map = generator.Generate();

            Assert.Contains("AAAA;AAAC,GAAC;AAAC,GAAC;AAAC,GAAC;AAAC,MAAG,IAAI,EAAC;OAAG;AAAC,SAAK;QAAG,KAAK,EAAC;SAAG;AAAC,WAAK;SAAG;AAAC;;CAAC", map.mappings);
        }
        public void SerializeMappingEntry_DifferentLineNumber_SemicolonAdded()
        {
            // Arrange
            SourceMapGenerator sourceMapGenerator = new SourceMapGenerator();

            MappingGenerateState state = new MappingGenerateState(new List <string>()
            {
                "Name"
            }, new List <string>()
            {
                "Source"
            });

            state.LastGeneratedPosition.ZeroBasedColumnNumber = 1;

            MappingEntry entry = new MappingEntry()
            {
                GeneratedSourcePosition = new SourcePosition()
                {
                    ZeroBasedLineNumber = 1, ZeroBasedColumnNumber = 0
                },
                OriginalFileName       = state.Sources[0],
                OriginalName           = state.Names[0],
                OriginalSourcePosition = new SourcePosition()
                {
                    ZeroBasedLineNumber = 1, ZeroBasedColumnNumber = 0
                },
            };

            // Act
            List <char> output = new List <char>();

            sourceMapGenerator.SerializeMappingEntry(entry, state, output);

            // Assert
            Assert.IsTrue(output.IndexOf(';') >= 0);
        }
        public void SerializeMappingEntry_WithOriginalFileNameAndOriginalName_FiveSegments()
        {
            // Arrange
            SourceMapGenerator sourceMapGenerator = new SourceMapGenerator();

            MappingGenerateState state = new MappingGenerateState(new List <string>()
            {
                "Name"
            }, new List <string>()
            {
                "Source"
            });

            state.LastGeneratedPosition.ZeroBasedLineNumber = 1;

            MappingEntry entry = new MappingEntry()
            {
                GeneratedSourcePosition = new SourcePosition()
                {
                    ZeroBasedLineNumber = 1, ZeroBasedColumnNumber = 5
                },
                OriginalSourcePosition = new SourcePosition()
                {
                    ZeroBasedLineNumber = 1, ZeroBasedColumnNumber = 6
                },
                OriginalFileName = state.Sources[0],
                OriginalName     = state.Names[0],
            };

            // Act
            List <char> output = new List <char>();

            sourceMapGenerator.SerializeMappingEntry(entry, state, output);

            // Assert
            Assert.AreEqual("KACMA", new string(output.ToArray()));
        }
        public void SerializeMappingEntry_WithOriginalFileNameNoOriginalName_FourSegments()
        {
            // Arrange
            SourceMapGenerator sourceMapGenerator = new SourceMapGenerator();

            MappingGenerateState state = new MappingGenerateState(new List <string>()
            {
                "Name"
            }, new List <string>()
            {
                "Source"
            });

            state.IsFirstSegment = false;

            MappingEntry entry = new MappingEntry()
            {
                GeneratedSourcePosition = new SourcePosition()
                {
                    ZeroBasedColumnNumber = 10
                },
                OriginalFileName       = state.Sources[0],
                OriginalSourcePosition = new SourcePosition()
                {
                    ZeroBasedColumnNumber = 5
                },
            };

            // Act
            List <char> output = new List <char>();

            sourceMapGenerator.SerializeMappingEntry(entry, state, output);

            // Assert
            Assert.AreEqual(",UAAK", new string(output.ToArray()));
        }