Author: michiel
Date: 2009-11-16 18:28:59 +0100 (Mon, 16 Nov 2009)
New Revision: 39725
Added:
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/test/datatypes.jspx
Modified:
mmbase/trunk/base-webapp/src/main/webapp/mmbase/admin/css/admin.css
mmbase/trunk/base-webapp/src/main/webapp/mmbase/validation/validation.js.jsp
Log:
test-block for datatypes
Modified: mmbase/trunk/base-webapp/src/main/webapp/mmbase/admin/css/admin.css
===================================================================
--- mmbase/trunk/base-webapp/src/main/webapp/mmbase/admin/css/admin.css
2009-11-16 17:27:29 UTC (rev 39724)
+++ mmbase/trunk/base-webapp/src/main/webapp/mmbase/admin/css/admin.css
2009-11-16 17:28:59 UTC (rev 39725)
@@ -237,7 +237,6 @@
border-width: 1px 1px 0 1px;
border-style: solid solid none solid;
margin-bottom: 1em;
- width: 100%;
}
caption
@@ -352,3 +351,20 @@
.b_mmbase_microblog_uncached li span.message {
display: block;
}
+
+
+tr.todo,
+td.todo {
+ background-color: #faa;
+}
+
+
+table.tests th,
+table.tests td {
+ width: 20%;
+}
+
+table.tests td div {
+ width: 100px;
+ overflow: hidden !important;
+}
Added:
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/test/datatypes.jspx
===================================================================
---
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/test/datatypes.jspx
(rev 0)
+++
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/test/datatypes.jspx
2009-11-16 17:28:59 UTC (rev 39725)
@@ -0,0 +1,81 @@
+<jsp:root
+ version="1.2"
+ xmlns:c="http://java.sun.com/jsp/jstl/core"
+ xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
+ xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0"
+ xmlns:jsp="http://java.sun.com/JSP/Page"
+ >
+ <jsp:directive.page import="org.mmbase.bridge.*" />
+ <jsp:output omit-xml-declaration="true" />
+ <div
+ class="test mm_c c_test b_datatypes
${requestScope['org.mmbase.componentClassName']}"
+ id="${requestScope['org.mmbase.componentId']}">
+
+ <script type="text/javascript">
+ $(function() {
+ $("table.tests tr").each(function() {
+ var actual = $(this).find("td:eq(1)").text();
+ var expected = $(this).find("td:eq(4)").text();
+ if (actual != expected) {
+ $(this).find("td:eq(1)").addClass('todo');
+ }
+ });
+ var val = new MMBaseValidator(null);
+ $("table.tests tr td:nth-child(2) div").each(function() {
+ var expected = $(this).parents("tr").find("td:eq(4)").text();
+ var jsvalid = "" + val.validate(this, false);
+ $(this).parents("tr").find("td:eq(2)").text(jsvalid);
+ if (jsvalid != expected) {
+ $(this).parents("tr").find("td:eq(2)").addClass("todo");
+ }
+ var ajaxvalid = "" + val.validate(this, true);
+ $(this).parents("tr").find("td:eq(3)").text(ajaxvalid);
+ if (ajaxvalid != expected) {
+ $(this).parents("tr").find("td:eq(3)").addClass("todo");
+ }
+
+
+ });
+ });
+ </script>
+
+
+ <h1>DataTypes </h1>
+ <mm:cloud jspvar="cloud" rank="administrator">
+ <jsp:scriptlet>pageContext.setAttribute("cases",
org.mmbase.datatypes.ParameterizedDataTypesTest.getCases(cloud,
null));</jsp:scriptlet>
+
+ <table class="tests">
+ <tbody>
+ <tr><th>data type</th><th>value</th><th>Java valid</th><th>JS
valid</th><th>JS valid (ajax)</th><th>expected valid</th></tr>
+ <c:forEach items="${cases}" var="case">
+ <jsp:scriptlet>Field f =
cloud.getNodeManager("datatypes").getField((String) ((Object[]
)pageContext.getAttribute("case"))[0]); pageContext.setAttribute("f",
f);</jsp:scriptlet>
+
+ <c:forEach items="${case[1]}" var="c">
+ <jsp:scriptlet>Object o =
pageContext.getAttribute("c");</jsp:scriptlet>
+ <tr>
+ <th>${case[0]}</th>
+ <td><div class="mm_validate mm_nm_datatypes
mm_f_${f.name}"><mm:escape>${c}</mm:escape></div></td>
+ <td><jsp:expression>f.getDataType().validate(o, null, f).size()
== 0</jsp:expression></td>
+ <td> </td>
+ <td> </td>
+ <td>true</td>
+ </tr>
+ </c:forEach>
+ <c:forEach items="${case[2]}" var="c">
+ <jsp:scriptlet>Object o =
pageContext.getAttribute("c");</jsp:scriptlet>
+ <tr>
+ <th class="mm_nm_tests_ mm_f_${f.name}">${case[0]}</th>
+ <td><div class="mm_validate mm_nm_datatypes
mm_f_${f.name}"><mm:escape>${c}</mm:escape></div></td>
+ <td><jsp:expression>f.getDataType().validate(o, null, f).size()
== 0</jsp:expression></td>
+ <td> </td>
+ <td> </td>
+ <td>false</td>
+ </tr>
+ </c:forEach>
+ </c:forEach>
+ </tbody>
+ </table>
+ </mm:cloud>
+
+ </div>
+</jsp:root>
Modified:
mmbase/trunk/base-webapp/src/main/webapp/mmbase/validation/validation.js.jsp
===================================================================
---
mmbase/trunk/base-webapp/src/main/webapp/mmbase/validation/validation.js.jsp
2009-11-16 17:27:29 UTC (rev 39724)
+++
mmbase/trunk/base-webapp/src/main/webapp/mmbase/validation/validation.js.jsp
2009-11-16 17:28:59 UTC (rev 39725)
@@ -642,7 +642,10 @@
if (this.isDateTime(el)) {
return this.getDateValue(el);
} else {
- var value = el.value;
+ if (el.tagName == "div") {
+ return $(el).text();
+ }
+ var value = $(el).val();
if( this.isNumeric(el)) {
if (value == "") {
} else {
@@ -812,6 +815,7 @@
MMBaseValidator.prototype.getElement = function(event) {
var target = this.target(event);
+ if (target == null) target = event;
//this.log("event " + event.type + " on " + target.id);
if ($(target).hasClass("mm_validate")) {
return target;
@@ -829,7 +833,8 @@
*/
MMBaseValidator.prototype.validate = function(event, server) {
//this.log("event " + event.type + " on " + target.id);
- this.validateElement(this.getElement(event), server);
+ var element = this.getElement(event);
+ return this.validateElement(element, server);
}
MMBaseValidator.prototype.serverValidate = function(event) {
@@ -891,6 +896,7 @@
this.validateHook(valid, element);
}
$(element).trigger("mmValidate", [this, valid]);
+ return valid;
}
/**
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs