summaryrefslogtreecommitdiffstatshomepage
path: root/includes/js/dojox/flash/tests
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojox/flash/tests')
-rw-r--r--includes/js/dojox/flash/tests/TestFlash.as36
-rw-r--r--includes/js/dojox/flash/tests/TestFlash.swfbin0 -> 1863 bytes
-rw-r--r--includes/js/dojox/flash/tests/buildFlashTest.sh4
-rw-r--r--includes/js/dojox/flash/tests/test_flash.html15
-rw-r--r--includes/js/dojox/flash/tests/test_flash.js155
5 files changed, 210 insertions, 0 deletions
diff --git a/includes/js/dojox/flash/tests/TestFlash.as b/includes/js/dojox/flash/tests/TestFlash.as
new file mode 100644
index 0000000..d7be64f
--- /dev/null
+++ b/includes/js/dojox/flash/tests/TestFlash.as
@@ -0,0 +1,36 @@
+import DojoExternalInterface;
+import ExpressInstall;
+
+class TestFlash{
+ private var message:String;
+
+ public function TestFlash(){
+ }
+
+ public static function main(){
+ //getURL("javascript:alert('main')");
+ trace("main");
+ DojoExternalInterface.initialize();
+
+ var test = new TestFlash();
+ DojoExternalInterface.addCallback("setMessage", test, test.setMessage);
+ DojoExternalInterface.addCallback("getMessage", test, test.getMessage);
+ DojoExternalInterface.addCallback("multipleValues",
+ test, test.multipleValues);
+
+ DojoExternalInterface.done();
+ }
+
+ public function setMessage(message:String):Void{
+ this.message = message;
+ }
+
+ public function getMessage():String{
+ return this.message;
+ }
+
+ public function multipleValues(key:String, value:String,
+ namespace:String):String{
+ return namespace + key + value;
+ }
+} \ No newline at end of file
diff --git a/includes/js/dojox/flash/tests/TestFlash.swf b/includes/js/dojox/flash/tests/TestFlash.swf
new file mode 100644
index 0000000..cfd3f8d
--- /dev/null
+++ b/includes/js/dojox/flash/tests/TestFlash.swf
Binary files differ
diff --git a/includes/js/dojox/flash/tests/buildFlashTest.sh b/includes/js/dojox/flash/tests/buildFlashTest.sh
new file mode 100644
index 0000000..a73d20c
--- /dev/null
+++ b/includes/js/dojox/flash/tests/buildFlashTest.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+# TODO: FIXME: Get rid of this and hook it into Dojo's general build script
+# You must have mtasc to run this
+mtasc -trace DojoExternalInterface.trace -main -cp .. -swf TestFlash.swf -version 8 -header 215:138:10 TestFlash.as \ No newline at end of file
diff --git a/includes/js/dojox/flash/tests/test_flash.html b/includes/js/dojox/flash/tests/test_flash.html
new file mode 100644
index 0000000..5e09f45
--- /dev/null
+++ b/includes/js/dojox/flash/tests/test_flash.html
@@ -0,0 +1,15 @@
+<html>
+ <head>
+ <script src="../../../dojo/dojo.js" djConfig="isDebug: true"></script>
+
+ <script src="test_flash.js"></script>
+ </head>
+
+ <body>
+ <h1>Test Dojox Flash</h1>
+
+ <p>For detailed test output see Firebug console (if Firefox).
+ This test should be run on Firefox, Internet Explorer, and Safari
+ to confirm that Dojox Flash is working correctly.</p>
+ </body>
+</html> \ No newline at end of file
diff --git a/includes/js/dojox/flash/tests/test_flash.js b/includes/js/dojox/flash/tests/test_flash.js
new file mode 100644
index 0000000..1b26eb2
--- /dev/null
+++ b/includes/js/dojox/flash/tests/test_flash.js
@@ -0,0 +1,155 @@
+// TODO: FIXME: Refactor this to use D.O.H. instead of its own assertions
+
+dojo.require("dojox.flash");
+
+var flashLoaded = false;
+var pageLoaded = false;
+var testXML = testBook = null;
+
+function flashReady(){
+ console.debug("flashReady");
+ flashLoaded = true;
+
+ if(isReady()){
+ run();
+ }
+}
+
+function pageReady(){
+ console.debug("pageReady");
+ pageLoaded = true;
+
+ loadResources();
+
+ if(isReady()){
+ run();
+ }
+}
+
+function isReady(){
+ return testXML && testBook && pageLoaded && flashLoaded;
+}
+
+function loadResources(){
+ console.debug("Trying to load resources");
+
+ var d = dojo.xhrGet({
+ url: "../../storage/tests/resources/testXML.xml",
+ handleAs: "text"
+ });
+
+ d.addCallback(function(results){
+ console.debug("testXML loaded");
+ testXML = results;
+ if(isReady()){
+ run();
+ }
+ });
+
+ d.addErrback(function(error){
+ console.debug("Unable to load testXML.xml: " + error);
+ });
+
+ d = dojo.xhrGet({
+ url: "../../storage/tests/resources/testBook.txt",
+ handleAs: "text"
+ });
+
+ d.addCallback(function(results){
+ console.debug("testBook loaded");
+ testBook = results;
+ if(isReady()){
+ run();
+ }
+ });
+
+ d.addErrback(function(error){
+ console.debug("Unable to load testXML.xml: " + error);
+ });
+}
+
+function run(){
+ console.debug("run");
+ try{
+ var correct, actual;
+
+ console.debug("Setting simple message...");
+ correct = "hello world";
+ dojox.flash.comm.setMessage(correct);
+ actual = dojox.flash.comm.getMessage();
+ assert(correct, actual, "Setting/getting simple message did not work");
+
+ console.debug("Setting message with evil characters...");
+ // our correct and actual values get tricky when we have double back
+ // slashes; do a trick so that they can be compared easier
+ var doubleSlash = "\\";
+ doubleSlash = doubleSlash.charAt(0);
+ correct = "hello world\n\n\nasdfasdf!@#$@#%^[]{}&amp;<xml>" + doubleSlash
+ + "<div>$%^&%^&*^&()<><><>,./;\0\r\f\'][`~=\"+-]MORE!\n\rLESS";
+ dojox.flash.comm.setMessage(correct);
+ actual = dojox.flash.comm.getMessage();
+ assert(correct, actual, "Setting/getting message with evil characters did not work");
+
+ console.debug("Setting testXML...");
+ correct = testXML;
+ dojox.flash.comm.setMessage(correct);
+ actual = dojox.flash.comm.getMessage();
+ assert(correct, actual, "Setting/getting testXML did not work");
+
+ console.debug("Setting testBook(~300K)...");
+ correct = testBook;
+ dojox.flash.comm.setMessage(correct);
+ actual = dojox.flash.comm.getMessage();
+ assert(correct, actual, "Setting/getting testBook did not work");
+
+ console.debug("Setting testBook 3 times (~900K)...");
+ correct = testBook + testBook + testBook;
+ dojox.flash.comm.setMessage(correct);
+ actual = dojox.flash.comm.getMessage();
+ assert(correct, actual, "Setting/getting testBook X 3 did not work");
+
+ console.debug("Setting JSON...");
+ var obj = {type: "car", color: "red", model: "Ford", year: "2008",
+ features: ["A/C", "automatic", "4-wheel drive"]};
+ correct = dojo.toJson(obj, true);
+ dojox.flash.comm.setMessage(correct);
+ actual = dojox.flash.comm.getMessage();
+ assert(correct, actual, "Setting/getting JSON did not work");
+
+ console.debug("Calling method that takes multiple values...");
+ actual = dojox.flash.comm.multipleValues("key", "value", "namespace");
+ assert("namespacekeyvalue", actual, "Setting/getting multiple values did not work");
+
+ var allPassed = document.createElement("p");
+ allPassed.style.backgroundColor = "green";
+ allPassed.style.color = "white";
+ allPassed.style.fontSize = "24pt";
+ allPassed.appendChild(document.createTextNode("All tests passed"));
+ var body = document.getElementsByTagName("body")[0];
+ body.appendChild(allPassed);
+ }catch(e){
+ console.debug(e.message || e);
+ }
+}
+
+function assert(correct, actual, msg){
+ //alert("correct="+correct+",\n\nactual="+actual);
+ if(correct != actual){
+ var failed = document.createElement("p");
+ failed.style.backgroundColor = "red";
+ failed.style.color = "white";
+ failed.style.fontSize = "24pt";
+ failed.appendChild(document.createTextNode("Test failed: " + msg));
+ var body = document.getElementsByTagName("body")[0];
+ body.appendChild(failed);
+
+ throw new Error("ASSERTION FAILED: " + msg);
+ }else{
+ console.debug("Assertion passed");
+ }
+}
+
+console.debug("adding listeners...");
+dojox.flash.addLoadedListener(flashReady);
+dojox.flash.setSwf("TestFlash.swf", true);
+dojo.connect(dojo, "loaded", pageReady);