import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.server.platform.ServerFileSystem;
import org.sonar.server.user.UserSession;
@Override
public void handle(Request request, Response response) throws Exception {
- userSession.checkPermission(GlobalPermissions.SYSTEM_ADMIN);
+ userSession.checkIsRoot();
Part part = request.mandatoryParamAsPart(PARAM_FILE);
String fileName = part.getFileName();
import static org.assertj.core.api.Java6Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import static org.sonar.core.permission.GlobalPermissions.PROVISIONING;
-import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN;
import static org.sonar.test.ExceptionCauseMatcher.hasType;
public class UploadActionTest {
- static final String PLUGIN_NAME = "plugin.jar";
+ private static final String PLUGIN_NAME = "plugin.jar";
@Rule
public TemporaryFolder folder = new TemporaryFolder();
@Rule
public UserSessionRule userSession = UserSessionRule.standalone();
- ServerFileSystem fileSystem = mock(ServerFileSystem.class);
- File pluginDirectory;
-
- File plugin = new File(getClass().getResource("UploadActionTest/plugin.jar").getFile());
- WsActionTester wsTester;
+ private ServerFileSystem fileSystem = mock(ServerFileSystem.class);
+ private File pluginDirectory;
+ private File plugin = new File(getClass().getResource("UploadActionTest/plugin.jar").getFile());
+ private WsActionTester wsTester;
@Before
public void setUp() throws Exception {
@Test
public void upload_plugin() throws Exception {
- setSystemAdminUser();
+ logInAsRoot();
TestResponse response = call(newInputStream(plugin.toPath()), PLUGIN_NAME);
@Test
public void erase_existing_plugin_if_already_exists() throws Exception {
- setSystemAdminUser();
+ logInAsRoot();
File plugin1 = new File(getClass().getResource("UploadActionTest/plugin.jar").getFile());
call(newInputStream(plugin1.toPath()), PLUGIN_NAME);
@Test
public void fail_when_plugin_extension_is_not_jar() throws Exception {
- setSystemAdminUser();
+ logInAsRoot();
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Only jar file is allowed");
@Test
public void fail_when_no_files_param() throws Exception {
- setSystemAdminUser();
+ logInAsRoot();
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("The 'file' parameter is missing");
@Test
public void input_stream_should_be_closed() throws Exception {
- setSystemAdminUser();
+ logInAsRoot();
InputStream inputStream = newInputStream(plugin.toPath());
call(inputStream, PLUGIN_NAME);
}
@Test
- public void fail_if_not_system_admin() throws Exception {
- userSession.logIn().setGlobalPermissions(PROVISIONING);
+ public void throw_ForbiddenException_if_not_root() throws Exception {
+ userSession.logIn();
expectedException.expect(ForbiddenException.class);
+ expectedException.expectMessage("Insufficient privileges");
+
call(newInputStream(plugin.toPath()), PLUGIN_NAME);
}
.execute();
}
- private void setSystemAdminUser() {
- userSession.logIn().setGlobalPermissions(SYSTEM_ADMIN);
+ private void logInAsRoot() {
+ userSession.logIn().setRoot();
}
private void assertPluginIsUploaded(String pluginName) {