tfarina@chromium.org | ad52d0d | 2010-07-08 12:19:08 +0900 | [diff] [blame] | 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 |
| 3 | // found in the LICENSE file. |
| 4 | |
tfarina@chromium.org | 6d36c5d | 2010-08-03 12:00:50 +0900 | [diff] [blame^] | 5 | #include "base/environment.h" |
tfarina@chromium.org | ad52d0d | 2010-07-08 12:19:08 +0900 | [diff] [blame] | 6 | #include "base/scoped_ptr.h" |
| 7 | #include "testing/gtest/include/gtest/gtest.h" |
| 8 | #include "testing/platform_test.h" |
| 9 | |
tfarina@chromium.org | 6d36c5d | 2010-08-03 12:00:50 +0900 | [diff] [blame^] | 10 | typedef PlatformTest EnvironmentTest; |
tfarina@chromium.org | ad52d0d | 2010-07-08 12:19:08 +0900 | [diff] [blame] | 11 | |
tfarina@chromium.org | 6d36c5d | 2010-08-03 12:00:50 +0900 | [diff] [blame^] | 12 | TEST_F(EnvironmentTest, GetEnvVar) { |
tfarina@chromium.org | ad52d0d | 2010-07-08 12:19:08 +0900 | [diff] [blame] | 13 | // Every setup should have non-empty PATH... |
tfarina@chromium.org | 6d36c5d | 2010-08-03 12:00:50 +0900 | [diff] [blame^] | 14 | scoped_ptr<base::Environment> env(base::Environment::Create()); |
tfarina@chromium.org | ad52d0d | 2010-07-08 12:19:08 +0900 | [diff] [blame] | 15 | std::string env_value; |
| 16 | EXPECT_TRUE(env->GetEnv("PATH", &env_value)); |
| 17 | EXPECT_NE(env_value, ""); |
| 18 | } |
| 19 | |
tfarina@chromium.org | 6d36c5d | 2010-08-03 12:00:50 +0900 | [diff] [blame^] | 20 | TEST_F(EnvironmentTest, HasEnvVar) { |
tfarina@chromium.org | ad52d0d | 2010-07-08 12:19:08 +0900 | [diff] [blame] | 21 | // Every setup should have PATH... |
tfarina@chromium.org | 6d36c5d | 2010-08-03 12:00:50 +0900 | [diff] [blame^] | 22 | scoped_ptr<base::Environment> env(base::Environment::Create()); |
tfarina@chromium.org | ad52d0d | 2010-07-08 12:19:08 +0900 | [diff] [blame] | 23 | EXPECT_TRUE(env->HasEnv("PATH")); |
| 24 | } |
tfarina@chromium.org | 9731c9c | 2010-07-10 08:31:21 +0900 | [diff] [blame] | 25 | |
tfarina@chromium.org | 6d36c5d | 2010-08-03 12:00:50 +0900 | [diff] [blame^] | 26 | TEST_F(EnvironmentTest, SetEnvVar) { |
| 27 | scoped_ptr<base::Environment> env(base::Environment::Create()); |
tfarina@chromium.org | a512265 | 2010-08-01 01:55:40 +0900 | [diff] [blame] | 28 | |
tfarina@chromium.org | 9731c9c | 2010-07-10 08:31:21 +0900 | [diff] [blame] | 29 | const char kFooUpper[] = "FOO"; |
| 30 | const char kFooLower[] = "foo"; |
tfarina@chromium.org | a5d6f66 | 2010-07-16 12:34:25 +0900 | [diff] [blame] | 31 | EXPECT_TRUE(env->SetEnv(kFooUpper, kFooLower)); |
tfarina@chromium.org | 9731c9c | 2010-07-10 08:31:21 +0900 | [diff] [blame] | 32 | |
| 33 | // Now verify that the environment has the new variable. |
| 34 | EXPECT_TRUE(env->HasEnv(kFooUpper)); |
| 35 | |
| 36 | std::string var_value; |
| 37 | EXPECT_TRUE(env->GetEnv(kFooUpper, &var_value)); |
| 38 | EXPECT_EQ(var_value, kFooLower); |
| 39 | } |
tfarina@chromium.org | a512265 | 2010-08-01 01:55:40 +0900 | [diff] [blame] | 40 | |
tfarina@chromium.org | 6d36c5d | 2010-08-03 12:00:50 +0900 | [diff] [blame^] | 41 | TEST_F(EnvironmentTest, UnSetEnvVar) { |
| 42 | scoped_ptr<base::Environment> env(base::Environment::Create()); |
tfarina@chromium.org | a512265 | 2010-08-01 01:55:40 +0900 | [diff] [blame] | 43 | |
| 44 | const char kFooUpper[] = "FOO"; |
| 45 | const char kFooLower[] = "foo"; |
| 46 | // First set some environment variable. |
| 47 | EXPECT_TRUE(env->SetEnv(kFooUpper, kFooLower)); |
| 48 | |
| 49 | // Now verify that the environment has the new variable. |
| 50 | EXPECT_TRUE(env->HasEnv(kFooUpper)); |
| 51 | |
| 52 | // Finally verify that the environment variable was erased. |
| 53 | EXPECT_TRUE(env->UnSetEnv(kFooUpper)); |
| 54 | |
| 55 | // And check that the variable has been unset. |
| 56 | EXPECT_FALSE(env->HasEnv(kFooUpper)); |
| 57 | } |