Example #1
0
        public void TokenImageUrlTest()
        {
            const string FileName = @"tokenimageurl.css";
            var          fileInfo = new FileInfo(Path.Combine(ActualDirectory, FileName));

            var styleSheetNode = CssParser.Parse(fileInfo);

            Assert.IsNotNull(styleSheetNode);
            var visitor = new ImageAssemblyScanVisitor(fileInfo.FullName, null);

            styleSheetNode.Accept(visitor);
            var imageReferencesToAssemble = visitor.DefaultImageAssemblyScanOutput.ImageReferencesToAssemble;

            Assert.IsNotNull(imageReferencesToAssemble);
            Assert.AreEqual(0, imageReferencesToAssemble.Count);
        }
Example #2
0
        public void SpritingCandidatesTest()
        {
            const string FileName = @"spritingcandidates.css";
            var          fileInfo = new FileInfo(Path.Combine(ActualDirectory, FileName));

            var styleSheetNode = CssParser.Parse(fileInfo);

            Assert.IsNotNull(styleSheetNode);

            var visitor = new ImageAssemblyScanVisitor(fileInfo.FullName, null);

            styleSheetNode = styleSheetNode.Accept(visitor) as StyleSheetNode;
            Assert.IsNotNull(styleSheetNode);

            Trace.WriteLine(visitor.ImageAssemblyAnalysisLog.ToString());
            var imageReferencesToAssemble = visitor.DefaultImageAssemblyScanOutput.ImageReferencesToAssemble;

            Assert.IsNotNull(imageReferencesToAssemble);
            Assert.IsTrue(imageReferencesToAssemble.Count == 95);
        }
        /// <summary>Scans the css for the image path references</summary>
        /// <param name="stylesheetNode">The stylesheet node</param>
        /// <param name="threadContext">The thread Context.</param>
        /// <returns>The modified AST node if modified otherwise the original node</returns>
        private ImageAssemblyScanVisitor ExecuteImageAssemblyScan(AstNode stylesheetNode, IWebGreaseContext threadContext)
        {
            var imageAssemblyScanVisitor = new ImageAssemblyScanVisitor(
                this.SourceFile,
                this.ImageAssembleReferencesToIgnore,
                this.IgnoreImagesWithNonDefaultBackgroundSize,
                this.OutputUnit,
                this.OutputUnitFactor,
                this.availableSourceImages,
                this.MissingImageUrl,
                true)
            {
                Context = threadContext
            };

            // Scan log visitor should and does not change the stylesheet, no need to use the result.
            stylesheetNode.Accept(imageAssemblyScanVisitor);

            // return the can log results.
            return(imageAssemblyScanVisitor);
        }
Example #4
0
        public void SpritingCandidatesWithIgnoreTest()
        {
            const string FileName = @"spritingcandidateswithignore.css";
            var          fileInfo = new FileInfo(Path.Combine(ActualDirectory, FileName));

            var styleSheetNode = CssParser.Parse(fileInfo);

            Assert.IsNotNull(styleSheetNode);

            var visitor = new ImageAssemblyScanVisitor(fileInfo.FullName, new[] { "/i/1.gif", "/i/2.gif" });

            styleSheetNode = styleSheetNode.Accept(visitor) as StyleSheetNode;
            Assert.IsNotNull(styleSheetNode);

            var imageReferencesToAssemble = visitor.DefaultImageAssemblyScanOutput.ImageReferencesToAssemble;

            Assert.IsNotNull(imageReferencesToAssemble);
            Assert.IsTrue(imageReferencesToAssemble.Count == 3);
            Assert.IsTrue(imageReferencesToAssemble[0].AbsoluteImagePath.Contains(@"\i\3.gif"));
            Assert.IsTrue(imageReferencesToAssemble[1].AbsoluteImagePath.Contains(@"\i\4.gif"));
            Assert.IsTrue(imageReferencesToAssemble[2].AbsoluteImagePath.Contains(@"\i\5.gif"));
        }