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(); } }