void PreferencesTest::TestAll() { IPreferencesService::Pointer prefService = Platform::GetServiceRegistry().GetServiceById<IPreferencesService>(IPreferencesService::ID); assert(prefService.IsNotNull()); /// Test for: IPreferences::GetSystemPreferences() IPreferences::Pointer root = prefService->GetSystemPreferences(); assert(root.IsNotNull()); { BERRY_INFO << "testing Preferences::Node(), Preferences::NodeExists(), Preferences::Parent(), " "Preferences::ChildrenNames(), Preferences::RemoveNode()"; berry::IPreferences::Pointer editorsNode(0); editorsNode = root->Node("/editors"); assert(editorsNode.IsNotNull()); assert(editorsNode->NodeExists("/editors")); assert(editorsNode->Parent() == root); berry::IPreferences::Pointer editorsGeneralNode = root->Node("/editors/general"); assert(editorsNode->NodeExists("/editors/general")); berry::IPreferences::Pointer editorsSyntaxNode = root->Node("/editors/syntax"); assert(editorsGeneralNode->NodeExists("/editors/syntax")); berry::IPreferences::Pointer editorsFontNode = root->Node("/editors/font"); assert(editorsSyntaxNode->NodeExists("/editors/font")); vector<string> childrenNames; childrenNames.push_back("general"); childrenNames.push_back("syntax"); childrenNames.push_back("font"); assert(editorsNode->ChildrenNames() == childrenNames); editorsFontNode->RemoveNode(); try { editorsFontNode->Parent(); failmsg("this should throw a Poco::IllegalStateException"); } catch (Poco::IllegalStateException) { // expected } } // testing methods // Preferences::put*() // Preferences::get*() { BERRY_INFO << "testing Preferences::put*(), Preferences::get*(), OnChanged"; assert(root->NodeExists("/editors/general")); berry::IPreferences::Pointer editorsGeneralNode = root->Node("/editors/general"); IBerryPreferences::Pointer berryEditorsGeneralNode = editorsGeneralNode.Cast< IBerryPreferences >(); assert(berryEditorsGeneralNode.IsNotNull()); TestPreferencesChangedListener listener(berryEditorsGeneralNode.GetPointer()); std::string strKey = "Bad words";std::string strValue = "badword1 badword2"; editorsGeneralNode->Put(strKey, strValue); assert(listener.numCalled == 1); assert(editorsGeneralNode->Get(strKey, "") == strValue); assert(editorsGeneralNode->Get("wrong key", "default value") == "default value"); strKey = "Show Line Numbers";bool bValue = true; editorsGeneralNode->PutBool(strKey, bValue); assert(listener.numCalled == 2); assert(editorsGeneralNode->GetBool(strKey, !bValue) == bValue); strKey = "backgroundcolor"; strValue = "#00FF00"; editorsGeneralNode->PutByteArray(strKey, strValue); assert(listener.numCalled == 3); assert(editorsGeneralNode->GetByteArray(strKey, "") == strValue); strKey = "update time"; double dValue = 1.23; editorsGeneralNode->PutDouble(strKey, dValue); assert(editorsGeneralNode->GetDouble(strKey, 0.0) == dValue); strKey = "update time float"; float fValue = 1.23f; editorsGeneralNode->PutFloat(strKey, fValue); assert(editorsGeneralNode->GetFloat(strKey, 0.0f) == fValue); strKey = "Break on column"; int iValue = 80; editorsGeneralNode->PutInt(strKey, iValue); assert(editorsGeneralNode->GetInt(strKey, 0) == iValue); strKey = "Maximum number of words"; long lValue = 11000000; editorsGeneralNode->PutLong(strKey, lValue); assert(editorsGeneralNode->GetLong(strKey, 0) == lValue); } }
void PreferencesServiceTest::TestAll() { try { IPreferencesService::Pointer prefService = Platform::GetServiceRegistry().GetServiceById<IPreferencesService>(IPreferencesService::ID); assert(prefService.IsNotNull()); /// Test for: IPreferences::GetSystemPreferences() IPreferences::Pointer sysPrefs = prefService->GetSystemPreferences(); assert(sysPrefs.IsNotNull()); /// Test for: IPreferences::GetUserPreferences(std::string name) IPreferences::Pointer testUserPrefs = prefService->GetUserPreferences("testUser"); assert(testUserPrefs.IsNotNull()); /// Test for: IPreferences::GetUsers() std::vector<std::string> userList = prefService->GetUsers(); // userList should now contain "testUser" bool userListContainsTestUser = false; for (std::vector<std::string>::iterator it = userList.begin() ; it != userList.end(); it++) { if(*it == "testUser") { userListContainsTestUser = true; break; } } assert(userListContainsTestUser); IBerryPreferencesService::Pointer berryPrefService = prefService.Cast<IBerryPreferencesService>(); // optional test for IBerryPreferencesService if(berryPrefService.IsNotNull()) { /// Test for: IBerryPreferencesService::ExportPreferences(Poco::File f, std::string name="") // write general prefs std::string sysPrefsExportFilePath = Poco::Path::temp() + Poco::Path::separator() + "systemBerryPreferences"; Poco::File sysPrefsExportFile(sysPrefsExportFilePath); sysPrefs->PutInt("testNumber", 1); berryPrefService->ExportPreferences(sysPrefsExportFile); // assert somethings was written assert(sysPrefsExportFile.getSize() > 0); // write testUser prefs std::string testUserPrefsExportFilePath = Poco::Path::temp() + Poco::Path::separator() + "testUserBerryPreferences"; Poco::File testUserPrefsExportFile(testUserPrefsExportFilePath); testUserPrefs->PutInt("testNumber", 2); berryPrefService->ExportPreferences(testUserPrefsExportFile, "testUser"); assert(testUserPrefsExportFile.getSize() > 0); /// Test for: IBerryPreferencesService::ImportPreferences(Poco::File f, std::string name="") // import general prefs // change testNumber value sysPrefs->PutInt("testNumber", 3); berryPrefService->ImportPreferences(sysPrefsExportFile); // "testNumber" preference should now again be overwritten with its old value 1 assert(sysPrefs->GetInt("testNumber", 3) == 1); // import testUser prefs // change testNumber value testUserPrefs->PutInt("testNumber", 4); berryPrefService->ImportPreferences(testUserPrefsExportFile, "testUser"); // "testNumber" preference should now again be overwritten with its old value 2 assert(testUserPrefs->GetInt("testNumber", 4) == 2); // delete files again sysPrefsExportFile.remove(); testUserPrefsExportFile.remove(); } } catch (Poco::CreateFileException& e) { std::string msg = "Failed to create preferences file: "; msg.append(e.what()); this->fail( msg ); } catch (std::exception& e) { this->fail( e.what() ); } catch (...) { this->fail( "unknown exception occured" ); } }