public void GetCompletionAt_AtAttributeEdge_BoolAttribute_ReturnsCompletionsWithout() { // Arrange var service = new TagHelperCompletionProvider(RazorTagHelperCompletionService, HtmlFactsService, TagHelperFactsService); var codeDocument = CreateCodeDocument($"@addTagHelper *, TestAssembly{Environment.NewLine}<test2 />", isRazorFile: false, DefaultTagHelpers); var sourceSpan = new SourceSpan(36 + Environment.NewLine.Length, 0); var context = new RazorCompletionContext(codeDocument.GetSyntaxTree(), codeDocument.GetTagHelperContext()); // Act var completions = service.GetCompletionItems(context, sourceSpan); // Assert Assert.Collection( completions, completion => { Assert.Equal("bool-val", completion.InsertText); Assert.Equal(TagHelperCompletionProvider.MinimizedAttributeCommitCharacters, completion.CommitCharacters); Assert.Equal(CompletionSortTextHelper.HighSortPriority, completion.SortText); }, completion => { Assert.Equal("int-val", completion.InsertText); Assert.Equal(TagHelperCompletionProvider.AttributeCommitCharacters, completion.CommitCharacters); Assert.Equal(CompletionSortTextHelper.HighSortPriority, completion.SortText); }); }
public void GetCompletionAt_AtAttributeEdge_IndexerAttribute_ReturnsCompletions() { // Arrange var tagHelper = TagHelperDescriptorBuilder.Create("TestTagHelper", "TestAssembly"); tagHelper.TagMatchingRule(rule => rule.TagName = "test"); tagHelper.SetTypeName("TestTagHelper"); tagHelper.BindAttribute(attribute => { attribute.Name = "int-val"; attribute.SetPropertyName("IntVal"); attribute.TypeName = "System.Collections.Generic.IDictionary<System.String, System.Int32>"; attribute.AsDictionary("int-val-", typeof(int).FullName); }); var service = new TagHelperCompletionProvider(RazorTagHelperCompletionService, HtmlFactsService, TagHelperFactsService); var codeDocument = CreateCodeDocument($"@addTagHelper *, TestAssembly{Environment.NewLine}<test />", tagHelper.Build()); var sourceSpan = new SourceSpan(35 + Environment.NewLine.Length, 0); // Act var completions = service.GetCompletionItems(codeDocument.GetSyntaxTree(), codeDocument.GetTagHelperContext(), sourceSpan); // Assert Assert.Collection( completions, completion => { Assert.Equal("int-val", completion.InsertText); Assert.Equal(TagHelperCompletionProvider.AttributeCommitCharacters, completion.CommitCharacters); }, completion => { Assert.Equal("int-val-", completion.InsertText); Assert.Empty(completion.CommitCharacters); }); }
public void GetCompletionAt_InBody_ParentRequiring_ReturnsCompletions() { // Arrange var service = new TagHelperCompletionProvider(RazorTagHelperCompletionService, HtmlFactsService, TagHelperFactsService); var codeDocument = CreateCodeDocument($"@addTagHelper *, TestAssembly{Environment.NewLine}<test1><</test1>", isRazorFile: false, DefaultTagHelpers); var sourceSpan = new SourceSpan(37 + Environment.NewLine.Length, 0); var context = new RazorCompletionContext(codeDocument.GetSyntaxTree(), codeDocument.GetTagHelperContext()); // Act var completions = service.GetCompletionItems(context, sourceSpan); // Assert Assert.Collection( completions, completion => { Assert.Equal("test1", completion.InsertText); }, completion => { Assert.Equal("SomeChild", completion.InsertText); }, completion => { Assert.Equal("test2", completion.InsertText); }); }
public void GetCompletionAt_HtmlAttributeValue_DoesNotReturnCompletions() { // Arrange var service = new TagHelperCompletionProvider(RazorTagHelperCompletionService, HtmlFactsService, TagHelperFactsService); var codeDocument = CreateCodeDocument($"@addTagHelper *, TestAssembly{Environment.NewLine}<test2 class='' />", DefaultTagHelpers); var sourceSpan = new SourceSpan(43 + Environment.NewLine.Length, 0); // Act var completions = service.GetCompletionItems(codeDocument.GetSyntaxTree(), codeDocument.GetTagHelperContext(), sourceSpan); // Assert Assert.Empty(completions); }
public void GetCompletionsAt_MalformedAttributeName_ReturnsCompletions() { // Arrange var service = new TagHelperCompletionProvider(RazorTagHelperCompletionService, HtmlFactsService, TagHelperFactsService); var codeDocument = CreateCodeDocument($"@addTagHelper *, TestAssembly{Environment.NewLine}<test2 int->", DefaultTagHelpers); var sourceSpan = new SourceSpan(38 + Environment.NewLine.Length, 0); // Act var completions = service.GetCompletionItems(codeDocument.GetSyntaxTree(), codeDocument.GetTagHelperContext(), sourceSpan); // Assert AssertBoolIntCompletions(completions); }
public void GetCompletionAt_InTagHelperAttribute_ReturnsCompletions() { // Arrange var service = new TagHelperCompletionProvider(RazorTagHelperCompletionService, HtmlFactsService, TagHelperFactsService); var codeDocument = CreateCodeDocument($"@addTagHelper *, TestAssembly{Environment.NewLine}<test2 int-val='123' />", isRazorFile: false, DefaultTagHelpers); var sourceSpan = new SourceSpan(38 + Environment.NewLine.Length, 0); var context = new RazorCompletionContext(codeDocument.GetSyntaxTree(), codeDocument.GetTagHelperContext()); // Act var completions = service.GetCompletionItems(context, sourceSpan); // Assert Assert.Empty(completions); }
public void GetCompletionAt_AtTagHelperElementNameEdge_ReturnsNoCompletions() { // Arrange var service = new TagHelperCompletionProvider(RazorTagHelperCompletionService, HtmlFactsService, TagHelperFactsService); var codeDocument = CreateCodeDocument($"@addTagHelper *, TestAssembly{Environment.NewLine}<test1 />", DefaultTagHelpers); var sourceSpan = new SourceSpan(35 + Environment.NewLine.Length, 0); var context = new RazorCompletionContext(codeDocument.GetSyntaxTree(), codeDocument.GetTagHelperContext()); // Act var completions = service.GetCompletionItems(context, sourceSpan); // Assert Assert.Empty(completions); }
public void GetCompletionsAt_AttributePrefix_ReturnsCompletions() { // Arrange var service = new TagHelperCompletionProvider(RazorTagHelperCompletionService, HtmlFactsService, TagHelperFactsService); var txt = $"@addTagHelper *, TestAssembly{Environment.NewLine}<test2 class=''>"; var codeDocument = CreateCodeDocument(txt, isRazorFile: false, DefaultTagHelpers); var sourceSpan = new SourceSpan(38 + Environment.NewLine.Length, 0); var context = new RazorCompletionContext(codeDocument.GetSyntaxTree(), codeDocument.GetTagHelperContext()); // Act var completions = service.GetCompletionItems(context, sourceSpan); // Assert AssertBoolIntCompletions(completions); }
public void GetCompletionAt_AtEmptyTagName_ReturnsCompletions() { // Arrange var service = new TagHelperCompletionProvider(RazorTagHelperCompletionService, HtmlFactsService, TagHelperFactsService); var codeDocument = CreateCodeDocument($"@addTagHelper *, TestAssembly{Environment.NewLine}<", DefaultTagHelpers); var sourceSpan = new SourceSpan(30 + Environment.NewLine.Length, 0); // Act var completions = service.GetCompletionItems(codeDocument.GetSyntaxTree(), codeDocument.GetTagHelperContext(), sourceSpan); // Assert Assert.Collection( completions, completion => Assert.Equal("test1", completion.InsertText), completion => Assert.Equal("test2", completion.InsertText)); }
public void GetCompletionAt_KnownHtmlElement_ReturnsCompletions_DefaultPriority() { // Arrange var service = new TagHelperCompletionProvider(RazorTagHelperCompletionService, HtmlFactsService, TagHelperFactsService); var codeDocument = CreateCodeDocument($"@addTagHelper *, TestAssembly{Environment.NewLine}<title mutator />", isRazorFile: false, DefaultTagHelpers); var sourceSpan = new SourceSpan(36 + Environment.NewLine.Length, 0); var context = new RazorCompletionContext(codeDocument.GetSyntaxTree(), codeDocument.GetTagHelperContext()); // Act var completions = service.GetCompletionItems(context, sourceSpan); // Assert Assert.Collection( completions, completion => { Assert.Equal("Extra", completion.InsertText); Assert.Equal(TagHelperCompletionProvider.MinimizedAttributeCommitCharacters, completion.CommitCharacters); Assert.Equal("Extra", completion.SortText); }); }