diff --git a/tests/tests/swfs/avm2/filereference_save/Test.as b/tests/tests/swfs/avm2/filereference_save/Test.as index d9dc1d904..f83328f02 100644 --- a/tests/tests/swfs/avm2/filereference_save/Test.as +++ b/tests/tests/swfs/avm2/filereference_save/Test.as @@ -16,7 +16,7 @@ function dump(file) { } catch (e) { trace("file.name threw: " + e); } -/* +/* FIXME try { trace("file.size: " + file.size); } catch (e) { diff --git a/tests/tests/swfs/avm2/filereference_save_and_browse/Test.as b/tests/tests/swfs/avm2/filereference_save_and_browse/Test.as new file mode 100644 index 000000000..d17b86143 --- /dev/null +++ b/tests/tests/swfs/avm2/filereference_save_and_browse/Test.as @@ -0,0 +1,81 @@ +package { + import flash.display.Sprite; + public class Test extends Sprite { } +} + +import flash.net.FileReference; +import flash.net.FileFilter; +import flash.events.Event; +import flash.events.ProgressEvent; +import flash.utils.setTimeout; + +var file = new FileReference(); + +function dump(file) { + try { + trace("file.name: " + file.name); + } catch (e) { + trace("file.name threw: " + e); + } +/* FIXME + try { + trace("file.size: " + file.size); + } catch (e) { + trace("file.size threw: " + e); + } +*/ + trace("file.data: " + file.data); + trace(""); +} + +function onopen(e) { + trace("open event"); + dump(e.target); +} + +function onprogress(e) { + trace("progress event"); + trace(e.bytesLoaded + " / " + e.bytesTotal); + dump(e.target); +} + +function oncomplete(e) { + trace("complete event"); + dump(e.target); + + file.removeEventListener(Event.SELECT, onselect); + file.removeEventListener(Event.COMPLETE, oncomplete); + file.addEventListener(Event.SELECT, onselect2); + file.addEventListener(Event.COMPLETE, oncomplete2); + file.browse([new FileFilter("debug-select-success", "*.txt")]); +} + +function oncomplete2(e) { + trace("complete event"); + dump(e.target); +} + +function onselect(e) { + trace("select event"); + dump(e.target); +} + +function onselect2(e) { + trace("select event 2"); + dump(e.target); + + file.load(); +} + +function oncancel(e) { + trace("cancel event"); + dump(e.target); +} + +file.addEventListener(Event.OPEN, onopen); +file.addEventListener(ProgressEvent.PROGRESS, onprogress); +file.addEventListener(Event.COMPLETE, oncomplete); +file.addEventListener(Event.SELECT, onselect); +file.addEventListener(Event.CANCEL, oncancel); + +file.save("Hello, World!", "debug-success.txt"); diff --git a/tests/tests/swfs/avm2/filereference_save_and_browse/output.txt b/tests/tests/swfs/avm2/filereference_save_and_browse/output.txt new file mode 100644 index 000000000..9a6c48338 --- /dev/null +++ b/tests/tests/swfs/avm2/filereference_save_and_browse/output.txt @@ -0,0 +1,43 @@ +select event +file.name: debug-success.txt +file.data: null + +open event +file.name: debug-success.txt +file.data: null + +progress event +13 / 13 +file.name: debug-success.txt +file.data: null + +complete event +file.name: debug-success.txt +file.data: null + +select event 2 +file.name: test.txt +file.data: null + +open event +file.name: test.txt +file.data: null + +progress event +0 / 13 +file.name: test.txt +file.data: null + +open event +file.name: test.txt +file.data: null + +progress event +13 / 13 +file.name: test.txt +file.data: null + +complete event +file.name: test.txt +file.data: Hello, World! + diff --git a/tests/tests/swfs/avm2/filereference_save_and_browse/test.swf b/tests/tests/swfs/avm2/filereference_save_and_browse/test.swf new file mode 100644 index 000000000..cb9ed8cb6 Binary files /dev/null and b/tests/tests/swfs/avm2/filereference_save_and_browse/test.swf differ diff --git a/tests/tests/swfs/avm2/filereference_save_and_browse/test.toml b/tests/tests/swfs/avm2/filereference_save_and_browse/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/filereference_save_and_browse/test.toml @@ -0,0 +1 @@ +num_ticks = 1