getlanguages_test.cc 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #include <apt-pkg/aptconfiguration.h>
  2. #include <apt-pkg/configuration.h>
  3. #include <assert.h>
  4. #include <string>
  5. #include <vector>
  6. #include <iostream>
  7. // simple helper to quickly output a vector of strings
  8. void dumpVector(std::vector<std::string> vec) {
  9. for (std::vector<std::string>::const_iterator v = vec.begin();
  10. v != vec.end(); v++)
  11. std::cout << *v << std::endl;
  12. }
  13. int main(int argc,char *argv[])
  14. {
  15. std::vector<std::string> vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8");
  16. assert(vec.size() == 2);
  17. assert(vec[0] == "de");
  18. assert(vec[1] == "en");
  19. // Special: Check if the cache is actually in use
  20. vec = APT::Configuration::getLanguages(false, true, "en_GB.UTF-8");
  21. assert(vec.size() == 2);
  22. assert(vec[0] == "de");
  23. assert(vec[1] == "en");
  24. vec = APT::Configuration::getLanguages(false, false, "en_GB.UTF-8");
  25. assert(vec.size() == 2);
  26. assert(vec[0] == "en_GB");
  27. assert(vec[1] == "en");
  28. vec = APT::Configuration::getLanguages(false, false, "pt_PR.UTF-8");
  29. assert(vec.size() == 3);
  30. assert(vec[0] == "pt_PR");
  31. assert(vec[1] == "pt");
  32. assert(vec[2] == "en");
  33. vec = APT::Configuration::getLanguages(false, false, "ast_DE.UTF-8"); // bogus, but syntactical correct
  34. assert(vec.size() == 2);
  35. assert(vec[0] == "ast");
  36. assert(vec[1] == "en");
  37. vec = APT::Configuration::getLanguages(false, false, "C");
  38. assert(vec.size() == 1);
  39. assert(vec[0] == "en");
  40. _config->Set("Acquire::Languages::1", "environment");
  41. _config->Set("Acquire::Languages::2", "en");
  42. vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8");
  43. assert(vec.size() == 2);
  44. assert(vec[0] == "de");
  45. assert(vec[1] == "en");
  46. _config->Set("Acquire::Languages::3", "de");
  47. vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8");
  48. assert(vec.size() == 2);
  49. assert(vec[0] == "de");
  50. assert(vec[1] == "en");
  51. _config->Set("Acquire::Languages::1", "none");
  52. vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8");
  53. assert(vec.size() == 0);
  54. vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8");
  55. assert(vec[0] == "en");
  56. assert(vec[1] == "de");
  57. _config->Set("Acquire::Languages::1", "fr");
  58. _config->Set("Acquire::Languages", "de_DE");
  59. vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8");
  60. assert(vec.size() == 1);
  61. assert(vec[0] == "de_DE");
  62. _config->Set("Acquire::Languages", "none");
  63. vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8");
  64. assert(vec.size() == 0);
  65. _config->Set("Acquire::Languages", "");
  66. //FIXME: Remove support for this deprecated setting
  67. _config->Set("APT::Acquire::Translation", "ast_DE");
  68. vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8");
  69. assert(vec.size() == 1);
  70. assert(vec[0] == "ast_DE");
  71. _config->Set("APT::Acquire::Translation", "none");
  72. vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8");
  73. assert(vec.size() == 0);
  74. return 0;
  75. }