summaryrefslogtreecommitdiff
path: root/swat2/esptest
diff options
context:
space:
mode:
Diffstat (limited to 'swat2/esptest')
-rw-r--r--swat2/esptest/exception.esp32
-rw-r--r--swat2/esptest/formtest.esp35
-rw-r--r--swat2/esptest/include.esp14
-rw-r--r--swat2/esptest/index.esp7
-rw-r--r--swat2/esptest/ldb.esp36
-rw-r--r--swat2/esptest/loadparm.esp75
-rw-r--r--swat2/esptest/qooxdoo.esp133
-rw-r--r--swat2/esptest/registry.esp50
-rw-r--r--swat2/esptest/samr.esp36
-rw-r--r--swat2/esptest/session.esp53
-rw-r--r--swat2/esptest/showvars.esp24
11 files changed, 495 insertions, 0 deletions
diff --git a/swat2/esptest/exception.esp b/swat2/esptest/exception.esp
new file mode 100644
index 0000000000..ff28d6318e
--- /dev/null
+++ b/swat2/esptest/exception.esp
@@ -0,0 +1,32 @@
+<% page_header("columns", "ESP Exception test", "esptest");
+ include("/scripting/forms.js");
+%>
+
+<h1>Samba4 exception test</h1>
+
+
+<%
+var f = FormObj("ExceptionTest", 0, 2);
+f.submit[0] = "Generate Exception";
+f.submit[1] = "No Exception";
+
+f.display();
+
+if (request['REQUEST_METHOD'] == "POST") {
+ function TestFunction(arg1, arg2) {
+ return "OK";
+ }
+
+ if (form['submit'] == "Generate Exception") {
+ write("I expect you to die Mr Bond!<br>\n");
+ TestFunction("foo");
+ } else {
+ write("no exception<br>\n");
+ TestFunction("foo", "bar");
+ }
+}
+%>
+
+and here is some filler text ...
+
+<% page_footer(); %>
diff --git a/swat2/esptest/formtest.esp b/swat2/esptest/formtest.esp
new file mode 100644
index 0000000000..2310849895
--- /dev/null
+++ b/swat2/esptest/formtest.esp
@@ -0,0 +1,35 @@
+<% page_header("columns", "ESP Form Test", "esptest");
+ include("/scripting/forms.js");
+%>
+
+<%
+var f = FormObj("FormTest", 3, 2);
+f.element[0].label = "First Name";
+f.element[0].name = "firstName";
+f.element[0].value = form['firstName'];
+f.element[1].label = "Last Name";
+f.element[1].name = "lastName";
+f.element[1].value = form['lastName'];
+f.element[2].label = "Color";
+f.element[2].type = "select";
+f.element[2].list = new Array("Red", "Green", "Blue", "Yellow");
+f.element[2].value = form['Color'];
+f.submit[0] = "OK";
+f.submit[1] = "Cancel";
+
+f.display();
+
+<%
+ /* if its a post then the user has filled in the form, so
+ report the values
+ */
+ if (form['submit'] == "OK") {
+%>
+ You chose firstName=@@form['firstName'] lastName=@@form['lastName']<p>
+
+<%
+ simple_table(form);
+ }
+%>
+
+<% page_footer(); %>
diff --git a/swat2/esptest/include.esp b/swat2/esptest/include.esp
new file mode 100644
index 0000000000..5d558d59dc
--- /dev/null
+++ b/swat2/esptest/include.esp
@@ -0,0 +1,14 @@
+<% page_header("columns", "ESP Include Test", "esptest"); %>
+
+including /scripting/test.ejs<p/>
+<% include("/scripting/test.ejs"); %>
+calling a function from test.ejs ...<p/>
+<% showArray("request", request); %>
+
+including /scripting/test.esp<p/>
+<% include /scripting/test.esp %>
+calling a function from test.esp ...<p/>
+<% res = testfn('foo'); %>
+result is: @@res
+
+<% page_footer(); %>
diff --git a/swat2/esptest/index.esp b/swat2/esptest/index.esp
new file mode 100644
index 0000000000..663f82c599
--- /dev/null
+++ b/swat2/esptest/index.esp
@@ -0,0 +1,7 @@
+<% page_header("columns", "ESP Tests", "esptest"); %>
+
+<h1>ESP Test functions</h1>
+
+Please select a menu item from the selection on the left
+
+<% page_footer(); %>
diff --git a/swat2/esptest/ldb.esp b/swat2/esptest/ldb.esp
new file mode 100644
index 0000000000..cf2725fbcf
--- /dev/null
+++ b/swat2/esptest/ldb.esp
@@ -0,0 +1,36 @@
+<% page_header("columns", "ESP ldb test", "esptest"); %>
+
+<h1>Samba4 ldb test</h1>
+
+<h3>An attribute constrained search</h3>
+
+<%
+var lp = loadparm_init();
+var dbfile = lp.get("sam database");
+var attrs = new Array("name", "dnsDomain", "objectSid", "dn");
+var ldb = ldb_init();
+ldb.session_info = session.authinfo.session_info;
+
+var ok = ldb.connect(dbfile);
+assert(ok);
+
+res = ldb.search("(objectClass=domain)", NULL, ldb.SCOPE_DEFAULT, attrs);
+multi_table(res, "dn");
+%>
+
+<h3>An unconstrained search</h3>
+
+<%
+res = ldb.search("(objectClass=user)");
+multi_table(res, "dn");
+%>
+
+<h3>A search with bad arguments</h3>
+
+<%
+res = ldb.search("=blah", "foo");
+%>
+
+all done
+
+<% page_footer() %>
diff --git a/swat2/esptest/loadparm.esp b/swat2/esptest/loadparm.esp
new file mode 100644
index 0000000000..9581af0262
--- /dev/null
+++ b/swat2/esptest/loadparm.esp
@@ -0,0 +1,75 @@
+<% page_header("columns", "ESP loadparm test", "esptest" );
+ include("/scripting/forms.js");
+%>
+
+<h1>Samba4 loadparm test</h1>
+
+<%
+lp = loadparm_init();
+
+var f = FormObj("LoadparmTest", 2, 1);
+f.element[0].label = "Share";
+f.element[1].label = "Parameter";
+f.submit[0] = "OK";
+
+f.display();
+
+function stringVar(v) {
+ var type = typeof(v);
+ var ret = "";
+ if (type == "object") {
+ for (val in v) {
+ ret = ret + " " + v[val];
+ }
+ } else {
+ ret = ret + v;
+ }
+ return ret;
+}
+
+function showValue(name, v) {
+ write("parameter:" + name + "<br>\n");
+ write("Type is: " + typeof(v) + "<br>\n");
+ write("Value is: " + stringVar(v) + "<p>\n");
+}
+
+
+if (request['REQUEST_METHOD'] == "POST") {
+ /* if they cancelled then take them back to the list of tests */
+ if (form['submit'] == "Cancel") {
+ redirect("/");
+ }
+
+ var v;
+
+ share = form['Share'];
+ name = form['Parameter'];
+ if (share && name) {
+ v = lp.get(share, name);
+ } else if (name) {
+ v = lp.get(name);
+ }
+
+ showValue(name, v);
+}
+%>
+
+Here are some commonly used parameters:<p>
+
+<%
+showValue("defined services", lp.services());
+
+function showParameter(name) {
+ showValue(name, lp.get(name));
+}
+
+showParameter("server services");
+showParameter("netbios name");
+showParameter("security");
+showParameter("workgroup");
+showParameter("log level");
+showParameter("server signing");
+showParameter("interfaces");
+%>
+
+<% page_footer(); %>
diff --git a/swat2/esptest/qooxdoo.esp b/swat2/esptest/qooxdoo.esp
new file mode 100644
index 0000000000..554a4e90d5
--- /dev/null
+++ b/swat2/esptest/qooxdoo.esp
@@ -0,0 +1,133 @@
+<%
+/******************************/
+/* server side AJAJ functions */
+libinclude("server_call.js");
+
+/* this is a call that the client js code can make - it just adds
+ some more elements to the passed object, then returns the object */
+function testfunc(x) {
+ var sys = sys_init();
+ x.nttime = sys.nttime();
+ x.timestring = sys.httptime(x.nttime);
+ return x;
+}
+
+/* register a call for clients to make */
+var call = servCallObj();
+call.add('testfunc', testfunc);
+
+/* run the function that was asked for */
+call.run();
+
+ /***********************/
+ /* now the main page */
+ page_header("columns", "ESP qooxdoo test", "esptest");
+%>
+
+<script type="text/javascript" src="/scripting/client/encoder.js"></script>
+<script type="text/javascript" src="/scripting/client/call.js"></script>
+
+<h1>Samba4 qooxdoo test</h1>
+
+ <script type="text/javascript">
+
+ window.application.main = function()
+ {
+ var inlineWidget = new QxInline;
+ var fieldSet = new QxFieldSet("thefieldset");
+
+ with(fieldSet)
+ {
+ setWidth("40%");
+ setMinHeight(400);
+ setBottom(48);
+ setMinWidth(500);
+ };
+
+ var gl = new QxGridLayout("auto,auto,auto,auto,auto", "100%");
+ gl.setEdge(0);
+ gl.setCellPaddingTop(3);
+ gl.setCellPaddingBottom(3);
+
+ inlineWidget.add(fieldSet);
+
+ var d = this.getClientWindow().getDocument();
+
+ var stopit = 0;
+ var shared = new Object();
+
+ function callback(o) {
+ shared = o;
+ var r = "Response:\\n";
+ for (var i in shared) {
+ r = r + "\\t" + i + " : " + shared[i] + "\\n";
+ }
+ ta.setText(r);
+ if (shared.start_time == 0) {
+ shared.start_time = shared.nttime;
+ }
+ shared.time_diff = shared.nttime - shared.start_time;
+ shared.rate = shared.counter / (shared.time_diff * 0.0000001);
+ shared.counter++;
+ if (stopit == 0) {
+ server_call_url("@@request.REQUEST_URI", 'testfunc', callback, shared);
+ }
+ }
+
+ function start_call() {
+ srv_printf("Starting calls ... (stopit=%d)\\n", stopit);
+ stopit = 0;
+ shared.counter = 0;
+ shared.start_time = 0;
+ server_call_url("@@request.REQUEST_URI", 'testfunc', callback, shared);
+ };
+
+ function stop_call() {
+ srv_printf("Stopping calls\\n");
+ stopit = 1;
+ };
+
+ function myButton(name, label, call) {
+ var b = new QxButton(label);
+ b.setWidth("25%");
+ b.addEventListener("click", call);
+ return b;
+ };
+
+ function myCheckBox(label, name, value) {
+ var w = new QxCheckBox(label, value, name, value);
+ w.setWidth("100%");
+ return w;
+ }
+
+ var c1 = myCheckBox("Enable The Server", 'checkbox1', false);
+ var c2 = myCheckBox("Another Server", 'checkbox2', true);
+ var t3 = new QxTextField("hello");
+ var b1 = myButton("send", "Make Call", start_call);
+ var b2 = myButton("stop", "Stop Call", stop_call);
+ var ta = new QxTextArea;
+ ta.setText("initial text");
+ ta.setWidth("80%");
+ ta.setHeight(150);
+ ta.setVerticalAlign("top");
+
+ gl.add(c1, { row : 1, col : 1 });
+ gl.add(c2, { row : 2, col : 1 });
+ gl.add(t3, { row : 3, col : 1, scaleHorizontal: true });
+ gl.add(b1, { row : 4, col : 1 });
+ gl.add(ta, { row : 5, col : 1 });
+ gl.add(b2, { row : 6, col : 1 });
+
+ fieldSet.add(gl);
+
+ inlineWidget.add(fieldSet);
+
+ d.add(inlineWidget, "canvas");
+ };
+
+ </script>
+
+
+ <div id="canvas" style="overflow:hidden;position:static;margin-top:38px;margin-left:10px;margin-right:700px;width:700px"></div>
+
+<% page_footer(); %>
diff --git a/swat2/esptest/registry.esp b/swat2/esptest/registry.esp
new file mode 100644
index 0000000000..efdfefc37e
--- /dev/null
+++ b/swat2/esptest/registry.esp
@@ -0,0 +1,50 @@
+<%
+ page_header("columns", "ESP registry edit", "esptest");
+%>
+
+<script type="text/javascript" src="/scripting/client/encoder.js"></script>
+<script type="text/javascript" src="/scripting/client/call.js"></script>
+<script type="text/javascript" src="/scripting/client/regedit.js"></script>
+
+<h1>Registry Editor</h1>
+
+<script type="text/javascript">
+
+/*** init the page for qooxdoo ***/
+window.application.main = function()
+{
+ var doc = this.getClientWindow().getDocument();
+ var inlineWidget = new QxInline;
+ var qwidget = new QxWidget;
+ qwidget.setHeight(800);
+ qwidget.setWidth("100%");
+ qwidget.setBorder(QxBorder.presets.groove);
+
+ var btn1 = new QxButton("Registry Editor");
+ btn1.set({ top: 20, left : 30 });
+ btn1.addEventListener("click", function() {
+ var regWindow = new QxWindow("Registry Editor");
+ with(regWindow) {
+ setTop(50);
+ setLeft(50);
+ setMinWidth(600);
+ setMinHeight(600);
+ setResizeMethod("frame");
+ }
+
+ var regedit = regedit_widget("ncalrpc:");
+ regWindow.add(regedit);
+ qwidget.add(regWindow);
+ regWindow.setVisible(true);
+
+ });
+ qwidget.add(btn1);
+ inlineWidget.add(qwidget);
+ doc.add(inlineWidget, "canvas");
+}
+
+</script>
+
+<div id="canvas" style="overflow:hidden;position:static;margin-top:38px;margin-left:10px;margin-right:700px;width:700px"></div>
+
+<% page_footer(); %>
diff --git a/swat2/esptest/samr.esp b/swat2/esptest/samr.esp
new file mode 100644
index 0000000000..a60a02e7c8
--- /dev/null
+++ b/swat2/esptest/samr.esp
@@ -0,0 +1,36 @@
+<% page_header("columns", "ESP samr test", "esptest");
+
+ libinclude("base.js");
+ libinclude("samr.js");
+%>
+
+<h1>Samba4 samr rpc test</h1>
+
+<%
+var conn = samr_init();
+var binding = "ncalrpc:";
+status = conn.connect(binding);
+check_status_ok(status);
+
+handle = samrConnect(conn);
+
+domains = samrEnumDomains(conn, handle);
+
+for (i=0;i<domains.length;i++) {
+ write("<h2>Domain " + domains[i].name + "</h2>\n");
+ sid = samrLookupDomain(conn, handle, domains[i].name);
+ dom_handle = samrOpenDomain(conn, handle, sid);
+ users = samrEnumDomainUsers(conn, dom_handle);
+ samrFillUserInfo(conn, dom_handle, users, 3);
+ if (users.length == 0) {
+ write("no users in domain<br>\n");
+ } else {
+ multi_table(users, "name");
+ }
+ samrClose(conn, dom_handle);
+}
+
+%>
+
+
+<% page_footer(); %>
diff --git a/swat2/esptest/session.esp b/swat2/esptest/session.esp
new file mode 100644
index 0000000000..6213dde62f
--- /dev/null
+++ b/swat2/esptest/session.esp
@@ -0,0 +1,53 @@
+<% page_header("columns", "ESP session test", "esptest");
+ include("/scripting/forms.js");
+%>
+
+<h1>Samba4 session test</h1>
+
+<%
+var f = FormObj("SessionTest", 3, 4);
+f.element[0].label = "Name";
+f.element[1].label = "Value";
+f.element[2].label = "Timeout";
+f.submit[0] = "Append";
+f.submit[1] = "Reset";
+f.submit[2] = "Destroy";
+f.submit[3] = "Cancel";
+
+f.display();
+
+ /* if its a post then the user has filled in the form, so
+ report the values
+ */
+if (request['REQUEST_METHOD'] == "POST") {
+ /* if they cancelled then take them back to the list of tests */
+ if (form['submit'] == "Cancel") {
+ redirect("/");
+ }
+
+ name = form['Name'];
+ value = form['Value'];
+ timeout = form['Timeout'];
+
+ if (timeout) {
+ useSession(timeout);
+ }
+
+ if (form['submit'] == "Reset" && name) {
+ session[name] = null;
+ }
+
+ if (form['submit'] == "Append" && name) {
+ session[name] = "" + session[name] + value;
+ }
+
+ if (form['submit'] == "Destroy") {
+ destroySession();
+ }
+}
+
+simple_table(session);
+write("SessionId=" + request['SESSION_ID'] + "<br/>\n");
+%>
+
+<% page_footer(); %>
diff --git a/swat2/esptest/showvars.esp b/swat2/esptest/showvars.esp
new file mode 100644
index 0000000000..dc55b1e58b
--- /dev/null
+++ b/swat2/esptest/showvars.esp
@@ -0,0 +1,24 @@
+<% page_header("columns", "ESP standard variables test", "esptest"); %>
+
+<h1>Samba4 showvars test</h1>
+
+<%
+ function showArray(name, array) {
+ write("<h3>Array: " + name + "</h3>\n");
+ if (array == undefined) {
+ write("undefined<br>\n");
+ } else {
+ simple_table(array);
+ }
+ }
+
+ showArray("headers", headers);
+ showArray("application", application);
+ showArray("cookies", cookies);
+ showArray("files", files);
+ showArray("request", request);
+ showArray("server", server);
+ showArray("session", session);
+%>
+
+<% page_footer(); %>