1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html#License
3/*
4 ******************************************************************************************
5 * Copyright (C) 2009-2010, Google, Inc.; International Business Machines Corporation and *
6 * others. All Rights Reserved.                                                           *
7 ******************************************************************************************
8 */
9
10package com.ibm.icu.dev.test.util;
11
12import org.junit.Test;
13import org.junit.runner.RunWith;
14import org.junit.runners.JUnit4;
15
16import com.ibm.icu.dev.test.TestFmwk;
17import com.ibm.icu.util.LocalePriorityList;
18import com.ibm.icu.util.ULocale;
19
20/**
21 * Test the LanguagePriorityList
22 * @author markdavis@google.com
23 */
24@RunWith(JUnit4.class)
25public class LocalePriorityListTest extends TestFmwk {
26  @Test
27  public void testLanguagePriorityList() {
28    final String expected = "af, en, fr";
29
30    LocalePriorityList list = LocalePriorityList.add("af, en, fr;q=0.9").build();
31    assertEquals(expected, list.toString());
32
33    // check looseness, and that later values win
34    LocalePriorityList list2 = LocalePriorityList.add(
35        ", fr ; q = 0.9 ,   en;q=0.1 , af, en, de;q=0, ").build();
36    assertEquals(expected, list2.toString());
37    assertEquals(list, list2);
38
39    LocalePriorityList list3 = LocalePriorityList
40        .add(new ULocale("af"))
41        .add(ULocale.FRENCH, 0.9d)
42        .add(ULocale.ENGLISH)
43        .build();
44    assertEquals(expected, list3.toString());
45    assertEquals(list, list3);
46
47    LocalePriorityList list4 = LocalePriorityList
48    .add(list).build();
49    assertEquals(expected, list4.toString());
50    assertEquals(list, list4);
51
52    LocalePriorityList list5 = LocalePriorityList.add("af, fr;q=0.9, en").build(true);
53    assertEquals("af, en, fr;q=0.9", list5.toString());
54  }
55
56private void assertEquals(Object expected, Object string) {
57    assertEquals("", expected, string);
58}
59}
60