summaryrefslogtreecommitdiff
path: root/test/libapt
diff options
context:
space:
mode:
Diffstat (limited to 'test/libapt')
-rw-r--r--test/libapt/getlanguages_test.cc91
-rw-r--r--test/libapt/makefile13
2 files changed, 104 insertions, 0 deletions
diff --git a/test/libapt/getlanguages_test.cc b/test/libapt/getlanguages_test.cc
new file mode 100644
index 000000000..f3629df68
--- /dev/null
+++ b/test/libapt/getlanguages_test.cc
@@ -0,0 +1,91 @@
+#include <apt-pkg/aptconfiguration.h>
+#include <apt-pkg/configuration.h>
+
+#include <assert.h>
+#include <string>
+#include <vector>
+
+#include <iostream>
+
+// simple helper to quickly output a vector of strings
+void dumpVector(std::vector<std::string> vec) {
+ for (std::vector<std::string>::const_iterator v = vec.begin();
+ v != vec.end(); v++)
+ std::cout << *v << std::endl;
+}
+
+int main(int argc,char *argv[])
+{
+ std::vector<std::string> vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8");
+ assert(vec.size() == 2);
+ assert(vec[0] == "de");
+ assert(vec[1] == "en");
+
+ // Special: Check if the cache is actually in use
+ vec = APT::Configuration::getLanguages(false, true, "en_GB.UTF-8");
+ assert(vec.size() == 2);
+ assert(vec[0] == "de");
+ assert(vec[1] == "en");
+
+ vec = APT::Configuration::getLanguages(false, false, "en_GB.UTF-8");
+ assert(vec.size() == 2);
+ assert(vec[0] == "en_GB");
+ assert(vec[1] == "en");
+
+ vec = APT::Configuration::getLanguages(false, false, "pt_PR.UTF-8");
+ assert(vec.size() == 3);
+ assert(vec[0] == "pt_PR");
+ assert(vec[1] == "pt");
+ assert(vec[2] == "en");
+
+ vec = APT::Configuration::getLanguages(false, false, "ast_DE.UTF-8"); // bogus, but syntactical correct
+ assert(vec.size() == 2);
+ assert(vec[0] == "ast");
+ assert(vec[1] == "en");
+
+ vec = APT::Configuration::getLanguages(false, false, "C");
+ assert(vec.size() == 1);
+ assert(vec[0] == "en");
+
+ _config->Set("Acquire::Languages::1", "environment");
+ _config->Set("Acquire::Languages::2", "en");
+ vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8");
+ assert(vec.size() == 2);
+ assert(vec[0] == "de");
+ assert(vec[1] == "en");
+
+ _config->Set("Acquire::Languages::3", "de");
+ vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8");
+ assert(vec.size() == 2);
+ assert(vec[0] == "de");
+ assert(vec[1] == "en");
+
+ _config->Set("Acquire::Languages::1", "none");
+ vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8");
+ assert(vec.size() == 0);
+ vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8");
+ assert(vec[0] == "en");
+ assert(vec[1] == "de");
+
+ _config->Set("Acquire::Languages::1", "fr");
+ _config->Set("Acquire::Languages", "de_DE");
+ vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8");
+ assert(vec.size() == 1);
+ assert(vec[0] == "de_DE");
+
+ _config->Set("Acquire::Languages", "none");
+ vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8");
+ assert(vec.size() == 0);
+
+ _config->Set("Acquire::Languages", "");
+ //FIXME: Remove support for this deprecated setting
+ _config->Set("APT::Acquire::Translation", "ast_DE");
+ vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8");
+ assert(vec.size() == 1);
+ assert(vec[0] == "ast_DE");
+ _config->Set("APT::Acquire::Translation", "none");
+ vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8");
+ assert(vec.size() == 0);
+
+ return 0;
+}
diff --git a/test/libapt/makefile b/test/libapt/makefile
new file mode 100644
index 000000000..f61a95f3d
--- /dev/null
+++ b/test/libapt/makefile
@@ -0,0 +1,13 @@
+# -*- make -*-
+BASE=../..
+SUBDIR=test/libapt
+BASENAME=_libapt_test
+
+# Bring in the default rules
+include ../../buildlib/defaults.mak
+
+# Program for testing getLanguageCode
+PROGRAM = getLanguages${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = getlanguages_test.cc
+include $(PROGRAM_H)