package integration.locales;
import integration.VertxNubesTestBase;
import io.vertx.ext.unit.Async;
import io.vertx.ext.unit.TestContext;
import org.junit.Test;
import static io.vertx.core.http.HttpHeaders.ACCEPT_LANGUAGE;
public class TestLocale extends VertxNubesTestBase {
@Test
public void perfectMatch(TestContext context) {
Async async = context.async();
client().get("/locales/echo", response -> {
context.assertEquals(200, response.statusCode());
response.bodyHandler(buffer -> {
context.assertEquals("fr", buffer.toString("UTF-8"));
async.complete();
});
}).putHeader(ACCEPT_LANGUAGE, "fr, en;q=0.8, en-us;q=0.7").end();
}
@Test
public void specificMatch(TestContext context) {
Async async = context.async();
client().get("/locales/echo", response -> {
context.assertEquals(200, response.statusCode());
response.bodyHandler(buffer -> {
context.assertEquals("fr", buffer.toString("UTF-8"));
async.complete();
});
}).putHeader(ACCEPT_LANGUAGE, "fr-ca, en;q=0.8, en-us;q=0.7").end();
}
@Test
public void anotherMatch(TestContext context) {
Async async = context.async();
client().get("/locales/echo", response -> {
context.assertEquals(200, response.statusCode());
response.bodyHandler(buffer -> {
context.assertEquals("ja", buffer.toString("UTF-8"));
async.complete();
});
}).putHeader(ACCEPT_LANGUAGE, "de, ja-JP-u-ca-japanese;q=0.8, en;q=0.7, en-us;q=0.6").end();
}
@Test
public void theLastOne(TestContext context) {
Async async = context.async();
client().get("/locales/echo", response -> {
context.assertEquals(200, response.statusCode());
response.bodyHandler(buffer -> {
context.assertEquals("en", buffer.toString("UTF-8"));
async.complete();
});
}).putHeader(ACCEPT_LANGUAGE, "de, en;q=0.6").end();
}
@Test
public void theDefaultOne(TestContext context) {
Async async = context.async();
client().get("/locales/echo", response -> {
context.assertEquals(200, response.statusCode());
response.bodyHandler(buffer -> {
context.assertEquals("de", buffer.toString("UTF-8"));
async.complete();
});
}).putHeader(ACCEPT_LANGUAGE, "it, cz;q=0.6").end();
}
@Test
public void greetMeInFrench(TestContext context) {
Async async = context.async();
client().get("/locales/greet", response -> {
context.assertEquals(200, response.statusCode());
response.bodyHandler(buffer -> {
context.assertEquals("Bonjour", buffer.toString("UTF-8"));
async.complete();
});
}).putHeader(ACCEPT_LANGUAGE, "fr-ca, en;q=0.8, en-us;q=0.7").end();
}
@Test
public void greetMeInDefault(TestContext context) {
Async async = context.async();
client().get("/locales/greet", response -> {
context.assertEquals(200, response.statusCode());
response.bodyHandler(buffer -> {
context.assertEquals("Hallo", buffer.toString("UTF-8"));
async.complete();
});
}).end();
}
@Test
public void greetMeInDefault2(TestContext context) {
Async async = context.async();
client().get("/locales/greet", response -> {
context.assertEquals(200, response.statusCode());
response.bodyHandler(buffer -> {
context.assertEquals("Hallo", buffer.toString("UTF-8"));
async.complete();
});
}).putHeader(ACCEPT_LANGUAGE, "it, cz;q=0.6").end();
}
}