Done. On Sat, Dec 10, 2011 at 1:05 PM, sebb <[email protected]> wrote:
> On 10 December 2011 11:52, Philippe Mouawad <[email protected]> > wrote: > > But some are not useful like Example2Resources.properties no ? > > OK, but it's easier to add exclusions for the few that do not apply, > e.g. don't process Example\d+. > The tests already do that for other places where the Examples don't apply. > > Otherwise when new properties are added, it will be easy to forget to > update the list. > > > On Sat, Dec 10, 2011 at 12:48 PM, sebb <[email protected]> wrote: > > > >> On 10 December 2011 11:40, <[email protected]> wrote: > >> > Author: pmouawad > >> > Date: Sat Dec 10 11:40:31 2011 > >> > New Revision: 1212777 > >> > > >> > URL: http://svn.apache.org/viewvc?rev=1212777&view=rev > >> > Log: > >> > Enhanced test to check translation completeness for one language with > >> all available bundles, added only fr for now to avoid test failures > >> > > >> > Modified: > >> > jmeter/trunk/test/src/org/apache/jmeter/junit/JMeterTest.java > >> > > >> > Modified: > jmeter/trunk/test/src/org/apache/jmeter/junit/JMeterTest.java > >> > URL: > >> > http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/junit/JMeterTest.java?rev=1212777&r1=1212776&r2=1212777&view=diff > >> > > >> > ============================================================================== > >> > --- jmeter/trunk/test/src/org/apache/jmeter/junit/JMeterTest.java > >> (original) > >> > +++ jmeter/trunk/test/src/org/apache/jmeter/junit/JMeterTest.java Sat > >> Dec 10 11:40:31 2011 > >> > @@ -77,6 +77,37 @@ public class JMeterTest extends JMeterTe > >> > > >> > private static final Locale DEFAULT_LOCALE = Locale.getDefault(); > >> > > >> > + private static final String[] RESOURCE_BUNDLE_PATHS = new > String[] { > >> > + > "org/apache/jmeter/assertions/BSFAssertionResources.properties", > >> > + > >> "org/apache/jmeter/assertions/CompareAssertionResources.properties", > >> > + > >> "org/apache/jmeter/assertions/JSR223AssertionResources.properties", > >> > + "org/apache/jmeter/config/CSVDataSetResources.properties", > >> > + "org/apache/jmeter/config/KeystoreConfigResources.properties", > >> > + > >> "org/apache/jmeter/config/RandomVariableConfigResources.properties", > >> > + > >> "org/apache/jmeter/extractor/BSFPostProcessorResources.properties", > >> > + > >> > "org/apache/jmeter/extractor/BeanShellPostProcessorResources.properties", > >> > + > >> "org/apache/jmeter/extractor/DebugPostProcessorResources.properties", > >> > + > >> "org/apache/jmeter/extractor/JSR223PostProcessorResources.properties", > >> > + > >> "org/apache/jmeter/modifiers/BSFPreProcessorResources.properties", > >> > + > >> "org/apache/jmeter/modifiers/BeanShellPreProcessorResources.properties", > >> > + > >> "org/apache/jmeter/modifiers/JSR223PreProcessorResources.properties", > >> > + "org/apache/jmeter/sampler/DebugSamplerResources.properties", > >> > + "org/apache/jmeter/timers/BSFTimerResources.properties", > >> > + "org/apache/jmeter/timers/BeanShellTimerResources.properties", > >> > + > >> "org/apache/jmeter/timers/ConstantThroughputTimerResources.properties", > >> > + "org/apache/jmeter/timers/JSR223TimerResources.properties", > >> > + "org/apache/jmeter/timers/SyncTimerResources.properties", > >> > + > "org/apache/jmeter/visualizers/BSFListenerResources.properties", > >> > + > >> "org/apache/jmeter/visualizers/BeanShellListenerResources.properties", > >> > + > >> "org/apache/jmeter/visualizers/JSR223ListenerResources.properties", > >> > + "org/apache/jmeter/resources/messages.properties", > >> > + > >> > "org/apache/jmeter/protocol/http/sampler/AccessLogSamplerResources.properties", > >> > + > >> > "org/apache/jmeter/protocol/java/sampler/JSR223SamplerResources.properties", > >> > + > >> > "org/apache/jmeter/protocol/jdbc/config/DataSourceElementResources.properties", > >> > + > >> > "org/apache/jmeter/protocol/jdbc/processor/JDBCPostProcessorResources.properties", > >> > + > >> > "org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerResources.properties" > >> > + }; > >> > + > >> > >> Might be better to search for *Resources.properties instead of having > >> to list all the files. > >> > >> > public JMeterTest(String name) { > >> > super(name); > >> > } > >> > @@ -321,7 +352,7 @@ public class JMeterTest extends JMeterTe > >> > return suite; > >> > } > >> > > >> > - /* > >> > + /* > >> > * Test GUI elements - create the suite of tests > >> > */ > >> > private static Test suiteBeanComponents() throws Exception { > >> > @@ -404,23 +435,31 @@ public class JMeterTest extends JMeterTe > >> > * @throws Exception > >> > */ > >> > public void checkI18n() throws Exception { > >> > - // TODO Also add other bundles of TestBeans > >> > - Properties messages = new Properties(); > >> > - > >> > messages.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("org/apache/jmeter/resources/messages.properties")); > >> > + Map<String, Map<String,String>> missingLabelsPerBundle = new > >> HashMap<String, Map<String,String>>(); > >> > + for (int i = 0; i < RESOURCE_BUNDLE_PATHS.length; i++) { > >> > + Properties messages = new Properties(); > >> > + log.info("Checking > bundle:"+RESOURCE_BUNDLE_PATHS[i]); > >> > + > >> > messages.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(RESOURCE_BUNDLE_PATHS[i])); > >> > + checkMessagesForLanguage( missingLabelsPerBundle , > >> missingLabelsPerBundle, messages,RESOURCE_BUNDLE_PATHS[i], "fr"); > >> > + } > >> > > >> > - checkMessagesForLanguage(messages, "fr"); > >> > + assertEquals(missingLabelsPerBundle.size()+" missing labels, > >> labels missing:"+printLabels(missingLabelsPerBundle), 0, > >> missingLabelsPerBundle.size()); > >> > } > >> > > >> > /** > >> > * Check messages are available in language > >> > + * @param missingLabelsPerBundle2 > >> > + * @param missingLabelsPerBundle > >> > * @param messages Properties messages in english > >> > * @param language Language > >> > * @throws IOException > >> > */ > >> > - private void checkMessagesForLanguage(Properties messages, > >> String language) > >> > + private void checkMessagesForLanguage(Map<String, Map<String, > >> String>> missingLabelsPerBundle, Map<String, Map<String, String>> > >> missingLabelsPerBundle2, Properties messages, String bundlePath,String > >> language) > >> > throws IOException { > >> > Properties messagesFr = new Properties(); > >> > - > >> > messagesFr.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("org/apache/jmeter/resources/messages_"+language+".properties")); > >> > + int index = bundlePath.lastIndexOf("."); > >> > + String languageBundle = bundlePath.substring(0, > >> index)+"_"+language+ ".properties"; > >> > + > >> > messagesFr.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(languageBundle)); > >> > > >> > Map<String, String> missingLabels = new > TreeMap<String,String>(); > >> > for (Iterator<Map.Entry<Object,Object>> iterator = > >> messages.entrySet().iterator(); iterator.hasNext();) { > >> > @@ -430,15 +469,26 @@ public class JMeterTest extends JMeterTe > >> > missingLabels.put(key,(String) > >> entry.getValue()); > >> > } > >> > } > >> > - assertEquals(missingLabels.size()+" missing labels in language > >> :"+language+", labels missing:"+printLabels(missingLabels), 0, > >> missingLabels.size()); > >> > + if(!missingLabels.isEmpty()) { > >> > + missingLabelsPerBundle.put(languageBundle, > >> missingLabels); > >> > + } > >> > } > >> > > >> > - > >> > - private String printLabels(Map<String, String> missingLabels) { > >> > + /** > >> > + * Build message with misssing labels per bundle > >> > + * @param missingLabelsPerBundle > >> > + * @return String > >> > + */ > >> > + private String printLabels(Map<String, Map<String, String>> > >> missingLabelsPerBundle) { > >> > StringBuilder builder = new StringBuilder(); > >> > - for (Iterator<Map.Entry<String,String>> iterator = > >> missingLabels.entrySet().iterator(); iterator.hasNext();) { > >> > - Map.Entry<String,String> entry = iterator.next(); > >> > - > >> builder.append(entry.getKey()+"="+entry.getValue()+"\r\n"); > >> > + for (Iterator<Map.Entry<String,Map<String, String>>> iterator > = > >> missingLabelsPerBundle.entrySet().iterator(); iterator.hasNext();) { > >> > + Map.Entry<String,Map<String, String>> entry = > >> iterator.next(); > >> > + builder.append("Missing labels in > >> bundle:"+entry.getKey()+"\r\n"); > >> > + for (Iterator<Map.Entry<String,String>> it2 = > >> entry.getValue().entrySet().iterator(); it2.hasNext();) { > >> > + Map.Entry<String,String> entry2 = it2.next(); > >> > + > >> builder.append(entry2.getKey()+"="+entry2.getValue()+"\r\n"); > >> > + } > >> > + > >> > builder.append("======================================================\r\n"); > >> > } > >> > return builder.toString(); > >> > } > >> > > >> > > >> > > > > > > > > -- > > Cordialement. > > Philippe Mouawad. > -- Cordialement. Philippe Mouawad.
