예제 #1
0
        public void Invalid_Image_SourceNotValidUri()
        {
            var ev = this.GetElementValidator_Image();
            var v  = new XCRI.Validation.ContentValidation.UrlValidator()
            {
                XPathSelector          = "@src",
                ExceptionMessage       = "Image sources must be URIs conforming to the URI scheme as specified by IETF RFC 3986.",
                FailedValidationStatus = XCRI.Validation.ContentValidation.ValidationStatus.Exception,
                ValidationGroup        = "Formatting",
                NamespaceManager       = ev.NamespaceManager,
                AllowRelative          = false
            };

            ev.Validators.Add(v);
            var vr = ev
                     .Validate(System.Xml.Linq.XDocument.Parse(Resources.IValidationService.Invalid.ElementValidation.Images.SourceNotValidUri).Root)
                     .Where(r => r.Message == v.ExceptionMessage);

            Assert.AreEqual <int>(1, vr.Count());
            ValidateResults
            (
                result: vr.ElementAt(0),
                expectedStatus: XCRI.Validation.ContentValidation.ValidationStatus.Exception,
                expectedInstances: 1,
                expectedFailedCount: 1,
                expectedSuccessfulCount: 0
            );
        }
예제 #2
0
        public void Invalid_TwoNotAUrl()
        {
            var xDoc = System.Xml.Linq.XDocument.Parse
                       (
                Resources.ContentValidation.UrlValidator.Invalid.TwoNotAUrl,
                System.Xml.Linq.LoadOptions.SetLineInfo
                       );

            XCRI.Validation.ContentValidation.UrlValidator v = new XCRI.Validation.ContentValidation.UrlValidator()
            {
                XPathSelector = "//url"
            };
            var vrc = v.Validate(xDoc.Root);

            Assert.AreEqual <int>(1, vrc.Count());
            var vr = vrc.ElementAt(0);

            Assert.IsNotNull(vr);
            Assert.AreEqual <XCRI.Validation.ContentValidation.ValidationStatus>
            (
                XCRI.Validation.ContentValidation.ValidationStatus.Exception,
                vr.Status
            );
            Assert.AreEqual <int>
            (
                2,
                vr.Count
            );
            Assert.AreEqual <int>
            (
                0,
                vr.SuccessCount
            );
            Assert.AreEqual <int>
            (
                2,
                vr.FailedCount
            );
            Assert.IsTrue(vr.Instances[0].LineNumber.HasValue);
            Assert.IsTrue(vr.Instances[0].LinePosition.HasValue);
            Assert.AreEqual <int>(vr.Instances[0].LineNumber.Value, 2);
            Assert.AreEqual <int>(vr.Instances[0].LinePosition.Value, 4);
            Assert.IsTrue(vr.Instances[1].LineNumber.HasValue);
            Assert.IsTrue(vr.Instances[1].LinePosition.HasValue);
            Assert.AreEqual <int>(vr.Instances[1].LineNumber.Value, 3);
            Assert.AreEqual <int>(vr.Instances[1].LinePosition.Value, 4);
        }
        public void Valid_SingleUrlWithNamespace()
        {
            var xDoc = System.Xml.Linq.XDocument.Parse
                       (
                Resources.ContentValidation.UrlValidator.Valid.SingleUrlWithNamespace,
                System.Xml.Linq.LoadOptions.SetLineInfo
                       );

            System.Xml.XmlNamespaceManager nsmgr = new System.Xml.XmlNamespaceManager(new System.Xml.NameTable());
            nsmgr.AddNamespace("mlo", "http://purl.org/net/mlo");
            XCRI.Validation.ContentValidation.UrlValidator v = new XCRI.Validation.ContentValidation.UrlValidator()
            {
                XPathSelector    = "//mlo:url",
                NamespaceManager = nsmgr
            };
            var vrc = v.Validate(xDoc.Root);

            Assert.AreEqual <int>(1, vrc.Count());
            var vr = vrc.ElementAt(0);

            Assert.IsNotNull(vr);
            Assert.AreEqual <XCRI.Validation.ContentValidation.ValidationStatus>
            (
                XCRI.Validation.ContentValidation.ValidationStatus.Passed,
                vr.Status
            );
            Assert.AreEqual <int>
            (
                1,
                vr.Count
            );
            Assert.AreEqual <int>
            (
                1,
                vr.SuccessCount
            );
            Assert.AreEqual <int>
            (
                0,
                vr.FailedCount
            );
            Assert.IsTrue(vr.Instances[0].LineNumber.HasValue);
            Assert.IsTrue(vr.Instances[0].LinePosition.HasValue);
            Assert.AreEqual <int>(vr.Instances[0].LineNumber.Value, 2);
            Assert.AreEqual <int>(vr.Instances[0].LinePosition.Value, 4);
        }
 public void Valid_RelativeUrl()
 {
     var xDoc = System.Xml.Linq.XDocument.Parse
         (
         Resources.ContentValidation.UrlValidator.Invalid.SingleRelativeUrl,
         System.Xml.Linq.LoadOptions.SetLineInfo
         );
     XCRI.Validation.ContentValidation.UrlValidator v = new XCRI.Validation.ContentValidation.UrlValidator()
     {
         XPathSelector = "//url"
     };
     v.AllowRelative = true;
     var vrc = v.Validate(xDoc.Root);
     Assert.AreEqual<int>(1, vrc.Count());
     var vr = vrc.ElementAt(0);
     Assert.IsNotNull(vr);
     Assert.AreEqual<XCRI.Validation.ContentValidation.ValidationStatus>
         (
         XCRI.Validation.ContentValidation.ValidationStatus.Passed,
         vr.Status
         );
     Assert.AreEqual<int>
         (
         1,
         vr.Count
         );
     Assert.AreEqual<int>
         (
         1,
         vr.SuccessCount
         );
     Assert.AreEqual<int>
         (
         0,
         vr.FailedCount
         );
     Assert.IsTrue(vr.Instances[0].LineNumber.HasValue);
     Assert.IsTrue(vr.Instances[0].LinePosition.HasValue);
     Assert.AreEqual<int>(vr.Instances[0].LineNumber.Value, 2);
     Assert.AreEqual<int>(vr.Instances[0].LinePosition.Value, 4);
 }
 public void Valid_SingleUrlWithNamespace()
 {
     var xDoc = System.Xml.Linq.XDocument.Parse
         (
         Resources.ContentValidation.UrlValidator.Valid.SingleUrlWithNamespace,
         System.Xml.Linq.LoadOptions.SetLineInfo
         );
     System.Xml.XmlNamespaceManager nsmgr = new System.Xml.XmlNamespaceManager(new System.Xml.NameTable());
     nsmgr.AddNamespace("mlo", "http://purl.org/net/mlo");
     XCRI.Validation.ContentValidation.UrlValidator v = new XCRI.Validation.ContentValidation.UrlValidator()
     {
         XPathSelector = "//mlo:url",
         NamespaceManager = nsmgr
     };
     var vrc = v.Validate(xDoc.Root);
     Assert.AreEqual<int>(1, vrc.Count());
     var vr = vrc.ElementAt(0);
     Assert.IsNotNull(vr);
     Assert.AreEqual<XCRI.Validation.ContentValidation.ValidationStatus>
         (
         XCRI.Validation.ContentValidation.ValidationStatus.Passed,
         vr.Status
         );
     Assert.AreEqual<int>
         (
         1,
         vr.Count
         );
     Assert.AreEqual<int>
         (
         1,
         vr.SuccessCount
         );
     Assert.AreEqual<int>
         (
         0,
         vr.FailedCount
         );
     Assert.IsTrue(vr.Instances[0].LineNumber.HasValue);
     Assert.IsTrue(vr.Instances[0].LinePosition.HasValue);
     Assert.AreEqual<int>(vr.Instances[0].LineNumber.Value, 2);
     Assert.AreEqual<int>(vr.Instances[0].LinePosition.Value, 4);
 }