/** Test methods i18nManager.findInKeys() i18nManager.findInValues() */ @Test public void testFindInKeysAndFindInValues() { Locale testLocale = i18nMgr.getLocaleOrDefault("de"); // in keys speedtest long start = System.currentTimeMillis(); List<I18nItem> foundTransItems = i18nMgr.findI18nItemsByKeySearch("menu", testLocale, testLocale, null, true); long end = System.currentTimeMillis(); log.info( "Searching for term 'menu' took me " + (end - start) + "ms, found " + foundTransItems.size() + " item", "testFindInKeys"); // in values speedtest start = System.currentTimeMillis(); foundTransItems = i18nMgr.findI18nItemsByValueSearch("OLAT", testLocale, testLocale, null, true); int uppercaseSize = foundTransItems.size(); end = System.currentTimeMillis(); log.info( "Searching for term 'OLAT' took me " + (end - start) + "ms, found " + foundTransItems.size() + " item", "testFindInKeys"); // uppercase and lowercase must find the same values foundTransItems = i18nMgr.findI18nItemsByValueSearch("olat", testLocale, testLocale, null, true); assertEquals(uppercaseSize, foundTransItems.size()); // find in values and regexp tests: * is replaced with regexp, assertEquals( 1, i18nMgr .findI18nItemsByValueSearch( "Eingabefehler aufgetreten", testLocale, testLocale, null, true) .size()); assertEquals( 1, i18nMgr .findI18nItemsByValueSearch( "Eingabefehler*aufgetreten", testLocale, testLocale, null, true) .size()); assertEquals( 1, i18nMgr .findI18nItemsByValueSearch( "Eingabefe*ler*aufgetreten", testLocale, testLocale, null, true) .size()); assertEquals( 2, i18nMgr .findI18nItemsByValueSearch( "Bitte f*llen Sie dieses Feld aus", testLocale, testLocale, null, true) .size()); assertEquals( 1, i18nMgr .findI18nItemsByValueSearch( "Bitte f*llen Sie dieses Feld aus", testLocale, testLocale, "org.olat.core", false) .size()); // escape reserved regexp keywords assertEquals( 1, i18nMgr .findI18nItemsByValueSearch("OpenOLAT", testLocale, testLocale, "org.olat.core", false) .size()); assertEquals( 1, i18nMgr .findI18nItemsByValueSearch("nOLAT", testLocale, testLocale, "org.olat.core", false) .size()); assertEquals( 1, i18nMgr .findI18nItemsByValueSearch("*learning", testLocale, testLocale, "org.olat.core", false) .size()); assertEquals( 1, i18nMgr .findI18nItemsByValueSearch( "Eingaben</i> </br >*<b>bold</b>*<br>_<i>italic</i>_<br>* Listen", testLocale, testLocale, null, true) .size()); assertEquals( 1, i18nMgr .findI18nItemsByValueSearch( "dargestellt werden. Bitte rufen Sie", testLocale, testLocale, null, true) .size()); // multi line value search assertEquals( 1, i18nMgr .findI18nItemsByValueSearch( "Die Aktion konnte nicht ausgef\u00FChrt werden", testLocale, testLocale, null, true) .size()); }