| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/xdg_util.h" | 5 #include "base/xdg_util.h" |
| 6 | 6 |
| 7 #include "base/env_var.h" | 7 #include "base/environment.h" |
| 8 #include "testing/gmock/include/gmock/gmock.h" | 8 #include "testing/gmock/include/gmock/gmock.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| 11 using ::testing::_; | 11 using ::testing::_; |
| 12 using ::testing::Return; | 12 using ::testing::Return; |
| 13 using ::testing::SetArgumentPointee; | 13 using ::testing::SetArgumentPointee; |
| 14 using ::testing::StrEq; | 14 using ::testing::StrEq; |
| 15 | 15 |
| 16 namespace { | 16 namespace { |
| 17 | 17 |
| 18 class MockEnvVarGetter : public base::EnvVarGetter { | 18 class MockEnvironment : public base::Environment { |
| 19 public: | 19 public: |
| 20 MOCK_METHOD2(GetEnv, bool(const char*, std::string* result)); | 20 MOCK_METHOD2(GetEnv, bool(const char*, std::string* result)); |
| 21 MOCK_METHOD2(SetEnv, bool(const char*, const std::string& new_value)); | 21 MOCK_METHOD2(SetEnv, bool(const char*, const std::string& new_value)); |
| 22 MOCK_METHOD1(UnSetEnv, bool(const char*)); | 22 MOCK_METHOD1(UnSetEnv, bool(const char*)); |
| 23 }; | 23 }; |
| 24 | 24 |
| 25 const char* kGnome = "gnome"; | 25 const char* kGnome = "gnome"; |
| 26 const char* kKDE4 = "kde4"; | 26 const char* kKDE4 = "kde4"; |
| 27 const char* kKDE = "kde"; | 27 const char* kKDE = "kde"; |
| 28 const char* kXFCE = "xfce"; | 28 const char* kXFCE = "xfce"; |
| 29 | 29 |
| 30 } // namespace | 30 } // namespace |
| 31 | 31 |
| 32 TEST(XDGUtilTest, GetDesktopEnvironmentGnome) { | 32 TEST(XDGUtilTest, GetDesktopEnvironmentGnome) { |
| 33 MockEnvVarGetter getter; | 33 MockEnvironment getter; |
| 34 EXPECT_CALL(getter, GetEnv(_, _)).WillRepeatedly(Return(false)); | 34 EXPECT_CALL(getter, GetEnv(_, _)).WillRepeatedly(Return(false)); |
| 35 EXPECT_CALL(getter, GetEnv(StrEq("DESKTOP_SESSION"), _)) | 35 EXPECT_CALL(getter, GetEnv(StrEq("DESKTOP_SESSION"), _)) |
| 36 .WillOnce(DoAll(SetArgumentPointee<1>(kGnome), Return(true))); | 36 .WillOnce(DoAll(SetArgumentPointee<1>(kGnome), Return(true))); |
| 37 | 37 |
| 38 EXPECT_EQ(base::DESKTOP_ENVIRONMENT_GNOME, | 38 EXPECT_EQ(base::DESKTOP_ENVIRONMENT_GNOME, |
| 39 base::GetDesktopEnvironment(&getter)); | 39 base::GetDesktopEnvironment(&getter)); |
| 40 } | 40 } |
| 41 | 41 |
| 42 TEST(XDGUtilTest, GetDesktopEnvironmentKDE4) { | 42 TEST(XDGUtilTest, GetDesktopEnvironmentKDE4) { |
| 43 MockEnvVarGetter getter; | 43 MockEnvironment getter; |
| 44 EXPECT_CALL(getter, GetEnv(_, _)).WillRepeatedly(Return(false)); | 44 EXPECT_CALL(getter, GetEnv(_, _)).WillRepeatedly(Return(false)); |
| 45 EXPECT_CALL(getter, GetEnv(StrEq("DESKTOP_SESSION"), _)) | 45 EXPECT_CALL(getter, GetEnv(StrEq("DESKTOP_SESSION"), _)) |
| 46 .WillOnce(DoAll(SetArgumentPointee<1>(kKDE4), Return(true))); | 46 .WillOnce(DoAll(SetArgumentPointee<1>(kKDE4), Return(true))); |
| 47 | 47 |
| 48 EXPECT_EQ(base::DESKTOP_ENVIRONMENT_KDE4, | 48 EXPECT_EQ(base::DESKTOP_ENVIRONMENT_KDE4, |
| 49 base::GetDesktopEnvironment(&getter)); | 49 base::GetDesktopEnvironment(&getter)); |
| 50 } | 50 } |
| 51 | 51 |
| 52 TEST(XDGUtilTest, GetDesktopEnvironmentKDE3) { | 52 TEST(XDGUtilTest, GetDesktopEnvironmentKDE3) { |
| 53 MockEnvVarGetter getter; | 53 MockEnvironment getter; |
| 54 EXPECT_CALL(getter, GetEnv(_, _)).WillRepeatedly(Return(false)); | 54 EXPECT_CALL(getter, GetEnv(_, _)).WillRepeatedly(Return(false)); |
| 55 EXPECT_CALL(getter, GetEnv(StrEq("DESKTOP_SESSION"), _)) | 55 EXPECT_CALL(getter, GetEnv(StrEq("DESKTOP_SESSION"), _)) |
| 56 .WillOnce(DoAll(SetArgumentPointee<1>(kKDE), Return(true))); | 56 .WillOnce(DoAll(SetArgumentPointee<1>(kKDE), Return(true))); |
| 57 | 57 |
| 58 EXPECT_EQ(base::DESKTOP_ENVIRONMENT_KDE3, | 58 EXPECT_EQ(base::DESKTOP_ENVIRONMENT_KDE3, |
| 59 base::GetDesktopEnvironment(&getter)); | 59 base::GetDesktopEnvironment(&getter)); |
| 60 } | 60 } |
| 61 | 61 |
| 62 TEST(XDGUtilTest, GetDesktopEnvironmentXFCE) { | 62 TEST(XDGUtilTest, GetDesktopEnvironmentXFCE) { |
| 63 MockEnvVarGetter getter; | 63 MockEnvironment getter; |
| 64 EXPECT_CALL(getter, GetEnv(_, _)).WillRepeatedly(Return(false)); | 64 EXPECT_CALL(getter, GetEnv(_, _)).WillRepeatedly(Return(false)); |
| 65 EXPECT_CALL(getter, GetEnv(StrEq("DESKTOP_SESSION"), _)) | 65 EXPECT_CALL(getter, GetEnv(StrEq("DESKTOP_SESSION"), _)) |
| 66 .WillOnce(DoAll(SetArgumentPointee<1>(kXFCE), Return(true))); | 66 .WillOnce(DoAll(SetArgumentPointee<1>(kXFCE), Return(true))); |
| 67 | 67 |
| 68 EXPECT_EQ(base::DESKTOP_ENVIRONMENT_XFCE, | 68 EXPECT_EQ(base::DESKTOP_ENVIRONMENT_XFCE, |
| 69 base::GetDesktopEnvironment(&getter)); | 69 base::GetDesktopEnvironment(&getter)); |
| 70 } | 70 } |
| OLD | NEW |