static List<String> parseAllSelectors(final Element element) { final List<Element> elements = getElementsTree(element); final List<String> result = new LinkedList<>(); for (final Element candidate : elements) { Collection<String> selectors = parseElementSelectors(candidate); if (result.isEmpty()) { result.addAll(selectors); } else { final List<String> parentSelectors = result.stream().collect(Collectors.toList()); for (String selector : selectors) { for (String parentSelector : parentSelectors) { result.add(selector + " " + parentSelector); } } } } return result; }
@Test public void testParseElementSelectorsForParent() { Collection<String> selectors = SVGStyleTranslator.parseElementSelectors(parent); assertNotNull(selectors); assertEquals(3, selectors.size()); assertTrue(selectors.contains("#" + ID_PARENT)); assertTrue(selectors.contains(".cp1")); assertTrue(selectors.contains(".cp2")); }
@Test public void testParseElementSelectorsForElement() { Collection<String> selectors = SVGStyleTranslator.parseElementSelectors(element); assertNotNull(selectors); assertEquals(3, selectors.size()); assertTrue(selectors.contains("#" + ID_ELEMENT)); assertTrue(selectors.contains(".ce1")); assertTrue(selectors.contains(".ce2")); }
@Test public void testParseElementSelectorsForRoot() { Collection<String> selectors = SVGStyleTranslator.parseElementSelectors(root); assertNotNull(selectors); assertEquals(3, selectors.size()); assertTrue(selectors.contains("#" + ID_ROOT)); assertTrue(selectors.contains(".cr1")); assertTrue(selectors.contains(".cr2")); }