Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2794)

Unified Diff: base/environment_unittest.cc

Issue 22750002: Move AlterEnvironment to base/environment.h, implement on Windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add out-of-line constructor. Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/environment_unittest.cc
diff --git a/base/environment_unittest.cc b/base/environment_unittest.cc
index b6654c99f4ea29346c1798ab5001618f1bc0c55e..cdfee163203c5c07e8eada32e47f16615b1fb7d8 100644
--- a/base/environment_unittest.cc
+++ b/base/environment_unittest.cc
@@ -9,16 +9,18 @@
typedef PlatformTest EnvironmentTest;
+namespace base {
+
TEST_F(EnvironmentTest, GetVar) {
// Every setup should have non-empty PATH...
- scoped_ptr<base::Environment> env(base::Environment::Create());
+ scoped_ptr<Environment> env(Environment::Create());
std::string env_value;
EXPECT_TRUE(env->GetVar("PATH", &env_value));
EXPECT_NE(env_value, "");
}
TEST_F(EnvironmentTest, GetVarReverse) {
- scoped_ptr<base::Environment> env(base::Environment::Create());
+ scoped_ptr<Environment> env(Environment::Create());
const char* kFooUpper = "FOO";
const char* kFooLower = "foo";
@@ -47,12 +49,12 @@ TEST_F(EnvironmentTest, GetVarReverse) {
TEST_F(EnvironmentTest, HasVar) {
// Every setup should have PATH...
- scoped_ptr<base::Environment> env(base::Environment::Create());
+ scoped_ptr<Environment> env(Environment::Create());
EXPECT_TRUE(env->HasVar("PATH"));
}
TEST_F(EnvironmentTest, SetVar) {
- scoped_ptr<base::Environment> env(base::Environment::Create());
+ scoped_ptr<Environment> env(Environment::Create());
const char* kFooUpper = "FOO";
const char* kFooLower = "foo";
@@ -67,7 +69,7 @@ TEST_F(EnvironmentTest, SetVar) {
}
TEST_F(EnvironmentTest, UnSetVar) {
- scoped_ptr<base::Environment> env(base::Environment::Create());
+ scoped_ptr<Environment> env(Environment::Create());
const char* kFooUpper = "FOO";
const char* kFooLower = "foo";
@@ -83,3 +85,80 @@ TEST_F(EnvironmentTest, UnSetVar) {
// And check that the variable has been unset.
EXPECT_FALSE(env->HasVar(kFooUpper));
}
+
+#if defined(OS_WIN)
+
+TEST_F(EnvironmentTest, AlterEnvironment) {
+ const wchar_t empty[] = L"\0";
+ const wchar_t a2[] = L"A=2\0";
+ EnvironmentMap changes;
+ string16 e;
+
+ e = AlterEnvironment(empty, changes).Pass();
+ EXPECT_TRUE(e[0] == 0);
+
+ changes["A"] = "1";
+ e = AlterEnvironment(empty, changes);
+ EXPECT_EQ(string16(L"A=1\0\0", 5), e);
+
+ changes.clear();
+ changes["A"] = std::string();
+ e = AlterEnvironment(empty, changes);
+ EXPECT_TRUE(string16(L"\0\0", 2), e);
+
+ changes.clear();
+ e = AlterEnvironment(a2, changes);
+ EXPECT_EQ(string16("A=2\0\0", 5), e);
+
+ changes.clear();
+ changes["A"] = "1";
+ e = AlterEnvironment(a2, changes);
+ EXPECT_EQ(string16(L"A=1\0\0", 5), e);
+
+ changes.clear();
+ changes["A"] = std::string();
+ e = AlterEnvironment(a2, changes);
+ EXPECT_TRUE(string16(L"\0\0", 2), e);
+}
+
+#else
+
+TEST_F(EnvironmentTest, AlterEnvironment) {
+ const char* const empty[] = { NULL };
+ const char* const a2[] = { "A=2", NULL };
+ EnvironmentMap changes;
+ scoped_ptr<char*[]> e;
+
+ e = AlterEnvironment(empty, changes).Pass();
+ EXPECT_TRUE(e[0] == NULL);
+
+ changes["A"] = "1";
+ e = AlterEnvironment(empty, changes);
+ EXPECT_EQ(std::string("A=1"), e[0]);
+ EXPECT_TRUE(e[1] == NULL);
+
+ changes.clear();
+ changes["A"] = std::string();
+ e = AlterEnvironment(empty, changes);
+ EXPECT_TRUE(e[0] == NULL);
+
+ changes.clear();
+ e = AlterEnvironment(a2, changes);
+ EXPECT_EQ(std::string("A=2"), e[0]);
+ EXPECT_TRUE(e[1] == NULL);
+
+ changes.clear();
+ changes["A"] = "1";
+ e = AlterEnvironment(a2, changes);
+ EXPECT_EQ(std::string("A=1"), e[0]);
+ EXPECT_TRUE(e[1] == NULL);
+
+ changes.clear();
+ changes["A"] = std::string();
+ e = AlterEnvironment(a2, changes);
+ EXPECT_TRUE(e[0] == NULL);
+}
+
+#endif
+
+} // namespace base
« base/environment.cc ('K') | « base/environment.cc ('k') | base/process/launch.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698