/*
* #%L
* Wisdom-Framework
* %%
* Copyright (C) 2013 - 2014 Wisdom Framework
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
package org.wisdom.api.http;
import org.junit.Test;
import java.util.Locale;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Check the implemented methods from RequestHeader.
*/
public class RequestHeaderTest {
@Test
public void testGetLocaleList() throws Exception {
Locale[] locales = RequestHeader.getLocaleList("da, en-gb;q=0.8, en;q=0.7");
assertThat(locales[0]).isEqualTo(Locale.forLanguageTag("da"));
assertThat(locales[1]).isEqualTo(Locale.forLanguageTag("en-gb"));
assertThat(locales[2]).isEqualTo(Locale.ENGLISH);
locales = RequestHeader.getLocaleList("fr");
assertThat(locales[0]).isEqualTo(Locale.FRENCH);
locales = RequestHeader.getLocaleList("en-ca,en;q=0.8,en-us;q=0.6,de-de;q=0.4,de;q=0.2");
assertThat(locales[0]).isEqualTo(Locale.CANADA);
assertThat(locales[1]).isEqualTo(Locale.ENGLISH);
assertThat(locales[2]).isEqualTo(Locale.US);
assertThat(locales[3]).isEqualTo(Locale.GERMANY);
assertThat(locales[4]).isEqualTo(Locale.GERMAN);
locales = RequestHeader.getLocaleList("en-ca,en-us;q=0.6 ,de;q=0.2, en;q=0.8, ,de-de;q=0.4");
assertThat(locales[0]).isEqualTo(Locale.CANADA);
assertThat(locales[1]).isEqualTo(Locale.ENGLISH);
assertThat(locales[2]).isEqualTo(Locale.US);
assertThat(locales[3]).isEqualTo(Locale.GERMANY);
assertThat(locales[4]).isEqualTo(Locale.GERMAN);
locales = RequestHeader.getLocaleList(null);
assertThat(locales).isEmpty();
locales = RequestHeader.getLocaleList("");
assertThat(locales).isEmpty();
locales = RequestHeader.getLocaleList("abc");
assertThat(locales[0]).isEqualTo(new Locale("abc"));
locales = RequestHeader.getLocaleList("123$4567");
assertThat(locales).isEmpty();
locales = RequestHeader.getLocaleList("en, en-US,en-cockney,i-cherokee,x-pig-latin");
assertThat(locales[0]).isEqualTo(Locale.ENGLISH);
assertThat(locales[1]).isEqualTo(Locale.US);
assertThat(locales[2]).isEqualTo(new Locale("en", "", "cockney"));
assertThat(locales[3]).isEqualTo(Locale.forLanguageTag("i-cherokee"));
assertThat(locales[4]).isEqualTo(Locale.forLanguageTag("x-pig-latin"));
// That's the configuration of my browser.
locales = RequestHeader.getLocaleList("en-US,en;q=0.8,de;q=0.6,fr;q=0.4");
assertThat(locales[0]).isEqualTo(Locale.US);
assertThat(locales[1]).isEqualTo(Locale.ENGLISH);
assertThat(locales[2]).isEqualTo(Locale.GERMAN);
assertThat(locales[3]).isEqualTo(Locale.FRENCH);
}
}