You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/11/17 05:34:29 UTC
openmeetings git commit: [OPENMEETINGS-1758] upload test is added
Repository: openmeetings
Updated Branches:
refs/heads/master ed2ef5d3b -> 2fa0be152
[OPENMEETINGS-1758] upload test is added
Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/2fa0be15
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/2fa0be15
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/2fa0be15
Branch: refs/heads/master
Commit: 2fa0be15266dfd8588ae6ce98411d1be179827cb
Parents: ed2ef5d
Author: solomax <so...@unipro.ru>
Authored: Fri Nov 17 12:33:48 2017 +0700
Committer: solomax <so...@unipro.ru>
Committed: Fri Nov 17 12:33:48 2017 +0700
----------------------------------------------------------------------
openmeetings-flash/src/main/flex/nettest.mxml | 55 ++-
.../org/apache/openmeetings/net/RestCall.as | 95 +++++
.../apache/openmeetings/net/UploadPostHelper.as | 157 ++++++++
.../openmeetings/nettest/NetworkTest.mxml | 7 +-
.../nettest/PortAvailabilityTest.mxml | 2 -
.../openmeetings/nettest/UploadSpeedTest.mxml | 87 +++++
.../swf10/networkTesting/networktesting.lzx | 89 -----
.../src/main/swf10/networkTesting/restCall.lzx | 246 -------------
.../swf10/networkTesting/rtmpConnection.lzx | 367 -------------------
.../networkTesting/tests/BaseURLLoadTest.lzx | 146 --------
.../networkTesting/tests/DownloadSpeedTest.lzx | 50 ---
.../swf10/networkTesting/tests/JitterTest.lzx | 57 ---
.../swf10/networkTesting/tests/NetworkTest.lzx | 128 -------
.../swf10/networkTesting/tests/PingTest.lzx | 43 ---
.../tests/PortAvailabilityTest.lzx | 90 -----
.../networkTesting/tests/UploadSpeedTest.lzx | 124 -------
.../main/swf10/networkTesting/tests/library.lzx | 35 --
.../src/main/swf10/networkTesting/testsView.lzx | 105 ------
18 files changed, 393 insertions(+), 1490 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/flex/nettest.mxml
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/flex/nettest.mxml b/openmeetings-flash/src/main/flex/nettest.mxml
index bbe098a..9c0620b 100644
--- a/openmeetings-flash/src/main/flex/nettest.mxml
+++ b/openmeetings-flash/src/main/flex/nettest.mxml
@@ -23,7 +23,7 @@
xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:nettest="org.apache.openmeetings.nettest.*"
name="nettest"
width="570" height="900" pageTitle="OpenMeetings" fontSize="12" focusEnabled="true"
- initialize="appInit(event)" uncaughtError="uncaughtError(event)">
+ initialize="appInit(event)" uncaughtError="uncaughtError(event)" applicationComplete="appComplete()">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
<mx:TraceTarget/>
@@ -33,9 +33,12 @@
import flash.desktop.Clipboard;
import flash.desktop.ClipboardFormats;
+ import org.apache.openmeetings.nettest.NetworkTest;
+
public var params:Object = {};
private var logStr:String = "";
public var busy:Boolean = false;
+ private var currentTestNumber:int = 0;
[Embed(source="assets/edit-copy.png")]
[Bindable]
@@ -56,6 +59,37 @@
for (var i:int = 0; i < lbls.length; ++i) {
labels[lbls[i].id] = lbls[i].value;
}
+ runLbl.text = lbl('click.play');
+ copyLog.addEventListener(MouseEvent.CLICK, function clickHandler(evt:MouseEvent):void {
+ Clipboard.generalClipboard.clear();
+ Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, logStr);
+ });
+ }
+
+ private function appComplete():void {
+ testAll();
+ }
+
+ public function testAll():void {
+ var nextTest:NetworkTest;
+ if (0 == currentTestNumber) {
+ nextTest = pingTest;
+ } else if (1 == currentTestNumber) {
+ nextTest = portTest;
+ } else if (2 == currentTestNumber) {
+ nextTest = jitterTest;
+ } else if (3 == currentTestNumber) {
+ nextTest = downTest;
+ } else if (4 == currentTestNumber) {
+ nextTest = upTest;
+ } else if (5 == currentTestNumber) {
+ nextTest = null;
+ }
+
+ if (null != nextTest) {
+ currentTestNumber++;
+ nextTest.startAllTestsMode();
+ }
}
private function uncaughtError(e:UncaughtErrorEvent):void {
@@ -73,10 +107,17 @@
}
]]></fx:Script>
- <s:HGroup id="tests" paddingBottom="15">
- <nettest:PingTest id="pingTest"/>
- <nettest:PortAvailabilityTest id="portTest"/>
- <nettest:JitterTest id="jitterTest"/>
- <nettest:DownloadSpeedTest id="speedTest"/>
- </s:HGroup>
+ <s:VGroup paddingTop="20">
+ <s:Group>
+ <s:Label id="runLbl" x="10"/>
+ <s:Image id="copyLog" source="{copyImgCls}" visible="true" width="16" height="16" x="550"/>
+ </s:Group>
+ <s:HGroup id="tests" paddingBottom="15" paddingTop="10">
+ <nettest:PingTest id="pingTest"/>
+ <nettest:PortAvailabilityTest id="portTest"/>
+ <nettest:JitterTest id="jitterTest"/>
+ <nettest:DownloadSpeedTest id="downTest"/>
+ <nettest:UploadSpeedTest id="upTest"/>
+ </s:HGroup>
+ </s:VGroup>
</s:Application>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/RestCall.as
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/RestCall.as b/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/RestCall.as
new file mode 100644
index 0000000..01a6a85
--- /dev/null
+++ b/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/RestCall.as
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.net {
+import flash.utils.ByteArray;
+
+public class RestCall {
+ import flash.events.*;
+ import flash.net.*;
+
+ private var url:String = null;
+ private var method:String = URLRequestMethod.GET;
+ private var contentType:String = null;
+ private var dataFormat:String = "text";
+ private var errorCallback:Function;
+ private var successCallback:Function;
+ private var hdrs:Array = [];
+ private var requestor:URLLoader = null;
+
+ public function RestCall(options:Object) {
+ if (options["url"]) {
+ this.url = options.url;
+ }
+ if (options["method"]) {
+ this.method = options.method;
+ }
+ if (options["contentType"]) {
+ this.contentType = options.contentType;
+ }
+ if (options["dataFormat"]) {
+ this.dataFormat = options.dataFormat;
+ }
+ if (options["errorCallback"]) {
+ this.errorCallback = options.errorCallback;
+ }
+ if (options["successCallback"]) {
+ this.successCallback = options.successCallback;
+ }
+ if (options["hdrs"]) {
+ this.hdrs = options.hdrs;
+ }
+ requestor = new URLLoader();
+ requestor.dataFormat = dataFormat;
+
+ //Initiate the transaction
+ if (this.successCallback != null) {
+ requestor.addEventListener(Event.COMPLETE, successCallback);
+ }
+ if (this.errorCallback != null) {
+ requestor.addEventListener("ioError", errorCallback); //IOErrorEvent.IOERROR
+ requestor.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorCallback);
+ }
+ }
+
+ public function load(sid:String, vars:ByteArray):URLRequest {
+ var request:URLRequest = new URLRequest(url + '?sid=' + sid); //FIXME TODO
+ request.method = method;
+ if (contentType) {
+ var header:URLRequestHeader = new URLRequestHeader('Content-type', contentType);
+ request.requestHeaders.push(header);
+ }
+ for (var i:int = 0; i < hdrs.length; ++i) {
+ request.requestHeaders.push(hdrs[i]);
+ }
+ //Add the URL vars
+ request.data = vars;
+
+ try {
+ requestor.load(request);
+ } catch (e:Error) {
+ errorCallback(e);
+ }
+ return request;
+ }
+
+ public function close():void {
+ requestor.close()
+ }
+}
+}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/UploadPostHelper.as
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/UploadPostHelper.as b/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/UploadPostHelper.as
new file mode 100644
index 0000000..853f189
--- /dev/null
+++ b/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/UploadPostHelper.as
@@ -0,0 +1,157 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.net {
+/**
+ * Take a fileName, byteArray, and parameters object as input and return ByteArray post data suitable for a UrlRequest as output
+ *
+ * @see http://www.marstonstudio.com/?p=36
+ * @see http://www.w3.org/TR/html4/interact/forms.html
+ * @see http://www.jooce.com/blog/?p=143
+ * @see http://www.jooce.com/blog/wp%2Dcontent/uploads/2007/06/uploadFile.txt
+ * @see http://blog.je2050.de/2006/05/01/save-bytearray-to-file-with-php/
+ *
+ * @author Jonathan Marston
+ * @version 2007.08.19
+ *
+ * This work is licensed under a Creative Commons Attribution NonCommercial ShareAlike 3.0 License.
+ * @see http://creativecommons.org/licenses/by-nc-sa/3.0/
+ */
+public class UploadPostHelper {
+ import flash.utils.ByteArray;
+ import flash.utils.Endian;
+ /**
+ * Boundary used to break up different parts of the http POST body
+ */
+ private static var _boundary:String = "";
+
+ /**
+ * Get the boundary for the post.
+ * Must be passed as part of the contentType of the UrlRequest
+ */
+ public static function getBoundary():String {
+ if (_boundary.length == 0) {
+ for (var i:int = 0; i < 0x20; i++ ) {
+ _boundary += String.fromCharCode( int( 97 + Math.random() * 25 ) );
+ }
+ }
+ return _boundary;
+ }
+
+ private static function addContentType(postData:ByteArray, type:String):void {
+ var bytes:String = 'Content-Type: ' + type;
+ for (var i:int = 0; i < bytes.length; ++i) {
+ postData.writeByte(bytes.charCodeAt(i));
+ }
+ postData = LINEBREAK(postData);
+ postData = LINEBREAK(postData);
+ }
+
+ /**
+ * Create post data to send in a UrlRequest
+ */
+ public static function getPostData(fileName:String, byteArray:ByteArray, parameters:Array = null):ByteArray {
+ var i:int;
+ var bytes:String;
+
+ var postData:ByteArray = new ByteArray();
+ postData.endian = Endian.BIG_ENDIAN;
+
+ //add Filename to parameters
+ if(parameters == null) {
+ parameters = [];
+ }
+
+ //add parameters to postData
+ for (var j:int = 0; j < parameters.length; ++j) {
+ postData = BOUNDARY(postData);
+ postData = LINEBREAK(postData);
+ bytes = 'Content-Disposition: form-data; name="' + parameters[j].name + '"';
+ for (i = 0; i < bytes.length; ++i) {
+ postData.writeByte(bytes.charCodeAt(i));
+ }
+ postData = LINEBREAK(postData);
+ if (parameters[j].type) {
+ addContentType(postData, parameters[j].type)
+ } else {
+ postData = LINEBREAK(postData);
+ }
+ postData.writeUTFBytes(parameters[j].value);
+ postData = LINEBREAK(postData);
+ }
+
+ if (fileName && byteArray) {
+ //add Filedata to postData
+ postData = BOUNDARY(postData);
+ postData = LINEBREAK(postData);
+ bytes = 'Content-Disposition: form-data; name="stream"; filename="';
+ for (i = 0; i < bytes.length; ++i) {
+ postData.writeByte( bytes.charCodeAt(i) );
+ }
+ postData.writeUTFBytes(fileName);
+ postData = QUOTATIONMARK(postData);
+ postData = LINEBREAK(postData);
+ addContentType(postData, "application/octet-stream");
+ postData.writeBytes(byteArray, 0, byteArray.length);
+ postData = LINEBREAK(postData);
+
+ //closing boundary
+ postData = BOUNDARY(postData);
+ postData = DOUBLEDASH(postData);
+ }
+ return postData;
+ }
+
+ /**
+ * Add a boundary to the PostData with leading doubledash
+ */
+ private static function BOUNDARY(p:ByteArray):ByteArray {
+ var l:int = UploadPostHelper.getBoundary().length;
+
+ p = DOUBLEDASH(p);
+ for (var i:int = 0; i < l; i++ ) {
+ p.writeByte( _boundary.charCodeAt( i ) );
+ }
+ return p;
+ }
+
+ /**
+ * Add one linebreak
+ */
+ private static function LINEBREAK(p:ByteArray):ByteArray {
+ p.writeShort(0x0d0a);
+ return p;
+ }
+
+ /**
+ * Add quotation mark
+ */
+ private static function QUOTATIONMARK(p:ByteArray):ByteArray {
+ p.writeByte(0x22);
+ return p;
+ }
+
+ /**
+ * Add Double Dash
+ */
+ private static function DOUBLEDASH(p:ByteArray):ByteArray {
+ p.writeShort(0x2d2d);
+ return p;
+ }
+}
+}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/NetworkTest.mxml
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/NetworkTest.mxml b/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/NetworkTest.mxml
index cbe5e9d..406d2a0 100644
--- a/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/NetworkTest.mxml
+++ b/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/NetworkTest.mxml
@@ -71,6 +71,11 @@
protected function forcedStop():void {
}
+ public function startAllTestsMode(): void {
+ allTests = true;
+ setRunning();
+ }
+
private function hideAll():void {
notRun.visible = false;
container.visible = false;
@@ -133,7 +138,7 @@
protected function handleAllTestsMode():void {
if (allTests) {
var app:nettest = parentApplication as nettest;
- //canvas.testsView.testAll();
+ app.testAll();
}
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/PortAvailabilityTest.mxml
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/PortAvailabilityTest.mxml b/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/PortAvailabilityTest.mxml
index bd09088..9a300c6 100644
--- a/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/PortAvailabilityTest.mxml
+++ b/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/PortAvailabilityTest.mxml
@@ -21,8 +21,6 @@
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:nettest="org.apache.openmeetings.nettest.*">
<fx:Script><![CDATA[
- import mx.core.FlexGlobals;
-
private var nc:NetConnection;
override protected function init():void {
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/UploadSpeedTest.mxml
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/UploadSpeedTest.mxml b/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/UploadSpeedTest.mxml
index 729eb1f..eb173c9 100755
--- a/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/UploadSpeedTest.mxml
+++ b/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/UploadSpeedTest.mxml
@@ -20,4 +20,91 @@
<nettest:NetworkTest
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:nettest="org.apache.openmeetings.nettest.*">
+ <fx:Script><![CDATA[
+ import org.apache.openmeetings.net.RestCall;
+ import org.apache.openmeetings.net.UploadPostHelper;
+
+ private var hostUrl:String;
+ private var request:URLRequest;
+ protected var loader:RestCall;
+ private var loaderInited:Boolean = false;
+ protected var startTime:int;
+ private var vars:ByteArray;
+
+ override protected function init():void {
+ super.init();
+ title = lbl('upl');
+ resultText = true;
+ }
+
+ private function initLoader():void {
+ hostUrl = getBaseUrl() + "services/networktest";
+ loader = new RestCall({
+ url: hostUrl
+ , method: URLRequestMethod.POST
+ , dataFormat: URLLoaderDataFormat.BINARY
+ , contentType: "multipart/form-data; charset=utf-8; boundary=" + UploadPostHelper.getBoundary()
+ , errorCallback: onError
+ , successCallback: onComplete
+ });
+ vars = UploadPostHelper.getPostData('aaa', getData());
+ debug("initLoader:: ");
+ loaderInited = true;
+ }
+
+ override protected function start():void {
+ debug("start:: " + request);
+ if (!loaderInited) {
+ initLoader();
+ }
+
+ debug("going to start:: " + loader);
+ log(lbl('report.start') + " " + hostUrl);
+ startTime = getTimer();
+ request = loader.load("nettest", vars);
+ debug("load:: " + request);
+ }
+
+ override protected function forcedStop():void {
+ loader.close();
+ log("stopped");
+ }
+
+ private function onComplete(e:Event):void {
+ debug("onComplete:: " + e);
+ if (running) {
+ var endTime:Number = getTimer();
+ var loadTime:Number = endTime - startTime;
+ var loadTimeSec:Number = loadTime / 1000;
+ var mBytes:Number = request.data.length / (1024 * 1024);
+ var speed:Number = mBytes / loadTimeSec;
+
+ var report:String = "report:\n";
+ report += lbl('upl.bytes') + ": " + mBytes + " " + lbl('mb') + "\n";
+ report += lbl('upl.time') + ": " + loadTimeSec + " " + lbl('sec') + "\n";
+ report += lbl('upl.speed') + ": " + speed + " " + lbl('mb') + "/" + lbl('sec') + "\n";
+
+ result.text = formatNumber(speed) + "\n" + lbl('mb') + "/" + lbl('sec');
+ log(report);
+ setPassed();
+ }
+ }
+
+ private function onError(e:ErrorEvent):void {
+ debug("onError:: " + e);
+ if (running) {
+ log(lbl('report.error') + " - " + e);
+ setFailed();
+ }
+ }
+
+ private function getData():ByteArray {
+ var result:ByteArray = new ByteArray();
+ for (var i:int = 0; i < 64 * 16384; ++i) {
+ result.writeByte(i % 256);
+ }
+ result.position = 0;
+ return result;
+ }
+ ]]></fx:Script>
</nettest:NetworkTest>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/swf10/networkTesting/networktesting.lzx
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/swf10/networkTesting/networktesting.lzx b/openmeetings-flash/src/main/swf10/networkTesting/networktesting.lzx
deleted file mode 100644
index 0b0619a..0000000
--- a/openmeetings-flash/src/main/swf10/networkTesting/networktesting.lzx
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<canvas width="100%" height="100%" title="NetworkTesting">
- <switch>
- <when property="$as3">
- <passthrough>
- import flash.external.ExternalInterface;
- </passthrough>
- </when>
- </switch>
- <switch>
- <when property="$debug">
- <method name="doDebugInit">
- canvas.setAttribute('debug', true);
- </method>
- <debug fontsize="11" oninit="Debug.showInternalProperties = true" width="40%" y="50%" x="60%" height="50%" />
- </when>
- <otherwise>
- <method name="doDebugInit">
- </method>
- </otherwise>
- </switch>
-
- <include href="testsView.lzx" />
- <include href="restCall.lzx" />
-
- <handler name="oninit"><![CDATA[
- flash.external.ExternalInterface.call("loadingComplete");
- var lbls = ExternalInterface.call("getStringLabels");
- canvas.lbls = new Array(lbls.length);
- for (var i = 0; i < lbls.length; ++i) {
- canvas.lbls[lbls[i].id] = lbls[i].value;
- }
- var config = ExternalInterface.call("getConfig");
- doDebugInit();
- getSettings(config);
- canvas.showTests();
- ]]></handler>
-
- <method name="lbl" args="key">
- var s = canvas.lbls['network.test.' + key];
- if ($debug) Debug.info("LBL ", key, s, canvas.lbls);
- return !!s ? s : "Missing[" + key + "]";
- </method>
-
- <method name="getSettings" args="config">
- if ($debug) Debug.write("getSettings:: ", config);
- canvas.setAttribute("rtmpProtocol", config.flashProtocol);
- canvas.setAttribute("proxyType", config.proxy);
- canvas.setAttribute("rtmpHost", config.host);
- canvas.setAttribute("rtmpPort", config.flashPort);
-
- canvas.setAttribute("httpProtocol", config.httpProtocol);
- canvas.setAttribute("httpHost", config.host);
- canvas.setAttribute("httpPort", config.httpPort);
-
- canvas.setAttribute("uriContext", '/' + config.path);
- canvas.setAttribute("rtmpUriPath", canvas.uriContext + "hibernate");
- </method>
-
- <method name="showTests">
- var tests = new lz.TestsView(canvas, {name:"testsView"});
- tests.testAll();
- </method>
-
- <attribute name="busy" type="boolean" value="false"/>
- <attribute name="log" type="string" value="" />
-
- <attribute name="testsView" value="null"/>
-
-</canvas>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/swf10/networkTesting/restCall.lzx
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/swf10/networkTesting/restCall.lzx b/openmeetings-flash/src/main/swf10/networkTesting/restCall.lzx
deleted file mode 100644
index b02c1c4..0000000
--- a/openmeetings-flash/src/main/swf10/networkTesting/restCall.lzx
+++ /dev/null
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<library>
- <switch>
- <when runtime="swf11">
- <script when="immediate">
- <![CDATA[
- /**
- * Take a fileName, byteArray, and parameters object as input and return ByteArray post data suitable for a UrlRequest as output
- *
- * @see http://www.marstonstudio.com/?p=36
- * @see http://www.w3.org/TR/html4/interact/forms.html
- * @see http://www.jooce.com/blog/?p=143
- * @see http://www.jooce.com/blog/wp%2Dcontent/uploads/2007/06/uploadFile.txt
- * @see http://blog.je2050.de/2006/05/01/save-bytearray-to-file-with-php/
- *
- * @author Jonathan Marston
- * @version 2007.08.19
- *
- * This work is licensed under a Creative Commons Attribution NonCommercial ShareAlike 3.0 License.
- * @see http://creativecommons.org/licenses/by-nc-sa/3.0/
- *
- */
- public class UploadPostHelper {
- #passthrough (toplevel:true) {
- import flash.events.*;
- import flash.net.*;
- import flash.utils.ByteArray;
- import flash.utils.Endian;
- }#
-
- /**
- * Boundary used to break up different parts of the http POST body
- */
- private static var _boundary:String = "";
-
- /**
- * Get the boundary for the post.
- * Must be passed as part of the contentType of the UrlRequest
- */
- public static function getBoundary():String {
- if (_boundary.length == 0) {
- for (var i:int = 0; i < 0x20; i++ ) {
- _boundary += String.fromCharCode( int( 97 + Math.random() * 25 ) );
- }
- }
- return _boundary;
- }
-
- private static function addContentType(postData:ByteArray, type:String):void {
- var bytes:String = 'Content-Type: ' + type;
- for (var i:int = 0; i < bytes.length; ++i) {
- postData.writeByte(bytes.charCodeAt(i));
- }
- postData = LINEBREAK(postData);
- postData = LINEBREAK(postData);
- }
-
- /**
- * Create post data to send in a UrlRequest
- */
- public static function getPostData(fileName:String, byteArray:ByteArray, parameters:Array = null):ByteArray {
- var i:int;
- var bytes:String;
-
- var postData:ByteArray = new ByteArray();
- postData.endian = Endian.BIG_ENDIAN;
-
- //add Filename to parameters
- if(parameters == null) {
- parameters = [];
- }
-
- //add parameters to postData
- for (var j:int = 0; j < parameters.length; ++j) {
- postData = BOUNDARY(postData);
- postData = LINEBREAK(postData);
- bytes = 'Content-Disposition: form-data; name="' + parameters[j].name + '"';
- for (i = 0; i < bytes.length; ++i) {
- postData.writeByte(bytes.charCodeAt(i));
- }
- postData = LINEBREAK(postData);
- if (parameters[j].type) {
- addContentType(postData, parameters[j].type)
- } else {
- postData = LINEBREAK(postData);
- }
- postData.writeUTFBytes(parameters[j].value);
- postData = LINEBREAK(postData);
- }
-
- if (fileName && byteArray) {
- //add Filedata to postData
- postData = BOUNDARY(postData);
- postData = LINEBREAK(postData);
- bytes = 'Content-Disposition: form-data; name="stream"; filename="';
- for (i = 0; i < bytes.length; ++i) {
- postData.writeByte( bytes.charCodeAt(i) );
- }
- postData.writeUTFBytes(fileName);
- postData = QUOTATIONMARK(postData);
- postData = LINEBREAK(postData);
- addContentType(postData, "application/octet-stream");
- postData.writeBytes(byteArray, 0, byteArray.length);
- postData = LINEBREAK(postData);
-
- //closing boundary
- postData = BOUNDARY(postData);
- postData = DOUBLEDASH(postData);
- }
- return postData;
- }
-
- /**
- * Add a boundary to the PostData with leading doubledash
- */
- private static function BOUNDARY(p:ByteArray):ByteArray {
- var l:int = UploadPostHelper.getBoundary().length;
-
- p = DOUBLEDASH(p);
- for (var i:int = 0; i < l; i++ ) {
- p.writeByte( _boundary.charCodeAt( i ) );
- }
- return p;
- }
-
- /**
- * Add one linebreak
- */
- private static function LINEBREAK(p:ByteArray):ByteArray {
- p.writeShort(0x0d0a);
- return p;
- }
-
- /**
- * Add quotation mark
- */
- private static function QUOTATIONMARK(p:ByteArray):ByteArray {
- p.writeByte(0x22);
- return p;
- }
-
- /**
- * Add Double Dash
- */
- private static function DOUBLEDASH(p:ByteArray):ByteArray {
- p.writeShort(0x2d2d);
- return p;
- }
-
- }
-
- public class RestCall {
- #passthrough (toplevel:true) {
- import flash.events.*;
- import flash.net.*;
- }#
- private var url:String = null;
- private var method:String = URLRequestMethod.GET;
- private var contentType:String = null;
- private var dataFormat:String = "text";
- private var errorCallback:Function;
- private var successCallback:Function;
- private var hdrs:Array = [];
- private var requestor:URLLoader = null;
-
- public function RestCall(options:Object) {
- if (options["url"]) {
- this.url = options.url;
- }
- if (options["method"]) {
- this.method = options.method;
- }
- if (options["contentType"]) {
- this.contentType = options.contentType;
- }
- if (options["dataFormat"]) {
- this.dataFormat = options.dataFormat;
- }
- if (options["errorCallback"]) {
- this.errorCallback = options.errorCallback;
- }
- if (options["successCallback"]) {
- this.successCallback = options.successCallback;
- }
- if (options["hdrs"]) {
- this.hdrs = options.hdrs;
- }
- requestor = new URLLoader();
- requestor.dataFormat = dataFormat;
-
- //Initiate the transaction
- if (!!this.successCallback) {
- requestor.addEventListener(Event.COMPLETE, successCallback);
- }
- if (!!this.errorCallback) {
- requestor.addEventListener("ioError", errorCallback); //IOErrorEvent.IOERROR
- requestor.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorCallback);
- }
- }
-
- public function load(vars):URLRequest {
- var request:URLRequest = new URLRequest(url + '?sid=' + canvas.sessionId); //FIXME TODO
- request.method = method;
- if (contentType) {
- var header:URLRequestHeader = new URLRequestHeader('Content-type', contentType);
- request.requestHeaders.push(header);
- }
- for (var i = 0; i < hdrs.length; ++i) {
- request.requestHeaders.push(hdrs[i]);
- }
- //Add the URL vars
- request.data = vars;
-
- try {
- requestor.load(request);
- } catch (e:Error) {
- if ($debug) Debug.error(e);
- errorCallback(e);
- }
- return request;
- }
- }
- ]]>
- </script>
- </when>
-</switch>
-</library>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/swf10/networkTesting/rtmpConnection.lzx
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/swf10/networkTesting/rtmpConnection.lzx b/openmeetings-flash/src/main/swf10/networkTesting/rtmpConnection.lzx
deleted file mode 100644
index 0cb20a6..0000000
--- a/openmeetings-flash/src/main/swf10/networkTesting/rtmpConnection.lzx
+++ /dev/null
@@ -1,367 +0,0 @@
-<library>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<class name="rtmpConnection" extends="node">
- <switch>
- <when property="$as3">
- <passthrough>
- import flash.net.NetConnection;
- import flash.events.NetStatusEvent;
- </passthrough>
- </when>
- </switch>
-
- <attribute name="debug" value="false" type="boolean" />
-
- <event name="onconnect"/>
- <event name="onerror"/>
-
- <!-- this attribute holds a reference to the current/last called netremoteCall,
- in case of error you can debug that way which call did fail -->
- <attribute name="lastCalled" value="null" />
-
- <attribute name="src" value="" type="string"/>
-
- <method name="connect">
- this._nc = new NetConnection();
-
- // local reference to rtmpconnection
- //this._nc.t = this;
-
- this._nc.proxyType = canvas.proxyType;
-
- var ok = this._nc.connect(src == "null" ? null : src, {
- uid: "noclient"
- });
- if (this.debug) {
- if($debug) Debug.write("*** debug ***");
- }
-
- this._nc.addEventListener(NetStatusEvent.NET_STATUS, _onStatus);
-
- if($debug) Debug.write("devRtmpConnection/registerMethods()");
- var clientObj = {};
- clientObj.setId = this.setId;
-
- this._nc.client = clientObj;
-
- //Register Methods
- //this.registerMethods();
- </method>
-
- <method name="setId" args="tId">
- if ($debug) Debug.write("setId ", tId);
- </method>
-
- <method name="_onStatus" args="stats"><![CDATA[
- if ($debug) {
- Debug.write("devrtmpconnection", this, "_onStatus", stats.info.code);
- }
-
- var msg = "";
- var s;
-
- switch (stats.info.code) {
-
- case "NetConnection.Connect.Success": {
- // The connection attempt succeeded.
- //canvas.currentNC is the reference to the NetConnection that is used in the NetStream
- msg = stats.info.code;
- canvas.currentNC = this._nc;
- s = 2;
- break;
- }
-
- case "NetConnection.Connect.Closed": {
- msg = stats.info.code;
- this._nc = null;
- canvas.currentNC = null;
- s = 0;
- break;
- }
-
- default: {
- msg = stats.info.code;
- s = 0;
- break;
- }
-
- }
-
- this.setAttribute("status", msg);
-
- if (s == 2) {
- this.onconnect.sendEvent();
- } else {
- this.onerror.sendEvent();
- }
-
- ]]>
- </method>
-
- <method name="disconnect">
- if ($debug) Debug.write(" DISCONNECT ");
- if (this._nc != null) {
- this._nc.close();
- }
- </method>
- <!---
- With this function all methods are registered to the NetConnection
- A server can invoke this Method with a call for it from the Client
- Only subnodes of rtmpconnections which are a instance of netRemoteCallHib
- are registered, to add dynamically methods to the remotefunction you will
- have to invoke this method once again
- -swagner
- -->
- <method name="registerMethods">
- <![CDATA[
- if (this.subnodes!=null){
- var clientObj = {};
- //Register all methods which are onstanceof netRemoteCallHib
- for (var i=0;i<this.subnodes.length;i++){
- //If it is of Type netRemoteCallHib then register it to the NetConnection
- if (this.subnodes[i] instanceof lz.netRemoteCallHib){
- clientObj[this.subnodes[i].funcname] = function( args ){
- return canvas.thishib.remoteCallMethod(arguments.callee,arguments);
- //return hib.remoteCallMethod(arguments.callee,args);
- }
- }
- }
- this._nc.client = clientObj;
- }
- ]]>
- </method>
-
- <!--
- Process the RemoteCall to the Right Funtion
- -swagner
- -->
- <method name="remoteCallMethod" args="callee,args">
- <![CDATA[
- for (var eg in this._nc){
- if (this._nc[eg]==callee){
- if (this.debug) {
- //_root.Debug.write.write("DEBUG invoked a function remotely: ",eg,args);
- }
- if (args.length == 1) {
- return this.callFuntion(eg,args[0]);
- } else {
- return this.callFuntion(eg,args);
- }
- //return this.callFuntion(eg,args);
- }
- }
- ]]>
- </method>
-
- <!--
- Map the Function to a netRemoteCallHib
- -swagner
- -->
- <method name="callFuntion" args="funcname,args">
- <![CDATA[
- for (var i=0;i<this.subnodes.length;i++){
- if (this.subnodes[i].funcname==funcname){
- return this.subnodes[i].onResult(args);
- }
- }
- ]]>
- </method>
-
- <method name="callRPC" args="func, obj, params">
- //if ($debug) Debug.write("*** call: func, obj, params",func,obj, typeof (params) ,params.length);
- if (params.length != 0){
- //does this really work?
- //ASSetPropFlags(_global, null, 8, 1);
- //setPropertyIsEnumerable(8, 1);
- //Debug.write("does it work?",arguments);
- <!--
- this._nc.call.apply(this._nc,arguments);
- -->
- if (params.length==1){
- this._nc.call(func, obj,params[0]);
- } else if (params.length==2){
- this._nc.call(func, obj,params[0],params[1]);
- } else if (params.length==3){
- this._nc.call(func, obj,params[0],params[1],params[2]);
- } else if (params.length==4){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3]);
- } else if (params.length==5){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4]);
- } else if (params.length==6){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5]);
- } else if (params.length==7){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6]);
- } else if (params.length==8){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7]);
- } else if (params.length==9){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8]);
- } else if (params.length==10){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9]);
- } else if (params.length==11){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10]);
- } else if (params.length==12){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11]);
- } else if (params.length==13){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12]);
- } else if (params.length==14){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13]);
- } else if (params.length==15){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14]);
- } else if (params.length==16){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15]);
- } else if (params.length==17){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15],params[16]);
- } else if (params.length==18){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15],params[16],params[17]);
- } else if (params.length==19){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15],params[16],params[17],params[18]);
- } else if (params.length==20){
- this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15],params[16],params[17],params[18],params[19]);
- }
- } else {
- this._nc.call(func, obj);
- }
- </method>
-</class>
-
-
- <!---
- Net remote call.
- @todo Document netremotecall class.
- -->
- <class name="netremotecall" extends="node">
- <switch>
- <when property="$as3">
- <passthrough>
- import flash.net.Responder;
- </passthrough>
- </when>
- </switch>
-
- <!--- Name of the remote function. -->
- <attribute name="funcname" value="$once{null}" type="string" />
-
- <attribute name="remotecontext" value="null" />
-
- <attribute name="dataobject" value="null" />
-
- <attribute name="responder" value="null" />
-
- <!--- Data handling event. args="value" -->
- <event name="ondata" />
-
- <!--- Error handling event. -->
- <event name="onerror"/>
-
- <!--- Call the remote method, passing the array of params. -->
- <method name="callRPC" args="params"><![CDATA[
- if (this.funcname == null) {
- //Debug.write("No funcname given");
- if (this.onerror) this.onerror.sendEvent("No funcname given");
- return;
- }
-
- if (params == null) {
- params = new Array();
-
- var subnodes = this.subnodes;
- if (subnodes != null) {
- var i;
- var n = subnodes.length;
- for (i = 0; i < n; i++) {
- // If getValue method is declared in param, call that
- // instead to get value.
- var tsi = subnodes[i];
- //TODO: fixme
- //if ((tsi["getValue"] != null) && (tsi.getValue["prototype"] != null)) {
- // params[i] = tsi.getValue();
- // Debug.write("tsi.getValue():", tsi.getValue());
- //} else {
- // params[i] = tsi.value;
- //}
- params[i] = tsi.getValue();
- }
- }
-
- } else if (params.__proto__ != Array.prototype) {
- //Debug.write(this.name, "error: first argument (params) is not an array");
- return -1;
- }
-
- //if ($debug) Debug.write("call", this, this.parent, this.parent.status);
- var rtmpObject = null;
- if (this.parent instanceof lz.rtmpConnection){
- rtmpObject = this.parent;
- } else if(this.remotecontext instanceof lz.rtmpConnection){
- rtmpObject = this.remotecontext;
- } else {
- if ($debug) Debug.warn("ERROR: no remotecontext availible abort call", this.funcname, this);
- return;
- }
- //Debug.write('call', this, rtmpObject, rtmpObject.status);
- //Debug.write('call', this.remotecontext);
- if (rtmpObject.debug) Debug.write('call', this, rtmpObject, rtmpObject.status);
- rtmpObject.lastCalled = this;
-
- this.responder = new Responder(onResult);
-
- rtmpObject.callRPC(this.funcname, this.responder, params);
-
- ]]>
- </method>
-
- <!--- Handle the result returned from the remote method. -->
- <method name="onResult" args="value"><![CDATA[
- // Can be overriden.
- // Would be great if it can be used with dataobject,
- // but I don't know how to convert Array/primitive to LzDataset/LzDataPointer.
- ////Debug.write("netremotecall", this, "onResult", value);
-
- if (this.dataobject!=null) {
- if ( this.dataobject instanceof LzDataset ) {
- //Debug.write("onResult: ",this,value,dataobject);
- var element = LzDataElement.valueToElement(value);
- this.dataobject.setData(element.childNodes);
- } else if ( this.dataobject instanceof LzDataElement ) {
- var element = LzDataElement.valueToElement(value);
- this.dataobject.appendChild( element );
- } else {
- //TODO:fixme
- //Debug.warn("dataobject is not LzDataset or LzDataElement: ",this,this.dataobject,delegate);
- }
- }
- this.ondata.sendEvent(value);
- ]]>
- </method>
- </class>
-
- <!---
- Net parameter.
- Element to use inside netremotecall.
- @todo Document netparam class.
- -->
- <class name="netparam" extends="node">
- <!--- The value of the netparam. -->
- <attribute name="value" value="null"/>
- </class>
-
-</library>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/swf10/networkTesting/tests/BaseURLLoadTest.lzx
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/swf10/networkTesting/tests/BaseURLLoadTest.lzx b/openmeetings-flash/src/main/swf10/networkTesting/tests/BaseURLLoadTest.lzx
deleted file mode 100644
index a0e7eda..0000000
--- a/openmeetings-flash/src/main/swf10/networkTesting/tests/BaseURLLoadTest.lzx
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<library>
-
-<class name="BaseURLLoadTest" extends="NetworkTest">
-
- <switch>
- <when property="$as3">
- <passthrough>
- import flash.events.*;
- import flash.net.*;
- import flash.utils.*;
- </passthrough>
- </when>
- </switch>
-
- <attribute name="testsCount" type="number" value="0" />
- <attribute name="testTypeParameter" type="string" value="null" />
- <attribute name="verbose" type="boolean" value="true" />
-
- <attribute name="startTime" type="number" value="0" />
- <attribute name="wholeTime" type="number" value="0" />
- <attribute name="maxTime" type="number" value="0" />
- <attribute name="minTime" type="number" value="999999" />
- <attribute name="finishedTestsCount" type="number" value="0" />
- <attribute name="successfulTestsCount" type="number" value="0" />
-
- <attribute name="hostUrl" type="string" value="" />
- <attribute name="loaderInited" type="boolean" value="false" />
- <attribute name="request" value="null" />
- <attribute name="loader" value="null" />
-
- <method name="initLoader">
- hostUrl = getBaseUrl() + "services/networktest?type=" + testTypeParameter;
- request = new URLRequest(hostUrl);
-
- loader = new URLLoader();
- loader.addEventListener(Event.COMPLETE, this.onComplete);
- loader.addEventListener(IOErrorEvent.IO_ERROR, this.onError);
- loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onError);
-
- loaderInited = true;
- </method>
-
- <method name="start">
- if (!loaderInited) {
- this.initLoader();
- }
- finishedTestsCount = 0;
- successfulTestsCount = 0;
- wholeTime = 0;
- maxTime = 0;
- minTime = 999999;
-
- this.log(lbl('report.start') + " " + hostUrl);
- startTime = getTimer();
- loader.load(request);
- </method>
-
- <method name="forcedStop">
- loader.close();
- this.log("stopped");
- </method>
-
- <method name="onComplete" args="e">
- <![CDATA[
- var endTime = getTimer();
- var pingTime = endTime - startTime;
- wholeTime += pingTime;
- if (pingTime > maxTime) {
- maxTime = pingTime;
- }
- if (pingTime < minTime) {
- minTime = pingTime;
- }
-
- if (verbose) {
- this.log(lbl('ping.load') + " = " + pingTime + " " + lbl('ms'));
- }
-
- finishedTestsCount++;
- successfulTestsCount++;
- if (finishedTestsCount < testsCount && running) {
- startTime = getTimer();
- loader.load(request);
- } else {
- this.report();
- }
- ]]>
- </method>
-
- <method name="onError" args="e">
- <![CDATA[
- if (verbose) {
- this.log("Error - " + e);
- }
-
- finishedTestsCount++;
- if (finishedTestsCount < testsCount && running) {
- startTime = getTimer();
- loader.load(request);
- } else {
- this.report();
- }
- ]]>
- </method>
-
- <method name="report">
- var report = lbl('report') + ":";
- if (successfulTestsCount > 0) {
- report += "\n" + this.generateReport();
- } else {
- report += " " + lbl('report.con.err');
- }
- this.log(report);
-
- if (successfulTestsCount > 0) {
- this.setPassed();
- } else {
- this.setFailed();
- }
- </method>
-
- <method name="generateReport" />
-
-</class>
-
-</library>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/swf10/networkTesting/tests/DownloadSpeedTest.lzx
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/swf10/networkTesting/tests/DownloadSpeedTest.lzx b/openmeetings-flash/src/main/swf10/networkTesting/tests/DownloadSpeedTest.lzx
deleted file mode 100644
index dd8a083..0000000
--- a/openmeetings-flash/src/main/swf10/networkTesting/tests/DownloadSpeedTest.lzx
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<library>
-
-<class name="DownloadSpeedTest" extends="BaseURLLoadTest">
-
- <handler name="oninit">
- this.setAttribute("testsCount", 1);
- this.setAttribute("testName", lbl('dwn'));
- this.setAttribute("testTypeParameter", "download");
- this.setAttribute("verbose", false);
- this.setAttribute("resultText", true);
- </handler>
-
- <method name="generateReport">
- var mBytes = loader.bytesTotal/(1024*1024);
- var timeSec = wholeTime/1000;
- var speed = mBytes/timeSec;
-
- var report = lbl('dwn.bytes') + ": " + mBytes + " " + lbl('mb') + "\n";
- report += lbl('dwn.time') + ": " + timeSec + " " + lbl('sec') + "\n";
- report += lbl('dwn.speed') + ": " + speed + " " + lbl('mb') + "/" + lbl('sec') + "\n";
-
- resultLabel.setAttribute("text", "");
- resultLabel.addFormat("%.2f\n%s", speed, lbl('mb') + "/" + lbl('sec'));
-
- return report;
- </method>
-
-</class>
-
-</library>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/swf10/networkTesting/tests/JitterTest.lzx
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/swf10/networkTesting/tests/JitterTest.lzx b/openmeetings-flash/src/main/swf10/networkTesting/tests/JitterTest.lzx
deleted file mode 100644
index 2bf8d3e..0000000
--- a/openmeetings-flash/src/main/swf10/networkTesting/tests/JitterTest.lzx
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<library>
-
-<class name="JitterTest" extends="BaseURLLoadTest">
-
- <handler name="oninit">
- this.setAttribute("testsCount", 100);
- this.setAttribute("testName", lbl('jitter'));
- this.setAttribute("testTypeParameter", "jitter");
- this.setAttribute("verbose", false);
- this.setAttribute("resultText", true);
- </handler>
-
- <method name="generateReport">
- <![CDATA[
- var averageTime = wholeTime / successfulTestsCount;
- var jitterMax = maxTime - averageTime;
- var jitterMin = minTime - averageTime;
- var report = lbl('jitter.avg') + ": " + averageTime + " " + lbl('ms') + "\n";
- report += lbl('jitter.min') + ": " + minTime + " " + lbl('ms') + "\n";
- report += lbl('jitter.max') + ": " + maxTime + " " + lbl('ms') + "\n";
- report += lbl('jitter') + ": " + jitterMax + " " + lbl('ms') + "; " + jitterMin + " " + lbl('ms') + " \n";
-
- var max = -jitterMin;
- if (jitterMax > max) {
- max = jitterMax;
- }
-
- resultLabel.setAttribute("text", "");
- resultLabel.addFormat("%.0d\n%s", max, lbl('ms'));
-
- return report;
- ]]>
- </method>
-
-</class>
-
-</library>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/swf10/networkTesting/tests/NetworkTest.lzx
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/swf10/networkTesting/tests/NetworkTest.lzx b/openmeetings-flash/src/main/swf10/networkTesting/tests/NetworkTest.lzx
deleted file mode 100644
index 274d48e..0000000
--- a/openmeetings-flash/src/main/swf10/networkTesting/tests/NetworkTest.lzx
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<library>
-
-<class name="NetworkTest" extends="view">
-
- <attribute name="testName" type="string" value="null" />
- <attribute name="protocol" type="string" value="null" />
- <attribute name="host" type="string" value="null" />
- <attribute name="port" type="number" value="null" />
- <attribute name="running" type="boolean" value="false" />
- <attribute name="allTests" type="boolean" value="false" />
- <attribute name="resultText" type="boolean" value="false" />
-
- <method name="start" />
- <method name="forcedStop" />
-
- <method name="startAllTestsMode">
- allTests = true;
- this.setRunning();
- </method>
-
- <view name="picture">
- <view name="rsc" resource="notrun" width="113" height="113" />
- </view>
- <text name="nameLabel" text="${parent.testName}" x="${(parent.picture.rsc.width - this.width)/2}"
- y="$once{parent.picture.rsc.height}"
- />
- <text name="resultLabel" visible="false" fgcolor="white" align="center" fontsize="16" />
-
- <handler name="onclick">
- if (running) {
- this.setStopped();
- } else {
- allTests = false;
- this.setRunning();
- }
- </handler>
-
- <method name="handleAllTestsMode">
- if (allTests) {
- canvas.testsView.testAll();
- }
- </method>
-
- <method name="setPassed">
- if (running) {
- running=false;
- if (resultText) {
- picture.rsc.setAttribute("resource", "passed_result");
- var x = (picture.rsc.width - resultLabel.width)/2;
- var y = (picture.rsc.height - resultLabel.height)/2;
- resultLabel.setAttribute("x", x);
- resultLabel.setAttribute("y", y);
- resultLabel.setAttribute("visible", true);
- } else {
- picture.rsc.setAttribute("resource", "passed");
- }
- canvas.setAttribute("busy", false);
- this.handleAllTestsMode();
- }
- </method>
-
- <method name="setFailed">
- if (running) {
- running=false;
- picture.rsc.setAttribute("resource", "failed");
- canvas.setAttribute("busy", false);
- this.handleAllTestsMode();
- }
- </method>
-
- <method name="setRunning">
- if (canvas.busy) {
- return;
- }
- canvas.setAttribute("busy", true);
- this.start();
- running=true;
- resultLabel.setAttribute("visible", false);
- picture.rsc.setAttribute("resource", "running");
- picture.rsc.play();
- </method>
-
- <method name="setStopped">
- this.forcedStop();
- running=false;
- picture.rsc.setAttribute("resource", "notrun");
- canvas.setAttribute("busy", false);
- this.handleAllTestsMode();
- </method>
-
- <method name="log" args="message">
- var str = testName + ": " + message + "\n";
- canvas.log += str;
- if ($debug) Debug.write(str);
- </method>
-
- <method name="getBaseUrl">
- var hostUrl = protocol + "://" + host + ":" + port + canvas.uriContext;
- return hostUrl + (hostUrl.slice(-1) == '/' ? '' : '/');
- </method>
-
- <method name="lbl" args="key">
- return canvas.lbl(key);
- </method>
-
-</class>
-
-</library>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/swf10/networkTesting/tests/PingTest.lzx
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/swf10/networkTesting/tests/PingTest.lzx b/openmeetings-flash/src/main/swf10/networkTesting/tests/PingTest.lzx
deleted file mode 100644
index 61d484b..0000000
--- a/openmeetings-flash/src/main/swf10/networkTesting/tests/PingTest.lzx
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<library>
-
-<class name="PingTest" extends="BaseURLLoadTest">
-
- <handler name="oninit">
- this.setAttribute("testsCount", 10);
- this.setAttribute("testName", lbl('ping'));
- this.setAttribute("testTypeParameter", "ping");
- </handler>
-
- <method name="generateReport">
- var averageTime = wholeTime / successfulTestsCount;
- var packetsLost = testsCount - successfulTestsCount;
- var report = lbl('ping.avg') + ": " + averageTime + " " + lbl('ms') + "\n";
- report += lbl('ping.rcv') + ": " + successfulTestsCount + "\n";
- report += lbl('ping.lost') + ": " + packetsLost + "\n";
-
- return report;
- </method>
-
-</class>
-
-</library>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/swf10/networkTesting/tests/PortAvailabilityTest.lzx
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/swf10/networkTesting/tests/PortAvailabilityTest.lzx b/openmeetings-flash/src/main/swf10/networkTesting/tests/PortAvailabilityTest.lzx
deleted file mode 100644
index 9bf7e3d..0000000
--- a/openmeetings-flash/src/main/swf10/networkTesting/tests/PortAvailabilityTest.lzx
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<library>
-
-<class name="PortAvailabilityTest" extends="NetworkTest">
-
- <switch>
- <when property="$as3">
- <passthrough>
- import flash.events.*;
- import flash.net.*;
- import flash.system.*;
- </passthrough>
- </when>
- </switch>
-
- <rtmpConnection name="rtmp" debug="true" />
-
- <handler name="oninit">
- this.setAttribute("testName", lbl('port'));
- </handler>
-
- <method name="start">
- var hostUrl = protocol + "://" + host + ":" + port + canvas.rtmpUriPath;
- rtmp.setAttribute("src", hostUrl);
- this.log(": " + lbl('report.start') + " " + hostUrl);
-
- canvas.publicSID = "noclient";
- rtmp.connect();
- </method>
-
- <method name="forcedStop">
- this.log(lbl('port.stopped'));
- disconnect();
- </method>
-
- <method name="disconnect">
- rtmp._nc.close();
- rtmp.setAttribute('status', 'disconnected');
- rtmp.setAttribute('stage', 0);
- </method>
-
- <handler name="onconnect" reference="rtmp">
- if (running) {
- this.log(lbl('port.avail') + "\n");
- this.setPassed();
- disconnect();
- }
- </handler>
-
- <handler name="onerror" args="e" reference="rtmp">
- if (running) {
- this.log(lbl('report.con.err') + " - " + e + "\n");
- this.setFailed();
- }
- </handler>
-
- <handler name="onstatus" args="e" reference="rtmp">
- if (running) {
- switch(e) {
- case "timed out":
- case "connection failed":
- this.setFailed();
- break;
- }
- if($debug) Debug.write(testName + ": RTMP connect status - ", e);
- }
- </handler>
-
-</class>
-
-</library>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/swf10/networkTesting/tests/UploadSpeedTest.lzx
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/swf10/networkTesting/tests/UploadSpeedTest.lzx b/openmeetings-flash/src/main/swf10/networkTesting/tests/UploadSpeedTest.lzx
deleted file mode 100644
index 92ea5bf..0000000
--- a/openmeetings-flash/src/main/swf10/networkTesting/tests/UploadSpeedTest.lzx
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<library>
-
-<class name="UploadSpeedTest" extends="NetworkTest">
-
- <switch>
- <when property="$as3">
- <passthrough>
- import flash.events.*;
- import flash.net.*;
- import flash.utils.*;
- </passthrough>
- </when>
- </switch>
-
- <attribute name="startTime" type="number" value="0" />
-
- <attribute name="hostUrl" type="string" value="" />
- <attribute name="loaderInited" type="boolean" value="false" />
- <attribute name="vars" value="null" />
- <attribute name="request" value="null" />
- <attribute name="loader" value="null" />
-
- <handler name="oninit">
- this.setAttribute("testName", lbl('upl'));
- this.setAttribute("resultText", true);
- </handler>
-
- <method name="initLoader">
- hostUrl = getBaseUrl() + "services/networktest";
- loader = new RestCall({
- url: hostUrl
- , method: URLRequestMethod.POST
- , dataFormat: URLLoaderDataFormat.BINARY
- , contentType: "multipart/form-data; charset=utf-8; boundary=" + UploadPostHelper.getBoundary()
- , errorCallback: onError
- , successCallback: onComplete
- });
- vars = UploadPostHelper.getPostData('aaa', getData());
- if ($debug) Debug.write("initLoader:: ");//, vars
- loaderInited = true;
- </method>
-
- <method name="start">
- if ($debug) Debug.write("start:: ", request);
- if (!loaderInited) {
- this.initLoader();
- }
-
- if ($debug) Debug.write("going to start:: ", loader);
- this.log(lbl('report.start') + " " + hostUrl);
- startTime = getTimer();
- request = loader.load(vars);
- if ($debug) Debug.write("load:: ", request);
- </method>
-
- <method name="forcedStop">
- loader.close();
- this.log("stopped");
- </method>
-
- <method name="onComplete" args="e">
- if ($debug) Debug.write("onComplete:: ", e);
- if (running) {
- var endTime = getTimer();
- var loadTime = endTime - startTime;
- var loadTimeSec = loadTime/1000;
- var mBytes = request.data.length/(1024*1024);
- var speed = mBytes / loadTimeSec;
-
- var report = "report:\n";
- report += lbl('upl.bytes') + ": " + mBytes + " " + lbl('mb') + "\n";
- report += lbl('upl.time') + ": " + loadTimeSec + " " + lbl('sec') + "\n";
- report += lbl('upl.speed') + ": " + speed + " " + lbl('mb') + "/" + lbl('sec') + "\n";
-
- resultLabel.setAttribute("text", "");
- resultLabel.addFormat("%.2f\n%s", speed, lbl('mb') + "/" + lbl('sec'));
- this.log(report);
- this.setPassed();
- }
- </method>
-
- <method name="onError" args="e">
- if ($debug) Debug.write("onError:: ", e);
- if (running) {
- this.log(lbl('report.error') + " - " + e);
- this.setFailed();
- }
- </method>
-
- <!-- returns a 1 Mb string-->
- <method name="getData">
- <![CDATA[
- var result:ByteArray = new ByteArray();
- for (var i = 0; i < 64 * 16384; ++i) {
- result.writeByte(i % 256);
- }
- result.position = 0;
- return result;
- ]]>
- </method>
-
-</class>
-
-</library>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/swf10/networkTesting/tests/library.lzx
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/swf10/networkTesting/tests/library.lzx b/openmeetings-flash/src/main/swf10/networkTesting/tests/library.lzx
deleted file mode 100644
index 060594d..0000000
--- a/openmeetings-flash/src/main/swf10/networkTesting/tests/library.lzx
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<library>
- <resource name="failed" src="resources/failed.png" />
- <resource name="notrun" src="resources/notrun.png" />
- <resource name="passed" src="resources/passed.png" />
- <resource name="passed_result" src="resources/passed_result.png" />
- <resource name="running" src="resources/running.swf" />
-
- <include href="BaseURLLoadTest.lzx" />
- <include href="DownloadSpeedTest.lzx" />
- <include href="JitterTest.lzx" />
- <include href="NetworkTest.lzx" />
- <include href="PingTest.lzx" />
- <include href="PortAvailabilityTest.lzx" />
- <include href="UploadSpeedTest.lzx" />
-</library>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2fa0be15/openmeetings-flash/src/main/swf10/networkTesting/testsView.lzx
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/swf10/networkTesting/testsView.lzx b/openmeetings-flash/src/main/swf10/networkTesting/testsView.lzx
deleted file mode 100644
index 5e6f6ab..0000000
--- a/openmeetings-flash/src/main/swf10/networkTesting/testsView.lzx
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<library>
-
-<include href="rtmpConnection.lzx" />
-<include href="tests/" />
-<resource name="log" src="resources/edit-copy.png" />
-
-<class name="TestsView" extends="view">
-
- <attribute name="offset" type="number" value="20" />
- <attribute name="smallOffset" type="number" value="5" />
-
- <text name="label"
- text="$once{canvas.lbl('click.play')}"
- x="${parent.offset}"
- y="${parent.offset}"
- />
- <view name="logButton"
- x="${parent.width - this.rsc.width - parent.offset}"
- y="${parent.label.y + (parent.label.height - this.rsc.height)/2}"
- >
- <image name="rsc" resource="log" height="16" width="16"/>
- <handler name="onclick">
- lz.Browser.setClipboard(canvas.log);
- </handler>
- </view>
-
- <text name="logLabel"
- text="$once{canvas.lbl('copy.log')}"
- x="${parent.logButton.x - this.width - parent.smallOffset}"
- y="${parent.label.y}"
- />
-
- <PingTest
- name="pingTest" protocol="${canvas.httpProtocol}" host="${canvas.httpHost}" port="${canvas.httpPort}"
- x="${parent.offset}"
- y="${parent.label.y + parent.label.height + parent.offset/2}"
- />
- <PortAvailabilityTest
- name="portTest" protocol="${canvas.rtmpProtocol}" host="${canvas.rtmpHost}" port="${canvas.rtmpPort}"
- x="${parent.pingTest.x + parent.pingTest.width + parent.offset}"
- y="${parent.pingTest.y}"
- />
- <JitterTest
- name="jitterTest" protocol="${canvas.httpProtocol}" host="${canvas.httpHost}" port="${canvas.httpPort}"
- x="${parent.portTest.x + parent.portTest.width + parent.offset}"
- y="${parent.pingTest.y}"
- />
- <DownloadSpeedTest
- name="downloadTest" protocol="${canvas.httpProtocol}" host="${canvas.httpHost}" port="${canvas.httpPort}"
- x="${parent.jitterTest.x + parent.jitterTest.width + parent.offset}"
- y="${parent.pingTest.y}"
- />
-
- <UploadSpeedTest
- name="uploadTest" protocol="${canvas.httpProtocol}" host="${canvas.httpHost}" port="${canvas.httpPort}"
- x="${parent.downloadTest.x + parent.downloadTest.width + parent.offset}"
- y="${parent.pingTest.y}"
- />
-
- <attribute name="currentTestNumber" type="number" value="0" />
- <method name="testAll">
- var nextTest;
- if (0 == currentTestNumber) {
- nextTest = pingTest;
- } else if (1 == currentTestNumber) {
- nextTest = portTest;
- } else if (2 == currentTestNumber) {
- nextTest = jitterTest;
- } else if (3 == currentTestNumber) {
- nextTest = downloadTest;
- } else if (4 == currentTestNumber) {
- nextTest = uploadTest;
- } else if (5 == currentTestNumber) {
- nextTest = null;
- }
-
- if (null != nextTest) {
- currentTestNumber++;
- nextTest.startAllTestsMode();
- }
- </method>
-
-</class>
-
-</library>