PageRenderTime 27ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/commons-lang3-3.1-src/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java

#
Java | 364 lines | 310 code | 17 blank | 37 comment | 34 complexity | 414cad5795b273477101edc7f94c7e1c MD5 | raw file
Possible License(s): Apache-2.0
  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing,
  13. * software distributed under the License is distributed on an
  14. * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15. * KIND, either express or implied. See the License for the
  16. * specific language governing permissions and limitations
  17. * under the License.
  18. */
  19. package org.apache.commons.lang3;
  20. import static org.apache.commons.lang3.JavaVersion.JAVA_1_4;
  21. import java.io.File;
  22. import java.lang.reflect.Constructor;
  23. import java.lang.reflect.Modifier;
  24. import java.util.Locale;
  25. import junit.framework.Assert;
  26. import junit.framework.TestCase;
  27. /**
  28. * Unit tests {@link org.apache.commons.lang3.SystemUtils}.
  29. *
  30. * Only limited testing can be performed.
  31. *
  32. * @version $Id: SystemUtilsTest.java 1144929 2011-07-10 18:26:16Z ggregory $
  33. */
  34. public class SystemUtilsTest extends TestCase {
  35. public SystemUtilsTest(String name) {
  36. super(name);
  37. }
  38. public void testConstructor() {
  39. assertNotNull(new SystemUtils());
  40. Constructor<?>[] cons = SystemUtils.class.getDeclaredConstructors();
  41. assertEquals(1, cons.length);
  42. assertEquals(true, Modifier.isPublic(cons[0].getModifiers()));
  43. assertEquals(true, Modifier.isPublic(SystemUtils.class.getModifiers()));
  44. assertEquals(false, Modifier.isFinal(SystemUtils.class.getModifiers()));
  45. }
  46. /**
  47. * Assums no security manager exists.
  48. */
  49. public void testGetJavaHome() {
  50. File dir = SystemUtils.getJavaHome();
  51. Assert.assertNotNull(dir);
  52. Assert.assertTrue(dir.exists());
  53. }
  54. /**
  55. * Assums no security manager exists.
  56. */
  57. public void testGetJavaIoTmpDir() {
  58. File dir = SystemUtils.getJavaIoTmpDir();
  59. Assert.assertNotNull(dir);
  60. Assert.assertTrue(dir.exists());
  61. }
  62. /**
  63. * Assums no security manager exists.
  64. */
  65. public void testGetUserDir() {
  66. File dir = SystemUtils.getUserDir();
  67. Assert.assertNotNull(dir);
  68. Assert.assertTrue(dir.exists());
  69. }
  70. /**
  71. * Assums no security manager exists.
  72. */
  73. public void testGetUserHome() {
  74. File dir = SystemUtils.getUserHome();
  75. Assert.assertNotNull(dir);
  76. Assert.assertTrue(dir.exists());
  77. }
  78. public void testIS_JAVA() {
  79. String javaVersion = System.getProperty("java.version");
  80. if (javaVersion == null) {
  81. assertEquals(false, SystemUtils.IS_JAVA_1_1);
  82. assertEquals(false, SystemUtils.IS_JAVA_1_2);
  83. assertEquals(false, SystemUtils.IS_JAVA_1_3);
  84. assertEquals(false, SystemUtils.IS_JAVA_1_4);
  85. assertEquals(false, SystemUtils.IS_JAVA_1_5);
  86. assertEquals(false, SystemUtils.IS_JAVA_1_6);
  87. assertEquals(false, SystemUtils.IS_JAVA_1_7);
  88. } else if (javaVersion.startsWith("1.1")) {
  89. assertEquals(true, SystemUtils.IS_JAVA_1_1);
  90. assertEquals(false, SystemUtils.IS_JAVA_1_2);
  91. assertEquals(false, SystemUtils.IS_JAVA_1_3);
  92. assertEquals(false, SystemUtils.IS_JAVA_1_4);
  93. assertEquals(false, SystemUtils.IS_JAVA_1_5);
  94. assertEquals(false, SystemUtils.IS_JAVA_1_6);
  95. assertEquals(false, SystemUtils.IS_JAVA_1_7);
  96. } else if (javaVersion.startsWith("1.2")) {
  97. assertEquals(false, SystemUtils.IS_JAVA_1_1);
  98. assertEquals(true, SystemUtils.IS_JAVA_1_2);
  99. assertEquals(false, SystemUtils.IS_JAVA_1_3);
  100. assertEquals(false, SystemUtils.IS_JAVA_1_4);
  101. assertEquals(false, SystemUtils.IS_JAVA_1_5);
  102. assertEquals(false, SystemUtils.IS_JAVA_1_6);
  103. assertEquals(false, SystemUtils.IS_JAVA_1_7);
  104. } else if (javaVersion.startsWith("1.3")) {
  105. assertEquals(false, SystemUtils.IS_JAVA_1_1);
  106. assertEquals(false, SystemUtils.IS_JAVA_1_2);
  107. assertEquals(true, SystemUtils.IS_JAVA_1_3);
  108. assertEquals(false, SystemUtils.IS_JAVA_1_4);
  109. assertEquals(false, SystemUtils.IS_JAVA_1_5);
  110. assertEquals(false, SystemUtils.IS_JAVA_1_6);
  111. assertEquals(false, SystemUtils.IS_JAVA_1_7);
  112. } else if (javaVersion.startsWith("1.4")) {
  113. assertEquals(false, SystemUtils.IS_JAVA_1_1);
  114. assertEquals(false, SystemUtils.IS_JAVA_1_2);
  115. assertEquals(false, SystemUtils.IS_JAVA_1_3);
  116. assertEquals(true, SystemUtils.IS_JAVA_1_4);
  117. assertEquals(false, SystemUtils.IS_JAVA_1_5);
  118. assertEquals(false, SystemUtils.IS_JAVA_1_6);
  119. assertEquals(false, SystemUtils.IS_JAVA_1_7);
  120. } else if (javaVersion.startsWith("1.5")) {
  121. assertEquals(false, SystemUtils.IS_JAVA_1_1);
  122. assertEquals(false, SystemUtils.IS_JAVA_1_2);
  123. assertEquals(false, SystemUtils.IS_JAVA_1_3);
  124. assertEquals(false, SystemUtils.IS_JAVA_1_4);
  125. assertEquals(true, SystemUtils.IS_JAVA_1_5);
  126. assertEquals(false, SystemUtils.IS_JAVA_1_6);
  127. assertEquals(false, SystemUtils.IS_JAVA_1_7);
  128. } else if (javaVersion.startsWith("1.6")) {
  129. assertEquals(false, SystemUtils.IS_JAVA_1_1);
  130. assertEquals(false, SystemUtils.IS_JAVA_1_2);
  131. assertEquals(false, SystemUtils.IS_JAVA_1_3);
  132. assertEquals(false, SystemUtils.IS_JAVA_1_4);
  133. assertEquals(false, SystemUtils.IS_JAVA_1_5);
  134. assertEquals(true, SystemUtils.IS_JAVA_1_6);
  135. assertEquals(false, SystemUtils.IS_JAVA_1_7);
  136. } else {
  137. System.out.println("Can't test IS_JAVA value");
  138. }
  139. }
  140. public void testIS_OS() {
  141. String osName = System.getProperty("os.name");
  142. if (osName == null) {
  143. assertEquals(false, SystemUtils.IS_OS_WINDOWS);
  144. assertEquals(false, SystemUtils.IS_OS_UNIX);
  145. assertEquals(false, SystemUtils.IS_OS_SOLARIS);
  146. assertEquals(false, SystemUtils.IS_OS_LINUX);
  147. assertEquals(false, SystemUtils.IS_OS_MAC_OSX);
  148. } else if (osName.startsWith("Windows")) {
  149. assertEquals(false, SystemUtils.IS_OS_UNIX);
  150. assertEquals(true, SystemUtils.IS_OS_WINDOWS);
  151. } else if (osName.startsWith("Solaris")) {
  152. assertEquals(true, SystemUtils.IS_OS_SOLARIS);
  153. assertEquals(true, SystemUtils.IS_OS_UNIX);
  154. assertEquals(false, SystemUtils.IS_OS_WINDOWS);
  155. } else if (osName.toLowerCase(Locale.ENGLISH).startsWith("linux")) {
  156. assertEquals(true, SystemUtils.IS_OS_LINUX);
  157. assertEquals(true, SystemUtils.IS_OS_UNIX);
  158. assertEquals(false, SystemUtils.IS_OS_WINDOWS);
  159. } else if (osName.startsWith("Mac OS X")) {
  160. assertEquals(true, SystemUtils.IS_OS_MAC_OSX);
  161. assertEquals(true, SystemUtils.IS_OS_UNIX);
  162. assertEquals(false, SystemUtils.IS_OS_WINDOWS);
  163. } else if (osName.startsWith("OS/2")) {
  164. assertEquals(true, SystemUtils.IS_OS_OS2);
  165. assertEquals(false, SystemUtils.IS_OS_UNIX);
  166. assertEquals(false, SystemUtils.IS_OS_WINDOWS);
  167. } else if (osName.startsWith("SunOS")) {
  168. assertEquals(true, SystemUtils.IS_OS_SUN_OS);
  169. assertEquals(true, SystemUtils.IS_OS_UNIX);
  170. assertEquals(false, SystemUtils.IS_OS_WINDOWS);
  171. } else {
  172. System.out.println("Can't test IS_OS value");
  173. }
  174. }
  175. public void testJavaVersionMatches() {
  176. String javaVersion = null;
  177. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  178. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  179. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  180. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  181. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  182. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  183. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  184. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  185. javaVersion = "";
  186. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  187. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  188. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  189. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  190. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  191. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  192. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  193. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  194. javaVersion = "1.0";
  195. assertEquals(true, SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  196. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  197. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  198. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  199. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  200. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  201. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  202. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  203. javaVersion = "1.1";
  204. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  205. assertEquals(true, SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  206. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  207. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  208. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  209. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  210. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  211. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  212. javaVersion = "1.2";
  213. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  214. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  215. assertEquals(true, SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  216. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  217. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  218. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  219. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  220. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  221. javaVersion = "1.3.0";
  222. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  223. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  224. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  225. assertEquals(true, SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  226. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  227. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  228. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  229. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  230. javaVersion = "1.3.1";
  231. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  232. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  233. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  234. assertEquals(true, SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  235. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  236. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  237. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  238. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  239. javaVersion = "1.4.0";
  240. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  241. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  242. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  243. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  244. assertEquals(true, SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  245. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  246. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  247. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  248. javaVersion = "1.4.1";
  249. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  250. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  251. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  252. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  253. assertEquals(true, SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  254. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  255. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  256. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  257. javaVersion = "1.4.2";
  258. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  259. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  260. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  261. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  262. assertEquals(true, SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  263. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  264. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  265. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  266. javaVersion = "1.5.0";
  267. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  268. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  269. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  270. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  271. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  272. assertEquals(true, SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  273. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  274. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  275. javaVersion = "1.6.0";
  276. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  277. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  278. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  279. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  280. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  281. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  282. assertEquals(true, SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  283. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  284. javaVersion = "1.7.0";
  285. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  286. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  287. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  288. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  289. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  290. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  291. assertEquals(false, SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  292. assertEquals(true, SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  293. }
  294. public void testOSMatchesName() {
  295. String osName = null;
  296. assertEquals(false, SystemUtils.isOSNameMatch(osName, "Windows"));
  297. osName = "";
  298. assertEquals(false, SystemUtils.isOSNameMatch(osName, "Windows"));
  299. osName = "Windows 95";
  300. assertEquals(true, SystemUtils.isOSNameMatch(osName, "Windows"));
  301. osName = "Windows NT";
  302. assertEquals(true, SystemUtils.isOSNameMatch(osName, "Windows"));
  303. osName = "OS/2";
  304. assertEquals(false, SystemUtils.isOSNameMatch(osName, "Windows"));
  305. }
  306. public void testOSMatchesNameAndVersion() {
  307. String osName = null;
  308. String osVersion = null;
  309. assertEquals(false, SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
  310. osName = "";
  311. osVersion = "";
  312. assertEquals(false, SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
  313. osName = "Windows 95";
  314. osVersion = "4.0";
  315. assertEquals(false, SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
  316. osName = "Windows 95";
  317. osVersion = "4.1";
  318. assertEquals(true, SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
  319. osName = "Windows 98";
  320. osVersion = "4.1";
  321. assertEquals(true, SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
  322. osName = "Windows NT";
  323. osVersion = "4.0";
  324. assertEquals(false, SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
  325. osName = "OS/2";
  326. osVersion = "4.0";
  327. assertEquals(false, SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
  328. }
  329. public void testJavaAwtHeadless() {
  330. boolean atLeastJava14 = SystemUtils.isJavaVersionAtLeast(JAVA_1_4);
  331. String expectedStringValue = System.getProperty("java.awt.headless");
  332. String expectedStringValueWithDefault = System.getProperty("java.awt.headless", "false");
  333. assertNotNull(expectedStringValueWithDefault);
  334. if (atLeastJava14) {
  335. boolean expectedValue = Boolean.valueOf(expectedStringValue).booleanValue();
  336. if (expectedStringValue != null) {
  337. assertEquals(expectedStringValue, SystemUtils.JAVA_AWT_HEADLESS);
  338. }
  339. assertEquals(expectedValue, SystemUtils.isJavaAwtHeadless());
  340. } else {
  341. assertNull(expectedStringValue);
  342. assertNull(SystemUtils.JAVA_AWT_HEADLESS);
  343. assertEquals(expectedStringValueWithDefault, "" + SystemUtils.isJavaAwtHeadless());
  344. }
  345. assertEquals(expectedStringValueWithDefault, "" + SystemUtils.isJavaAwtHeadless());
  346. }
  347. }