Ejemplo n.º 1
0
        public void ShouldParseAnAttributeWhenCallingParseAndAttributesFollowTheTag()
        {
            var tokens = new Mock <TokenLine>((IEnumerable <StringToken>) new[]
            {
                new StringToken(TokenType.Word, 1, 1, 1, "hello"),
                new StringToken(JadeTokenType.OpenParenth, 1, 1, 1, "hello"),
                new StringToken(TokenType.Word, 1, 1, 1, "hello"),
                new StringToken(JadeTokenType.Equals, 1, 1, 1, "hello"),
                new StringToken(TokenType.QuotedString, 1, 1, 1, "hello"),
                new StringToken(JadeTokenType.CloseParenth, 1, 1, 1, "hello")
            });

            tokens.CallBase = true;

            var tagParser = new TagParser();
            var tag       = tagParser.Parse(tokens.Object) as JTag;

            Assert.AreEqual(1, tag.Attributes.Count);
            Assert.IsInstanceOfType(tag.Attributes[0], typeof(JAttribute));

            var attribute = tag.Attributes[0] as JAttribute;

            Assert.AreEqual("hello", attribute.Name);
            Assert.AreEqual("hello", attribute.Value);
        }
Ejemplo n.º 2
0
        public void TestingPattern()
        {
            var watch = new Stopwatch();

            watch.Start();


            var    data   = new HtmlTestData();
            string source = data.HTML2;

            TagParser = new TagParser(source);

            string result = "";


            TagParser.DoElement = stuff => { };

            TagParser.DoTag = stuff => { };

            TagParser.DoText = stuff => { };

            TagParser.Parse();

            watch.Stop();


            ReportDetail(TagParser.Stuff.Text.ToString());

            ReportDetail(result);
            ReportDetail("Elapsed: " + watch.Elapsed);
        }
Ejemplo n.º 3
0
        public void ShouldThrow_WhenCurrentCharIsIncorrect()
        {
            //Move cursor on char 't' after the /.
            stream.Next();
            TagParser parser = new TagParser(stream);

            Assert.Catch <InvalidOperationException>(() => parser.Parse());
        }
Ejemplo n.º 4
0
        public void ReadsCorrectValue()
        {
            var parser = new TagParser();
            var tag    = parser.Parse("GENRE=this");

            Assert.Equal("GENRE", tag.TagName);
            Assert.Equal("this", tag.Value);
        }
Ejemplo n.º 5
0
        public void AcceptsEmptyValue()
        {
            var parser = new TagParser();
            var tag    = parser.Parse("GENRE=");

            Assert.Equal("GENRE", tag.TagName);
            Assert.Equal("", tag.Value);
        }
Ejemplo n.º 6
0
        public void GivenAStringRepresentingATagThenTagParseShouldReturnATagWithTheRightValue()
        {
            var referenceTag = new Tag(_tag, "tag");
            var parsedTag    = _tagParser.Parse(":tag");

            Assert.Equal(referenceTag, parsedTag);
        }
Ejemplo n.º 7
0
        public void TokenShouldHaveHaveStartIndexHasIndex()
        {
            TagParser  parser     = new TagParser(stream);
            TokenIndex startIndex = parser.Index;

            TagToken token = parser.Parse();

            Assert.AreEqual(startIndex.Index, token.Index.Index);
        }
Ejemplo n.º 8
0
        public void Create(string codeText, string value, string tagName, int index)
        {
            ParseStream parseStream = new ParseStream(codeText);
            TagParser   parser      = new TagParser(parseStream);
            TagToken    token       = parser.Parse();

            Assert.AreEqual(value, token.Value);
            Assert.AreEqual(tagName, token.TagName);
            Assert.AreEqual(index, parseStream.Index.Index);
        }
Ejemplo n.º 9
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(TextBox.Text))
            {
                return;
            }
            Node rootNode = TagParser.Parse(TextBox.Text);

            Tree.ItemsSource = ConverToViewModels(rootNode);
        }
Ejemplo n.º 10
0
        public void ShouldUseTheWordAsTheTagWhenCallingParseAndTheFirstTokenIsAWord()
        {
            var tokens = new Mock <TokenLine>((IEnumerable <StringToken>) new[] { new StringToken(TokenType.Word, 1, 1, 1, "hello") });

            tokens.CallBase = true;

            var tagParser = new TagParser();
            var tag       = tagParser.Parse(tokens.Object) as JTag;

            Assert.AreEqual("hello", tag.Tag);
        }
Ejemplo n.º 11
0
        public void ShouldReturnATagWhenCallingParse()
        {
            var tokens = new Mock <TokenLine>((IEnumerable <StringToken>) new[] { new StringToken(TokenType.Word, 1, 1, 1, "hello") });

            tokens.CallBase = true;

            var tagParser = new TagParser();
            var element   = tagParser.Parse(tokens.Object);

            Assert.IsNotNull(element);
            Assert.IsInstanceOfType(element, typeof(JTag));
        }
Ejemplo n.º 12
0
        public void Tag_parse_with_junk()
        {
            var tagString = "\0E20000165919004418405CBA;1518371341633;1518371343641;0;-35.4;66\r\n";
            var tag       = TagParser.Parse(tagString);

            tag.TagId.ShouldBe("E20000165919004418405CBA");
            tag.DiscoveryTime.ShouldBe(DateTimeOffset.Parse("2018-02-11T20:49:01.6330000+3"));
            tag.LastSeenTime.ShouldBe(DateTimeOffset.Parse("2018-02-11T20:49:03.6410000+3"));
            tag.Antenna.ShouldBe(0);
            tag.Rssi.ShouldBe(-35.4, 0.1);
            tag.ReadCount.ShouldBe(66);
        }
Ejemplo n.º 13
0
        public void TestingWebsiteUseCase()
        {
            var watch = new Stopwatch();

            watch.Start();


            var    data   = new HtmlTestData();
            string source = data.HTML2;

            TagParser = new TagParser(source);

            string defaultcss = "App_Themes/Design/WebSite.css";

            //Examples:
            //knownstyles.keys = styles of "default.css"
            //knownstyles.values = styles to replace
            IDictionary <string, string> knownstyles = new Dictionary <string, string>();

            knownstyles.Add("quelle", "source");

            //
            Action <string> Replace = (nameToReplace) => {
                string newNanme = null;
                if (knownstyles.TryGetValue(nameToReplace, out newNanme))
                {
                }
            };


            string result = "";

            var x = 0;

            TagParser.DoElement = stuff => {
                x = 0;
            };

            TagParser.DoTag = stuff => { };

            TagParser.DoText = stuff => { };

            TagParser.Parse();

            watch.Stop();


            //ReportDetail(TagParser.Stuff.Text.ToString());
            ReportDetail(x.ToString());
            ReportDetail(result);
            ReportDetail("Elapsed: " + watch.Elapsed);
        }
Ejemplo n.º 14
0
        public void ShouldNotParseAnyAttributeWhenCallingParseAndNoAttributesFollowTheTag()
        {
            var tokens = new Mock <TokenLine>((IEnumerable <StringToken>) new[]
            {
                new StringToken(TokenType.Word, 1, 1, 1, "hello")
            });

            tokens.CallBase = true;

            var tagParser = new TagParser();
            var tag       = tagParser.Parse(tokens.Object) as JTag;

            Assert.AreEqual(0, tag.Attributes.Count);
        }
Ejemplo n.º 15
0
        public void PreReleaseTag_DotSeparated()
        {
            VersioningConfig config = new();
            var version             = TagParser.Parse("v2.0.1.rc3", config);

            Assert.Equal("v2.0.1.rc3", version.BasedOnTag);
            Assert.Equal(2, version.Major);
            Assert.Equal(0, version.Minor);
            Assert.Equal(1, version.Patch);
            Assert.Equal(0, version.BuildNumber);
            Assert.Equal(0, version.Revision);
            Assert.Equal("rc3", version.PreReleaseTag);
            Assert.False(version.IsBasedOnDevMark);
        }
Ejemplo n.º 16
0
        public void MajorManorNonZeroPatch()
        {
            VersioningConfig config = new();
            var version             = TagParser.Parse("v2.0.1", config);

            Assert.Equal("v2.0.1", version.BasedOnTag);
            Assert.Equal(2, version.Major);
            Assert.Equal(0, version.Minor);
            Assert.Equal(1, version.Patch);
            Assert.Equal(0, version.BuildNumber);
            Assert.Equal(0, version.Revision);
            Assert.Null(version.PreReleaseTag);
            Assert.False(version.IsBasedOnDevMark);
        }
Ejemplo n.º 17
0
        public void PreReleaseTag_NoPatch()
        {
            VersioningConfig config = new();
            var version             = TagParser.Parse("v2.0-main", config);

            Assert.Equal("v2.0-main", version.BasedOnTag);
            Assert.Equal(2, version.Major);
            Assert.Equal(0, version.Minor);
            Assert.Equal(0, version.Patch);
            Assert.Equal(0, version.BuildNumber);
            Assert.Equal(0, version.Revision);
            Assert.Equal("main", version.PreReleaseTag);
            Assert.False(version.IsBasedOnDevMark);
        }
Ejemplo n.º 18
0
        public void MajorOnly_DevMark()
        {
            VersioningConfig config = new();
            var version             = TagParser.Parse("dev-2", config);

            Assert.Equal("dev-2", version.BasedOnTag);
            Assert.Equal(2, version.Major);
            Assert.Equal(0, version.Minor);
            Assert.Equal(0, version.Patch);
            Assert.Equal(0, version.BuildNumber);
            Assert.Equal(0, version.Revision);
            Assert.Null(version.PreReleaseTag);
            Assert.True(version.IsBasedOnDevMark);
        }
Ejemplo n.º 19
0
        public void SimpleTag_DefaultPrefixes()
        {
            VersioningConfig config = new();
            var version             = TagParser.Parse("v2.0", config);

            Assert.Equal("v2.0", version.BasedOnTag);
            Assert.Equal(2, version.Major);
            Assert.Equal(0, version.Minor);
            Assert.Equal(0, version.Patch);
            Assert.Equal(0, version.BuildNumber);
            Assert.Equal(0, version.Revision);
            Assert.Null(version.PreReleaseTag);
            Assert.False(version.IsBasedOnDevMark);
        }
Ejemplo n.º 20
0
        public void SimpleDevTag_CustomPrefixes()
        {
            VersioningConfig config = new() { ReleaseTagPrefix = "z", DevTagPrefix = "d-" };
            var version             = TagParser.Parse("d-2.0", config);

            Assert.Equal("d-2.0", version.BasedOnTag);
            Assert.Equal(2, version.Major);
            Assert.Equal(0, version.Minor);
            Assert.Equal(0, version.Patch);
            Assert.Equal(0, version.BuildNumber);
            Assert.Equal(0, version.Revision);
            Assert.Null(version.PreReleaseTag);
            Assert.True(version.IsBasedOnDevMark);
        }
Ejemplo n.º 21
0
        static void JpegHandler(String file, SearchLocation config, Archive archive)
        {
            DateTime createTime = File.GetCreationTime(file);

            using (FileStream stream = File.OpenRead(file))
                using (Bitmap image = (Bitmap)Bitmap.FromStream(stream))
                {
                    createTime = TagParser.Parse <ExifTags>(image.PropertyItems.ToList())
                                 .FileChangeDateTime
                                 .GetValueOrDefault(createTime);
                }

            Archive(file, createTime, archive);
        }
Ejemplo n.º 22
0
        public void PreReleaseTag_WithPatch_DevMark()
        {
            VersioningConfig config = new();
            var version             = TagParser.Parse("dev-2.0.1-main", config);

            Assert.Equal("dev-2.0.1-main", version.BasedOnTag);
            Assert.Equal(2, version.Major);
            Assert.Equal(0, version.Minor);
            Assert.Equal(1, version.Patch);
            Assert.Equal(0, version.BuildNumber);
            Assert.Equal(0, version.Revision);
            Assert.Equal("main", version.PreReleaseTag);
            Assert.True(version.IsBasedOnDevMark);
        }
Ejemplo n.º 23
0
        public void TestingShorten()
        {
            var watch = new Stopwatch();

            watch.Start();


            var    data   = new HtmlTestData();
            string source = data.HTML1;

            TagParser = new TagParser(source);


            string tagname  = "p";
            var    start    = false;
            int    count    = 0;
            int    countto  = 250;
            var    tagender = new TagEnder();

            string result = "";

            TagParser.DoElement = stuff => {
                if (stuff.State == State.Name && stuff.Element == tagname)
                {
                    start = true;
                }
            };

            TagParser.DoTag = stuff => { tagender.Set(stuff.Tag, stuff.State); };

            TagParser.DoText = stuff => {
                if (start)
                {
                    count += stuff.Position - stuff.Origin;
                    if (count > countto)
                    {
                        result = stuff.Text.ToString().Substring(0, stuff.Position);
                        TagParser.Stop();
                    }
                }
            };

            TagParser.Parse();

            watch.Stop();

            result = result + tagender.CloseTags();
            ReportDetail(result);
            ReportDetail("Elapsed: " + watch.Elapsed);
        }
Ejemplo n.º 24
0
        public void ShouldUseDivAsTheDefaultTagWhenCallingParseOnlyAnIdIsProvided()
        {
            var tokens = new Mock <TokenLine>((IEnumerable <StringToken>) new[]
            {
                new StringToken(JadeTokenType.Hash, 1, 1, 1, "hello"),
                new StringToken(TokenType.Word, 1, 1, 1, "hello")
            });

            tokens.CallBase = true;

            var tagParser = new TagParser();
            var tag       = tagParser.Parse(tokens.Object) as JTag;

            Assert.AreEqual("div", tag.Tag);
        }
Ejemplo n.º 25
0
        public void ShouldParseAnIdWhenCallingParseAndTheFirstTokenIsAHashFollowedByAWord()
        {
            var tokens = new Mock <TokenLine>((IEnumerable <StringToken>) new[]
            {
                new StringToken(JadeTokenType.Hash, 1, 1, 1, "hello"),
                new StringToken(TokenType.Word, 1, 1, 1, "hello")
            });

            tokens.CallBase = true;

            var tagParser = new TagParser();
            var tag       = tagParser.Parse(tokens.Object) as JTag;

            Assert.AreEqual("hello", tag.Id);
        }
Ejemplo n.º 26
0
        public void ShouldThrowAnUnexpectedTokenExceptionWhenCallingParseAndAnOpenParenthesesExistsAndACloseParenthesesDoesNot()
        {
            var tokens = new Mock <TokenLine>((IEnumerable <StringToken>) new[]
            {
                new StringToken(TokenType.Word, 1, 1, 1, "hello"),
                new StringToken(JadeTokenType.OpenParenth, 1, 1, 1, "hello"),
                new StringToken(JadeTokenType.NewLine, 1, 1, 1, "newline")
            });

            tokens.CallBase = true;

            var tagParser = new TagParser();

            tagParser.Parse(tokens.Object);
        }
Ejemplo n.º 27
0
        public void ShouldParseAClassNameWhenCallingParseAndTheFirstTokenIsADotFollowedByAWord()
        {
            var tokens = new Mock <TokenLine>((IEnumerable <StringToken>) new[]
            {
                new StringToken(JadeTokenType.Dot, 1, 1, 1, "hello"),
                new StringToken(TokenType.Word, 1, 1, 1, "hello")
            });

            tokens.CallBase = true;

            var tagParser = new TagParser();
            var tag       = tagParser.Parse(tokens.Object) as JTag;

            CollectionAssert.AreEqual(new[] { "hello" }, tag.Classes);
        }
Ejemplo n.º 28
0
        public void ShouldNotParseAnyAttributeWhenCallingParseAndParenthesesAreEmpty()
        {
            var tokens = new Mock <TokenLine>((IEnumerable <StringToken>) new[]
            {
                new StringToken(TokenType.Word, 1, 1, 1, "hello"),
                new StringToken(JadeTokenType.OpenParenth, 1, 1, 1, "hello"),
                new StringToken(JadeTokenType.CloseParenth, 1, 1, 1, "hello"),
            });

            tokens.CallBase = true;

            var tagParser = new TagParser();
            var tag       = tagParser.Parse(tokens.Object) as JTag;

            Assert.AreEqual(0, tag.Attributes.Count);
        }
Ejemplo n.º 29
0
        public void TestRemoveImages()
        {
            var watch = new Stopwatch();

            watch.Start();


            var    data   = new HtmlTestData();
            string source = data.MissingEndTags1;

            TagParser = new TagParser(source);

            string result = "";

            var doRemove = false;

            TagParser.DoElement = stuff => {
                result = stuff.Element;
                if (!doRemove)
                {
                    doRemove = stuff.State == State.Name && stuff.Element == "img";
                }
            };

            TagParser.DoTag = stuff => {
                result = stuff.Element;
                if (doRemove)
                {
                    TagParser.Remove(stuff.TagPosition, stuff.Position);
                    doRemove = false;
                }
            };

            TagParser.DoText = stuff => {
                result = stuff.Element;
            };

            TagParser.Parse();

            watch.Stop();


            ReportDetail(TagParser.Stuff.Text.ToString());

            ReportDetail(result);
            ReportDetail("Elapsed: " + watch.Elapsed);
        }
Ejemplo n.º 30
0
        public void ShouldThrowAnUnexpectedTokenExceptionWhenCallingParseAndAValueIsMissingFromAnAttribute()
        {
            var tokens = new Mock <TokenLine>((IEnumerable <StringToken>) new[]
            {
                new StringToken(TokenType.Word, 1, 1, 1, "hello"),
                new StringToken(JadeTokenType.OpenParenth, 1, 1, 1, "hello"),
                new StringToken(TokenType.Word, 1, 1, 1, "hello"),
                new StringToken(JadeTokenType.Equals, 1, 1, 1, "hello"),
                new StringToken(JadeTokenType.CloseParenth, 1, 1, 1, "parenth")
            });

            tokens.CallBase = true;

            var tagParser = new TagParser();

            tagParser.Parse(tokens.Object);
        }