private void ComparePipData(string expected, string objectToSerialize, string quoteChar = "\'") { var result = Build().AddSpec("const obj = " + objectToSerialize + ";").EvaluateExpressionWithNoErrors("obj") as ObjectLiteral; Assert.True(result != null, "Expected to receive an ObjectLiteral from evaluation the data"); var renderer = new PipFragmentRenderer( absPath => { var path = absPath.ToString(PathTable, PathFormat.Script); var testRoot = TestRoot.Replace('\\', '/') + "/"; if (path.StartsWith(testRoot, StringComparison.OrdinalIgnoreCase)) { return("##" + path.Substring(testRoot.Length) + "##"); } return("##" + path + "##"); }, StringTable, x => "@@" + x + "@@"); var pipData = AmbientJson.CreatePipData(StringTable, result, quoteChar, new PipDataBuilder(StringTable)); var canonicalPipData = pipData.ToString(renderer).Replace("\r\n", "\n").Replace("/", "\\\\"); var canonicalExpected = expected.Replace("\r\n", "\n").Replace("/", "\\\\"); Assert.Equal(canonicalExpected, canonicalPipData); }
public void TestAdditionaLJsonOptions(string option) { var spec = @" const options : Object = { pathRenderingOption: """ + option + @""" }; "; var result = Build().AddSpec(spec).EvaluateExpressionWithNoErrors("options") as ObjectLiteral; Assert.True(result != null, "Expected to receive an ObjectLiteral from evaluation the data"); var convertedResult = AmbientJson.GetAdditionalOptions(FrontEndContext, result); Assert.True(typeof(AmbientJson.AdditionalJsonOptions).Equals(convertedResult.GetType())); var writeFileOption = AmbientJson.GetWriteFileOption(convertedResult); switch (option) { case "none": Assert.True(writeFileOption.PathRenderingOption == WriteFile.PathRenderingOption.None); break; case "backSlashes": Assert.True(writeFileOption.PathRenderingOption == WriteFile.PathRenderingOption.BackSlashes); break; case "escapedBackSlashes": Assert.True(writeFileOption.PathRenderingOption == WriteFile.PathRenderingOption.EscapedBackSlashes); break; case "forwardSlashes": Assert.True(writeFileOption.PathRenderingOption == WriteFile.PathRenderingOption.ForwardSlashes); break; } }