package com.github.sommeri.less4j.commandline;
import org.junit.Rule;
import org.junit.Test;
import com.github.sommeri.less4j.utils.DeleteFilesRule;
public class SingleModeTest extends CommandLineTest {
@Rule
public DeleteFilesRule cleaner = new DeleteFilesRule();
@Test
public void oneInputFile() {
String lessFile = inputDir+"one.less";
CommandLine.main(new String[] {lessFile});
assertSysout(correctCss("one"));
assertNoErrors();
}
@Test
public void twoInputFiles() {
String lessFile = inputDir+"one.less";
String cssFile = inputDir+"oneNew.css";
String mapFile = inputDir+"oneNew.css.map";
cleaner.ensureRemoval(cssFile);
cleaner.ensureRemoval(mapFile);
CommandLine.main(new String[] {lessFile, cssFile});
fileUtils.assertFileContent(cssFile, correctCss("one"));
fileUtils.assertFileNotExists(mapFile);
assertNoErrors();
}
@Test
public void generateSourceMap() {
String lessFile = inputDir+"one.less";
String mapdataFile = inputDir+"one.mapdata";
String cssFile = inputDir+"oneNew.css";
String mapFile = inputDir+"oneNew.css.map";
cleaner.ensureRemoval(cssFile);
cleaner.ensureRemoval(mapFile);
CommandLine.main(new String[] {lessFile, cssFile, "-sm"});
fileUtils.assertFileContent(cssFile, correctCssWithSourceMap("one", "oneNew.css.map"));
assertNoErrors();
validateSourceMap(mapdataFile, cssFile, mapFile);
}
@Test
public void inputFileDoesNotExists1() {
String lessFile = inputDir+"doesNotExists.less";
CommandLine.main(new String[] {lessFile});
assertError(FILE_DOES_NOT_EXISTS);
}
@Test
public void inputFileDoesNotExists2() {
String lessFile = inputDir+"doesNotExists.less";
String cssFile = inputDir+"doesNotExists.css";
CommandLine.main(new String[] {lessFile, cssFile});
assertError(FILE_DOES_NOT_EXISTS);
}
@Test
public void fileWithErrors() {
String lessFile = inputDir+"errors.less";
String cssFile = inputDir+"errors.css";
cleaner.ensureRemoval(cssFile);
CommandLine.main(new String[] {lessFile});
assertSysout(incorrectCss());
assertErrorsAsInFile(inputDir+"errors.err");
}
@Test
public void fileWithWarnings() {
String lessFile = inputDir+"warnings.less";
String cssFile = inputDir+"warnings.css";
cleaner.ensureRemoval(cssFile);
CommandLine.main(new String[] {lessFile});
assertSysout(warningsCss());
assertErrorsAsInFile(inputDir+"warnings.err");
}
@Test
public void fileWithErrorsAndWarnings() {
String lessFile = inputDir+"errorsandwarnings.less";
String cssFile = inputDir+"errorsandwarnings.css";
cleaner.ensureRemoval(cssFile);
CommandLine.main(new String[] {lessFile});
assertSysout(incorrectCss());
assertErrorsAsInFile(inputDir+"errorsandwarnings.err");
}
@Test
public void partialOutputWithErrorsAndWarnings() {
String lessFile = inputDir+"errorsandwarnings.less";
String cssFile = inputDir+"errorsandwarnings.css";
String expectedCssFile = inputDir+"errorsandwarnings.expcss";
cleaner.ensureRemoval(cssFile);
CommandLine.main(new String[] {"-pi", lessFile});
assertSysoutAsInFile(expectedCssFile);
assertErrorsAsInFile(inputDir+"errorsandwarnings.err");
}
@Test
public void compressCss() {
String lessFile = inputDir+"one.less";
String cssFile = inputDir+"oneNew.css";
cleaner.ensureRemoval(cssFile);
CommandLine.main(new String[] {lessFile, cssFile, "-x"});
fileUtils.assertFileContent(cssFile, correctCompressedCss("one"));
assertNoErrors();
}
}