]>
Commit | Line | Data |
---|---|---|
1 | #include <apt-pkg/aptconfiguration.h> | |
2 | #include <apt-pkg/configuration.h> | |
3 | ||
4 | #include "assert.h" | |
5 | #include <string> | |
6 | #include <vector> | |
7 | ||
8 | #include <iostream> | |
9 | ||
10 | // simple helper to quickly output a vector of strings | |
11 | void dumpVector(std::vector<std::string> vec) { | |
12 | for (std::vector<std::string>::const_iterator v = vec.begin(); | |
13 | v != vec.end(); v++) | |
14 | std::cout << *v << std::endl; | |
15 | } | |
16 | ||
17 | int main(int argc,char *argv[]) | |
18 | { | |
19 | if (argc != 2) { | |
20 | std::cout << "One parameter expected - given " << argc << std::endl; | |
21 | return 100; | |
22 | } | |
23 | ||
24 | char const* env[2]; | |
25 | env[0] = "de_DE.UTF-8"; | |
26 | env[1] = ""; | |
27 | ||
28 | std::vector<std::string> vec = APT::Configuration::getLanguages(false, false, env); | |
29 | equals(vec.size(), 2); | |
30 | equals(vec[0], "de"); | |
31 | equals(vec[1], "en"); | |
32 | ||
33 | // Special: Check if the cache is actually in use | |
34 | env[0] = "en_GB.UTF-8"; | |
35 | vec = APT::Configuration::getLanguages(false, true, env); | |
36 | equals(vec.size(), 2); | |
37 | equals(vec[0], "de"); | |
38 | equals(vec[1], "en"); | |
39 | ||
40 | env[0] = "en_GB.UTF-8"; | |
41 | vec = APT::Configuration::getLanguages(false, false, env); | |
42 | equals(vec.size(), 2); | |
43 | equals(vec[0], "en_GB"); | |
44 | equals(vec[1], "en"); | |
45 | ||
46 | // esperanto | |
47 | env[0] = "eo.UTF-8"; | |
48 | vec = APT::Configuration::getLanguages(false, false, env); | |
49 | equals(vec.size(), 2); | |
50 | equals(vec[0], "eo"); | |
51 | equals(vec[1], "en"); | |
52 | ||
53 | env[0] = "tr_DE@euro"; | |
54 | vec = APT::Configuration::getLanguages(false, false, env); | |
55 | equals(vec.size(), 2); | |
56 | equals(vec[0], "tr"); | |
57 | equals(vec[1], "en"); | |
58 | ||
59 | env[0] = "de_NO"; | |
60 | env[1] = "se_NO:en_GB:nb_NO:nb:no_NO:no:nn_NO:nn:da:sv:en"; | |
61 | vec = APT::Configuration::getLanguages(false, false, env); | |
62 | equals(vec.size(), 5); | |
63 | equals(vec[0], "de"); | |
64 | equals(vec[1], "en_GB"); | |
65 | equals(vec[2], "nb"); | |
66 | equals(vec[3], "no"); | |
67 | equals(vec[4], "en"); | |
68 | ||
69 | env[0] = "pt_PR.UTF-8"; | |
70 | env[1] = ""; | |
71 | vec = APT::Configuration::getLanguages(false, false, env); | |
72 | equals(vec.size(), 3); | |
73 | equals(vec[0], "pt_PR"); | |
74 | equals(vec[1], "pt"); | |
75 | equals(vec[2], "en"); | |
76 | ||
77 | env[0] = "ast_DE.UTF-8"; | |
78 | vec = APT::Configuration::getLanguages(false, false, env); // bogus, but syntactical correct | |
79 | equals(vec.size(), 2); | |
80 | equals(vec[0], "ast"); | |
81 | equals(vec[1], "en"); | |
82 | ||
83 | env[0] = "C"; | |
84 | vec = APT::Configuration::getLanguages(false, false, env); | |
85 | equals(vec.size(), 1); | |
86 | equals(vec[0], "en"); | |
87 | ||
88 | _config->Set("Acquire::Languages::1", "environment"); | |
89 | _config->Set("Acquire::Languages::2", "en"); | |
90 | env[0] = "de_DE.UTF-8"; | |
91 | vec = APT::Configuration::getLanguages(false, false, env); | |
92 | equals(vec.size(), 2); | |
93 | equals(vec[0], "de"); | |
94 | equals(vec[1], "en"); | |
95 | ||
96 | _config->Set("Acquire::Languages::3", "de"); | |
97 | env[0] = "de_DE.UTF-8"; | |
98 | vec = APT::Configuration::getLanguages(false, false, env); | |
99 | equals(vec.size(), 2); | |
100 | equals(vec[0], "de"); | |
101 | equals(vec[1], "en"); | |
102 | ||
103 | _config->Set("Dir::State::lists", argv[1]); | |
104 | vec = APT::Configuration::getLanguages(true, false, env); | |
105 | equals(vec.size(), 5); | |
106 | equals(vec[0], "de"); | |
107 | equals(vec[1], "en"); | |
108 | equals(vec[2], "none"); | |
109 | equals(vec[3], "pt"); | |
110 | equals(vec[4], "tr"); | |
111 | ||
112 | _config->Set("Dir::State::lists", "/non-existing-dir"); | |
113 | _config->Set("Acquire::Languages::1", "none"); | |
114 | env[0] = "de_DE.UTF-8"; | |
115 | vec = APT::Configuration::getLanguages(false, false, env); | |
116 | equals(vec.size(), 0); | |
117 | env[0] = "de_DE.UTF-8"; | |
118 | vec = APT::Configuration::getLanguages(true, false, env); | |
119 | equals(vec[0], "en"); | |
120 | equals(vec[1], "de"); | |
121 | ||
122 | _config->Set("Acquire::Languages::1", "fr"); | |
123 | _config->Set("Acquire::Languages", "de_DE"); | |
124 | env[0] = "de_DE.UTF-8"; | |
125 | vec = APT::Configuration::getLanguages(false, false, env); | |
126 | equals(vec.size(), 1); | |
127 | equals(vec[0], "de_DE"); | |
128 | ||
129 | _config->Set("Acquire::Languages", "none"); | |
130 | env[0] = "de_DE.UTF-8"; | |
131 | vec = APT::Configuration::getLanguages(true, false, env); | |
132 | equals(vec.size(), 0); | |
133 | ||
134 | _config->Set("Acquire::Languages", ""); | |
135 | //FIXME: Remove support for this deprecated setting | |
136 | _config->Set("APT::Acquire::Translation", "ast_DE"); | |
137 | env[0] = "de_DE.UTF-8"; | |
138 | vec = APT::Configuration::getLanguages(true, false, env); | |
139 | equals(vec.size(), 2); | |
140 | equals(vec[0], "ast_DE"); | |
141 | equals(vec[1], "en"); | |
142 | _config->Set("APT::Acquire::Translation", "none"); | |
143 | env[0] = "de_DE.UTF-8"; | |
144 | vec = APT::Configuration::getLanguages(true, false, env); | |
145 | equals(vec.size(), 1); | |
146 | equals(vec[0], "en"); | |
147 | ||
148 | return 0; | |
149 | } |