diff --git a/Ooui/Message.cs b/Ooui/Message.cs index 485db30..7254abd 100644 --- a/Ooui/Message.cs +++ b/Ooui/Message.cs @@ -40,8 +40,11 @@ namespace Ooui { w.Write ('\"'); for (var i = 0; i < s.Length; i++) { - var c = s[0]; - if (c == '\r') { + var c = s[i]; + if (c == '\"') { + w.Write ("\\\""); + } + else if (c == '\r') { w.Write ("\\r"); } else if (c == '\n') { diff --git a/Tests/JsonTests.cs b/Tests/JsonTests.cs index f27fa35..37c637a 100644 --- a/Tests/JsonTests.cs +++ b/Tests/JsonTests.cs @@ -29,9 +29,11 @@ namespace Tests var b = new Button (); b.Text = "Hello"; b.Click += (sender, e) => { }; + b.Title = "\"Quote\""; Assert.AreEqual ("{\"m\":\"create\",\"id\":\"⦙\",\"k\":\"button\"}", NoId (b.StateMessages[0].ToJson ())); Assert.AreEqual ("{\"m\":\"call\",\"id\":\"⦙\",\"k\":\"insertBefore\",\"v\":[\"⦙\",null]}", NoId (b.StateMessages[1].ToJson ())); Assert.AreEqual ("{\"m\":\"listen\",\"id\":\"⦙\",\"k\":\"click\"}", NoId (b.StateMessages[2].ToJson ())); + Assert.AreEqual ("{\"m\":\"setAttr\",\"id\":\"⦙\",\"k\":\"title\",\"v\":\"\\\"Quote\\\"\"}", NoId (b.StateMessages[3].ToJson ())); } [TestMethod]