17935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/*
27935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert ******************************************************************************************
37935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Copyright (C) 2009-2010, Google, Inc.; International Business Machines Corporation and *
47935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * others. All Rights Reserved.                                                           *
57935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert ******************************************************************************************
67935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert */
77935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
87935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpackage com.ibm.icu.dev.test.util;
97935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.dev.test.TestFmwk;
117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.util.LocalePriorityList;
127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.util.ULocale;
137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/**
157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Test the LanguagePriorityList
167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * @author markdavis@google.com
177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert */
187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpublic class LocalePriorityListTest extends TestFmwk {
197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public static void main(String[] args) throws Exception {
217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        new LocalePriorityListTest().run(args);
227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert      }
237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert  public void testLanguagePriorityList() {
257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    final String expected = "af, en, fr";
267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    LocalePriorityList list = LocalePriorityList.add("af, en, fr;q=0.9").build();
287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    assertEquals(expected, list.toString());
297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    // check looseness, and that later values win
317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    LocalePriorityList list2 = LocalePriorityList.add(
327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        ", fr ; q = 0.9 ,   en;q=0.1 , af, en, de;q=0, ").build();
337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    assertEquals(expected, list2.toString());
347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    assertEquals(list, list2);
357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    LocalePriorityList list3 = LocalePriorityList
377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        .add(new ULocale("af"))
387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        .add(ULocale.FRENCH, 0.9d)
397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        .add(ULocale.ENGLISH)
407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        .build();
417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    assertEquals(expected, list3.toString());
427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    assertEquals(list, list3);
437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    LocalePriorityList list4 = LocalePriorityList
457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    .add(list).build();
467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    assertEquals(expected, list4.toString());
477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    assertEquals(list, list4);
487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    LocalePriorityList list5 = LocalePriorityList.add("af, fr;q=0.9, en").build(true);
507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    assertEquals("af, en, fr;q=0.9", list5.toString());
517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert  }
527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
537935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertprivate void assertEquals(Object expected, Object string) {
547935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    assertEquals("", expected, string);
557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert}
567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert}
57