Esempio n. 1
0
        internal Utils.Results Process(string userAgentPattern, string devicePattern, Validation state)
        {
            _dataSet.ResetCache();
            var provider    = new Provider(_dataSet);
            var match       = provider.CreateMatch();
            var results     = new FiftyOne.UnitTests.Utils.Results();
            var random      = new Random(0);
            var httpHeaders = _dataSet.HttpHeaders.Where(i => i.Equals("User-Agent") == false).ToArray();

            // Loop through setting 2 user agent headers.
            var userAgentIterator = UserAgentGenerator.GetEnumerable(20000, userAgentPattern).GetEnumerator();
            var deviceIterator    = UserAgentGenerator.GetEnumerable(20000, devicePattern).GetEnumerator();

            while (userAgentIterator.MoveNext() &&
                   deviceIterator.MoveNext())
            {
                var headers = new NameValueCollection();
                headers.Add(httpHeaders[random.Next(httpHeaders.Length)], deviceIterator.Current);
                headers.Add("User-Agent", userAgentIterator.Current);
                provider.Match(headers, match);
                Assert.IsTrue(match.Signature == null, "Signature not equal null");
                Assert.IsTrue(match.Difference == 0, "Match difference not equal to zero");
                Assert.IsTrue(match.Method == MatchMethods.Exact, "Match method not equal to Exact");
                Validate(match, state);
                results.Methods[match.Method]++;
            }

            return(results);
        }
Esempio n. 2
0
        internal Utils.Results Process(string userAgentPattern, string devicePattern, Validation state)
        {
            var results     = new FiftyOne.UnitTests.Utils.Results();
            var random      = new Random(0);
            var httpHeaders = _wrapper.HttpHeaders.Where(i => i.Equals("User-Agent") == false).ToArray();

            // Loop through setting 2 user agent headers.
            var userAgentIterator = UserAgentGenerator.GetEnumerable(TEST_ITERATIONS, userAgentPattern).GetEnumerator();
            var deviceIterator    = UserAgentGenerator.GetEnumerable(TEST_ITERATIONS, devicePattern).GetEnumerator();

            while (userAgentIterator.MoveNext() &&
                   deviceIterator.MoveNext())
            {
                var headers = new NameValueCollection();
                switch (random.Next(3))
                {
                case 0:
                    // Capitialise HTTP headers.
                    headers.Add(httpHeaders[random.Next(httpHeaders.Length)].ToUpperInvariant(), deviceIterator.Current);
                    headers.Add("User-Agent".ToUpperInvariant(), userAgentIterator.Current);
                    break;

                case 1:
                    // Lower HTTP headers.
                    headers.Add(httpHeaders[random.Next(httpHeaders.Length)].ToLowerInvariant(), deviceIterator.Current);
                    headers.Add("User-Agent".ToLowerInvariant(), userAgentIterator.Current);
                    break;

                default:
                    // Use standard unaltered formats.
                    headers.Add(httpHeaders[random.Next(httpHeaders.Length)], deviceIterator.Current);
                    headers.Add("User-Agent", userAgentIterator.Current);
                    break;
                }

                using (var matchResult = _wrapper.Match(headers))
                {
                    Validate(headers, matchResult, state);
                }
            }

            return(results);
        }
Esempio n. 3
0
        internal Utils.Results Process(string userAgentPattern, string devicePattern, Validation state)
        {
            var results     = new FiftyOne.UnitTests.Utils.Results();
            var random      = new Random(0);
            var httpHeaders = _provider.HttpHeaders.Where(i => i.Equals("User-Agent") == false).ToArray();

            // Loop through setting 2 user agent headers.
            var userAgentIterator = UserAgentGenerator.GetEnumerable(20000, userAgentPattern).GetEnumerator();
            var deviceIterator    = UserAgentGenerator.GetEnumerable(20000, devicePattern).GetEnumerator();

            while (userAgentIterator.MoveNext() &&
                   deviceIterator.MoveNext())
            {
                var headers = new NameValueCollection();
                headers.Add(httpHeaders[random.Next(httpHeaders.Length)], deviceIterator.Current);
                headers.Add("User-Agent", userAgentIterator.Current);
                var indexes = _provider.GetDeviceIndexes(headers);
                Assert.IsTrue(indexes.Count > 0, "No indexes were found");
                Validate(indexes, state);
            }

            return(results);
        }