public void GlobalStore_WritingSystemsToIgnore() { string storePath1 = PrepareTempStore("Store1"); string storePath2 = PrepareTempStore("Store2"); string globalStorePath = PrepareTempStore("GlobalStore"); var globalStore = new GlobalFileWritingSystemStore(globalStorePath); var wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath1, globalStore), globalStore); var ws = wsManager.Set("en-US"); ws.SpellCheckingId = "id1"; wsManager.Save(); Thread.Sleep(1000); wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath2, globalStore), globalStore); ws = wsManager.Set("en-US"); ws.SpellCheckingId = "id2"; wsManager.Save(); wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath1, globalStore), globalStore); IEnumerable <IWritingSystem> sharedWss = wsManager.CheckForNewerGlobalWritingSystems(); Assert.AreEqual(1, sharedWss.Count()); Assert.AreEqual("en-US", sharedWss.First().Id); ws = wsManager.Get("en-US"); Assert.AreEqual("id1", ws.SpellCheckingId); wsManager.Save(); wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath1, globalStore), globalStore); sharedWss = wsManager.CheckForNewerGlobalWritingSystems(); Assert.AreEqual(0, sharedWss.Count()); wsManager.Save(); Thread.Sleep(1000); wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath2, globalStore), globalStore); ws = wsManager.Get("en-US"); ws.LegacyMapping = "encoding converter"; wsManager.Save(); wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath1, globalStore), globalStore); ws = wsManager.Get("en-US"); Assert.IsNullOrEmpty(ws.LegacyMapping); sharedWss = wsManager.CheckForNewerGlobalWritingSystems(); Assert.AreEqual(1, sharedWss.Count()); IWritingSystem sharedWs = sharedWss.First(); Assert.AreEqual("en-US", sharedWs.Id); wsManager.Replace(sharedWs); wsManager.Save(); ws = wsManager.Get("en-US"); Assert.AreEqual("encoding converter", ws.LegacyMapping); }
public void SerializeDeserialize() { string storePath = PrepareTempStore("Store"); // serialize var wsManager = new PalasoWritingSystemManager(new LocalFileWritingSystemStore(storePath)); var ws = wsManager.Set("en-US"); ws.SpellCheckingId = "en-US"; ws.MatchedPairs = "matched pairs"; ws.LCID = 0x409; ws.ValidChars = "valid characters"; ws.LegacyMapping = "legacy mapping"; wsManager.Save(); // deserialize wsManager = new PalasoWritingSystemManager(new LocalFileWritingSystemStore(storePath)); Assert.IsTrue(wsManager.Exists("en-US")); ws = wsManager.Get("en-US"); Assert.AreEqual("Eng", ws.Abbreviation); Assert.AreEqual("English", ws.LanguageSubtag.Name); Assert.AreEqual("en-US", ws.SpellCheckingId); Assert.AreEqual("United States", ws.RegionSubtag.Name); Assert.AreEqual("matched pairs", ws.MatchedPairs); Assert.AreEqual(0x409, ws.LCID); Assert.AreEqual("valid characters", ws.ValidChars); Assert.AreEqual("legacy mapping", ws.LegacyMapping); Assert.AreEqual("eng", ws.ISO3); wsManager.Save(); }
public void FieldWorksExtensionsAreNotDuplicatedOnRoundTrip() { var storePath = PrepareTempStore("Store"); // serialize var wsManager = new PalasoWritingSystemManager(new LocalFileWritingSystemStore(storePath)); var ws = wsManager.Set("en-US"); ws.SpellCheckingId = "en-US"; ws.MatchedPairs = "matched pairs"; ((ILegacyWritingSystemDefinition)ws).WindowsLcid = 0x409.ToString(CultureInfo.InvariantCulture); ws.ValidChars = "valid characters"; ws.LegacyMapping = "legacy mapping"; wsManager.Save(); // deserialize wsManager = new PalasoWritingSystemManager(new LocalFileWritingSystemStore(storePath)); Assert.IsTrue(wsManager.Exists("en-US"), "broken before SUT."); ws = wsManager.Get("en-US"); Assert.AreEqual("valid characters", ws.ValidChars, "broken before SUT"); //change the valid chars data and save back out, this was duplicating in LT-15048 ws.ValidChars = "more valid characters"; wsManager.Save(); var xmlDoc = new XmlDocument(); xmlDoc.Load(Path.Combine(storePath, "en-US.ldml")); Assert.AreEqual(1, xmlDoc.SelectNodes("//special/*[local-name()='validChars']").Count, "Special fw elements were duplicated"); Assert.AreEqual(1, xmlDoc.SelectNodes("//special/*[local-name()='validChars' and @value='more valid characters']").Count, "special fw changes not saved"); }
public void GlobalStore() { string storePath1 = PrepareTempStore("Store1"); string storePath2 = PrepareTempStore("Store2"); string globalStorePath = PrepareTempStore("GlobalStore"); var globalStore = new GlobalFileWritingSystemStore(globalStorePath); var wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath1, globalStore), globalStore); var ws = wsManager.Set("en-US"); ws.SpellCheckingId = "id1"; wsManager.Save(); Assert.IsTrue(File.Exists(Path.Combine(storePath1, "en-US.ldml"))); Assert.IsTrue(File.Exists(Path.Combine(globalStorePath, "en-US.ldml"))); Thread.Sleep(1000); DateTime lastModified = File.GetLastWriteTime(Path.Combine(globalStorePath, "en-US.ldml")); wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath2, globalStore), globalStore); ws = wsManager.Set("en-US"); ws.SpellCheckingId = "id2"; wsManager.Save(); Assert.Less(lastModified, File.GetLastWriteTime(Path.Combine(globalStorePath, "en-US.ldml"))); lastModified = File.GetLastWriteTime(Path.Combine(storePath1, "en-US.ldml")); wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath1, globalStore), globalStore); ws = wsManager.Get("en-US"); Assert.AreEqual("id1", ws.SpellCheckingId); IEnumerable <IWritingSystem> sharedWss = wsManager.CheckForNewerGlobalWritingSystems(); Assert.AreEqual(1, sharedWss.Count()); IWritingSystem sharedWs = sharedWss.First(); Assert.AreEqual("en-US", sharedWs.Id); wsManager.Replace(sharedWs); wsManager.Save(); ws = wsManager.Get("en-US"); Assert.AreEqual("id2", ws.SpellCheckingId); Assert.Less(lastModified, File.GetLastWriteTime(Path.Combine(storePath1, "en-US.ldml"))); }
public void get_Engine() { var wsManager = new PalasoWritingSystemManager(); IWritingSystem enWs = wsManager.Set("en-US"); ILgWritingSystem enLgWs = wsManager.get_Engine("en-US"); Assert.AreSame(enWs, enLgWs); Assert.IsFalse(wsManager.Exists("en-Latn-US")); // this should create a new writing system, since it doesn't exist ILgWritingSystem enUsLgWs = wsManager.get_Engine("en-Latn-US"); Assert.IsTrue(wsManager.Exists("en-Latn-US")); Assert.IsTrue(wsManager.Exists(enUsLgWs.Handle)); IWritingSystem enUsWs = wsManager.Get("en-Latn-US"); Assert.AreSame(enUsWs, enUsLgWs); wsManager.Save(); }
public void SerializeDeserialize() { string storePath = PrepareTempStore("Store"); // serialize var wsManager = new PalasoWritingSystemManager(new LocalFileWritingSystemStore(storePath)); var ws = wsManager.Set("en-US"); ws.SpellCheckingId = "en-US"; ws.MatchedPairs = "matched pairs"; ((ILegacyWritingSystemDefinition)ws).WindowsLcid = 0x409.ToString(CultureInfo.InvariantCulture); ws.ValidChars = "valid characters"; ws.LegacyMapping = "legacy mapping"; wsManager.Save(); // deserialize wsManager = new PalasoWritingSystemManager(new LocalFileWritingSystemStore(storePath)); Assert.IsTrue(wsManager.Exists("en-US")); ws = wsManager.Get("en-US"); Assert.AreEqual("Eng", ws.Abbreviation); Assert.AreEqual("English", ws.LanguageSubtag.Name); Assert.AreEqual("en-US", ws.SpellCheckingId); Assert.AreEqual("United States", ws.RegionSubtag.Name); Assert.AreEqual("matched pairs", ws.MatchedPairs); Assert.AreEqual(0x409.ToString(CultureInfo.InvariantCulture), ((ILegacyWritingSystemDefinition)ws).WindowsLcid); Assert.AreEqual("valid characters", ws.ValidChars); Assert.AreEqual("legacy mapping", ws.LegacyMapping); Assert.AreEqual("eng", ws.ISO3); wsManager.Save(); }
public void GlobalStore_WritingSystemsToIgnore() { string storePath1 = PrepareTempStore("Store1"); string storePath2 = PrepareTempStore("Store2"); string globalStorePath = PrepareTempStore("GlobalStore"); var globalStore = new GlobalFileWritingSystemStore(globalStorePath); var wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath1, globalStore), globalStore); var ws = wsManager.Set("en-US"); ws.SpellCheckingId = "id1"; wsManager.Save(); Thread.Sleep(1000); wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath2, globalStore), globalStore); ws = wsManager.Set("en-US"); ws.SpellCheckingId = "id2"; wsManager.Save(); wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath1, globalStore), globalStore); IEnumerable<IWritingSystem> sharedWss = wsManager.CheckForNewerGlobalWritingSystems(); Assert.AreEqual(1, sharedWss.Count()); Assert.AreEqual("en-US", sharedWss.First().Id); ws = wsManager.Get("en-US"); Assert.AreEqual("id1", ws.SpellCheckingId); wsManager.Save(); wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath1, globalStore), globalStore); sharedWss = wsManager.CheckForNewerGlobalWritingSystems(); Assert.AreEqual(0, sharedWss.Count()); wsManager.Save(); Thread.Sleep(1000); wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath2, globalStore), globalStore); ws = wsManager.Get("en-US"); ws.LegacyMapping = "encoding converter"; wsManager.Save(); wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath1, globalStore), globalStore); ws = wsManager.Get("en-US"); Assert.IsNullOrEmpty(ws.LegacyMapping); sharedWss = wsManager.CheckForNewerGlobalWritingSystems(); Assert.AreEqual(1, sharedWss.Count()); IWritingSystem sharedWs = sharedWss.First(); Assert.AreEqual("en-US", sharedWs.Id); wsManager.Replace(sharedWs); wsManager.Save(); ws = wsManager.Get("en-US"); Assert.AreEqual("encoding converter", ws.LegacyMapping); }
public void GlobalStore() { string storePath1 = PrepareTempStore("Store1"); string storePath2 = PrepareTempStore("Store2"); string globalStorePath = PrepareTempStore("GlobalStore"); var globalStore = new GlobalFileWritingSystemStore(globalStorePath); var wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath1, globalStore), globalStore); var ws = wsManager.Set("en-US"); ws.SpellCheckingId = "id1"; wsManager.Save(); Assert.IsTrue(File.Exists(Path.Combine(storePath1, "en-US.ldml"))); Assert.IsTrue(File.Exists(Path.Combine(globalStorePath, "en-US.ldml"))); Thread.Sleep(1000); DateTime lastModified = File.GetLastWriteTime(Path.Combine(globalStorePath, "en-US.ldml")); wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath2, globalStore), globalStore); ws = wsManager.Set("en-US"); ws.SpellCheckingId = "id2"; wsManager.Save(); Assert.Less(lastModified, File.GetLastWriteTime(Path.Combine(globalStorePath, "en-US.ldml"))); lastModified = File.GetLastWriteTime(Path.Combine(storePath1, "en-US.ldml")); wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath1, globalStore), globalStore); ws = wsManager.Get("en-US"); Assert.AreEqual("id1", ws.SpellCheckingId); IEnumerable<IWritingSystem> sharedWss = wsManager.CheckForNewerGlobalWritingSystems(); Assert.AreEqual(1, sharedWss.Count()); IWritingSystem sharedWs = sharedWss.First(); Assert.AreEqual("en-US", sharedWs.Id); wsManager.Replace(sharedWs); wsManager.Save(); ws = wsManager.Get("en-US"); Assert.AreEqual("id2", ws.SpellCheckingId); Assert.Less(lastModified, File.GetLastWriteTime(Path.Combine(storePath1, "en-US.ldml"))); }