Example #1
0
        public void TryGetAttributeInfo_EmptyAttribute_ReturnsFalse()
        {
            // Arrange
            var node = GetNodeAt("<p    >", 3);

            // Act
            var result = DirectiveAttributeCompletionItemProviderBase.TryGetAttributeInfo(node, out _, out _, out _, out _, out _);

            // Assert
            Assert.False(result);
        }
Example #2
0
        public void TryGetAttributeInfo_NonAttribute_ReturnsFalse()
        {
            // Arrange
            var node = GetNodeAt("@DateTime.Now", 4);

            // Act
            var result = DirectiveAttributeCompletionItemProviderBase.TryGetAttributeInfo(node, out _, out _, out _, out _, out _);

            // Assert
            Assert.False(result);
        }
Example #3
0
        public void TryGetElementInfo_NoAttributes_ReturnsEmptyAttributeCollection()
        {
            // Arrange
            var node = GetNodeAt("<p>", 2);

            // Act
            var result = DirectiveAttributeCompletionItemProviderBase.TryGetElementInfo(node.Parent, out _, out var attributes);

            // Assert
            Assert.True(result);
            Assert.Empty(attributes);
        }
        public void TryGetAttributeInfo_PartialDirectiveAttribute_ReturnsTrue()
        {
            var node = GetNodeAt("<input type=\"text\" @bind />", 22);

            // Act
            var result = DirectiveAttributeCompletionItemProviderBase.TryGetAttributeInfo(node, out var name, out var nameLocation, out var parameterName, out var parameterNameLocation);

            // Assert
            Assert.True(result);
            Assert.Equal("@bind", name);
            Assert.Equal(new TextSpan(19, 5), nameLocation);
            Assert.Null(parameterName);
        }
Example #5
0
        public void TryGetElementInfo_SingleAttribute_ReturnsAttributeName()
        {
            // Arrange
            var node = GetNodeAt("<p class='hello @DateTime.Now'>", 2);

            // Act
            var result = DirectiveAttributeCompletionItemProviderBase.TryGetElementInfo(node.Parent, out _, out var attributes);

            // Assert
            Assert.True(result);
            var attributeName = Assert.Single(attributes);

            Assert.Equal("class", attributeName);
        }
        public void TryGetAttributeInfo_FullAttribute_ReturnsTrue()
        {
            // Arrange
            var node = GetNodeAt("<p foo=\"anything\">", 4);

            // Act
            var result = DirectiveAttributeCompletionItemProviderBase.TryGetAttributeInfo(node, out var name, out var nameLocation, out var parameterName, out var parameterNameLocation);

            // Assert
            Assert.True(result);
            Assert.Equal("foo", name);
            Assert.Equal(new TextSpan(3, 3), nameLocation);
            Assert.Null(parameterName);
        }
        public void TryGetAttributeInfo_PartialTransitionedAttribute_ReturnsTrue()
        {
            // Arrange
            var node = GetNodeAt("<p @>", 4);

            // Act
            var result = DirectiveAttributeCompletionItemProviderBase.TryGetAttributeInfo(node, out var name, out var nameLocation, out var parameterName, out var parameterNameLocation);

            // Assert
            Assert.True(result);
            Assert.Equal("@", name);
            Assert.Equal(new TextSpan(3, 1), nameLocation);
            Assert.Null(parameterName);
        }
Example #8
0
        public void IntersectsWithAttributeNameOrPrefix_OutsideOfNameAndPrefix_ReturnsFalse()
        {
            // Arrange

            // <p class=|""></p>
            var location              = new SourceSpan(9, 0);
            var prefixLocation        = new TextSpan(2, 1);
            var attributeNameLocation = new TextSpan(3, 5);

            // Act
            var result = DirectiveAttributeCompletionItemProviderBase.IntersectsWithAttributeNameOrPrefix(location, prefixLocation, attributeNameLocation);

            // Assert
            Assert.False(result);
        }
Example #9
0
        public void IntersectsWithAttributeNameOrPrefix_WithinName_ReturnsTrue()
        {
            // Arrange

            // <p cl|ass=""></p>
            var location              = new SourceSpan(5, 0);
            var prefixLocation        = new TextSpan(2, 1);
            var attributeNameLocation = new TextSpan(3, 5);

            // Act
            var result = DirectiveAttributeCompletionItemProviderBase.IntersectsWithAttributeNameOrPrefix(location, prefixLocation, attributeNameLocation);

            // Assert
            Assert.True(result);
        }
Example #10
0
        public void TryGetElementInfo_MixedAttributes_ReturnsStringifiedAttributesResult()
        {
            // Arrange
            var node = GetNodeAt(@"<input type=""text"" @bind:format=""MM/dd/yyyy"" something @bind=""@CurrentDate"" />
@code {
    public DateTime CurrentDate { get; set; } = DateTime.Now;
}", 2);

            // Act
            var result = DirectiveAttributeCompletionItemProviderBase.TryGetElementInfo(node.Parent, out _, out var attributes);

            // Assert
            Assert.True(result);
            Assert.Equal(new[] { "type", "@bind:format", "something", "@bind" }, attributes);
        }
Example #11
0
        public void TryGetElementInfo_TagHelperParent()
        {
            // Arrange
            var node = GetNodeAt(@"<input type=""text"" @bind=""@CurrentDate"" />
@code {
    public DateTime CurrentDate { get; set; } = DateTime.Now;
}", 2);

            // Act
            var result = DirectiveAttributeCompletionItemProviderBase.TryGetElementInfo(node.Parent, out var tagName, out var attributes);

            // Assert
            Assert.True(result);
            Assert.Equal("input", tagName);
            Assert.Equal(new[] { "type", "@bind" }, attributes);
        }
        public void TryGetAttributeInfo_DirectiveAttribute_ReturnsTrue()
        {
            var node = GetNodeAt(@"<input type=""text"" @bind=""@CurrentDate"" />
@code {
    public DateTime CurrentDate { get; set; } = DateTime.Now;
}", 22);

            // Act
            var result = DirectiveAttributeCompletionItemProviderBase.TryGetAttributeInfo(node, out var name, out var nameLocation, out var parameterName, out var parameterNameLocation);

            // Assert
            Assert.True(result);
            Assert.Equal("@bind", name);
            Assert.Equal(new TextSpan(19, 5), nameLocation);
            Assert.Null(parameterName);
        }