1 package org.unicode.cldr.unittest; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import org.unicode.cldr.test.CheckCLDR.CheckStatus; 7 import org.unicode.cldr.test.CheckCLDR.Options; 8 import org.unicode.cldr.test.CheckDisplayCollisions; 9 import org.unicode.cldr.util.CLDRConfig; 10 import org.unicode.cldr.util.CLDRFile; 11 import org.unicode.cldr.util.SimpleXMLSource; 12 import org.unicode.cldr.util.XMLSource; 13 14 public class TestCheckDisplayCollisions extends TestFmwkPlus { 15 public static void main(String[] args) { 16 new TestCheckDisplayCollisions().run(args); 17 } 18 19 public void testInheritance() { 20 XMLSource rootSource = new SimpleXMLSource("root"); 21 CLDRFile root = new CLDRFile(rootSource); 22 23 XMLSource enSource = new SimpleXMLSource("en"); 24 CLDRFile en = new CLDRFile(enSource); 25 26 XMLSource frSource = new SimpleXMLSource("fr"); 27 frSource.putValueAtPath("//ldml/annotations/annotation[@cp=\"\"][@type=\"tts\"]", "scorpion"); 28 frSource.putValueAtPath("//ldml/annotations/annotation[@cp=\"\"][@type=\"tts\"]", "scorpion zodiac"); 29 CLDRFile fr = new CLDRFile(frSource); 30 31 XMLSource frCaSource = new SimpleXMLSource("fr_CA"); 32 frSource.putValueAtPath("//ldml/annotations/annotation[@cp=\"\"][@type=\"tts\"]", "scorpion"); 33 CLDRFile frCA = new CLDRFile(frCaSource); 34 35 TestFactory factory = new TestFactory(); 36 factory.addFile(root); 37 factory.addFile(en); 38 factory.addFile(fr); 39 factory.addFile(frCA); 40 41 CheckDisplayCollisions cdc = new CheckDisplayCollisions(factory); 42 CLDRFile frCaResolved = factory.make("fr_CA", true); 43 cdc.setEnglishFile(CLDRConfig.getInstance().getEnglish()); 44 checkFile(cdc, frCA, frCaResolved); 45 } 46 47 private void checkFile(CheckDisplayCollisions cdc, CLDRFile frCa, CLDRFile frCaResolved) { 48 List<CheckStatus> possibleErrors = new ArrayList<>(); 49 Options options = new Options(); 50 cdc.setCldrFileToCheck(frCa, options, possibleErrors); 51 if (!possibleErrors.isEmpty()) { 52 System.out.println("init: " + possibleErrors); 53 possibleErrors.clear(); 54 } 55 for (String path : frCaResolved) { 56 String value = frCaResolved.getStringValue(path); 57 cdc.check(path, path, value, options, possibleErrors); 58 if (!possibleErrors.isEmpty()) { 59 System.out.println(path + "\t" + possibleErrors); 60 possibleErrors.clear(); 61 } 62 } 63 } 64 } 65