FrontendUtils { public static String getUnixRelativePath(Path source, Path target) { return getUnixPath(source.relativize(target)); } private  FrontendUtils(); static String getOsName(); static boolean isWindows(); static String streamToString(InputStream inputStream); static ProcessBuilder createProcessBuilder(List<String> command); static String getStatsContent(VaadinService service); static String getIndexHtmlContent(VaadinService service); static String getStatsHash(VaadinService service); static String getStatsAssetsByChunkName(VaadinService service); static String getProjectFrontendDir(
            DeploymentConfiguration configuration); static boolean isWebpackConfigFile(File file); static String getUnixRelativePath(Path source, Path target); static String getUnixPath(Path source); static FallbackChunk readFallbackChunk(JsonObject object); static FrontendVersion parseFrontendVersion(String versionString); static File getVaadinHomeDirectory(); static String commandToString(String baseDir, List<String> command); @SuppressWarnings("squid:S106") static void console(String format, Object message); static final String PROJECT_BASEDIR; static final String DEFAULT_NODE_DIR; static final String NODE_MODULES; static final String FRONTEND; static final String DEFAULT_FRONTEND_DIR; static final String WEBPACK_CONFIG; static final String WEBPACK_GENERATED; static final String TARGET; static final String FLOW_NPM_PACKAGE_NAME; static final String FORM_NPM_PACKAGE_NAME; static final String DEFAULT_FLOW_RESOURCES_FOLDER; @Deprecated
    static final String DEAULT_FLOW_RESOURCES_FOLDER; static final String DEFAULT_GENERATED_DIR; static final String IMPORTS_NAME; static final String IMPORTS_D_TS_NAME; static final String INDEX_HTML; static final String INDEX_TS; static final String INDEX_JS; static final String DEFAULT_CONNECT_JAVA_SOURCE_FOLDER; static final String DEFAULT_CONNECT_APPLICATION_PROPERTIES; static final String DEFAULT_CONNECT_OPENAPI_JSON_FILE; static final String DEFAULT_CONNECT_GENERATED_TS_DIR; static final String FALLBACK_IMPORTS_NAME; static final String PARAM_GENERATED_DIR; static final String PARAM_FRONTEND_DIR; static final String PARAM_IGNORE_VERSION_CHECKS; static final String WEBPACK_PREFIX_ALIAS; static final String TOKEN_FILE; static final String CHUNKS; static final String FALLBACK; static final String EXPORT_CHUNK; static final String CSS_IMPORTS; static final String JS_MODULES; static final String PARAM_TOKEN_FILE; static final String INSTALL_NODE_LOCALLY; static final String DISABLE_CHECK; static final String YELLOW; static final String RED; static final String GREEN; static final String BRIGHT_BLUE; }
@Test public void should_getUnixRelativePath_when_givenTwoPaths() { Path sourcePath = Mockito.mock(Path.class); Path relativePath = Mockito.mock(Path.class); Mockito.when(sourcePath.relativize(Mockito.any())) .thenReturn(relativePath); Mockito.when(relativePath.toString()) .thenReturn("this\\is\\windows\\path"); String relativeUnixPath = FrontendUtils.getUnixRelativePath(sourcePath, tmpDir.getRoot().toPath()); Assert.assertEquals( "Should replace windows path separator with unix path separator", "this/is/windows/path", relativeUnixPath); Mockito.when(relativePath.toString()).thenReturn("this/is/unix/path"); relativeUnixPath = FrontendUtils.getUnixRelativePath(sourcePath, tmpDir.getRoot().toPath()); Assert.assertEquals( "Should keep the same path when it uses unix path separator", "this/is/unix/path", relativeUnixPath); }