blob: 5b4ddc3682f5c0445ca6d3bda3de09edfa36df2e [file] [log] [blame]
tfarina@chromium.orgad52d0d2010-07-08 12:19:08 +09001// 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.org6d36c5d2010-08-03 12:00:50 +09005#include "base/environment.h"
tfarina@chromium.orgad52d0d2010-07-08 12:19:08 +09006#include "base/scoped_ptr.h"
7#include "testing/gtest/include/gtest/gtest.h"
8#include "testing/platform_test.h"
9
tfarina@chromium.org6d36c5d2010-08-03 12:00:50 +090010typedef PlatformTest EnvironmentTest;
tfarina@chromium.orgad52d0d2010-07-08 12:19:08 +090011
tfarina@chromium.org6d36c5d2010-08-03 12:00:50 +090012TEST_F(EnvironmentTest, GetEnvVar) {
tfarina@chromium.orgad52d0d2010-07-08 12:19:08 +090013 // Every setup should have non-empty PATH...
tfarina@chromium.org6d36c5d2010-08-03 12:00:50 +090014 scoped_ptr<base::Environment> env(base::Environment::Create());
tfarina@chromium.orgad52d0d2010-07-08 12:19:08 +090015 std::string env_value;
16 EXPECT_TRUE(env->GetEnv("PATH", &env_value));
17 EXPECT_NE(env_value, "");
18}
19
tfarina@chromium.org6d36c5d2010-08-03 12:00:50 +090020TEST_F(EnvironmentTest, HasEnvVar) {
tfarina@chromium.orgad52d0d2010-07-08 12:19:08 +090021 // Every setup should have PATH...
tfarina@chromium.org6d36c5d2010-08-03 12:00:50 +090022 scoped_ptr<base::Environment> env(base::Environment::Create());
tfarina@chromium.orgad52d0d2010-07-08 12:19:08 +090023 EXPECT_TRUE(env->HasEnv("PATH"));
24}
tfarina@chromium.org9731c9c2010-07-10 08:31:21 +090025
tfarina@chromium.org6d36c5d2010-08-03 12:00:50 +090026TEST_F(EnvironmentTest, SetEnvVar) {
27 scoped_ptr<base::Environment> env(base::Environment::Create());
tfarina@chromium.orga5122652010-08-01 01:55:40 +090028
tfarina@chromium.org9731c9c2010-07-10 08:31:21 +090029 const char kFooUpper[] = "FOO";
30 const char kFooLower[] = "foo";
tfarina@chromium.orga5d6f662010-07-16 12:34:25 +090031 EXPECT_TRUE(env->SetEnv(kFooUpper, kFooLower));
tfarina@chromium.org9731c9c2010-07-10 08:31:21 +090032
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.orga5122652010-08-01 01:55:40 +090040
tfarina@chromium.org6d36c5d2010-08-03 12:00:50 +090041TEST_F(EnvironmentTest, UnSetEnvVar) {
42 scoped_ptr<base::Environment> env(base::Environment::Create());
tfarina@chromium.orga5122652010-08-01 01:55:40 +090043
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}