]> source.dussan.org Git - sonarqube.git/commitdiff
Add org.sonar.api.server.ws.Request#getMediaType()
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Wed, 29 Jul 2015 15:39:06 +0000 (17:39 +0200)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Thu, 30 Jul 2015 09:43:17 +0000 (11:43 +0200)
server/sonar-server/src/main/java/org/sonar/server/ws/ServletRequest.java
server/sonar-server/src/test/java/org/sonar/server/ws/ServletRequestTest.java
server/sonar-server/src/test/java/org/sonar/server/ws/TestRequest.java
server/sonar-server/src/test/java/org/sonar/server/ws/WebServiceEngineTest.java
server/sonar-server/src/test/java/org/sonar/server/ws/WsTester.java
sonar-plugin-api/src/main/java/org/sonar/api/server/ws/Request.java
sonar-plugin-api/src/main/java/org/sonar/api/server/ws/internal/SimpleGetRequest.java
sonar-plugin-api/src/test/java/org/sonar/api/server/ws/RequestTest.java

index 87efc33f5ed971acdc300021ce029c6c6eef6dc8..a1aa8d2d39b3e86d9a115b0a70ce9382b248723c 100644 (file)
@@ -19,6 +19,7 @@
  */
 package org.sonar.server.ws;
 
+import com.google.common.base.Objects;
 import org.jruby.RubyFile;
 import org.sonar.api.server.ws.internal.ValidatingRequest;
 
@@ -42,6 +43,11 @@ public class ServletRequest extends ValidatingRequest {
     return source.getMethod();
   }
 
+  @Override
+  public String getMediaType() {
+    return Objects.firstNonNull(source.getContentType(), "application/octet-stream");
+  }
+
   @Override
   public boolean hasParam(String key) {
     return source.getParameterMap().containsKey(key) || params.keySet().contains(key);
index 719be0264177c188cb9985b0e83763bbd642288f..93d32b702fe7e53dd1559e786314e550693354a1 100644 (file)
@@ -27,6 +27,7 @@ import org.junit.Test;
 import javax.servlet.http.HttpServletRequest;
 
 import java.util.Collections;
+import org.sonar.server.plugins.MimeTypes;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.*;
@@ -42,6 +43,19 @@ public class ServletRequestTest {
     verify(source).getMethod();
   }
 
+  @Test
+  public void getMediaType() throws Exception {
+    when(source.getContentType()).thenReturn(MimeTypes.JSON);
+    ServletRequest request = new ServletRequest(source, Collections.<String, Object>emptyMap());
+    assertThat(request.getMediaType()).isEqualTo(MimeTypes.JSON);
+  }
+
+  @Test
+  public void default_media_type_is_octet_stream() throws Exception {
+    ServletRequest request = new ServletRequest(source, Collections.<String, Object>emptyMap());
+    assertThat(request.getMediaType()).isEqualTo("application/octet-stream");
+  }
+
   @Test
   public void has_param_from_source() {
     when(source.getParameterMap()).thenReturn(ImmutableMap.of("param", new String[]{"value"}));
index 06c73625f34d0960aaaf5fd7fc68fefd4fc581ad..aa62a432457a66191a8d847542454e323fa9ac86 100644 (file)
@@ -59,7 +59,8 @@ public class TestRequest extends ValidatingRequest {
     return this;
   }
 
-  public String getMimeType() {
+  @Override
+  public String getMediaType() {
     return mimeType;
   }
 
index 40e505f7daa342c70267178757a04d4d9787afb8..3a95eefd30b48491e28af142c8778e778c24ba37 100644 (file)
@@ -61,6 +61,11 @@ public class WebServiceEngineTest {
       return method;
     }
 
+    @Override
+    public String getMediaType() {
+      return MimeTypes.JSON;
+    }
+
     @Override
     public boolean hasParam(String key) {
       return params.keySet().contains(key);
index db00219e90ffa9e65474944bd4b93e31537552d7..6369daeb01d105af55c940c996b033891647a7a5 100644 (file)
@@ -37,6 +37,7 @@ import org.sonar.api.server.ws.WebService;
 import org.sonar.api.server.ws.internal.ValidatingRequest;
 import org.sonar.api.utils.text.JsonWriter;
 import org.sonar.api.utils.text.XmlWriter;
+import org.sonar.server.plugins.MimeTypes;
 import org.sonar.server.ws.WsTester.TestResponse.TestStream;
 import org.sonar.test.JsonAssert;
 
@@ -51,6 +52,7 @@ public class WsTester {
   public static class TestRequest extends ValidatingRequest {
 
     private final String method;
+
     private Map<String, String> params = Maps.newHashMap();
 
     private TestRequest(String method) {
@@ -62,6 +64,11 @@ public class WsTester {
       return method;
     }
 
+    @Override
+    public String getMediaType() {
+      return MimeTypes.JSON;
+    }
+
     @Override
     public boolean hasParam(String key) {
       return params.keySet().contains(key);
index eb25819e0aec21358ebd5f7fa880e3eff778b2d8..5c6eb1d4b4cb310e09506dbf80a0b72a00590f04 100644 (file)
@@ -41,6 +41,11 @@ public abstract class Request {
    */
   public abstract String method();
 
+  /**
+   * Returns the requested MIME type, or {@code "application/octet-stream"} if not specified.
+   */
+  public abstract String getMediaType();
+
   /**
    * Return true of the parameter is set.
    */
index d2ee7a65d9fff4be87615b2b2de9c29a5c53dda1..99ff64b1b91b192a3cc49327b1d1c7a79395112c 100644 (file)
 package org.sonar.api.server.ws.internal;
 
 import com.google.common.collect.Maps;
+import java.io.InputStream;
+import java.util.Map;
+import javax.annotation.Nullable;
 import org.apache.commons.io.IOUtils;
 import org.sonar.api.server.ws.Request;
 
-import javax.annotation.Nullable;
-
-import java.io.InputStream;
-import java.util.Map;
+import static com.google.common.base.Preconditions.checkNotNull;
 
 /**
  * Fake implementation of {@link org.sonar.api.server.ws.Request} used
@@ -36,12 +36,24 @@ import java.util.Map;
 public class SimpleGetRequest extends Request {
 
   private final Map<String, String> params = Maps.newHashMap();
+  private String mediaType = "application/json";
 
   @Override
   public String method() {
     return "GET";
   }
 
+  @Override
+  public String getMediaType() {
+    return mediaType;
+  }
+
+  public SimpleGetRequest setMediaType(String mediaType) {
+    checkNotNull(mediaType);
+    this.mediaType = mediaType;
+    return this;
+  }
+
   @Override
   public boolean hasParam(String key) {
     return params.keySet().contains(key);
index 24a0f2a69fbb5cab54bb0f45d8fbdb7236b57109..6e86a7c9be30b9ac71b3c04b5f61950e228d2c6b 100644 (file)
@@ -48,6 +48,11 @@ public class RequestTest {
       return "GET";
     }
 
+    @Override
+    public String getMediaType() {
+      return "application/json";
+    }
+
     @Override
     public boolean hasParam(String key) {
       return params.keySet().contains(key);