Exemple #1
0
        public void ValidPatterns()
        {
            var robots    = LoadResource("RobotsPage/RobotsPage-Example.txt");
            var tokenizer = new RobotsPageTokenizer();
            var tokens    = tokenizer.Tokenize(robots);

            var validator = new RobotsPageTokenPatternValidator();
            var result    = validator.Validate(tokens);

            Assert.IsTrue(result.IsValid);
        }
        public void FieldTokenization()
        {
            var tokenizer = new RobotsPageTokenizer();
            var tokens    = tokenizer.Tokenize(LoadResource("RobotsPage/RobotsPage-Example.txt"));

            var fieldTokens = tokens.Where(t => t.TokenType == TokenType.Field);

            Assert.AreEqual(5, fieldTokens.Count());
            Assert.AreEqual(2, fieldTokens.Count(t => t.Value == "googlebot"));
            Assert.AreEqual(1, fieldTokens.Count(t => t.Value == "otherbot"));
            Assert.AreEqual(1, fieldTokens.Count(t => t.Value == "somebot"));
            Assert.AreEqual(1, fieldTokens.Count(t => t.Value == "unavailable_after"));
        }
        public void ValueTokenization()
        {
            var tokenizer = new RobotsPageTokenizer();
            var tokens    = tokenizer.Tokenize(LoadResource("RobotsPage/RobotsPage-Example.txt"));

            var valueTokens = tokens.Where(t => t.TokenType == TokenType.Value);

            Assert.AreEqual(7, valueTokens.Count());
            Assert.AreEqual(2, valueTokens.Count(t => t.Value == "nofollow"));
            Assert.AreEqual(1, valueTokens.Count(t => t.Value == "noindex"));
            Assert.AreEqual(1, valueTokens.Count(t => t.Value == "none"));
            Assert.AreEqual(1, valueTokens.Count(t => t.Value == "notranslate"));
            Assert.AreEqual(1, valueTokens.Count(t => t.Value == "noarchive"));
            Assert.AreEqual(1, valueTokens.Count(t => t.Value == "25 Jun 2010 15:00:00 PST"));
        }
Exemple #4
0
        public void MalformedFieldPatterns()
        {
            var robots    = LoadResource("RobotsPage/InvalidField-Example.txt");
            var tokenizer = new RobotsPageTokenizer();
            var tokens    = tokenizer.Tokenize(robots);

            var validator = new RobotsPageTokenPatternValidator();
            var result    = validator.Validate(tokens);

            Assert.IsFalse(result.IsValid);

            var firstError = result.Errors.First();

            Assert.AreEqual(TokenType.NewLine, firstError.Expected.ElementAt(0));
            Assert.AreEqual(1, firstError.Expected.Count());
            Assert.AreEqual(TokenType.NotDefined, firstError.Actual.ElementAt(0));
            Assert.AreEqual(1, firstError.Actual.Count());
            Assert.AreEqual(1, result.Errors.Count());
        }