public void UrlSerialiser_Serialise_ProvidingEverythingFormatsCorrectly()
        {
            float           priority = 0.195f;
            ChangeFrequency cf       = ChangeFrequency.Weekly;
            DateTime        dt       = new DateTime(2014, 12, 05, 07, 55, 0, DateTimeKind.Utc);

            var serialiser = new UrlSetSerialiser();

            var url = new Url("123");

            url.Priority        = priority;
            url.ChangeFrequency = cf;
            url.LastModified    = dt;

            var xUrl = serialiser.serialiseUrl(url);

            Assert.IsNotNull(xUrl);

            Assert.AreEqual(4, xUrl.Elements().Count());

            var xPriority = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlPriorityElementName);

            Assert.IsNotNull(xPriority);
            Assert.AreEqual("0.2", xPriority.Value);

            var xChange = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlChangeFrequencyElementName);

            Assert.IsNotNull(xChange);
            Assert.AreEqual("weekly", xChange.Value);

            var xMod = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlModifiedElementName);

            Assert.IsNotNull(xMod);
            Assert.AreEqual("2014-12-05T07:55:00Z", xMod.Value);
        }
        public void UrlSetSerialiser_Serialise_EmptyUrlSetGivesValidEmptyDocument()
        {
            var urlSet     = new UrlSet();
            var serialiser = new UrlSetSerialiser();

            XDocument result = serialiser.Serialise(urlSet);

            Assert.IsNotNull(result, "Serialise() should always return a valid XML document");

            Assert.AreEqual("<urlset xmlns:xhtml=\"http://www.w3.org/1999/xhtml\" xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" />", result.ToString(SaveOptions.DisableFormatting));
        }
Example #3
0
        public void AltUrlSerialiser_Serialise_AlternateGeneratesCorrectElement()
        {
            var serialiser = new UrlSetSerialiser();

            AlternateUrl url = new AlternateUrl();

            url.Language = "l";
            url.Url      = "u";

            var xAlt = serialiser.serialiseAlternate(url);

            Assert.IsNotNull(xAlt);
            Assert.AreEqual("<link rel=\"alternate\" hreflang=\"l\" href=\"u\" xmlns=\"http://www.w3.org/1999/xhtml\" />", xAlt.ToString(System.Xml.Linq.SaveOptions.None));
        }
        public void UrlSerialiser_Serialise_DefaultUrlReturnsOnlyLocation()
        {
            string exampleUrl = "http://blah/";

            var serialiser = new UrlSetSerialiser();

            var url = new Url(exampleUrl);

            var xUrl = serialiser.serialiseUrl(url);

            Assert.IsNotNull(xUrl);

            Assert.AreEqual(1, xUrl.Elements().Count());

            var xLoc = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlLocationElemenName);

            Assert.IsNotNull(xLoc);
            Assert.AreEqual(exampleUrl, xLoc.Value);
        }
        public void UrlSetSerialiser_Serialise_MultipleUrlsGivesCorrectDocument()
        {
            var urlSet = new UrlSet();

            for (int i = 0; i < 10; i++)
            {
                urlSet.Add(new Url(i.ToString()));
            }

            var serialiser = new UrlSetSerialiser();

            XDocument result = serialiser.Serialise(urlSet);

            Assert.IsNotNull(result, "Serialise() should always return a valid XML document");

            var set  = result.Document.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlSetElementName);
            var urls = set.Elements(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlElementName);

            Assert.AreEqual(10, urls.Count());
        }
        public void UrlSerialiser_Serialise_ProvidingChangeFrequencyFormatsCorrectly()
        {
            ChangeFrequency cf = ChangeFrequency.Hourly;

            var serialiser = new UrlSetSerialiser();

            var url = new Url("123");

            url.ChangeFrequency = cf;

            var xUrl = serialiser.serialiseUrl(url);

            Assert.IsNotNull(xUrl);

            Assert.AreEqual(2, xUrl.Elements().Count());

            var xChange = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlChangeFrequencyElementName);

            Assert.IsNotNull(xChange);
            Assert.AreEqual("hourly", xChange.Value);
        }
        public void UrlSerialiser_Serialise_ProvidingLastModifiedDateWithTimeFormatsCorrectly()
        {
            DateTime dt = new DateTime(2015, 02, 27, 13, 12, 11, DateTimeKind.Utc);

            var serialiser = new UrlSetSerialiser();

            var url = new Url("123");

            url.LastModified = dt;

            var xUrl = serialiser.serialiseUrl(url);

            Assert.IsNotNull(xUrl);

            Assert.AreEqual(2, xUrl.Elements().Count());

            var xMod = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlModifiedElementName);

            Assert.IsNotNull(xMod);
            Assert.AreEqual("2015-02-27T13:12:11Z", xMod.Value);
        }
        public void UrlSerialiser_Serialise_ProvidingLastModifiedDateOnlyFormatsCorrectly()
        {
            DateTime dt = new DateTime(2015, 01, 25);

            var serialiser = new UrlSetSerialiser();

            var url = new Url("123");

            url.LastModified = dt;

            var xUrl = serialiser.serialiseUrl(url);

            Assert.IsNotNull(xUrl);

            Assert.AreEqual(2, xUrl.Elements().Count());

            var xMod = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlModifiedElementName);

            Assert.IsNotNull(xMod);
            Assert.AreEqual("2015-01-25", xMod.Value);
        }
        public void UrlSerialiser_Serialise_ProvidingPriorityFormatsCorrectly()
        {
            float priority = 0.7124f;

            var serialiser = new UrlSetSerialiser();

            var url = new Url("123");

            url.Priority = priority;

            var xUrl = serialiser.serialiseUrl(url);

            Assert.IsNotNull(xUrl);

            Assert.AreEqual(2, xUrl.Elements().Count());

            var xPriority = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlPriorityElementName);

            Assert.IsNotNull(xPriority);
            Assert.AreEqual("0.7", xPriority.Value);
        }
        public void UrlSetSerialiser_Serialise_SingleUrlGivesValidDocument()
        {
            var urlSet = new UrlSet();

            urlSet.Add(new Url("123"));

            var serialiser = new UrlSetSerialiser();

            XDocument result = serialiser.Serialise(urlSet);

            Assert.IsNotNull(result, "Serialise() should always return a valid XML document");

            var set  = result.Document.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlSetElementName);
            var urls = set.Elements(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlElementName);

            Assert.AreEqual(1, urls.Count());

            var loc = urls.First().Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlLocationElemenName);

            Assert.AreEqual("123", loc.Value);
        }
        public void UrlSetSerialiser_Serialise_OverallDocumentHasCorrectFormat()
        {
            var urlSet = new UrlSet();
            var url    = new Url("http://www.com/")
            {
                ChangeFrequency = ChangeFrequency.Daily
            };

            url.AlternateUrls.Add(new AlternateUrl()
            {
                Url = "http://www.com/en/", Language = "EN-GB"
            });
            urlSet.Add(url);

            var serialiser = new UrlSetSerialiser();

            var xDoc = serialiser.Serialise(urlSet);

            string s = xDoc.ToString(SaveOptions.OmitDuplicateNamespaces | SaveOptions.DisableFormatting);

            Assert.AreEqual("<urlset xmlns:xhtml=\"http://www.w3.org/1999/xhtml\" xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\"><url><loc>http://www.com/</loc><changefreq>daily</changefreq><xhtml:link rel=\"alternate\" hreflang=\"EN-GB\" href=\"http://www.com/en/\" /></url></urlset>", s);
        }
        public void UrlSerialiser_Serialise_AlternateURLsFormatCorrectly()
        {
            var serialiser = new UrlSetSerialiser();

            var url = new Url("123");

            url.AlternateUrls.Add(new AlternateUrl()
            {
                Language = "lng", Url = "url"
            });

            var xUrl = serialiser.serialiseUrl(url);

            Assert.IsNotNull(xUrl);

            var xLinks = xUrl.Elements(UrlSetSerialiser.XhtmlNamespace + "link");

            Assert.AreEqual(1, xLinks.Count());

            var xLink = xLinks.First();

            Assert.AreEqual("lng", xLink.Attribute("hreflang").Value);
            Assert.AreEqual("url", xLink.Attribute("href").Value);
        }
        public void UrlSerialiser_Serialise_NullUrlThrows()
        {
            var serialiser = new UrlSetSerialiser();

            serialiser.serialiseUrl(null);
        }
        public void UrlSetSerialiser_Serialise_ThrowsWithNullSource()
        {
            var serialiser = new UrlSetSerialiser();

            serialiser.Serialise(null);
        }
Example #15
0
        public void AltUrlSerialiser_Serialise_NullAlternativeThrows()
        {
            var serialiser = new UrlSetSerialiser();

            serialiser.serialiseAlternate(null);
        }