PageRenderTime 82ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/example/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java

https://bitbucket.org/Ranmanli/prfl
Java | 376 lines | 323 code | 16 blank | 37 comment | 36 complexity | 697c82b7f6736e01ba4d580efb2e8299 MD5 | raw file
  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 org.junit.Test;
  21. import static org.junit.Assert.*;
  22. import static org.apache.commons.lang3.JavaVersion.JAVA_1_4;
  23. import java.io.File;
  24. import java.lang.reflect.Constructor;
  25. import java.lang.reflect.Modifier;
  26. import java.util.Locale;
  27. import junit.framework.Assert;
  28. /**
  29. * Unit tests {@link org.apache.commons.lang3.SystemUtils}.
  30. *
  31. * Only limited testing can be performed.
  32. *
  33. * @version $Id$
  34. */
  35. public class SystemUtilsTest {
  36. @Test
  37. public void testConstructor() {
  38. assertNotNull(new SystemUtils());
  39. Constructor<?>[] cons = SystemUtils.class.getDeclaredConstructors();
  40. assertEquals(1, cons.length);
  41. assertTrue(Modifier.isPublic(cons[0].getModifiers()));
  42. assertTrue(Modifier.isPublic(SystemUtils.class.getModifiers()));
  43. assertFalse(Modifier.isFinal(SystemUtils.class.getModifiers()));
  44. }
  45. /**
  46. * Assums no security manager exists.
  47. */
  48. @Test
  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. @Test
  58. public void testGetJavaIoTmpDir() {
  59. File dir = SystemUtils.getJavaIoTmpDir();
  60. Assert.assertNotNull(dir);
  61. Assert.assertTrue(dir.exists());
  62. }
  63. /**
  64. * Assums no security manager exists.
  65. */
  66. @Test
  67. public void testGetUserDir() {
  68. File dir = SystemUtils.getUserDir();
  69. Assert.assertNotNull(dir);
  70. Assert.assertTrue(dir.exists());
  71. }
  72. /**
  73. * Assums no security manager exists.
  74. */
  75. @Test
  76. public void testGetUserHome() {
  77. File dir = SystemUtils.getUserHome();
  78. Assert.assertNotNull(dir);
  79. Assert.assertTrue(dir.exists());
  80. }
  81. @Test
  82. public void testIS_JAVA() {
  83. String javaVersion = System.getProperty("java.version");
  84. if (javaVersion == null) {
  85. assertFalse(SystemUtils.IS_JAVA_1_1);
  86. assertFalse(SystemUtils.IS_JAVA_1_2);
  87. assertFalse(SystemUtils.IS_JAVA_1_3);
  88. assertFalse(SystemUtils.IS_JAVA_1_4);
  89. assertFalse(SystemUtils.IS_JAVA_1_5);
  90. assertFalse(SystemUtils.IS_JAVA_1_6);
  91. assertFalse(SystemUtils.IS_JAVA_1_7);
  92. } else if (javaVersion.startsWith("1.1")) {
  93. assertTrue(SystemUtils.IS_JAVA_1_1);
  94. assertFalse(SystemUtils.IS_JAVA_1_2);
  95. assertFalse(SystemUtils.IS_JAVA_1_3);
  96. assertFalse(SystemUtils.IS_JAVA_1_4);
  97. assertFalse(SystemUtils.IS_JAVA_1_5);
  98. assertFalse(SystemUtils.IS_JAVA_1_6);
  99. assertFalse(SystemUtils.IS_JAVA_1_7);
  100. } else if (javaVersion.startsWith("1.2")) {
  101. assertFalse(SystemUtils.IS_JAVA_1_1);
  102. assertTrue(SystemUtils.IS_JAVA_1_2);
  103. assertFalse(SystemUtils.IS_JAVA_1_3);
  104. assertFalse(SystemUtils.IS_JAVA_1_4);
  105. assertFalse(SystemUtils.IS_JAVA_1_5);
  106. assertFalse(SystemUtils.IS_JAVA_1_6);
  107. assertFalse(SystemUtils.IS_JAVA_1_7);
  108. } else if (javaVersion.startsWith("1.3")) {
  109. assertFalse(SystemUtils.IS_JAVA_1_1);
  110. assertFalse(SystemUtils.IS_JAVA_1_2);
  111. assertTrue(SystemUtils.IS_JAVA_1_3);
  112. assertFalse(SystemUtils.IS_JAVA_1_4);
  113. assertFalse(SystemUtils.IS_JAVA_1_5);
  114. assertFalse(SystemUtils.IS_JAVA_1_6);
  115. assertFalse(SystemUtils.IS_JAVA_1_7);
  116. } else if (javaVersion.startsWith("1.4")) {
  117. assertFalse(SystemUtils.IS_JAVA_1_1);
  118. assertFalse(SystemUtils.IS_JAVA_1_2);
  119. assertFalse(SystemUtils.IS_JAVA_1_3);
  120. assertTrue(SystemUtils.IS_JAVA_1_4);
  121. assertFalse(SystemUtils.IS_JAVA_1_5);
  122. assertFalse(SystemUtils.IS_JAVA_1_6);
  123. assertFalse(SystemUtils.IS_JAVA_1_7);
  124. } else if (javaVersion.startsWith("1.5")) {
  125. assertFalse(SystemUtils.IS_JAVA_1_1);
  126. assertFalse(SystemUtils.IS_JAVA_1_2);
  127. assertFalse(SystemUtils.IS_JAVA_1_3);
  128. assertFalse(SystemUtils.IS_JAVA_1_4);
  129. assertTrue(SystemUtils.IS_JAVA_1_5);
  130. assertFalse(SystemUtils.IS_JAVA_1_6);
  131. assertFalse(SystemUtils.IS_JAVA_1_7);
  132. } else if (javaVersion.startsWith("1.6")) {
  133. assertFalse(SystemUtils.IS_JAVA_1_1);
  134. assertFalse(SystemUtils.IS_JAVA_1_2);
  135. assertFalse(SystemUtils.IS_JAVA_1_3);
  136. assertFalse(SystemUtils.IS_JAVA_1_4);
  137. assertFalse(SystemUtils.IS_JAVA_1_5);
  138. assertTrue(SystemUtils.IS_JAVA_1_6);
  139. assertFalse(SystemUtils.IS_JAVA_1_7);
  140. } else {
  141. System.out.println("Can't test IS_JAVA value: "+javaVersion);
  142. }
  143. }
  144. @Test
  145. public void testIS_OS() {
  146. String osName = System.getProperty("os.name");
  147. if (osName == null) {
  148. assertFalse(SystemUtils.IS_OS_WINDOWS);
  149. assertFalse(SystemUtils.IS_OS_UNIX);
  150. assertFalse(SystemUtils.IS_OS_SOLARIS);
  151. assertFalse(SystemUtils.IS_OS_LINUX);
  152. assertFalse(SystemUtils.IS_OS_MAC_OSX);
  153. } else if (osName.startsWith("Windows")) {
  154. assertFalse(SystemUtils.IS_OS_UNIX);
  155. assertTrue(SystemUtils.IS_OS_WINDOWS);
  156. } else if (osName.startsWith("Solaris")) {
  157. assertTrue(SystemUtils.IS_OS_SOLARIS);
  158. assertTrue(SystemUtils.IS_OS_UNIX);
  159. assertFalse(SystemUtils.IS_OS_WINDOWS);
  160. } else if (osName.toLowerCase(Locale.ENGLISH).startsWith("linux")) {
  161. assertTrue(SystemUtils.IS_OS_LINUX);
  162. assertTrue(SystemUtils.IS_OS_UNIX);
  163. assertFalse(SystemUtils.IS_OS_WINDOWS);
  164. } else if (osName.startsWith("Mac OS X")) {
  165. assertTrue(SystemUtils.IS_OS_MAC_OSX);
  166. assertTrue(SystemUtils.IS_OS_UNIX);
  167. assertFalse(SystemUtils.IS_OS_WINDOWS);
  168. } else if (osName.startsWith("OS/2")) {
  169. assertTrue(SystemUtils.IS_OS_OS2);
  170. assertFalse(SystemUtils.IS_OS_UNIX);
  171. assertFalse(SystemUtils.IS_OS_WINDOWS);
  172. } else if (osName.startsWith("SunOS")) {
  173. assertTrue(SystemUtils.IS_OS_SUN_OS);
  174. assertTrue(SystemUtils.IS_OS_UNIX);
  175. assertFalse(SystemUtils.IS_OS_WINDOWS);
  176. } else if (osName.startsWith("FreeBSD")) {
  177. assertTrue(SystemUtils.IS_OS_FREE_BSD);
  178. assertTrue(SystemUtils.IS_OS_UNIX);
  179. assertFalse(SystemUtils.IS_OS_WINDOWS);
  180. } else {
  181. System.out.println("Can't test IS_OS value: "+osName);
  182. }
  183. }
  184. @Test
  185. public void testJavaVersionMatches() {
  186. String javaVersion = null;
  187. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  188. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  189. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  190. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  191. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  192. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  193. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  194. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  195. javaVersion = "";
  196. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  197. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  198. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  199. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  200. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  201. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  202. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  203. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  204. javaVersion = "1.0";
  205. assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  206. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  207. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  208. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  209. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  210. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  211. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  212. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  213. javaVersion = "1.1";
  214. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  215. assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  216. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  217. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  218. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  219. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  220. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  221. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  222. javaVersion = "1.2";
  223. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  224. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  225. assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  226. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  227. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  228. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  229. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  230. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  231. javaVersion = "1.3.0";
  232. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  233. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  234. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  235. assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  236. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  237. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  238. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  239. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  240. javaVersion = "1.3.1";
  241. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  242. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  243. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  244. assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  245. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  246. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  247. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  248. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  249. javaVersion = "1.4.0";
  250. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  251. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  252. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  253. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  254. assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  255. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  256. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  257. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  258. javaVersion = "1.4.1";
  259. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  260. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  261. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  262. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  263. assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  264. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  265. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  266. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  267. javaVersion = "1.4.2";
  268. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  269. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  270. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  271. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  272. assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  273. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  274. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  275. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  276. javaVersion = "1.5.0";
  277. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  278. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  279. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  280. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  281. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  282. assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  283. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  284. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  285. javaVersion = "1.6.0";
  286. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  287. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  288. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  289. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  290. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  291. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  292. assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  293. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  294. javaVersion = "1.7.0";
  295. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
  296. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
  297. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
  298. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
  299. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
  300. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
  301. assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
  302. assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
  303. }
  304. @Test
  305. public void testOSMatchesName() {
  306. String osName = null;
  307. assertFalse(SystemUtils.isOSNameMatch(osName, "Windows"));
  308. osName = "";
  309. assertFalse(SystemUtils.isOSNameMatch(osName, "Windows"));
  310. osName = "Windows 95";
  311. assertTrue(SystemUtils.isOSNameMatch(osName, "Windows"));
  312. osName = "Windows NT";
  313. assertTrue(SystemUtils.isOSNameMatch(osName, "Windows"));
  314. osName = "OS/2";
  315. assertFalse(SystemUtils.isOSNameMatch(osName, "Windows"));
  316. }
  317. @Test
  318. public void testOSMatchesNameAndVersion() {
  319. String osName = null;
  320. String osVersion = null;
  321. assertFalse(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
  322. osName = "";
  323. osVersion = "";
  324. assertFalse(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
  325. osName = "Windows 95";
  326. osVersion = "4.0";
  327. assertFalse(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
  328. osName = "Windows 95";
  329. osVersion = "4.1";
  330. assertTrue(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
  331. osName = "Windows 98";
  332. osVersion = "4.1";
  333. assertTrue(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
  334. osName = "Windows NT";
  335. osVersion = "4.0";
  336. assertFalse(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
  337. osName = "OS/2";
  338. osVersion = "4.0";
  339. assertFalse(SystemUtils.isOSMatch(osName, osVersion, "Windows 9", "4.1"));
  340. }
  341. @Test
  342. public void testJavaAwtHeadless() {
  343. boolean atLeastJava14 = SystemUtils.isJavaVersionAtLeast(JAVA_1_4);
  344. String expectedStringValue = System.getProperty("java.awt.headless");
  345. String expectedStringValueWithDefault = System.getProperty("java.awt.headless", "false");
  346. assertNotNull(expectedStringValueWithDefault);
  347. if (atLeastJava14) {
  348. boolean expectedValue = Boolean.valueOf(expectedStringValue).booleanValue();
  349. if (expectedStringValue != null) {
  350. assertEquals(expectedStringValue, SystemUtils.JAVA_AWT_HEADLESS);
  351. }
  352. assertEquals(expectedValue, SystemUtils.isJavaAwtHeadless());
  353. } else {
  354. assertNull(expectedStringValue);
  355. assertNull(SystemUtils.JAVA_AWT_HEADLESS);
  356. assertEquals(expectedStringValueWithDefault, "" + SystemUtils.isJavaAwtHeadless());
  357. }
  358. assertEquals(expectedStringValueWithDefault, "" + SystemUtils.isJavaAwtHeadless());
  359. }
  360. }