public void SetBasedOnStyleAndInheritValues_WsOverrideInChildInheritsParentValues() { // Font family override byte[] buffer = new byte[] { 0xC1, 0x87, 0x8B, 0x3B, // WS for english (little endian) 0x09, 0x00, // FF length (byte)'F', 0, (byte)'o', 0, (byte)'n', 0, (byte)'t', 0, (byte)'a', 0, (byte)'s', 0, (byte)'t', 0, (byte)'i', 0, (byte)'c', 0, 0x01, 0x00, // Count of int props 0x06, 0x00, // First int prop: type 0x01, 0x00, // Variant 0xe0, 0x2e, 0x00, 0x00, // value }; ITsPropsBldr props; var mainTitleStyle = AddTestStyle("Title Main", ContextValues.Title, StructureValues.Body, FunctionValues.Prose, false, Cache.LangProject.StylesOC); var inheritFromMain = AddTestStyle("Inherit Title", ContextValues.Title, StructureValues.Body, FunctionValues.Prose, false, Cache.LangProject.StylesOC); inheritFromMain.BasedOnRA = mainTitleStyle; props = mainTitleStyle.Rules.GetBldr(); // set the font property in the mainTitleStyle props.SetStrPropValue((int)FwTextPropType.ktptWsStyle, DummyStyleInfo.MakeStringFromBuffer(buffer)); mainTitleStyle.Rules = props.GetTextProps(); var entry = new DummyStyleInfo(mainTitleStyle); var childEntry = new DummyStyleInfo(inheritFromMain); var styleInfos = new FwStyleSheet.StyleInfoCollection(); styleInfos.Add(entry); styleInfos.Add(childEntry); // SUT childEntry.SetBasedOnStyleAndInheritValues(styleInfos); Assert.AreEqual(childEntry.BasedOnStyle, entry, "The child style entry in the StyleInfoCollection was not based on the parent entry"); var fontInfoOverrides = entry.FontInfoForWs(Cache.DefaultAnalWs); Assert.True(fontInfoOverrides.m_fontName.IsExplicit, "The fontName was not set properly in the parent entry"); Assert.AreEqual(fontInfoOverrides.FontName.Value, "Fontastic", "The fontName was not set properly in the parent entry"); var childOverrides = childEntry.FontInfoForWs(Cache.DefaultAnalWs); Assert.True(childOverrides.m_fontName.IsInherited, "The child entry in the StyleInfoCollection did not inherit the fontName properly"); Assert.AreEqual(childOverrides.FontName.Value, "Fontastic", "The child entry in the StyleInfoCollection did not inherit the fontName properly"); }
public void StyleCollectionWorksWithUpperAscii() { string styleName = "\u00e1bc"; StStyle style = new StStyle(); Cache.LangProject.StylesOC.Add(style); style.Name = styleName; FwStyleSheet.StyleInfoCollection styleCollection = new FwStyleSheet.StyleInfoCollection(); styleCollection.Add(new BaseStyleInfo(style)); Assert.IsTrue(styleCollection.Contains(styleName.Normalize(NormalizationForm.FormC))); Assert.IsTrue(styleCollection.Contains(styleName.Normalize(NormalizationForm.FormD))); Assert.IsTrue(styleCollection.Contains(styleName.Normalize(NormalizationForm.FormKC))); Assert.IsTrue(styleCollection.Contains(styleName.Normalize(NormalizationForm.FormKD))); }
public void StyleCollectionWorksWithUpperAscii() { const string styleName = "\u00e1bc"; var style = Cache.ServiceLocator.GetInstance <IStStyleFactory>().Create(); Cache.LanguageProject.StylesOC.Add(style); style.Name = styleName; var styleCollection = new FwStyleSheet.StyleInfoCollection { new BaseStyleInfo(style) }; Assert.IsTrue(styleCollection.Contains(styleName.Normalize(NormalizationForm.FormC))); Assert.IsTrue(styleCollection.Contains(styleName.Normalize(NormalizationForm.FormD))); Assert.IsTrue(styleCollection.Contains(styleName.Normalize(NormalizationForm.FormKC))); Assert.IsTrue(styleCollection.Contains(styleName.Normalize(NormalizationForm.FormKD))); }
public void StyleCollectionWorksWithUpperAscii() { const string styleName = "\u00e1bc"; var style = Cache.ServiceLocator.GetInstance<IStStyleFactory>().Create(); Cache.LanguageProject.StylesOC.Add(style); style.Name = styleName; var styleCollection = new FwStyleSheet.StyleInfoCollection {new BaseStyleInfo(style)}; Assert.IsTrue(styleCollection.Contains(styleName.Normalize(NormalizationForm.FormC))); Assert.IsTrue(styleCollection.Contains(styleName.Normalize(NormalizationForm.FormD))); Assert.IsTrue(styleCollection.Contains(styleName.Normalize(NormalizationForm.FormKC))); Assert.IsTrue(styleCollection.Contains(styleName.Normalize(NormalizationForm.FormKD))); }