1 /* 2 * Copyright 2014-2021 Haiku, Inc. 3 * Distributed under the terms of the MIT License. 4 */ 5 6 7 #include "LanguageTest.h" 8 9 #include "Language.h" 10 11 #include <cppunit/TestCaller.h> 12 #include <cppunit/TestSuite.h> 13 14 15 LanguageTest::LanguageTest() 16 { 17 } 18 19 20 LanguageTest::~LanguageTest() 21 { 22 } 23 24 25 void 26 LanguageTest::TestLanguageNameFrenchInEnglish() 27 { 28 // GIVEN 29 BLanguage languageFrench("fr_FR"); 30 BLanguage languageEnglish("en_US"); 31 BString name; 32 33 // WHEN 34 languageFrench.GetName(name, &languageEnglish); 35 // get the name of French in English 36 37 // THEN 38 CPPUNIT_ASSERT_EQUAL(BString("French (France)"), name); 39 } 40 41 42 void 43 LanguageTest::TestLanguageNameFrenchInFrench() 44 { 45 // GIVEN 46 BLanguage languageFrench("fr_FR"); 47 BString name; 48 49 // WHEN 50 languageFrench.GetName(name, &languageFrench); 51 // get the name of French in French 52 53 // THEN 54 CPPUNIT_ASSERT_EQUAL(BString("français (France)"), name); 55 } 56 57 58 void 59 LanguageTest::TestLanguagePropertiesFrench() 60 { 61 // GIVEN 62 BLanguage language("fr_FR"); 63 64 // WHEN 65 66 // THEN 67 CPPUNIT_ASSERT_EQUAL(BString("fr"), language.Code()); 68 CPPUNIT_ASSERT(language.Direction() == B_LEFT_TO_RIGHT); 69 } 70 71 72 /*static*/ void 73 LanguageTest::AddTests(BTestSuite& parent) 74 { 75 CppUnit::TestSuite& suite = *new CppUnit::TestSuite("LanguageTest"); 76 77 suite.addTest(new CppUnit::TestCaller<LanguageTest>( 78 "LanguageTest::TestLanguageNameFrenchInEnglish", 79 &LanguageTest::TestLanguageNameFrenchInEnglish)); 80 suite.addTest(new CppUnit::TestCaller<LanguageTest>( 81 "LanguageTest::TestLanguageNameFrenchInFrench", 82 &LanguageTest::TestLanguageNameFrenchInFrench)); 83 suite.addTest(new CppUnit::TestCaller<LanguageTest>( 84 "LanguageTest::TestLanguagePropertiesFrench", 85 &LanguageTest::TestLanguagePropertiesFrench)); 86 87 parent.addTest("LanguageTest", &suite); 88 } 89