public void Constructor_CollectionSettingsHasCountrProvinceDistrict_LanguageLocationFilledIn() { // var dom = new HtmlDom(@"<html><head><div id='bloomDataDiv'> // <div data-book='country'>the country</div> // <div data-book='province'>the province</div> // <div data-book='district'>the district</div> // </div></head><body></body></html>"); var dom = new HtmlDom(); var data = new BookData(dom, new CollectionSettings(){Country="the country", Province = "the province", District= "the district"}, null); Assert.AreEqual("the district, the province<br/>the country", data.GetVariableOrNull("languageLocation", "*")); }
public void Constructor_CollectionSettingsHasLanguage3Iso639Code_nameOfNationalLanguage2FilledIn() { var dom = new HtmlDom(); var data = new BookData(dom, new CollectionSettings() { Language3Iso639Code = "tpi" }, null); Assert.AreEqual("Tok Pisin", data.GetVariableOrNull("nameOfNationalLanguage2", "*")); }
public void Constructor_CollectionSettingsHasLanguage1Name_LanguagenameOfNationalLanguage1FilledIn() { var dom = new HtmlDom(); var data = new BookData(dom, new CollectionSettings() { Language1Name = "foobar" }, null); Assert.AreEqual("foobar", data.GetVariableOrNull("nameOfLanguage", "*")); }
public void Constructor_CollectionSettingsHasISO639Code_iso639CodeFilledIn() { var dom = new HtmlDom(); var data = new BookData(dom, new CollectionSettings() { Language1Iso639Code = "xyz" }, null); Assert.AreEqual("xyz", data.GetVariableOrNull("iso639Code", "*")); }
public void SuckInDataFromEditedDom_NoDataDIvTitleChanged_NewTitleInCache() { HtmlDom bookDom = new HtmlDom(@"<html ><head></head><body> <div class='bloom-page' id='guid2'> <textarea lang='xyz' data-book='bookTitle'>original</textarea> </div> </body></html>"); var data = new BookData(bookDom, _collectionSettings, null); Assert.AreEqual("original", data.GetVariableOrNull("bookTitle", "xyz")); HtmlDom editedPageDom = new HtmlDom(@"<html ><head></head><body> <div class='bloom-page' id='guid2'> <textarea lang='xyz' data-book='bookTitle'>changed</textarea> </div> </body></html>"); data.SuckInDataFromEditedDom(editedPageDom); Assert.AreEqual("changed", data.GetVariableOrNull("bookTitle", "xyz")); }
public void Set_Null_Removes() { var htmlDom = new HtmlDom(); var data = new BookData(htmlDom, new CollectionSettings(), null); data.Set("1", "one", "en"); data.Set("1", null, "en"); Assert.AreEqual(null, data.GetVariableOrNull("1", "en")); AssertThatXmlIn.Dom(htmlDom.RawDom).HasSpecifiedNumberOfMatchesForXpath("//div[@lang='en']", 0); var roundTripData = new BookData(htmlDom, new CollectionSettings(), null); Assert.IsNull(roundTripData.GetVariableOrNull("1", "en")); }
public void Set_AddTwoForms_BothAdded() { var htmlDom = new HtmlDom(); var data = new BookData(htmlDom, new CollectionSettings(), null); data.Set("1", "one", "en"); data.Set("1", "uno", "es"); var roundTripData = new BookData(htmlDom, new CollectionSettings(), null); Assert.AreEqual("one", roundTripData.GetVariableOrNull("1", "en")); Assert.AreEqual("uno", roundTripData.GetVariableOrNull("1", "es")); }
public void Set_DidNotHaveForm_Added() { var htmlDom = new HtmlDom(); var data = new BookData(htmlDom, new CollectionSettings(), null); data.Set("1", "one", "en"); Assert.AreEqual("one", data.GetVariableOrNull("1", "en")); AssertThatXmlIn.Dom(htmlDom.RawDom).HasSpecifiedNumberOfMatchesForXpath("//div[@lang='en']",1); var roundTripData = new BookData(htmlDom, new CollectionSettings(), null); var t = roundTripData.GetVariableOrNull("1", "en"); Assert.AreEqual("one", t); }
public void RemoveSingleForm_HasForm_Removed() { var htmlDom = new HtmlDom(); var data = new BookData(htmlDom, new CollectionSettings(), null); data.Set("1","one","en"); var data2 = new BookData(htmlDom, new CollectionSettings(), null); data2.RemoveSingleForm("1","en"); Assert.IsNull(data2.GetVariableOrNull("1", "en")); }
public void RemoveDataDivVariableForOneLanguage_WasTwoForms_OtherRemains() { var htmlDom = new HtmlDom(); var data = new BookData(htmlDom, new CollectionSettings(), null); data.Set("1", "one", "en"); data.Set("1", "uno", "es"); var roundTripData = new BookData(htmlDom, new CollectionSettings(), null); roundTripData.RemoveSingleForm("1", "en"); Assert.IsNull(roundTripData.GetVariableOrNull("1", "en")); Assert.AreEqual("uno",roundTripData.GetVariableOrNull("1","es")); }
public void RemoveDataDivVariableForOneLanguage_WasLastForm_WholeElementRemoved() { var htmlDom = new HtmlDom(); var data = new BookData(htmlDom, new CollectionSettings(), null); data.Set("1","one","en"); var roundTripData = new BookData(htmlDom, new CollectionSettings(), null); roundTripData.RemoveSingleForm("1", "en"); Assert.IsNull(roundTripData.GetVariableOrNull("1", "en")); }
public void RemoveDataDivVariableForOneLanguage_DoesNotHaveForm_OK() { var htmlDom = new HtmlDom(); var data = new BookData(htmlDom, new CollectionSettings(), null); data.RemoveSingleForm("1", "en"); Assert.AreEqual(null, data.GetVariableOrNull("1", "en")); AssertThatXmlIn.Dom(htmlDom.RawDom).HasSpecifiedNumberOfMatchesForXpath("//div[@lang='en']", 0); var roundTripData = new BookData(htmlDom, new CollectionSettings(), null); Assert.IsNull(roundTripData.GetVariableOrNull("1", "en")); }
public void MigrateData_TopicInTokPisinButNotEnglish_ChangesLangeToEnglish() { var bookDom = new HtmlDom(@"<html ><head></head><body> <div id='bloomDataDiv'> <div data-book='topic' lang='tpi'>health</div> </div> </body></html>"); var data = new BookData(bookDom, _collectionSettings, null); Assert.AreEqual("health", data.GetVariableOrNull("topic", "en")); Assert.IsNull(data.GetVariableOrNull("topic", "tpi")); }