diff --git a/src/main/java/at/ac/uibk/gitsearch/service/SearchService.java b/src/main/java/at/ac/uibk/gitsearch/service/SearchService.java
index f00f1fdbb73f0c310156f1596f53a11d43444f14..aaacb8fc92c0975b12524009059749ad981fae74 100644
--- a/src/main/java/at/ac/uibk/gitsearch/service/SearchService.java
+++ b/src/main/java/at/ac/uibk/gitsearch/service/SearchService.java
@@ -9,9 +9,10 @@ import java.net.URISyntaxException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Optional;
 import java.util.zip.ZipInputStream;
 
+import org.gitlab4j.api.GitLabApi;
+import org.gitlab4j.api.GitLabApiException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,8 +22,6 @@ import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
-import org.gitlab4j.api.GitLabApi;
-import org.gitlab4j.api.GitLabApiException;
 
 import at.ac.uibk.gitsearch.repository.gitlab.GitLabRepository;
 import at.ac.uibk.gitsearch.repository.search.MetaDataRepository;
@@ -184,57 +183,6 @@ public class SearchService {
 		}
 	}
 
-	/**
-	 * temporary static test data.
-	 *
-	 * @param searchString just a string to add to testdata description.
-	 * @return
-	 */
-	@SuppressWarnings("unused")
-	private SearchResultsDTO readTestResults(String searchString, long first, int length) {
-		ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
-		mapper.findAndRegisterModules();
-
-		List<SearchResultDTO> loadedMetaData = new ArrayList<>();
-
-		for (String testFile : new String[] { "metaData1.yaml", "metaData2.yaml" }) {
-			log.debug("reading test data from {} ", testFile);
-
-			final File metaDataFile = new File("src/main/java/at/ac/uibk/gitsearch/service/testData/" + testFile);
-			try {
-				byte[] fileContent = FileCopyUtils.copyToByteArray(metaDataFile);
-				SearchResultDTO searchResultDTO = mapper.readValue(fileContent, SearchResultDTO.class);
-				loadedMetaData.add(searchResultDTO);
-			} catch (IOException e) {
-				log.error("Cannot read test search input from " + testFile, e);
-			}
-		}
-
-		List<SearchResultDTO> result = new ArrayList<>();
-		if (length > 0) {
-			int metadataPos = 0;
-			long recordNr = first;
-			// This loop is only used for testing to get more results.
-			for (int i = 0; i < 12; ++i) {
-				metadataPos = 0; // also for testing, remove later
-				while (metadataPos < length && metadataPos < loadedMetaData.size()) {
-					final SearchResultDTO loadedMetaDataRecord = new SearchResultDTO(loadedMetaData.get(metadataPos++));
-					if (loadedMetaDataRecord.toString().contains(searchString)) {
-						loadedMetaDataRecord.getMetadata()
-								.setTitle("#" + (recordNr + 1) + " " + loadedMetaDataRecord.getMetadata().getTitle());
-						result.add(loadedMetaDataRecord);
-						recordNr++;
-						log.debug("Added MetaData Record {}", loadedMetaData);
-					}
-					log.debug("{} does not contain {}", loadedMetaData, searchString);
-				}
-			}
-
-		}
-		return new SearchResultsDTO(result, NUM_TESTRESULTS, first);
-
-	}
-
 	public File exportExercise(long exerciseId) throws IOException {
 		try{
 		final GitLabApi gitLabApi = gitLabRepository.getGitLabApi(tokenProvider.getGitLabAccessInfo());
diff --git a/src/main/webapp/app/exercise/exercise-details/exercise-details.component.ts b/src/main/webapp/app/exercise/exercise-details/exercise-details.component.ts
index 10ab88c1447b7c71a75b0b3a656c5af39a7c41f1..e997c8817f5101a3097cb503a7f50a2da4fe8421 100644
--- a/src/main/webapp/app/exercise/exercise-details/exercise-details.component.ts
+++ b/src/main/webapp/app/exercise/exercise-details/exercise-details.component.ts
@@ -75,7 +75,7 @@ export class ExerciseDetailsComponent implements OnInit, OnDestroy {
           window.URL.revokeObjectURL(url);
         }
       },
-      () => alert('Unable to export exercise. Please log in to export.')
+      () => alert('Unable to export exercise. Please log in to export, or check your git lab permissions.')
     );
   }
 
diff --git a/src/test/java/at/ac/uibk/gitsearch/service/SearchServiceIT.java b/src/test/java/at/ac/uibk/gitsearch/service/SearchServiceIT.java
index 1c272893ea1dec205842498d1e84355102567e55..38c7dcb44b2281e7bc20541ba3267fafb92151f2 100644
--- a/src/test/java/at/ac/uibk/gitsearch/service/SearchServiceIT.java
+++ b/src/test/java/at/ac/uibk/gitsearch/service/SearchServiceIT.java
@@ -2,31 +2,42 @@ package at.ac.uibk.gitsearch.service;
 
 import static at.ac.uibk.gitsearch.web.rest.AccountResourceIT.TEST_USER_LOGIN;
 import static org.hamcrest.Matchers.anyOf;
+import static org.hamcrest.Matchers.contains;
 import static org.hamcrest.Matchers.containsString;
 import static org.hamcrest.Matchers.everyItem;
 import static org.hamcrest.Matchers.hasItemInArray;
 import static org.hamcrest.Matchers.hasProperty;
+import static org.hamcrest.Matchers.is;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
 import java.io.IOException;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 
+import org.codeability.sharing.plugins.api.SharingPluginConfig;
 import org.elasticsearch.client.RestHighLevelClient;
 import org.elasticsearch.node.NodeValidationException;
 import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.security.test.context.support.WithMockUser;
 
 import at.ac.uibk.gitsearch.GitsearchApp;
 import at.ac.uibk.gitsearch.repository.search.testESService.ElasticSearchTestServerConfiguration;
+import at.ac.uibk.gitsearch.service.PluginManagementService.PluginConfigWrapper;
+import at.ac.uibk.gitsearch.service.dto.AutoCompleteEntry;
 import at.ac.uibk.gitsearch.service.dto.SearchInputDTO;
 import at.ac.uibk.gitsearch.service.dto.SearchInputMetadataDTO;
 import at.ac.uibk.gitsearch.service.dto.SearchResultsDTO;
+import static org.mockito.Mockito.when;
 
 @SpringBootTest(classes = GitsearchApp.class)
 @WithMockUser(value = TEST_USER_LOGIN, authorities = "sharing")
@@ -34,6 +45,9 @@ public class SearchServiceIT {
 	
 	@Autowired
 	RestHighLevelClient searchClient;
+	
+	@MockBean
+	PluginManagementService pluginManagementService;
 
 	private static  final Logger LOGGER = LoggerFactory.getLogger(SearchServiceIT.class);
 	
@@ -44,6 +58,16 @@ public class SearchServiceIT {
 	public static void setUpESServer() throws IOException, NodeValidationException {
 		ElasticSearchTestServerConfiguration.getTestInstance().startTestNode();
 	}
+	
+	@BeforeEach
+	public void initMock() {
+		Collection<PluginConfigWrapper> mockConfigs = Collections.singletonList(
+				new PluginConfigWrapper(new SharingPluginConfig("mockedPlugin", new SharingPluginConfig.Action[] {
+						new SharingPluginConfig.Action("mockedAction", "http://unused/unused-transferURL", "mocked Action", "true")
+				}), "http://unused/hopefully-unused")
+				);
+		when(pluginManagementService.getRegisteredPluginConfigs()).thenReturn(mockConfigs);
+	}
 
 	@Test
 	public void testAllSearch() throws Exception {
@@ -141,4 +165,30 @@ public class SearchServiceIT {
 				everyItem(hasProperty("metadata", hasProperty("license", containsString("MIT")))));
 
 	}
+	
+	@Test
+	public void testKeywordAutocompletion() throws IOException {
+		final List<AutoCompleteEntry> keywordsAutoComplete = searchService.getKeywordsAutoComplete("Jav");
+		assertThat(keywordsAutoComplete, contains(hasProperty("target", is("Java"))));
+	}
+
+	@Test
+	public void testCreatorAutocompletion() throws IOException {
+		final List<AutoCompleteEntry> creatorAutoComplete = searchService.getCreatorAutoComplete("Pod");
+		assertThat(creatorAutoComplete, contains(hasProperty("target", is("Stefan Podlipnig"))));
+		final List<AutoCompleteEntry> creatorAutoComplete2 = searchService.getCreatorAutoComplete("Po");
+		assertThat(creatorAutoComplete2, contains(hasProperty("target", is("Stefan Podlipnig"))));
+	}
+
+	@Test
+	public void testContributorAutocompletion() throws IOException {
+		final List<AutoCompleteEntry> contributorAutoComplete = searchService.getContributorAutoComplete("Bast");
+		assertThat(contributorAutoComplete, contains(hasProperty("target", is("Daniel Bastta"))));
+	}
+
+	@Test
+	public void testContributorCreatorAutocompletion() throws IOException {
+		final List<AutoCompleteEntry> contributorAutoComplete = searchService.getContributorCreatorAutoComplete("Bast");
+		assertThat(contributorAutoComplete, contains(hasProperty("target", is("Daniel Bastta"))));
+	}
 }