Exemplo n.º 1
0
		public void Roundtrip_LdmlSpellChecker()
		{
			using (var environment = new TestEnvironment())
			{
				var scd = new SpellCheckDictionaryDefinition(SpellCheckDictionaryFormat.Hunspell);
				scd.Urls.Add("http://wirl.scripts.sil.org/hunspell");
				scd.Urls.Add("http://scripts.sil.org/cms/scripts/page.php?item_id=hunspell");

				var wsToLdml = new WritingSystemDefinition("en", "Latn", "", "");
				wsToLdml.SpellCheckDictionaries.Add(scd);

				var ldmlAdaptor = new LdmlDataMapper(new TestWritingSystemFactory());
				ldmlAdaptor.Write(environment.FilePath("test.ldml"), wsToLdml, null);
				AssertThatXmlIn.File(environment.FilePath("test.ldml"))
					.HasAtLeastOneMatchForXpath("/ldml/special/sil:external-resources/sil:spellcheck[@type='hunspell']/sil:url[text()='http://wirl.scripts.sil.org/hunspell']", environment.NamespaceManager);
				AssertThatXmlIn.File(environment.FilePath("test.ldml"))
					.HasAtLeastOneMatchForXpath("/ldml/special/sil:external-resources/sil:spellcheck[@type='hunspell']/sil:url[text()='http://scripts.sil.org/cms/scripts/page.php?item_id=hunspell']", environment.NamespaceManager);


				var wsFromLdml = new WritingSystemDefinition();
				ldmlAdaptor.Read(environment.FilePath("test.ldml"), wsFromLdml);

				Assert.That(wsFromLdml.SpellCheckDictionaries.First().ValueEquals(scd));
			}
		}
Exemplo n.º 2
0
		private void ReadSpellcheckElement(XElement externalResourcesElem, WritingSystemDefinition ws)
		{
			foreach (XElement scElem in externalResourcesElem.NonAltElements(Sil + "spellcheck"))
			{
				var type = (string) scElem.Attribute("type");
				if (!string.IsNullOrEmpty(type))
				{
					var scd = new SpellCheckDictionaryDefinition(SpellCheckToSpecllCheckDictionaryFormats[type]);

					// URL elements
					foreach (XElement urlElem in scElem.NonAltElements(Sil + "url"))
						scd.Urls.Add(urlElem.Value);
					ws.SpellCheckDictionaries.Add(scd);
				}
			}
		}