public void ObtainDefaultSheet() { var service = new CssStylingService(); Assert.IsNotNull(service.Default); Assert.IsTrue((service as IStylingService).SupportsType(MimeTypeNames.Css)); var sheet = service.Default as ICssStyleSheet; Assert.IsNotNull(sheet); Assert.AreEqual(49, sheet.Rules.Length); }
/// <summary> /// Registers the default styling service with a new CSS style engine /// to retrieve, if no other styling service has been registered yet. /// </summary> /// <param name="configuration">The configuration to extend.</param> /// <param name="options">Optional options for the parser.</param> /// <returns>The new instance with the service.</returns> public static IConfiguration WithCss(this IConfiguration configuration, CssParserOptions options = default) { configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); var service = new CssStylingService(); if (!configuration.Has <ICssDefaultStyleSheetProvider>()) { configuration = configuration.With(new CssDefaultStyleSheetProvider()); } if (!configuration.Has <IFeatureValidatorFactory>()) { configuration = configuration.With(Factory.FeatureValidator); } if (!configuration.Has <IDocumentFunctionFactory>()) { configuration = configuration.With(Factory.DocumentFunction); } if (!configuration.Has <IPseudoElementFactory>()) { configuration = configuration.With(Factory.PseudoElement); } if (!configuration.Has <IDeclarationFactory>()) { configuration = configuration.With(Factory.Declaration); } if (!configuration.Has <ICssParser>()) { configuration = configuration.With <ICssParser>(context => new CssParser(options, context)); } return(configuration .WithOnly(Factory.Observer) .WithOnly <IStylingService>(service)); }
/// <summary> /// Registers the default styling service with a new CSS style engine /// to retrieve, if no other styling service has been registered yet. /// </summary> /// <param name="configuration">The configuration to extend.</param> /// <param name="options">Optional options for the parser.</param> /// <param name="setup">Optional setup for the style engine.</param> /// <returns>The new instance with the service.</returns> public static IConfiguration WithCss(this IConfiguration configuration, CssParserOptions options = default(CssParserOptions), Action <CssStylingService> setup = null) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var service = new CssStylingService(); setup?.Invoke(service); if (!configuration.Has <IFeatureValidatorFactory>()) { configuration = configuration.With(Factory.FeatureValidator); } if (!configuration.Has <IDocumentFunctionFactory>()) { configuration = configuration.With(Factory.DocumentFunction); } if (!configuration.Has <IPseudoElementFactory>()) { configuration = configuration.With(Factory.PseudoElement); } if (!configuration.Has <IDeclarationFactory>()) { configuration = configuration.With(Factory.Declaration); } if (!configuration.Has <ICssParser>()) { configuration = configuration.With <ICssParser>(context => new CssParser(options, context)); } return(configuration.WithOnly(Factory.Observer).With(service)); }