示例#1
0
        public virtual bool MatchTo(byte[] screenshot)
        {
            var blindRegions   = this.GetAllBlindRegions();
            var screenshotHash = ImageHelpers.ComputeHash(screenshot, blindRegions);

            return(screenshotHash == this.PatternScreenshot.Hash);
        }
        public bool Compare(BrowserPattern browserPattern, byte[] screenshot, out string resultMessage)
        {
            if (browserPattern == null)
            {
                throw new ArgumentNullException(nameof(browserPattern));
            }

            if (screenshot == null)
            {
                throw new ArgumentNullException(nameof(screenshot));
            }

            var blindRegions = browserPattern.GetAllBlindRegions();

            var screenshotHash = ImageHelpers.ComputeHash(screenshot, blindRegions);
            var areMatched     = screenshotHash == browserPattern.PatternScreenshot.Hash;

            resultMessage = areMatched ? "Hashes match" : "Hashes do not match";

            return(areMatched);
        }
示例#3
0
        public virtual BrowserPattern AddNewPattern(byte[] screenshot, string browserName, IList <BlindRegion> blindRegions = null)
        {
            var ownBlindRegions       = blindRegions ?? new List <BlindRegion>();
            var inheritedBlindRegions = this.Category.GetAllBlindRegionsForBrowser(browserName);
            var allBlindRegions       = inheritedBlindRegions.Concat(ownBlindRegions).ToList();
            var newPattern            = new BrowserPattern
            {
                BrowserName       = browserName,
                PatternScreenshot = new ScreenshotData
                {
                    Image = screenshot,
                    Hash  = ImageHelpers.ComputeHash(screenshot, allBlindRegions)
                },
                IsActive     = true,
                CreatedOn    = DateTime.Now,
                BlindRegions = ownBlindRegions,
                TestCase     = this
            };

            this.Patterns.Add(newPattern);
            return(newPattern);
        }
示例#4
0
 public virtual void UpdateTestCaseHash(IReadOnlyList <BlindRegion> blindRegions)
 {
     this.Hash = ImageHelpers.ComputeHash(this.Image, blindRegions);
 }