@Test public void shouldFailValidationIfDestinationDirectoryIsOutsideCurrentWorkingDirectoryAfterNormalization() { pluggableSCMMaterialConfig.setFolder("f1/../../f3"); pluggableSCMMaterialConfig.validateConcreteMaterial(null); Assert.assertThat(pluggableSCMMaterialConfig.errors().on(FOLDER), is("Dest folder 'f1/../../f3' is not valid. It must be a sub-directory of the working folder.")); }
@Test public void shouldAddErrorIDestinationIsNotValid() throws Exception { ConfigSaveValidationContext configSaveValidationContext = mock(ConfigSaveValidationContext.class); SCM scmConfig = mock(SCM.class); when(configSaveValidationContext.findScmById(anyString())).thenReturn(scmConfig); when(scmConfig.doesPluginExist()).thenReturn(true); PluggableSCMMaterialConfig pluggableSCMMaterialConfig = new PluggableSCMMaterialConfig(null, scmConfig, "/usr/home", null); pluggableSCMMaterialConfig.setScmId("scm-id"); pluggableSCMMaterialConfig.validateConcreteMaterial(configSaveValidationContext); assertThat(pluggableSCMMaterialConfig.errors().getAll().size(), is(1)); assertThat(pluggableSCMMaterialConfig.errors().on(PluggableSCMMaterialConfig.FOLDER), is("Dest folder '/usr/home' is not valid. It must be a sub-directory of the working folder.")); pluggableSCMMaterialConfig = new PluggableSCMMaterialConfig(null, scmConfig, "./../crap", null); pluggableSCMMaterialConfig.setScmId("scm-id"); pluggableSCMMaterialConfig.validateConcreteMaterial(configSaveValidationContext); assertThat(pluggableSCMMaterialConfig.errors().getAll().size(), is(2)); assertThat(pluggableSCMMaterialConfig.errors().on(PluggableSCMMaterialConfig.FOLDER), is("Invalid directory name './../crap'. It should be a valid relative path.")); }
@Test public void shouldAddErrorIfMaterialDoesNotHaveASCMId() throws Exception { pluggableSCMMaterialConfig.setScmId(null); pluggableSCMMaterialConfig.validateConcreteMaterial(new ConfigSaveValidationContext(null, null)); assertThat(pluggableSCMMaterialConfig.errors().getAll().size(), is(1)); assertThat(pluggableSCMMaterialConfig.errors().on(PluggableSCMMaterialConfig.SCM_ID), is("Please select a SCM")); }