Simplify the Raw devfile filename check (#548)
Do not check the Raw devfile file name but check if the url ends with .yaml before using the Raw devfile url resolver.pull/554/head
parent
ea67092cbc
commit
9d43803100
|
|
@ -32,7 +32,6 @@ import javax.inject.Singleton;
|
|||
import org.eclipse.che.api.core.ApiException;
|
||||
import org.eclipse.che.api.core.BadRequestException;
|
||||
import org.eclipse.che.api.factory.server.urlfactory.DefaultFactoryUrl;
|
||||
import org.eclipse.che.api.factory.server.urlfactory.DevfileFilenamesProvider;
|
||||
import org.eclipse.che.api.factory.server.urlfactory.RemoteFactoryUrl;
|
||||
import org.eclipse.che.api.factory.server.urlfactory.URLFactoryBuilder;
|
||||
import org.eclipse.che.api.factory.shared.dto.FactoryMetaDto;
|
||||
|
|
@ -52,7 +51,6 @@ public class RawDevfileUrlFactoryParameterResolver implements FactoryParametersR
|
|||
|
||||
protected final URLFactoryBuilder urlFactoryBuilder;
|
||||
protected final URLFetcher urlFetcher;
|
||||
@Inject private DevfileFilenamesProvider devfileFilenamesProvider;
|
||||
|
||||
@Inject
|
||||
public RawDevfileUrlFactoryParameterResolver(
|
||||
|
|
@ -71,9 +69,7 @@ public class RawDevfileUrlFactoryParameterResolver implements FactoryParametersR
|
|||
@Override
|
||||
public boolean accept(Map<String, String> factoryParameters) {
|
||||
String url = factoryParameters.get(URL_PARAMETER_NAME);
|
||||
return !isNullOrEmpty(url)
|
||||
&& devfileFilenamesProvider.getConfiguredDevfileFilenames().stream()
|
||||
.anyMatch(url::endsWith);
|
||||
return !isNullOrEmpty(url) && (url.endsWith(".yaml") || url.endsWith(".yml"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -28,12 +28,10 @@ import static org.testng.Assert.fail;
|
|||
import static org.testng.AssertJUnit.assertEquals;
|
||||
import static org.testng.AssertJUnit.assertTrue;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import org.eclipse.che.api.core.BadRequestException;
|
||||
import org.eclipse.che.api.factory.server.urlfactory.DevfileFilenamesProvider;
|
||||
import org.eclipse.che.api.factory.server.urlfactory.RemoteFactoryUrl;
|
||||
import org.eclipse.che.api.factory.server.urlfactory.URLFactoryBuilder;
|
||||
import org.eclipse.che.api.workspace.server.devfile.DevfileParser;
|
||||
|
|
@ -67,8 +65,6 @@ public class RawDevfileUrlFactoryParameterResolverTest {
|
|||
+ " reference: ../localfile\n";
|
||||
|
||||
@Mock private URLFetcher urlFetcher;
|
||||
private final DevfileFilenamesProvider devfileFilenamesProvider =
|
||||
new DevfileFilenamesProvider("devfile.yaml, .devfile.yaml");
|
||||
|
||||
@InjectMocks private RawDevfileUrlFactoryParameterResolver rawDevfileUrlFactoryParameterResolver;
|
||||
|
||||
|
|
@ -167,16 +163,7 @@ public class RawDevfileUrlFactoryParameterResolverTest {
|
|||
}
|
||||
|
||||
@Test(dataProvider = "devfileNames")
|
||||
public void shouldAcceptRawDevfileUrl(String devfileName)
|
||||
throws NoSuchFieldException, IllegalAccessException {
|
||||
// given
|
||||
Field field =
|
||||
rawDevfileUrlFactoryParameterResolver
|
||||
.getClass()
|
||||
.getDeclaredField("devfileFilenamesProvider");
|
||||
field.setAccessible(true);
|
||||
field.set(rawDevfileUrlFactoryParameterResolver, devfileFilenamesProvider);
|
||||
|
||||
public void shouldAcceptRawDevfileUrl(String devfileName) {
|
||||
// when
|
||||
boolean result =
|
||||
rawDevfileUrlFactoryParameterResolver.accept(
|
||||
|
|
@ -186,6 +173,17 @@ public class RawDevfileUrlFactoryParameterResolverTest {
|
|||
assertTrue(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldNotAcceptRawDevfileUrl() {
|
||||
// when
|
||||
boolean result =
|
||||
rawDevfileUrlFactoryParameterResolver.accept(
|
||||
Collections.singletonMap(URL_PARAMETER_NAME, "https://host/user/repo.git"));
|
||||
|
||||
// then
|
||||
assertFalse(result);
|
||||
}
|
||||
|
||||
@DataProvider(name = "invalidURLsProvider")
|
||||
private Object[][] invalidUrlsProvider() {
|
||||
return new Object[][] {
|
||||
|
|
@ -200,6 +198,6 @@ public class RawDevfileUrlFactoryParameterResolverTest {
|
|||
|
||||
@DataProvider(name = "devfileNames")
|
||||
private Object[] devfileNames() {
|
||||
return new String[] {"devfile.yaml", ".devfile.yaml"};
|
||||
return new String[] {"devfile.yaml", ".devfile.yaml", "any-name.yaml", "any-name.yml"};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue