PageRenderTime 56ms CodeModel.GetById 29ms RepoModel.GetById 0ms app.codeStats 0ms

/webui/core/src/test/java/org/exoplatform/webui/test/validator/TestWebuiValidator.java

https://github.com/anhnht/exogtn
Java | 262 lines | 214 code | 25 blank | 23 comment | 0 complexity | 66db0015226b86fca94e2faf91f3d9ec MD5 | raw file
  1. /**
  2. * Copyright (C) 2003-2011 eXo Platform SAS.
  3. *
  4. * This program is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Lesser General Public License
  6. * as published by the Free Software Foundation; either version 3
  7. * of the License, or (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with this program; if not, see<http://www.gnu.org/licenses/>.
  16. */
  17. package org.exoplatform.webui.test.validator;
  18. import java.util.List;
  19. import java.util.Locale;
  20. import junit.framework.TestCase;
  21. import org.exoplatform.webui.application.WebuiRequestContext;
  22. import org.exoplatform.webui.core.UIComponent;
  23. import org.exoplatform.webui.exception.MessageException;
  24. import org.exoplatform.webui.form.UIFormDateTimeInput;
  25. import org.exoplatform.webui.form.UIFormInput;
  26. import org.exoplatform.webui.form.validator.DateTimeValidator;
  27. import org.exoplatform.webui.form.validator.EmailAddressValidator;
  28. import org.exoplatform.webui.form.validator.IdentifierValidator;
  29. import org.exoplatform.webui.form.validator.NameValidator;
  30. import org.exoplatform.webui.form.validator.NumberFormatValidator;
  31. import org.exoplatform.webui.form.validator.PositiveNumberFormatValidator;
  32. import org.exoplatform.webui.form.validator.ResourceValidator;
  33. import org.exoplatform.webui.form.validator.SpecialCharacterValidator;
  34. import org.exoplatform.webui.form.validator.URLValidator;
  35. import org.exoplatform.webui.form.validator.UsernameValidator;
  36. import org.exoplatform.webui.form.validator.Validator;
  37. /**
  38. * @author <a href="mailto:haint@exoplatform.com">Nguyen Thanh Hai</a>
  39. *
  40. * @datSep 26, 2011
  41. */
  42. public class TestWebuiValidator extends TestCase
  43. {
  44. public void testUrlValidator()
  45. {
  46. Validator validator = new URLValidator();
  47. // Test ip address and invalidate subnet masks ip
  48. assertTrue(expected(validator, "https://192.168.1.1"));
  49. assertTrue(expected(validator, "ftp://255.255.255.1"));
  50. assertTrue(expected(validator, "ftps://255.255.0.1"));
  51. assertTrue(expected(validator, "ftp://0.0.0.0"));
  52. assertTrue(expected(validator, "http://127.0.0.1"));
  53. assertTrue(expected(validator, "https://192.168.4.90"));
  54. assertTrue(expected(validator, "https://192.168.4.90:8080"));
  55. assertTrue(expected(validator, "http://127.0.0.1:8080"));
  56. assertFalse(expected(validator, "http://127.0.0.01"));
  57. assertFalse(expected(validator, "ftp://255.255.255.255"));
  58. // Test domain name and uri
  59. assertTrue(expected(validator, "https://www.exoplatform.com"));
  60. assertTrue(expected(validator, "ftps://root:gtn@exoplatform.com"));
  61. assertTrue(expected(validator, "ftps://root@exoplatform.com"));
  62. assertTrue(expected(validator, "https://www.dev.exoplatform.com"));
  63. assertTrue(expected(validator, "https://www.dev.exoplatform.com:8888"));
  64. assertFalse(expected(validator, "https://www.dev.exoplatform.com:8888?arg=value"));
  65. assertTrue(expected(validator, "https://www.dev.exoplatform.com:8888/path?arg=value"));
  66. assertTrue(expected(validator, "https://www.dev.exoplatform.com:8888/path?arg=value#"));
  67. }
  68. public void testDateTimeValidator()
  69. {
  70. Validator validator = new DateTimeValidator();
  71. WebuiRequestContext.setCurrentInstance(new MockRequestContext(new Locale("fr")));
  72. UIFormDateTimeInput uiInput = new UIFormDateTimeInput("currentDate", "currentDate", null);
  73. uiInput.setValue("28/09/2011 10:59:59");
  74. assertTrue(expected(validator, uiInput));
  75. uiInput.setValue("09/28/2011 10:59:59");
  76. assertFalse(expected(validator, uiInput));
  77. WebuiRequestContext.setCurrentInstance(new MockRequestContext(new Locale("en")));
  78. uiInput = new UIFormDateTimeInput("currentDate", "currentDate", null);
  79. uiInput.setValue("09/28/2011 10:59:59");
  80. assertTrue(expected(validator, uiInput));
  81. uiInput.setValue("09-28-2011 10:59:59");
  82. assertFalse(expected(validator, uiInput));
  83. uiInput.setValue("28/09/2011 10:59:59");
  84. assertFalse(expected(validator, uiInput));
  85. }
  86. public void testUsernameValidator()
  87. {
  88. Validator validator = new UsernameValidator(3, 30);
  89. assertTrue(expected(validator, "root.gtn"));
  90. assertTrue(expected(validator, "root_gtn"));
  91. assertTrue(expected(validator, "root_gtn.01"));
  92. assertFalse(expected(validator, "root_gtn_"));
  93. assertFalse(expected(validator, "_root_gtn"));
  94. assertFalse(expected(validator, "root__gtn"));
  95. assertFalse(expected(validator, "root._gtn"));
  96. assertFalse(expected(validator, "root--gtn"));
  97. assertFalse(expected(validator, "root*gtn"));
  98. assertFalse(expected(validator, "Root"));
  99. }
  100. public void testEmailValidator()
  101. {
  102. Validator validator = new EmailAddressValidator();
  103. assertTrue(expected(validator, "root.gtn@exoplatform.com"));
  104. assertTrue(expected(validator, "root.exo.gtn.portal@explatform.biz.edu.vn"));
  105. assertTrue(expected(validator, "root_exo_gtn_portal@explatform-edu.biz.vn"));
  106. assertFalse(expected(validator, "root_exo_gtn_portal@explatform-edu.biz-vn"));
  107. assertFalse(expected(validator, "root_exo_gtn_portal@explatform-edu.biz9vn"));
  108. assertFalse(expected(validator, "root_exo_gtn_portal@explatform--edu.biz.vn"));
  109. assertFalse(expected(validator, "root_exo_gtn_portal@-explatform.biz"));
  110. assertFalse(expected(validator, "root_exo_gtn_portal@explatform_biz_edu.vn"));
  111. assertFalse(expected(validator, "root_exo_gtn_portal@explatform_biz_edu_vn"));
  112. assertFalse(expected(validator, "root_gtn--@portal.org"));
  113. assertFalse(expected(validator, "root__gtn@portal.org"));
  114. assertFalse(expected(validator, "root_.gtn@portal.org"));
  115. assertFalse(expected(validator, "--root.gtn@portal.org"));
  116. assertFalse(expected(validator, "root.gtn@.portal.org"));
  117. }
  118. public void testNumberValidator()
  119. {
  120. Validator validator = new NumberFormatValidator();
  121. assertTrue(expected(validator, "1001"));
  122. assertTrue(expected(validator, "0"));
  123. assertFalse(expected(validator, "01"));
  124. assertFalse(expected(validator, "-01"));
  125. assertFalse(expected(validator, "-0"));
  126. assertFalse(expected(validator, "000"));
  127. assertFalse(expected(validator, "-01"));
  128. assertFalse(expected(validator, "1,5"));
  129. assertFalse(expected(validator, "1.5"));
  130. }
  131. public void testPositiveNumberValidator()
  132. {
  133. Validator validator = new PositiveNumberFormatValidator();
  134. assertTrue(expected(validator, "1"));
  135. assertTrue(expected(validator, "0"));
  136. assertFalse(expected(validator, "-1"));
  137. assertFalse(expected(validator, "01"));
  138. assertFalse(expected(validator, "-01"));
  139. }
  140. public void testSpecialCharacterValidator()
  141. {
  142. Validator validator= new SpecialCharacterValidator();
  143. assertTrue(expected(validator,"aAzZ caffé"));
  144. assertFalse(expected(validator,"aAzZ\tcaffé"));
  145. assertFalse(expected(validator,"aAzZ\ncaffé"));
  146. assertFalse(expected(validator,"aAzZ \rcaffé"));
  147. assertFalse(expected(validator,"\tcaffé"));
  148. assertFalse(expected(validator,"\ncaffé"));
  149. assertFalse(expected(validator,"\rcaffé"));
  150. assertTrue(expected(validator,"\n"));
  151. assertTrue(expected(validator, "\t"));
  152. assertTrue(expected(validator, "\n"));
  153. }
  154. public void testResourceValidator()
  155. {
  156. Validator validator = new ResourceValidator();
  157. assertTrue(expected(validator, "caffé_-.--"));
  158. assertFalse(expected(validator, "_caffé"));
  159. assertFalse(expected(validator, "0caffé"));
  160. }
  161. public void testNameValidator()
  162. {
  163. Validator validator = new NameValidator();
  164. assertTrue(expected(validator, "caffé_-.*"));
  165. assertTrue(expected(validator, "*caffé"));
  166. assertTrue(expected(validator, "0caffé"));
  167. }
  168. public void testIdentifierValidator()
  169. {
  170. Validator validator = new IdentifierValidator();
  171. assertTrue(expected(validator, "caffé-_"));
  172. assertTrue(expected(validator, "caffé01"));
  173. assertFalse(expected(validator, "-caffé"));
  174. assertFalse(expected(validator, "01caffé"));
  175. }
  176. public boolean expected(Validator validator, final String input)
  177. {
  178. UIFormInput uiInput = new MockUIFormImput()
  179. {
  180. public Object getValue() throws Exception
  181. {
  182. return input;
  183. }
  184. };
  185. return expected(validator, uiInput);
  186. }
  187. public boolean expected(Validator validator, UIFormInput uiInput)
  188. {
  189. try
  190. {
  191. validator.validate(uiInput);
  192. return true;
  193. }
  194. catch (MessageException e)
  195. {
  196. return false;
  197. }
  198. catch (Exception e)
  199. {
  200. throw new RuntimeException(e);
  201. }
  202. }
  203. private static class MockUIFormImput extends UIComponent implements UIFormInput
  204. {
  205. public String getBindingField()
  206. {
  207. return null;
  208. }
  209. public String getLabel()
  210. {
  211. return null;
  212. }
  213. public UIFormInput addValidator(Class clazz, Object... params) throws Exception
  214. {
  215. return null;
  216. }
  217. public List getValidators()
  218. {
  219. return null;
  220. }
  221. public Object getValue() throws Exception
  222. {
  223. return null;
  224. }
  225. public UIFormInput setValue(Object value) throws Exception
  226. {
  227. return null;
  228. }
  229. public Class getTypeValue()
  230. {
  231. return null;
  232. }
  233. public void reset()
  234. {
  235. }
  236. }
  237. }