1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224
|
//
// EnvironmentTest.cs - NUnit Test Cases for Environment
//
// Author:
// Sebastien Pouliot <sebastien@ximian.com>
//
// (C) 2004-2005 Novell (http://www.novell.com)
//
using System;
using System.Collections;
using NUnit.Framework;
namespace MonoTests.System
{
[TestFixture]
public class EnvironmentTest
{
private void ExpandEquals (string toExpand, string toMatch)
{
string expanded = Environment.ExpandEnvironmentVariables (toExpand);
Assert.AreEqual (toMatch, expanded, "ExpandEnvironmentVariables(" + toExpand + ").Match");
}
private void ExpandStartsEnds (string toExpand, string start, string end)
{
string expanded = Environment.ExpandEnvironmentVariables (toExpand);
Assert.IsTrue (expanded.StartsWith (start), "ExpandEnvironmentVariables(" + toExpand + ").Start");
Assert.IsTrue (expanded.EndsWith (end), "ExpandEnvironmentVariables(" + toExpand + ").End");
}
private void ExpandDifferent (string toExpand)
{
string expanded = Environment.ExpandEnvironmentVariables (toExpand);
Assert.IsFalse ((toExpand == expanded), "ExpandEnvironmentVariables(" + toExpand + ").Different");
}
[Test]
public void ExpandEnvironmentVariables_UnknownVariable ()
{
ExpandEquals ("Hello %UNKNOWN_ENV_VAR% :-)", "Hello %UNKNOWN_ENV_VAR% :-)");
}
[Test]
public void ExpandEnvironmentVariables_KnownVariable ()
{
ExpandStartsEnds ("Path %PATH% :-)", "Path ", " :-)");
}
[Test]
public void ExpandEnvironmentVariables_NotVariable ()
{
ExpandEquals ("100% :-)", "100% :-)");
}
[Test]
public void ExpandEnvironmentVariables_Alone ()
{
ExpandDifferent ("%PATH%");
}
[Test]
public void ExpandEnvironmentVariables_End ()
{
ExpandStartsEnds ("Hello %PATH%", "Hello ", "");
}
[Test]
public void ExpandEnvironmentVariables_None ()
{
ExpandEquals ("Hello Mono", "Hello Mono");
}
[Test]
public void ExpandEnvironmentVariables_EmptyVariable ()
{
ExpandEquals ("Hello %% Mono", "Hello %% Mono");
}
[Test]
public void ExpandEnvironmentVariables_Double ()
{
ExpandDifferent ("%PATH%%PATH%");
string path = Environment.GetEnvironmentVariable ("PATH");
if (path != null) {
string expanded = Environment.ExpandEnvironmentVariables ("%PATH%%PATH%");
Assert.AreEqual (path + path, expanded, "#01");
}
}
[Test]
public void ExpandEnvironmentVariables_ComplexExpandable ()
{
ExpandStartsEnds ("Hello %%%PATH%%%", "Hello %%", "%%");
}
[Test]
public void ExpandEnvironmentVariables_ExpandableAndNonExpandable ()
{
string path = Environment.GetEnvironmentVariable ("PATH");
string expanded=Environment.ExpandEnvironmentVariables("%PATH% PATH%");
Assert.AreEqual (path + " PATH%", expanded);
}
[Test]
public void ExpandEnvironmentVariables_ExpandableWithTrailingPercent ()
{
string path = Environment.GetEnvironmentVariable ("PATH");
string expanded=Environment.ExpandEnvironmentVariables("%PATH% %");
Assert.AreEqual (path+" %",expanded);
}
[Test]
public void ExpandEnvironmentVariables_ComplexExpandable2 ()
{
ExpandStartsEnds ("Hello %%PATH%%%", "Hello %", "%%");
}
[Test]
public void GetEnvironmentVariables ()
{
IDictionary d = Environment.GetEnvironmentVariables ();
Assert.IsTrue ((d is Hashtable), "Hashtable");
Assert.IsFalse (d.IsFixedSize, "IsFixedSize");
Assert.IsFalse (d.IsReadOnly, "IsReadOnly");
Assert.IsFalse (d.IsSynchronized, "IsSynchronized");
}
#if NET_2_0 && !TARGET_JVM
[Test] // bug #333740
public void GetEnvironmentVariables_NewlySet ()
{
Environment.SetEnvironmentVariable ("MonoTestVariable", "TestValue");
IDictionary d = Environment.GetEnvironmentVariables ();
Assert.AreEqual ("TestValue", d ["MonoTestVariable"], "#1");
Environment.SetEnvironmentVariable ("MonoTestVariable", string.Empty);
Assert.AreEqual ("TestValue", d ["MonoTestVariable"], "#2");
d = Environment.GetEnvironmentVariables ();
Assert.IsNull (d ["MonoTestVariable"], "#3");
}
#endif
[Test]
public void GetCommandLineArgs ()
{
string[] args = Environment.GetCommandLineArgs ();
Assert.IsNotNull (args, "not null");
Assert.IsTrue (((args.Length > 0) && (args.Length < 256)), "reasonable");
Assert.IsNotNull (args [0], "application");
}
#if NET_2_0
[Test]
[ExpectedException (typeof (ArgumentException))]
public void GetEnvironmentVariable_Target_Invalid ()
{
Environment.GetEnvironmentVariable ("MONO", (EnvironmentVariableTarget)Int32.MinValue);
}
[Test]
[ExpectedException (typeof (ArgumentException))]
public void GetEnvironmentVariables_Target_Invalid ()
{
Environment.GetEnvironmentVariables ((EnvironmentVariableTarget)Int32.MinValue);
}
#if !TARGET_JVM // Environment.SetEnvironmentVariable not supported under TARGET_JVM
[Test]
[ExpectedException (typeof (ArgumentException))]
public void SetEnvironmentVariable_Target_Invalid ()
{
Environment.SetEnvironmentVariable ("MONO", "GO", (EnvironmentVariableTarget)Int32.MinValue);
}
[Test]
[ExpectedException (typeof (ArgumentNullException))]
public void SetEnvironmentVariable_Name_Null ()
{
Environment.SetEnvironmentVariable (null, "A");
}
[Test]
[ExpectedException (typeof (ArgumentException))]
public void SetEnvironmentVariable_Name_Empty ()
{
Environment.SetEnvironmentVariable ("", "A");
}
[Test]
[ExpectedException (typeof (ArgumentException))]
public void SetEnvironmentVariable_Name_ZeroChar ()
{
Environment.SetEnvironmentVariable ("\0", "A");
}
[Test]
public void SetEnvironmentVariable ()
{
// Test set
Environment.SetEnvironmentVariable ("A1", "B1");
Environment.SetEnvironmentVariable ("A2", "B2");
Environment.SetEnvironmentVariable ("A3", "B3");
Assert.AreEqual (Environment.GetEnvironmentVariable ("A1"), "B1");
Assert.AreEqual (Environment.GetEnvironmentVariable ("A2"), "B2");
Assert.AreEqual (Environment.GetEnvironmentVariable ("A3"), "B3");
// Test update
Environment.SetEnvironmentVariable ("A3", "B4");
Assert.AreEqual (Environment.GetEnvironmentVariable ("A3"), "B4");
// Test delete
Environment.SetEnvironmentVariable ("A1", null);
Assert.IsNull (Environment.GetEnvironmentVariables ()["A1"]);
Environment.SetEnvironmentVariable ("A2", "");
Assert.IsNull (Environment.GetEnvironmentVariables ()["A2"]);
Environment.SetEnvironmentVariable ("A3", "\0");
Assert.IsNull (Environment.GetEnvironmentVariables ()["A3"]);
}
#endif // TARGET_JVM
#endif
}
}
|