• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2010 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "base/nix/xdg_util.h"
6 
7 #include "base/base_paths.h"
8 #include "base/environment.h"
9 #include "base/files/file_path.h"
10 #include "base/test/scoped_path_override.h"
11 #include "testing/gmock/include/gmock/gmock.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13 
14 using ::testing::_;
15 using ::testing::DoAll;
16 using ::testing::Eq;
17 using ::testing::Return;
18 using ::testing::SetArgPointee;
19 
20 namespace base {
21 namespace nix {
22 
23 namespace {
24 
25 class MockEnvironment : public Environment {
26  public:
27   MOCK_METHOD2(GetVar, bool(StringPiece, std::string* result));
28   MOCK_METHOD2(SetVar, bool(StringPiece, const std::string& new_value));
29   MOCK_METHOD1(UnSetVar, bool(StringPiece));
30 };
31 
32 // Needs to be const char* to make gmock happy.
33 const char* const kDesktopGnome = "gnome";
34 const char* const kDesktopGnomeFallback = "gnome-fallback";
35 const char* const kDesktopMATE = "mate";
36 const char* const kDesktopKDE4 = "kde4";
37 const char* const kDesktopKDE = "kde";
38 const char* const kDesktopXFCE = "xfce";
39 const char* const kXdgDesktopCinnamon = "X-Cinnamon";
40 const char* const kXdgDesktopDeepin = "Deepin";
41 const char* const kXdgDesktopGNOME = "GNOME";
42 const char* const kXdgDesktopGNOMEClassic = "GNOME:GNOME-Classic";
43 const char* const kXdgDesktopKDE = "KDE";
44 const char* const kXdgDesktopPantheon = "Pantheon";
45 const char* const kXdgDesktopUKUI = "UKUI";
46 const char* const kXdgDesktopUnity = "Unity";
47 const char* const kXdgDesktopUnity7 = "Unity:Unity7";
48 const char* const kXdgDesktopUnity8 = "Unity:Unity8";
49 const char* const kKDESessionKDE5 = "5";
50 const char* const kKDESessionKDE6 = "6";
51 
52 const char kDesktopSession[] = "DESKTOP_SESSION";
53 const char kKDESession[] = "KDE_SESSION_VERSION";
54 
55 const char* const kSessionUnknown = "invalid session";
56 const char* const kSessionUnspecified = "unspecified";
57 const char* const kSessionTty = "tty";
58 const char* const kSessionMir = "mir";
59 const char* const kSessionX11 = "x11";
60 const char* const kSessionWayland = "wayland";
61 const char* const kSessionWaylandCapital = "Wayland";
62 const char* const kSessionWaylandWhitespace = "wayland ";
63 
64 // This helps EXPECT_THAT(..., ElementsAre(...)) print out more meaningful
65 // failure messages.
FilePathsToStrings(const std::vector<base::FilePath> & paths)66 std::vector<std::string> FilePathsToStrings(
67     const std::vector<base::FilePath>& paths) {
68   std::vector<std::string> values;
69   for (const auto& path : paths) {
70     values.push_back(path.value());
71   }
72   return values;
73 }
74 
75 }  // namespace
76 
TEST(XDGUtilTest,GetXDGDataWriteLocation)77 TEST(XDGUtilTest, GetXDGDataWriteLocation) {
78   // Test that it returns $XDG_DATA_HOME.
79   {
80     MockEnvironment getter;
81     EXPECT_CALL(getter, GetVar(Eq("XDG_DATA_HOME"), _))
82         .WillOnce(DoAll(SetArgPointee<1>("/user/path"), Return(true)));
83 
84     ScopedPathOverride home_override(DIR_HOME, FilePath("/home/user"),
85                                      /*is_absolute=*/true, /*create=*/false);
86     FilePath path = GetXDGDataWriteLocation(&getter);
87     EXPECT_EQ("/user/path", path.value());
88   }
89 
90   // Test that $XDG_DATA_HOME falls back to $HOME/.local/share.
91   {
92     MockEnvironment getter;
93     EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
94     ScopedPathOverride home_override(DIR_HOME, FilePath("/home/user"),
95                                      /*is_absolute=*/true, /*create=*/false);
96     FilePath path = GetXDGDataWriteLocation(&getter);
97     EXPECT_EQ("/home/user/.local/share", path.value());
98   }
99 }
100 
TEST(XDGUtilTest,GetXDGDataSearchLocations)101 TEST(XDGUtilTest, GetXDGDataSearchLocations) {
102   // Test that it returns $XDG_DATA_HOME + $XDG_DATA_DIRS.
103   {
104     MockEnvironment getter;
105     EXPECT_CALL(getter, GetVar(Eq("XDG_DATA_HOME"), _))
106         .WillOnce(DoAll(SetArgPointee<1>("/user/path"), Return(true)));
107     EXPECT_CALL(getter, GetVar(Eq("XDG_DATA_DIRS"), _))
108         .WillOnce(DoAll(SetArgPointee<1>("/system/path/1:/system/path/2"),
109                         Return(true)));
110     ScopedPathOverride home_override(DIR_HOME, FilePath("/home/user"),
111                                      /*is_absolute=*/true, /*create=*/false);
112     EXPECT_THAT(
113         FilePathsToStrings(GetXDGDataSearchLocations(&getter)),
114         testing::ElementsAre("/user/path", "/system/path/1", "/system/path/2"));
115   }
116 
117   // Test that $XDG_DATA_HOME falls back to $HOME/.local/share.
118   {
119     MockEnvironment getter;
120     EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
121     EXPECT_CALL(getter, GetVar(Eq("XDG_DATA_DIRS"), _))
122         .WillOnce(DoAll(SetArgPointee<1>("/system/path/1:/system/path/2"),
123                         Return(true)));
124 
125     ScopedPathOverride home_override(DIR_HOME, FilePath("/home/user"),
126                                      /*is_absolute=*/true, /*create=*/false);
127     EXPECT_THAT(FilePathsToStrings(GetXDGDataSearchLocations(&getter)),
128                 testing::ElementsAre("/home/user/.local/share",
129                                      "/system/path/1", "/system/path/2"));
130   }
131 
132   // Test that if neither $XDG_DATA_HOME nor $HOME are specified, it still
133   // succeeds.
134   {
135     MockEnvironment getter;
136     EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
137     EXPECT_CALL(getter, GetVar(Eq("XDG_DATA_DIRS"), _))
138         .WillOnce(DoAll(SetArgPointee<1>("/system/path/1:/system/path/2"),
139                         Return(true)));
140     std::vector<std::string> results =
141         FilePathsToStrings(GetXDGDataSearchLocations(&getter));
142     ASSERT_EQ(3U, results.size());
143     EXPECT_FALSE(results[0].empty());
144     EXPECT_EQ("/system/path/1", results[1]);
145     EXPECT_EQ("/system/path/2", results[2]);
146   }
147 
148   // Test that $XDG_DATA_DIRS falls back to the two default paths.
149   {
150     MockEnvironment getter;
151     EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
152     EXPECT_CALL(getter, GetVar(Eq("XDG_DATA_HOME"), _))
153         .WillOnce(DoAll(SetArgPointee<1>("/user/path"), Return(true)));
154     ScopedPathOverride home_override(DIR_HOME, FilePath("/home/user"),
155                                      /*is_absolute=*/true, /*create=*/false);
156     EXPECT_THAT(
157         FilePathsToStrings(GetXDGDataSearchLocations(&getter)),
158         testing::ElementsAre("/user/path", "/usr/local/share", "/usr/share"));
159   }
160 }
161 
TEST(XDGUtilTest,GetDesktopEnvironmentGnome)162 TEST(XDGUtilTest, GetDesktopEnvironmentGnome) {
163   MockEnvironment getter;
164   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
165   EXPECT_CALL(getter, GetVar(Eq(kDesktopSession), _))
166       .WillOnce(DoAll(SetArgPointee<1>(kDesktopGnome), Return(true)));
167 
168   EXPECT_EQ(DESKTOP_ENVIRONMENT_GNOME, GetDesktopEnvironment(&getter));
169 }
170 
TEST(XDGUtilTest,GetDesktopEnvironmentMATE)171 TEST(XDGUtilTest, GetDesktopEnvironmentMATE) {
172   MockEnvironment getter;
173   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
174   EXPECT_CALL(getter, GetVar(Eq(kDesktopSession), _))
175       .WillOnce(DoAll(SetArgPointee<1>(kDesktopMATE), Return(true)));
176 
177   EXPECT_EQ(DESKTOP_ENVIRONMENT_GNOME, GetDesktopEnvironment(&getter));
178 }
179 
TEST(XDGUtilTest,GetDesktopEnvironmentKDE4)180 TEST(XDGUtilTest, GetDesktopEnvironmentKDE4) {
181   MockEnvironment getter;
182   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
183   EXPECT_CALL(getter, GetVar(Eq(kDesktopSession), _))
184       .WillOnce(DoAll(SetArgPointee<1>(kDesktopKDE4), Return(true)));
185 
186   EXPECT_EQ(DESKTOP_ENVIRONMENT_KDE4, GetDesktopEnvironment(&getter));
187 }
188 
TEST(XDGUtilTest,GetDesktopEnvironmentKDE3)189 TEST(XDGUtilTest, GetDesktopEnvironmentKDE3) {
190   MockEnvironment getter;
191   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
192   EXPECT_CALL(getter, GetVar(Eq(kDesktopSession), _))
193       .WillOnce(DoAll(SetArgPointee<1>(kDesktopKDE), Return(true)));
194 
195   EXPECT_EQ(DESKTOP_ENVIRONMENT_KDE3, GetDesktopEnvironment(&getter));
196 }
197 
TEST(XDGUtilTest,GetDesktopEnvironmentXFCE)198 TEST(XDGUtilTest, GetDesktopEnvironmentXFCE) {
199   MockEnvironment getter;
200   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
201   EXPECT_CALL(getter, GetVar(Eq(kDesktopSession), _))
202       .WillOnce(DoAll(SetArgPointee<1>(kDesktopXFCE), Return(true)));
203 
204   EXPECT_EQ(DESKTOP_ENVIRONMENT_XFCE, GetDesktopEnvironment(&getter));
205 }
206 
TEST(XDGUtilTest,GetXdgDesktopCinnamon)207 TEST(XDGUtilTest, GetXdgDesktopCinnamon) {
208   MockEnvironment getter;
209   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
210   EXPECT_CALL(getter, GetVar(Eq(kXdgCurrentDesktopEnvVar), _))
211       .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopCinnamon), Return(true)));
212 
213   EXPECT_EQ(DESKTOP_ENVIRONMENT_CINNAMON, GetDesktopEnvironment(&getter));
214 }
215 
TEST(XDGUtilTest,GetXdgDesktopDeepin)216 TEST(XDGUtilTest, GetXdgDesktopDeepin) {
217   MockEnvironment getter;
218   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
219   EXPECT_CALL(getter, GetVar(Eq(kXdgCurrentDesktopEnvVar), _))
220       .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopDeepin), Return(true)));
221 
222   EXPECT_EQ(DESKTOP_ENVIRONMENT_DEEPIN, GetDesktopEnvironment(&getter));
223 }
224 
TEST(XDGUtilTest,GetXdgDesktopGnome)225 TEST(XDGUtilTest, GetXdgDesktopGnome) {
226   MockEnvironment getter;
227   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
228   EXPECT_CALL(getter, GetVar(Eq(kXdgCurrentDesktopEnvVar), _))
229       .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopGNOME), Return(true)));
230 
231   EXPECT_EQ(DESKTOP_ENVIRONMENT_GNOME, GetDesktopEnvironment(&getter));
232 }
233 
TEST(XDGUtilTest,GetXdgDesktopGnomeClassic)234 TEST(XDGUtilTest, GetXdgDesktopGnomeClassic) {
235   MockEnvironment getter;
236   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
237   EXPECT_CALL(getter, GetVar(Eq(kXdgCurrentDesktopEnvVar), _))
238       .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopGNOMEClassic), Return(true)));
239 
240   EXPECT_EQ(DESKTOP_ENVIRONMENT_GNOME, GetDesktopEnvironment(&getter));
241 }
242 
TEST(XDGUtilTest,GetXdgDesktopGnomeFallback)243 TEST(XDGUtilTest, GetXdgDesktopGnomeFallback) {
244   MockEnvironment getter;
245   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
246   EXPECT_CALL(getter, GetVar(Eq(kXdgCurrentDesktopEnvVar), _))
247       .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopUnity), Return(true)));
248   EXPECT_CALL(getter, GetVar(Eq(kDesktopSession), _))
249       .WillOnce(DoAll(SetArgPointee<1>(kDesktopGnomeFallback), Return(true)));
250 
251   EXPECT_EQ(DESKTOP_ENVIRONMENT_GNOME, GetDesktopEnvironment(&getter));
252 }
253 
TEST(XDGUtilTest,GetXdgDesktopKDE5)254 TEST(XDGUtilTest, GetXdgDesktopKDE5) {
255   MockEnvironment getter;
256   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
257   EXPECT_CALL(getter, GetVar(Eq(kXdgCurrentDesktopEnvVar), _))
258       .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopKDE), Return(true)));
259   EXPECT_CALL(getter, GetVar(Eq(kKDESession), _))
260       .WillOnce(DoAll(SetArgPointee<1>(kKDESessionKDE5), Return(true)));
261 
262   EXPECT_EQ(DESKTOP_ENVIRONMENT_KDE5, GetDesktopEnvironment(&getter));
263 }
264 
TEST(XDGUtilTest,GetXdgDesktopKDE6)265 TEST(XDGUtilTest, GetXdgDesktopKDE6) {
266   MockEnvironment getter;
267   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
268   EXPECT_CALL(getter, GetVar(Eq(kXdgCurrentDesktopEnvVar), _))
269       .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopKDE), Return(true)));
270   EXPECT_CALL(getter, GetVar(Eq(kKDESession), _))
271       .WillOnce(DoAll(SetArgPointee<1>(kKDESessionKDE6), Return(true)));
272 
273   EXPECT_EQ(DESKTOP_ENVIRONMENT_KDE6, GetDesktopEnvironment(&getter));
274 }
275 
TEST(XDGUtilTest,GetXdgDesktopKDE4)276 TEST(XDGUtilTest, GetXdgDesktopKDE4) {
277   MockEnvironment getter;
278   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
279   EXPECT_CALL(getter, GetVar(Eq(kXdgCurrentDesktopEnvVar), _))
280       .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopKDE), Return(true)));
281 
282   EXPECT_EQ(DESKTOP_ENVIRONMENT_KDE4, GetDesktopEnvironment(&getter));
283 }
284 
TEST(XDGUtilTest,GetXdgDesktopPantheon)285 TEST(XDGUtilTest, GetXdgDesktopPantheon) {
286   MockEnvironment getter;
287   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
288   EXPECT_CALL(getter, GetVar(Eq(kXdgCurrentDesktopEnvVar), _))
289       .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopPantheon), Return(true)));
290 
291   EXPECT_EQ(DESKTOP_ENVIRONMENT_PANTHEON, GetDesktopEnvironment(&getter));
292 }
293 
TEST(XDGUtilTest,GetXdgDesktopUKUI)294 TEST(XDGUtilTest, GetXdgDesktopUKUI) {
295   MockEnvironment getter;
296   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
297   EXPECT_CALL(getter, GetVar(Eq(kXdgCurrentDesktopEnvVar), _))
298       .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopUKUI), Return(true)));
299 
300   EXPECT_EQ(DESKTOP_ENVIRONMENT_UKUI, GetDesktopEnvironment(&getter));
301 }
302 
TEST(XDGUtilTest,GetXdgDesktopUnity)303 TEST(XDGUtilTest, GetXdgDesktopUnity) {
304   MockEnvironment getter;
305   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
306   EXPECT_CALL(getter, GetVar(Eq(kXdgCurrentDesktopEnvVar), _))
307       .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopUnity), Return(true)));
308 
309   EXPECT_EQ(DESKTOP_ENVIRONMENT_UNITY, GetDesktopEnvironment(&getter));
310 }
311 
TEST(XDGUtilTest,GetXdgDesktopUnity7)312 TEST(XDGUtilTest, GetXdgDesktopUnity7) {
313   MockEnvironment getter;
314   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
315   EXPECT_CALL(getter, GetVar(Eq(kXdgCurrentDesktopEnvVar), _))
316       .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopUnity7), Return(true)));
317 
318   EXPECT_EQ(DESKTOP_ENVIRONMENT_UNITY, GetDesktopEnvironment(&getter));
319 }
320 
TEST(XDGUtilTest,GetXdgDesktopUnity8)321 TEST(XDGUtilTest, GetXdgDesktopUnity8) {
322   MockEnvironment getter;
323   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
324   EXPECT_CALL(getter, GetVar(Eq(kXdgCurrentDesktopEnvVar), _))
325       .WillOnce(DoAll(SetArgPointee<1>(kXdgDesktopUnity8), Return(true)));
326 
327   EXPECT_EQ(DESKTOP_ENVIRONMENT_UNITY, GetDesktopEnvironment(&getter));
328 }
329 
TEST(XDGUtilTest,GetXdgSessiontypeUnset)330 TEST(XDGUtilTest, GetXdgSessiontypeUnset) {
331   MockEnvironment getter;
332   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
333 
334   EXPECT_EQ(SessionType::kUnset, GetSessionType(getter));
335 }
336 
TEST(XDGUtilTest,GetXdgSessionTypeOther)337 TEST(XDGUtilTest, GetXdgSessionTypeOther) {
338   MockEnvironment getter;
339   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
340   EXPECT_CALL(getter, GetVar(Eq(kXdgSessionTypeEnvVar), _))
341       .WillOnce(DoAll(SetArgPointee<1>(kSessionUnknown), Return(true)));
342 
343   EXPECT_EQ(SessionType::kOther, GetSessionType(getter));
344 }
345 
TEST(XDGUtilTest,GetXdgSessionTypeUnspecified)346 TEST(XDGUtilTest, GetXdgSessionTypeUnspecified) {
347   MockEnvironment getter;
348   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
349   EXPECT_CALL(getter, GetVar(Eq(kXdgSessionTypeEnvVar), _))
350       .WillOnce(DoAll(SetArgPointee<1>(kSessionUnspecified), Return(true)));
351 
352   EXPECT_EQ(SessionType::kUnspecified, GetSessionType(getter));
353 }
354 
TEST(XDGUtilTest,GetXdgSessionTypeTty)355 TEST(XDGUtilTest, GetXdgSessionTypeTty) {
356   MockEnvironment getter;
357   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
358   EXPECT_CALL(getter, GetVar(Eq(kXdgSessionTypeEnvVar), _))
359       .WillOnce(DoAll(SetArgPointee<1>(kSessionTty), Return(true)));
360 
361   EXPECT_EQ(SessionType::kTty, GetSessionType(getter));
362 }
363 
TEST(XDGUtilTest,GetXdgSessionTypeMir)364 TEST(XDGUtilTest, GetXdgSessionTypeMir) {
365   MockEnvironment getter;
366   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
367   EXPECT_CALL(getter, GetVar(Eq(kXdgSessionTypeEnvVar), _))
368       .WillOnce(DoAll(SetArgPointee<1>(kSessionMir), Return(true)));
369 
370   EXPECT_EQ(SessionType::kMir, GetSessionType(getter));
371 }
372 
TEST(XDGUtilTest,GetXdgSessionTypeX11)373 TEST(XDGUtilTest, GetXdgSessionTypeX11) {
374   MockEnvironment getter;
375   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
376   EXPECT_CALL(getter, GetVar(Eq(kXdgSessionTypeEnvVar), _))
377       .WillOnce(DoAll(SetArgPointee<1>(kSessionX11), Return(true)));
378 
379   EXPECT_EQ(SessionType::kX11, GetSessionType(getter));
380 }
381 
TEST(XDGUtilTest,GetXdgSessionTypeWayland)382 TEST(XDGUtilTest, GetXdgSessionTypeWayland) {
383   MockEnvironment getter;
384   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
385   EXPECT_CALL(getter, GetVar(Eq(kXdgSessionTypeEnvVar), _))
386       .WillOnce(DoAll(SetArgPointee<1>(kSessionWayland), Return(true)));
387 
388   EXPECT_EQ(SessionType::kWayland, GetSessionType(getter));
389 }
390 
TEST(XDGUtilTest,GetXdgSessionTypeWaylandCapital)391 TEST(XDGUtilTest, GetXdgSessionTypeWaylandCapital) {
392   MockEnvironment getter;
393   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
394   EXPECT_CALL(getter, GetVar(Eq(kXdgSessionTypeEnvVar), _))
395       .WillOnce(DoAll(SetArgPointee<1>(kSessionWaylandCapital), Return(true)));
396 
397   EXPECT_EQ(SessionType::kWayland, GetSessionType(getter));
398 }
399 
TEST(XDGUtilTest,GetXdgSessionTypeWaylandWhitespace)400 TEST(XDGUtilTest, GetXdgSessionTypeWaylandWhitespace) {
401   MockEnvironment getter;
402   EXPECT_CALL(getter, GetVar(_, _)).WillRepeatedly(Return(false));
403   EXPECT_CALL(getter, GetVar(Eq(kXdgSessionTypeEnvVar), _))
404       .WillOnce(
405           DoAll(SetArgPointee<1>(kSessionWaylandWhitespace), Return(true)));
406 
407   EXPECT_EQ(SessionType::kWayland, GetSessionType(getter));
408 }
409 
410 }  // namespace nix
411 }  // namespace base
412