public void EmptyOutputForEmptyContent() { // Given string input = string.Empty; TestFileProvider fileProvider = new TestFileProvider(); fileProvider.AddDirectory("/"); fileProvider.AddDirectory("/input"); fileProvider.AddDirectory("/input/assets"); fileProvider.AddFile("/input/assets/test.scss", input); TestFileSystem fileSystem = new TestFileSystem { FileProvider = fileProvider }; IExecutionContext context = new TestExecutionContext { FileSystem = fileSystem }; IDocument document = new TestDocument(input, new MetadataItems { { Keys.RelativeFilePath, new FilePath("assets/test.scss") } }); Sass sass = new Sass(); // When List <IDocument> results = sass.Execute(new[] { document }, context).ToList(); // Make sure to materialize the result list // Then Assert.That(results.Select(x => x.Content), Is.EqualTo(new[] { string.Empty })); Assert.That(results.Select(x => x.FilePath(Keys.RelativeFilePath).FullPath), Is.EqualTo(new[] { "assets/test.css" })); }
public void NestedImports() { // Given const string outerImport = @" $font-stack: Helvetica, sans-serif;"; const string innerImport = @" @import 'outer-import.scss'; $primary-color: #333;"; const string input = @" @import 'libs/_inner-import.scss'; body { font: 100% $font-stack; color: $primary-color; }"; const string output = "body { font: 100% Helvetica, sans-serif; color: #333; }\n"; TestFileProvider fileProvider = new TestFileProvider(); fileProvider.AddDirectory("/"); fileProvider.AddDirectory("/input"); fileProvider.AddDirectory("/input/assets"); fileProvider.AddDirectory("/input/assets/libs"); fileProvider.AddFile("/input/assets/test.scss", input); fileProvider.AddFile("/input/assets/libs/_outer-import.scss", outerImport); fileProvider.AddFile("/input/assets/libs/_inner-import.scss", innerImport); TestFileSystem fileSystem = new TestFileSystem { FileProvider = fileProvider }; IExecutionContext context = new TestExecutionContext { FileSystem = fileSystem }; IDocument document = new TestDocument(input, new MetadataItems { { Keys.RelativeFilePath, new FilePath("assets/test.scss") } }); Sass sass = new Sass().IncludeSourceComments(false).WithCompactOutputStyle(); // When List <IDocument> results = sass.Execute(new[] { document }, context).ToList(); // Make sure to materialize the result list // Then Assert.That(results.Select(x => x.Content), Is.EqualTo(new[] { output })); Assert.That(results.Select(x => x.FilePath(Keys.RelativeFilePath).FullPath), Is.EqualTo(new[] { "assets/test.css" })); }
private void btnSWatch_Click(object sender, RoutedEventArgs e) { if (sass == null) { sass = new Sass(); } setSass(true); Binding sassMainBinding = new Binding("Message"); sassMainBinding.Source = sass; txtSMain.SetBinding(TextBox.TextProperty, sassMainBinding); setSassEvents(); if (sass.Start()) { sassWatchStarted(); } }
public void ConvertingBadSassFails() { // Given const string input = @" $font-stack: Helvetica, sans-serif $primary-color: #333 body { font: 100% $font-stack; color: $primary-color; }"; TestFileProvider fileProvider = new TestFileProvider(); fileProvider.AddDirectory("/"); fileProvider.AddDirectory("/input"); fileProvider.AddDirectory("/input/assets"); fileProvider.AddFile("/input/assets/test.scss", input); TestFileSystem fileSystem = new TestFileSystem { FileProvider = fileProvider }; IExecutionContext context = new TestExecutionContext { FileSystem = fileSystem }; IDocument document = new TestDocument(input, new MetadataItems { { Keys.RelativeFilePath, new FilePath("assets/test.scss") } }); Sass sass = new Sass(); // When, Then Assert.Catch <AggregateException>(() => { sass.Execute(new[] { document }, context).ToList(); // Make sure to materialize the result list }); }
private void btnSWatch_Click(object sender, RoutedEventArgs e) { if (sass == null) sass = new Sass(); setSass(true); Binding sassMainBinding = new Binding("Message"); sassMainBinding.Source = sass; txtSMain.SetBinding(TextBox.TextProperty, sassMainBinding); setSassEvents(); if (sass.Start()) sassWatchStarted(); }