package ca.concordia.cssanalyser.fixturesutil; import java.util.ArrayList; import java.util.List; import ca.concordia.cssanalyser.cssmodel.StyleSheet; import ca.concordia.cssanalyser.cssmodel.declaration.Declaration; import ca.concordia.cssanalyser.cssmodel.selectors.Selector; import ca.concordia.cssanalyser.parser.CSSParser; import ca.concordia.cssanalyser.parser.CSSParserFactory; import ca.concordia.cssanalyser.parser.CSSParserFactory.CSSParserType; import ca.concordia.cssanalyser.parser.ParseException; public class FixturesUtil { private static final String RESOURCES_PATH = "src/test/resources/"; public static final String SELECTORS_TEST_FILE_PATH = RESOURCES_PATH + "css-source/selectors-test.css"; public static final String DECLARATIONS_TEST_FILE_PATH = RESOURCES_PATH + "css-source/declarations-test.css"; public static final String MEDIA_TEST_FILE_PATH = RESOURCES_PATH + "css-source/media-test.css"; public static final String IMPORT_INLINER_TEST_INPUT = RESOURCES_PATH + "less-source/import-inliner-test.less"; public static final String IMPORT_INLINER_TEST_EXPECTED = RESOURCES_PATH + "less-source/import-inliner-test-expected.less"; public static final String EMPIRICAL_STUDY_TEST_FILE_PATH = RESOURCES_PATH + "less-source/empirical-study-test.less"; public static StyleSheet getTestCSSFile(String path) { StyleSheet styleSheet = null; CSSParser cssParser = CSSParserFactory.getCSSParser(CSSParserType.LESS); try { styleSheet = cssParser.parseExternalCSS(path); } catch (ParseException e) { e.printStackTrace(); throw new RuntimeException("Error parsing " + path); } return styleSheet; } public static StyleSheet getStyleSheetFromString(String text) { StyleSheet styleSheet = null; CSSParser cssParser = CSSParserFactory.getCSSParser(CSSParserType.LESS); try { styleSheet = cssParser.parseCSSString(text); } catch (ParseException e) { e.printStackTrace(); throw new RuntimeException("Error parsing " + text); } return styleSheet; } public static List<Selector> getSelectorsList(StyleSheet styleSheet) { List<Selector> selectors = new ArrayList<>(); for (Selector selector : styleSheet.getAllSelectors()) selectors.add(selector); return selectors; } public static List<Declaration> getDeclarations(Selector selector) { List<Declaration> declarations = new ArrayList<>(); for (Declaration declaration : selector.getDeclarations()) { declarations.add(declaration); } return declarations; } }