public static void Register(RazorProjectEngineBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } InjectDirective.Register(builder); ModelDirective.Register(builder); NamespaceDirective.Register(builder); PageDirective.Register(builder); FunctionsDirective.Register(builder); InheritsDirective.Register(builder); SectionDirective.Register(builder); builder.Features.Add(new DefaultTagHelperDescriptorProvider()); builder.Features.Add(new ViewComponentTagHelperDescriptorProvider()); builder.AddTargetExtension(new ViewComponentTagHelperTargetExtension()); builder.AddTargetExtension(new TemplateTargetExtension() { TemplateTypeName = "global::Microsoft.AspNetCore.Mvc.Razor.HelperResult", }); builder.Features.Add(new ModelExpressionPass()); builder.Features.Add(new PagesPropertyInjectionPass()); builder.Features.Add(new ViewComponentTagHelperPass()); builder.Features.Add(new RazorPageDocumentClassifierPass()); builder.Features.Add(new MvcViewDocumentClassifierPass()); builder.Features.Add(new AssemblyAttributeInjectionPass()); builder.Features.Add(new InstrumentationPass()); builder.SetImportFeature(new MvcImportProjectFeature()); }
public void GetNamespace_IncompleteDirective_UsesEmptyNamespace() { // Arrange var source = "c:\\foo\\bar\\bleh.cshtml"; var imports = "c:\\foo\\baz\\bleh.cshtml"; var node = new DirectiveIntermediateNode() { Directive = NamespaceDirective.Directive, Source = new SourceSpan(imports, 0, 0, 0, 0), }; // Act var @namespace = NamespaceDirective.GetNamespace(source, node); // Assert Assert.Equal(string.Empty, @namespace); }
public void GetNamespace_ForRelatedFiles_ComputesNamespaceWithSuffix(string source, string imports, string expected) { // Arrange var node = new DirectiveIntermediateNode() { Directive = NamespaceDirective.Directive, Source = new SourceSpan(imports, 0, 0, 0, 0), }; node.Children.Add(new DirectiveTokenIntermediateNode() { Content = "Base" }); // Act var @namespace = NamespaceDirective.GetNamespace(source, node); // Assert Assert.Equal(expected, @namespace); }
public void GetNamespace_ForNonRelatedFiles_UsesNamespaceVerbatim(string source, string imports) { // Arrange var node = new DirectiveIntermediateNode() { Directive = NamespaceDirective.Directive, Source = new SourceSpan(imports, 0, 0, 0, 0), }; node.Children.Add(new DirectiveTokenIntermediateNode() { Content = "Base" }); // Act var @namespace = NamespaceDirective.GetNamespace(source, node); // Assert Assert.Equal("Base", @namespace); }
public void GetNamespace_EmptyDirective_UsesEmptyNamespace() { // Arrange var source = "c:\\foo\\bar\\bleh.cshtml"; var imports = "c:\\foo\\baz\\bleh.cshtml"; var node = new DirectiveIntermediateNode() { Directive = NamespaceDirective.Directive, Source = new SourceSpan(imports, 0, 0, 0, 0), }; node.Children.Add(new DirectiveTokenIntermediateNode() { Content = string.Empty }); // Act var @namespace = NamespaceDirective.GetNamespace(source, node); // Assert Assert.Equal(string.Empty, @namespace); }