decoy.1.0.date=2012-03-18
decoy.1.0.sqVersions=${project.version}
decoy.1.0.description=Surprise
-decoy.1.0.downloadUrl=file://${project.build.testOutputDirectory}/org/sonar/server/plugins/ws/PluginsWsMediumTest/sonar-decoy-plugin-1.0.jar
+decoy.1.0.downloadUrl=[[decoy.10.jar]]
decoy.1.0.changelogUrl=http://jira.codehaus.org/foo
decoy.1.1.date=2012-03-18
decoy.1.1.sqVersions=${project.version}
decoy.1.1.description=Surprise
-decoy.1.1.downloadUrl=file://${project.build.testOutputDirectory}/org/sonar/server/plugins/ws/PluginsWsMediumTest/sonar-decoy-plugin-1.1.jar
+decoy.1.1.downloadUrl=[[decoy.11.jar]]
decoy.1.1.changelogUrl=http://jira.codehaus.org/foo
# =============== decoy plugin
foo.1.0.date=2012-03-18
foo.1.0.sqVersions=${project.version}
foo.1.0.description=Surprise
-foo.1.0.downloadUrl=file://${project.build.testOutputDirectory}/org/sonar/server/plugins/ws/PluginsWsMediumTest/sonar-foo-plugin-1.0.jar
+foo.1.0.downloadUrl=[[foo.10.jar]]
foo.1.0.changelogUrl=http://jira.codehaus.org/foo
-
package org.sonar.server.plugins.ws;
import java.io.File;
+import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
+import org.apache.commons.io.FileUtils;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
import org.sonar.core.permission.GlobalPermissions;
import org.sonar.server.tester.ServerTester;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsTester;
public class PluginsWsMediumTest {
+ private static final String ENCODING = "UTF-8";
+
+ @ClassRule
+ public static TemporaryFolder temporaryFolder = new TemporaryFolder();
@ClassRule
public static ServerTester serverTester = new ServerTester()
.addPluginJar(getFile("sonar-decoy-plugin-1.0.jar"))
- .setUpdateCenterUrl(getFileUrl("update-center.properties"));
+ .setUpdateCenterUrl(createUpdateCenterPropertiesFile());
+
@Rule
public UserSessionRule userSessionRule = UserSessionRule.forServerTester(serverTester);
return new WsTester(serverTester.get(PluginsWs.class));
}
+ private static URL createUpdateCenterPropertiesFile() {
+ try {
+ temporaryFolder.create();
+ String content = FileUtils.readFileToString(getFile("update-center.properties"), ENCODING)
+ .replace("[[decoy.10.jar]]", getFileUrl("sonar-decoy-plugin-1.0.jar").toString())
+ .replace("[[decoy.11.jar]]", getFileUrl("sonar-decoy-plugin-1.1.jar").toString())
+ .replace("[[foo.10.jar]]", getFileUrl("sonar-foo-plugin-1.0.jar").toString());
+ File res = temporaryFolder.newFile("update-center.properties");
+ FileUtils.write(res, content, "UTF-8");
+ return res.toURI().toURL();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
private static File getFile(String jarFileName) {
try {
return new File(getFileUrl(jarFileName).toURI());