public void DeserializeTsStringFromXml_NoWsInRun() { Assert.That(() => TsStringSerializer.DeserializeTsStringFromXml( "<Str><Run>This is a test!</Run></Str>", WritingSystemManager), Throws.TypeOf <XmlSchemaException>().With.Message.EqualTo( "Run element must contain a ws attribute. Run text: This is a test!")); }
public void SerializeTsStringToXml_MultiStringHandlesDifferentWS() { ITsString tss = TsStringUtils.MakeString("This is a test!", EsWS); string xml = TsStringSerializer.SerializeTsStringToXml(tss, WritingSystemManager, EnWS); Assert.That(StripNewLines(xml), Is.EqualTo("<AStr ws=\"en\"><Run ws=\"es\">This is a test!</Run></AStr>")); }
public void SerializeTsStringToXml_Compose() { ITsString tss = TsStringUtils.MakeString("Laa yra la me\u0301n", EnWS); string xml = TsStringSerializer.SerializeTsStringToXml(tss, WritingSystemManager); Assert.That(StripNewLines(xml), Is.EqualTo("<Str><Run ws=\"en\">Laa yra la m\u00E9n</Run></Str>")); }
public void Serialization_StackedDiacriticsMultipleRuns_ProducesCorrectXML() { string expectedXML = "<Str>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"green\">Stacked diacritics: We</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"2f60ff\">" + COMBINING_RING_BELOW + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"green\">" + COMBINING_GRAVE_ACCENT_BELOW + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"red\">" + COMBINING_DOUBLE_ACUTE_ACCENT + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"green\">lc" + COMBINING_LEFT_TACK_BELOW + COMBINING_MINUS_SIGN_BELOW + "o</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"blue\">" + COMBINING_CIRCUMFLEX_ACCENT + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"green\">m" + COMBINING_SEAGULL_BELOW + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"red\">" + COMBINING_GRAVE_ACCENT + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"green\">" + COMBINING_DIAERESIS + COMBINING_MACRON + e_WITH_GRAVE + " t" + o_WITH_DIAERESIS + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"black\">" + COMBINING_CIRCUMFLEX_ACCENT + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"green\"> W" + o_WITH_DOT_ABOVE + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"black\">" + COMBINING_INVERTED_BREVE + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"green\">r" + COMBINING_SQUARE_BELOW + "l</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"blue\">" + COMBINING_TILDE + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"green\">d</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"red\">" + COMBINING_DOWN_TACK_BELOW + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"green\">" + COMBINING_TILDE_BELOW + "P" + a_WITH_DOT_ABOVE + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"red\">" + COMBINING_OVERLINE + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"black\">" + COMBINING_DOUBLE_ACUTE_ACCENT + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"green\">d</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"black\">" + COMBINING_ACUTE_ACCENT_BELOW + "</Run>" + "<Run ws=\"en\" fontsize=\"20000\" fontsizeUnit=\"mpt\" forecolor=\"green\">!</Run>" + "</Str>"; TsString tss = CreateStackedDiacriticsInput(singleRun: false); string xml = TsStringSerializer.SerializeTsStringToXml(tss, WritingSystemManager); Assert.That(StripNewLines(xml), Is.EqualTo(expectedXML)); }
public void SerializeTsStringToXml_WithStyle() { ITsString tss = TsStringUtils.MakeString("This is a test!", TsStringUtils.MakeProps("Monkey", EnWS)); string xml = TsStringSerializer.SerializeTsStringToXml(tss, WritingSystemManager); Assert.That(StripNewLines(xml), Is.EqualTo("<Str><Run ws=\"en\" namedStyle=\"Monkey\">This is a test!</Run></Str>")); }
public void DeserializeTsStringFromXml_MultiStringWithStyleAndNoWsInRun() { Assert.That(() => TsStringSerializer.DeserializeTsStringFromXml( "<AStr ws='en'><Run namedStyle='Monkey'>This is a test!</Run></AStr>", WritingSystemManager), Throws.TypeOf <XmlSchemaException>().With.Message.EqualTo( "Run element must contain a ws attribute. Run text: This is a test!")); }
public void DeserializeTsStringFromXml_Decompose() { ITsString tss = TsStringSerializer.DeserializeTsStringFromXml( "<Str><Run ws=\"en\">Laa yra la m\u00E9n</Run></Str>", WritingSystemManager); Assert.IsNotNull(tss); TssAssert.StringEqual("Laa yra la me\u0301n", tss); TssAssert.WsEqual(EnWS, tss); TssAssert.NoStrProps(tss); }
public void DeserializeTsStringFromXml_WithStyle() { ITsString tss = TsStringSerializer.DeserializeTsStringFromXml( "<Str><Run ws='en' namedStyle='Monkey'>This is a test!</Run></Str>", WritingSystemManager); Assert.IsNotNull(tss); TssAssert.StringEqual("This is a test!", tss); TssAssert.WsEqual(EnWS, tss); TssAssert.StyleEqual("Monkey", tss); }
public void DeserializeTsStringFromXml_MultiStringWithNoRunElement() { ITsString tss = TsStringSerializer.DeserializeTsStringFromXml( "<AStr ws='en'>This is a test!</AStr>", WritingSystemManager); Assert.IsNotNull(tss); TssAssert.StringEqual("This is a test!", tss); TssAssert.WsEqual(EnWS, tss); TssAssert.NoStrProps(tss); }
public void DeserializeTsStringFromXml_Simple() { ITsString tss = TsStringSerializer.DeserializeTsStringFromXml( "<Str><Run ws='en'>This is a test!</Run></Str>", WritingSystemManager); Assert.IsNotNull(tss); TssAssert.StringEqual("This is a test!", tss); TssAssert.WsEqual(EnWS, tss); TssAssert.NoStrProps(tss); }
public void SerializeTsStringToXml_WithEmbeddedData() { ITsPropsBldr tpb = TsStringUtils.MakePropsBldr(); tpb.SetIntValue(FwTextPropType.ktptWs, FwTextPropVar.ktpvDefault, EnWS); tpb.SetStringValue(FwTextPropType.ktptObjData, CreateObjData(FwObjDataTypes.kodtEmbeddedObjectData, "<FN><M>a</M></FN>")); ITsString tss = TsStringUtils.MakeString("a", tpb.GetTextProps()); string xml = TsStringSerializer.SerializeTsStringToXml(tss, WritingSystemManager); Assert.That(StripNewLines(xml), Is.EqualTo("<Str><Run ws=\"en\" embedded=\"<FN><M>a</M></FN>\">a</Run></Str>")); }
public void DeserializeTsStringFromXml_WithExternalLink() { ITsString tss = TsStringSerializer.DeserializeTsStringFromXml( @"<Str><Run ws='en' externalLink='C:\Idont\exist\here.doc'>document</Run></Str>", WritingSystemManager); Assert.IsNotNull(tss); TssAssert.StringEqual("document", tss); TssAssert.WsEqual(EnWS, tss); TssAssert.ObjDataEqual((char)FwObjDataTypes.kodtExternalPathName + @"C:\Idont\exist\here.doc", tss); }
public void DeserializeTsStringFromXml_WithEmbeddedData() { ITsString tss = TsStringSerializer.DeserializeTsStringFromXml( "<Str><Run ws='en' embedded='<FN><M>a</M></FN>'>a</Run></Str>", WritingSystemManager); Assert.IsNotNull(tss); TssAssert.StringEqual("a", tss); TssAssert.WsEqual(EnWS, tss); TssAssert.ObjDataEqual((char)FwObjDataTypes.kodtEmbeddedObjectData + "<FN><M>a</M></FN>", tss); }
public void SerializeTsStringToXml_WithExternalLink() { ITsPropsBldr tpb = TsStringUtils.MakePropsBldr(); tpb.SetIntValue(FwTextPropType.ktptWs, FwTextPropVar.ktpvDefault, EnWS); tpb.SetStringValue(FwTextPropType.ktptObjData, CreateObjData(FwObjDataTypes.kodtExternalPathName, "C:\\Idont\\exist\\here.doc")); ITsString tss = TsStringUtils.MakeString("document", tpb.GetTextProps()); string xml = TsStringSerializer.SerializeTsStringToXml(tss, WritingSystemManager); Assert.That(StripNewLines(xml), Is.EqualTo("<Str><Run ws=\"en\" externalLink=\"C:\\Idont\\exist\\here.doc\">document</Run></Str>")); }
public void DeserializeTsStringFromXml_MultiStringHandlesDifferentWS() { ITsString tss = TsStringSerializer.DeserializeTsStringFromXml( "<AStr ws='en'><Run ws='es'>This is a test!</Run></AStr>", WritingSystemManager); Assert.IsNotNull(tss); Assert.AreEqual(1, tss.RunCount); TssAssert.StringEqual("This is a test!", tss); TssAssert.WsEqual(EsWS, tss); TssAssert.NoStrProps(tss); }
public void DeserializeTsStringFromXml_WithOwningLink() { Guid expectedGuid = Guid.NewGuid(); ITsString tss = TsStringSerializer.DeserializeTsStringFromXml( "<Str><Run ws='en' ownlink='" + expectedGuid + "'></Run></Str>", WritingSystemManager); Assert.IsNotNull(tss); TssAssert.StringEqual(StringUtils.kChObject.ToString(), tss); TssAssert.WsEqual(EnWS, tss); TssAssert.FootnoteEqual(expectedGuid, FwObjDataTypes.kodtOwnNameGuidHot, tss); }
public void SerializeTsStringToXml_WithOwningLink() { Guid expectedGuid = Guid.NewGuid(); ITsPropsBldr tpb = TsStringUtils.MakePropsBldr(); tpb.SetIntValue(FwTextPropType.ktptWs, FwTextPropVar.ktpvDefault, EnWS); tpb.SetStringValue(FwTextPropType.ktptObjData, CreateObjData(FwObjDataTypes.kodtOwnNameGuidHot, expectedGuid.ToByteArray())); ITsString tss = TsStringUtils.MakeString(StringUtils.kChObject.ToString(), tpb.GetTextProps()); string xml = TsStringSerializer.SerializeTsStringToXml(tss, WritingSystemManager); Assert.That(StripNewLines(xml), Is.EqualTo(string.Format("<Str><Run ws=\"en\" ownlink=\"{0}\"></Run></Str>", expectedGuid))); }
public void SerializeTsStringToXml_MultiStringLaterRunsLessProps() { ITsIncStrBldr tisb = TsStringUtils.MakeIncStrBldr(); tisb.SetIntValue(FwTextPropType.ktptWs, FwTextPropVar.ktpvDefault, EnWS); tisb.SetStringValue(FwTextPropType.ktptNamedStyle, "Monkey"); tisb.Append("This is a "); tisb.ClearProps(); tisb.SetIntValue(FwTextPropType.ktptWs, FwTextPropVar.ktpvDefault, EsWS); tisb.Append("Laa yra la m\u00E9n"); ITsString tss = tisb.GetString(); string xml = TsStringSerializer.SerializeTsStringToXml(tss, WritingSystemManager, EnWS); Assert.That(StripNewLines(xml), Is.EqualTo("<AStr ws=\"en\"><Run ws=\"en\" namedStyle=\"Monkey\">This is a </Run><Run ws=\"es\">Laa yra la m\u00E9n</Run></AStr>")); }
public void SerializeTsStringToXml_WithLinkDoesNotWriteObjData() { Guid expectedGuid = Guid.NewGuid(); ITsIncStrBldr tisb = TsStringUtils.MakeIncStrBldr(); tisb.SetIntValue(FwTextPropType.ktptWs, FwTextPropVar.ktpvDefault, EnWS); tisb.Append("This is a link:"); tisb.ClearProps(); tisb.SetIntValue(FwTextPropType.ktptWs, FwTextPropVar.ktpvDefault, EnWS); tisb.SetStringValue(FwTextPropType.ktptObjData, CreateObjData(FwObjDataTypes.kodtNameGuidHot, expectedGuid.ToByteArray())); tisb.Append(StringUtils.kChObject.ToString()); ITsString tss = tisb.GetString(); string xml = TsStringSerializer.SerializeTsStringToXml(tss, WritingSystemManager, writeObjData: false); Assert.That(StripNewLines(xml), Is.EqualTo("<Str><Run ws=\"en\">This is a link:</Run></Str>")); }
public void DeserializeTsStringFromXml_MultipleRuns() { ITsString tss = TsStringSerializer.DeserializeTsStringFromXml( "<Str><Run ws='en'>This is a </Run><Run ws='es' namedStyle='Monkey'>Laa yra la m\u00E9n</Run></Str>", WritingSystemManager); Assert.IsNotNull(tss); Assert.AreEqual(2, tss.RunCount); // Check run one TssAssert.RunEqual("This is a ", tss, 0, 0); TssAssert.WsEqual(EnWS, tss, 0); TssAssert.NoStrProps(tss, 0); // Check run two TssAssert.RunEqual("Laa yra la me\u0301n", tss, 1, 10); TssAssert.WsEqual(EsWS, tss, 1); TssAssert.StyleEqual("Monkey", tss, 1); }
public void DeserializeTsStringFromXml_NoWsInRun() { TsStringSerializer.DeserializeTsStringFromXml( "<Str><Run>This is a test!</Run></Str>", WritingSystemManager); }
public void DeserializeTsStringFromXml_MultiStringWithStyleAndNoWsInRun() { TsStringSerializer.DeserializeTsStringFromXml( "<AStr ws='en'><Run namedStyle='Monkey'>This is a test!</Run></AStr>", WritingSystemManager); }