My fork of airsonic with experimental fixes and improvements. See branch "custom"
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
airsonic-custom/airsonic-main/src/test/java/org/airsonic/player/api/AirsonicRestApiIntTest.java

59 lines
2.2 KiB

package org.airsonic.player.api;
import org.airsonic.player.TestCaseUtils;
import org.airsonic.player.util.HomeRule;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class AirsonicRestApiIntTest {
private static final String CLIENT_NAME = "airsonic";
private static final String AIRSONIC_USER = "admin";
private static final String AIRSONIC_PASSWORD = "admin";
private static final String EXPECTED_FORMAT = "json";
private static String AIRSONIC_API_VERSION;
@Autowired
private MockMvc mvc;
@ClassRule
public static final HomeRule classRule = new HomeRule(); // sets airsonic.home to a temporary dir
@BeforeClass
public static void setupClass() {
AIRSONIC_API_VERSION = TestCaseUtils.restApiVersion();
}
@Test
public void pingTest() throws Exception {
mvc.perform(get("/rest/ping")
.param("v", AIRSONIC_API_VERSION)
.param("c", CLIENT_NAME)
.param("u", AIRSONIC_USER)
.param("p", AIRSONIC_PASSWORD)
.param("f", EXPECTED_FORMAT)
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(jsonPath("$.subsonic-response.status").value("ok"))
.andExpect(jsonPath("$.subsonic-response.version").value(AIRSONIC_API_VERSION))
.andDo(print());
}
}