public void AbsolutePath_IsNotProcessed()
        {
            var reader = GetReader("body { background: url(http://domain.com/a/url.png); }");
            var asset = new CssAsset(_context, _settings) { Path = "", Reader = reader };

            var processer = new CssRelativePathProcessor(_urlManager.Object);

            processer.Process(new[] { asset });

            _urlManager.Verify(manager => manager.GetAbsoluteUrl(It.IsAny<string>(), It.IsAny<string>()), Times.Never());
            Assert.That(asset.Reader.Content, Is.Not.ContainsSubstring(_fakeAbsoluteUrlPrefix));
        }
        public void IgnoredProcessing_DoesNotProcess()
        {
            var reader = GetReader("body { background: url(a/url.png); }");
            var asset = new CssAsset(_context, _settings) { Path = "", IgnoreProcessing = true, Reader = reader };

            var processer = new CssRelativePathProcessor(_urlManager.Object);

            var results = processer.Process(new[] { asset });

            _urlManager.Verify(manager => manager.GetAbsoluteUrl(It.IsAny<string>(), It.IsAny<string>()), Times.Never());
            Assert.That(ReferenceEquals(results.Single().Reader, reader));
            Assert.That(asset.Reader.Content, Is.Not.ContainsSubstring(_fakeAbsoluteUrlPrefix));
        }
        public void MultiplePaths_AreProcessed()
        {
            var reader = GetReader("body { background: url(a/url.png); background: url(b/url.png); }");
            var asset = new CssAsset(_context, _settings) { Path = "", Reader = reader };

            var processer = new CssRelativePathProcessor(_urlManager.Object);

            processer.Process(new[] { asset });

            _urlManager.Verify(manager => manager.GetAbsoluteUrl(It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2));
            Assert.That(asset.Reader.Content, Contains.Substring(_fakeAbsoluteUrlPrefix));
        }
        public void ProcessedWithSingleQuotes_KeepQuotes()
        {
            var reader = GetReader("body { background: url('a/url.png'); }");
            var asset = new CssAsset(_context, _settings) { Path = "", Reader = reader };

            var processer = new CssRelativePathProcessor(_urlManager.Object);

            processer.Process(new[] { asset });

            _urlManager.Verify(manager => manager.GetAbsoluteUrl(It.IsAny<string>(), It.IsAny<string>()), Times.Once());
            Assert.That(asset.Reader.Content, Contains.Substring("url('"));
            Assert.That(asset.Reader.Content, Contains.Substring("')"));
        }