Author: nextgens
Date: 2006-11-03 12:48:27 +0000 (Fri, 03 Nov 2006)
New Revision: 10803

Added:
   trunk/freenet/src/freenet/clients/http/BrowserTestToadlet.java
Modified:
   trunk/freenet/src/freenet/clients/http/FProxyToadlet.java
Log:
Draft of a BrowserTestToadlet : do NOT link to it for now

Added: trunk/freenet/src/freenet/clients/http/BrowserTestToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/BrowserTestToadlet.java      
2006-11-03 11:53:59 UTC (rev 10802)
+++ trunk/freenet/src/freenet/clients/http/BrowserTestToadlet.java      
2006-11-03 12:48:27 UTC (rev 10803)
@@ -0,0 +1,58 @@
+package freenet.clients.http;
+
+import java.io.IOException;
+import java.net.URI;
+
+import freenet.client.HighLevelSimpleClient;
+import freenet.node.NodeClientCore;
+import freenet.support.HTMLNode;
+
+/**
+ * Browser Test Toadlet.
+ * Usefull to test browser's capabilities :
+ *     * warn the user about useless enabled features/plugins wich might be 
dangerous
+ *     * Assist the user in configuring his browser properly to surf on freenet
+ */
+public class BrowserTestToadlet extends Toadlet {
+       BrowserTestToadlet(HighLevelSimpleClient client, NodeClientCore c) {
+               super(client);
+               this.core=c;
+       }
+       
+       final NodeClientCore core;
+       
+       public void handleGet(URI uri, ToadletContext ctx) throws 
ToadletContextClosedException, IOException {
+               final boolean advancedEnabled = core.isAdvancedDarknetEnabled();
+               HTTPRequest request = new HTTPRequest(uri);
+               
+               // Yes, we need that in order to test the browser (number of 
connections per server)
+               if (request.isParameterSet("wontload")) return;
+               
+               
+               HTMLNode pageNode = ctx.getPageMaker().getPageNode("Freenet 
browser testing tool");
+               HTMLNode contentNode = 
ctx.getPageMaker().getContentNode(pageNode);
+               
+               contentNode.addChild(core.alerts.createSummary());
+               
+               // #### Test whether we can have more than 10 simultaneous 
connections to fproxy
+               HTMLNode maxConnectionsPerServerBox = 
contentNode.addChild(ctx.getPageMaker().getInfobox("infobox-warning", "Number 
of connections"));
+               HTMLNode maxConnectionsPerServerContent = 
ctx.getPageMaker().getContentNode(maxConnectionsPerServerBox);
+               maxConnectionsPerServerContent.addChild("#", "If you do not see 
a green picture below, your browser is probably missconfigured! Ensure it 
allows more than 10 connections per server.");
+               for(int i = 0; i < 10 ; i++)
+                       maxConnectionsPerServerContent.addChild("img", "src", 
".?wontload");
+               maxConnectionsPerServerContent.addChild("img", new 
String[]{"src", "alt"}, new String[]{"/static/themes/clean/success.gif", 
"fail!"});
+
+               // #### Test whether JS is aviable. : should do the test with 
pictures insteed!
+               HTMLNode jsTestBox = 
contentNode.addChild(ctx.getPageMaker().getInfobox("infobox-warning", 
"Javascript"));
+               HTMLNode jsTestContent= 
ctx.getPageMaker().getContentNode(jsTestBox);
+               HTMLNode jsTest = jsTestContent.addChild("div");
+               jsTest.addChild("script", "language", "javascript", 
"document.write('Your browser has JavaScript support enabled: it's not 
necessary to run freenet and should be disabled.');");
+               
+               this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+       }
+       
+       public String supportedMethods() {
+               return "GET";
+       }
+
+}

Modified: trunk/freenet/src/freenet/clients/http/FProxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/FProxyToadlet.java   2006-11-03 
11:53:59 UTC (rev 10802)
+++ trunk/freenet/src/freenet/clients/http/FProxyToadlet.java   2006-11-03 
12:48:27 UTC (rev 10803)
@@ -400,6 +400,9 @@
                        LocalFileInsertToadlet localFileInsertToadlet = new 
LocalFileInsertToadlet(core, client);
                        server.register(localFileInsertToadlet, "/files/", 
true);

+                       BrowserTestToadlet browsertTestToadlet = new 
BrowserTestToadlet(client, core);
+                       server.register(browsertTestToadlet, "/test/", true);
+                       
                        // Now start the server.
                        server.start();



Reply via email to