| 
					
				 | 
			
			
				@@ -0,0 +1,104 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/*========================================================================= 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Library:   CTK 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Copyright (c) Kitware Inc. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Licensed under the Apache License, Version 2.0 (the "License"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  you may not use this file except in compliance with the License. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  You may obtain a copy of the License at 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      http://www.apache.org/licenses/LICENSE-2.0.txt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Unless required by applicable law or agreed to in writing, software 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  distributed under the License is distributed on an "AS IS" BASIS, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  See the License for the specific language governing permissions and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  limitations under the License. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+=========================================================================*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Qt includes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include <QApplication> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include <QSignalSpy> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include <QTimer> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include <QVBoxLayout> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// CTK includes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "ctkLanguageComboBox.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "ctkTest.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// STD includes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include <cstdlib> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include <iostream> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// ---------------------------------------------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class ctkLanguageComboBoxTester: public QObject 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Q_OBJECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+private slots: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  void testDefaults(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  void testSetDefaultLanguage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  void testSetDefaultLanguage_data(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// ---------------------------------------------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void ctkLanguageComboBoxTester::testDefaults() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ctkLanguageComboBox languageComboBox; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QCOMPARE(languageComboBox.currentLanguage(), languageComboBox.defaultLanguage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QCOMPARE(languageComboBox.defaultLanguage(), QString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QCOMPARE(languageComboBox.directory(), QString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// ---------------------------------------------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void ctkLanguageComboBoxTester::testSetDefaultLanguage() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ctkLanguageComboBox languageComboBox; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QFETCH(QString, defaultLanguage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  languageComboBox.setDefaultLanguage(defaultLanguage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // Default language 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QFETCH(QString, expectedDefaultLanguage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QCOMPARE(languageComboBox.defaultLanguage(), expectedDefaultLanguage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (!expectedDefaultLanguage.isEmpty()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QCOMPARE(languageComboBox.count(), 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QCOMPARE(languageComboBox.itemData(0).toString(), expectedDefaultLanguage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QCOMPARE(languageComboBox.itemText(0), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             QLocale::languageToString(QLocale(expectedDefaultLanguage).language())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // Current language 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QFETCH(QString, expectedCurrentLanguage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QCOMPARE(languageComboBox.currentLanguage(), expectedCurrentLanguage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QCOMPARE(languageComboBox.currentIndex(), expectedCurrentLanguage.isEmpty() ? -1 : 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// ---------------------------------------------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void ctkLanguageComboBoxTester::testSetDefaultLanguage_data() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QTest::addColumn<QString>("defaultLanguage"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QTest::addColumn<QString>("expectedDefaultLanguage"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QTest::addColumn<QString>("expectedCurrentLanguage"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QTest::newRow("invalid") << QString() << QString() << QString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QTest::newRow("empty") << QString("") << QString("") << QString(""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QTest::newRow("en") << QString("en") << QString("en_US") << QString("en_US"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // ISO_3166 says that The United Kingdom is GB not UK 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QTest::newRow("en_UK") << QString("en_UK") << QString("en_US") << QString("en_US"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QTest::newRow("en_GB") << QString("en_GB") << QString("en_GB") << QString("en_GB"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QTest::newRow("fr") << QString("fr") << QString("fr_FR") << QString("fr_FR"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QTest::newRow("de_CH") << QString("de_CH") << QString("de_CH") << QString("de_CH"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QTest::newRow("de_ch") << QString("de_ch") << QString("de_DE") << QString("de_DE"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QTest::newRow("xx") << QString("xx") << QString() << QString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QTest::newRow("xx_yy") << QString("xx_yy") << QString() << QString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QTest::newRow("_en") << QString("_en") << QString() << QString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QTest::newRow("fr_") << QString("fr_") << QString("fr_FR") << QString("fr_FR"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// ---------------------------------------------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+CTK_TEST_MAIN(ctkLanguageComboBoxTest) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "moc_ctkLanguageComboBoxTest.cpp" 
			 |