public void Constructor() { vCardEmailAddress email = new vCardEmailAddress(); Assert.IsEmpty( email.Address, "The Address property should default to String.Empty."); }
public void Constructor_String() { vCardEmailAddress email = new vCardEmailAddress(TestEmailAddress); Assert.AreEqual( TestEmailAddress, email.Address, "The EmailAddress is incorrect."); Assert.AreEqual( vCardEmailAddressType.Internet, email.EmailType, "The EmailType should default to Internet."); }
public void Constructor_String_EmailType() { // Create a non-Internet email address. Note: // currently address formats are not validated. // This means any type can be designated in the // constructor. However, this test may fail if // validation is implemented in the future. vCardEmailAddress email = new vCardEmailAddress( TestEmailAddress, vCardEmailAddressType.eWorld); Assert.AreEqual( TestEmailAddress, email.Address, "The EmailAddress is not correct."); Assert.AreEqual( vCardEmailAddressType.eWorld, email.EmailType, "The EmailType is not correct."); }
/// <summary> /// Asserts that two vCard email addresses are identical. /// </summary> public static void Equals(vCardEmailAddress e1, vCardEmailAddress e2) { Assert.AreEqual( e1.Address, e2.Address, "vCardEmailAddress.Address differs."); Assert.AreEqual( e1.EmailType, e2.EmailType, "vCardEmailAddress.EmailType differs."); Assert.AreEqual( e1.IsPreferred, e2.IsPreferred, "vCardEmailAddress.IsPreferred differs."); Assert.AreEqual( e1.ToString(), e2.ToString(), "vCardEmailAddress.ToString differs."); }
/// <summary> /// Reads an EMAIL property. /// </summary> private void ReadInto_EMAIL(vCard card, vCardProperty property) { vCardEmailAddress email = new vCardEmailAddress(); // The email address is stored as the value of the property. // The format of the address depends on the type of email // address. The current version of the library does not // perform any validation. email.Address = property.Value.ToString(); // Loop through each subproperty and look for flags // that indicate the type of email address. foreach (vCardSubproperty subproperty in property.Subproperties) { switch (subproperty.Name.ToUpperInvariant()) { case "PREF": // The PREF subproperty indicates the email // address is the preferred email address to // use when contacting the person. email.IsPreferred = true; break; case "TYPE": // The TYPE subproperty is new in vCard 3.0. // It identifies the type and can also indicate // the PREF attribute. string[] typeValues = subproperty.Value.Split(new char[] { ',' }); foreach (string typeValue in typeValues) { if (string.Compare("PREF", typeValue, StringComparison.OrdinalIgnoreCase) == 0) { email.IsPreferred = true; } else { vCardEmailAddressType? typeType = DecodeEmailAddressType(typeValue); if (typeType.HasValue) email.EmailType = typeType.Value; } } break; default: // All other subproperties are probably vCard 2.1 // subproperties. This was before the email type // was supposed to be specified with TYPE=VALUE. vCardEmailAddressType? emailType = DecodeEmailAddressType(subproperty.Name); if (emailType.HasValue) email.EmailType = emailType.Value; break; } } card.EmailAddresses.Add(email); }
public void ReadWriteProperty_Address() { // Make sure the Address property reads/writes. vCardEmailAddress email = new vCardEmailAddress(); email.Address = TestEmailAddress; Assert.AreEqual( TestEmailAddress, email.Address, "The Address property is not working."); }
public void ReadWriteProperty_IsPreferred() { // Make sure the EmailType property reads/writes vCardEmailAddress email = new vCardEmailAddress(); email.IsPreferred = true; Assert.IsTrue(email.IsPreferred); email.IsPreferred = false; Assert.IsFalse(email.IsPreferred); }
public void ReadWriteProperty_EmailType() { // Make sure the EmailType property reads/writes vCardEmailAddress email = new vCardEmailAddress(); email.EmailType = vCardEmailAddressType.AttMail; Assert.AreEqual(vCardEmailAddressType.AttMail, email.EmailType); }
private vCard GetVCardFromTr(HtmlNode personTr, HtmlNode detailsTr) { var ret = new vCard(); var personTDs = personTr.SelectNodes("./td"); ret.FamilyName = personTDs[0].InnerText; ret.GivenName = personTDs[1].InnerText; ret.DisplayName = ret.Office = personTDs[2].InnerText; var workPhone = getPhone(personTDs[3].InnerText); if (workPhone != null) ret.Phones.Add(new vCardPhone(workPhone, vCardPhoneTypes.WorkVoice)); var mobile = getPhone(personTDs[4].InnerText); if (mobile != null) ret.Phones.Add(new vCardPhone(mobile, vCardPhoneTypes.CellularVoice)); ret.Organization = "Bouvet"; var detailsURL = personTDs[0].SelectSingleNode(".//a").GetAttributeValue("href", null); if (!string.IsNullOrEmpty(detailsURL)) { var strippedURL = detailsURL.Replace("javascript:fnPopUp('", "").Replace("', '60', '70')", "").Replace("amp;", ""); var detailsHtml = GetHTML(strippedURL); var detailsDoc = new HtmlDocument(); detailsDoc.LoadHtml(detailsHtml); // Displayname ret.DisplayName = detailsDoc.DocumentNode.SelectSingleNode("//title").InnerText; // Generelt // Fødselsdag var fodt = GetNextTDText(detailsDoc, "Fødselsdato"); if (!string.IsNullOrEmpty(fodt)) { DateTime fDato; if (DateTime.TryParse(fodt, out fDato)) { ret.BirthDate = fDato; } } // Title var title = GetNextTDText(detailsDoc, "Stilling"); if (!string.IsNullOrEmpty(title)) { ret.Title = title; } // Email var email = detailsDoc.DocumentNode.SelectSingleNode("//a[@title='Send e-mail...">']"); if (email != null) { var workEmail = new vCardEmailAddress(email.InnerText, vCardEmailAddressType.Internet) {IsPreferred = true}; ret.EmailAddresses.Add(workEmail); } // MSN var msn = GetNextTDText(detailsDoc, "MSN"); if (!string.IsNullOrEmpty(msn)) { ret.XMsn = msn; } // Kontor // Kontor-adresse var workAddr = GetAddress(detailsDoc, 0); if (workAddr != null) { workAddr.IsHome = false; ret.DeliveryAddresses.Add(workAddr); } // Privat // Tlf //var privTlf = getPhone(detailsDoc.DocumentNode.SelectSingleNode("//tr[td='Privat tlf']").SelectNodes("./td")[1].InnerText); var privTlf = getPhone(GetNextTDText(detailsDoc, "Privat tlf")); if (!string.IsNullOrEmpty(privTlf)) { ret.Phones.Add(new vCardPhone(privTlf, vCardPhoneTypes.HomeVoice)); } // email var privEmail = GetNextTDText(detailsDoc, "Privat e-mail"); if (!string.IsNullOrEmpty(privEmail)) { var privEmailAddr = new vCardEmailAddress(privEmail, vCardEmailAddressType.Internet) {IsPreferred = false}; ret.EmailAddresses.Add(privEmailAddr); } // Hjemme-adresse var homeAddr = GetAddress(detailsDoc, 1); if (homeAddr != null) { homeAddr.IsHome = true; ret.DeliveryAddresses.Add(homeAddr); } // Erfaring var erfaring = GetNextTDText(detailsDoc, "Bakgrunn"); if (!string.IsNullOrEmpty(erfaring)) { ret.Notes.Add(new vCardNote(erfaring)); } // Utdanning var utdanning = GetNextTDText(detailsDoc, "Utdannelse"); if (!string.IsNullOrEmpty(utdanning)) { ret.Notes.Add(new vCardNote(utdanning)); } } var img = detailsTr.SelectSingleNode(".//img"); if (img != null) { var src = img.GetAttributeValue("src", null); if (src != null) { using (var stream = GetStream(src)) { ret.Photos.Add(new vCardPhoto(StreamHelper.ReadToEnd(stream))); } } } return ret; }