asunit4 4.2.1.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +5 -0
- data/MIT-LICENSE.txt +22 -0
- data/README.textile +6 -0
- data/air/AIR2Runner.mxml +22 -0
- data/air/AIR2RunnerDescriptor.xml +38 -0
- data/asunit4.gemspec +20 -0
- data/asunit4.rb +16 -0
- data/bin/AsUnit-4.1.pre.swc +0 -0
- data/bin/AsUnitRunner.swf +0 -0
- data/build.xml +46 -0
- data/lib/Reflection.swc +0 -0
- data/rakefile.rb +169 -0
- data/script/generate +21 -0
- data/src/asunit/asserts/assertEquals.as +5 -0
- data/src/asunit/asserts/assertEqualsArrays.as +5 -0
- data/src/asunit/asserts/assertEqualsArraysIgnoringOrder.as +5 -0
- data/src/asunit/asserts/assertEqualsFloat.as +5 -0
- data/src/asunit/asserts/assertFalse.as +5 -0
- data/src/asunit/asserts/assertNotNull.as +5 -0
- data/src/asunit/asserts/assertNotSame.as +5 -0
- data/src/asunit/asserts/assertNull.as +5 -0
- data/src/asunit/asserts/assertSame.as +5 -0
- data/src/asunit/asserts/assertThrows.as +5 -0
- data/src/asunit/asserts/assertTrue.as +5 -0
- data/src/asunit/asserts/fail.as +5 -0
- data/src/asunit/core/AsUnitCore.as +177 -0
- data/src/asunit/core/FlashBuilderCore.as +22 -0
- data/src/asunit/core/FlashDevelopCore.as +21 -0
- data/src/asunit/core/TextCore.as +54 -0
- data/src/asunit/errors/AbstractError.as +10 -0
- data/src/asunit/errors/AssertionFailedError.as +10 -0
- data/src/asunit/errors/ClassNotFoundError.as +11 -0
- data/src/asunit/errors/InstanceNotFoundError.as +10 -0
- data/src/asunit/errors/UnimplementedFeatureError.as +10 -0
- data/src/asunit/errors/UsageError.as +11 -0
- data/src/asunit/events/TimeoutCommandEvent.as +27 -0
- data/src/asunit/framework/Assert.as +408 -0
- data/src/asunit/framework/Async.as +138 -0
- data/src/asunit/framework/CallbackBridge.as +175 -0
- data/src/asunit/framework/Command.as +6 -0
- data/src/asunit/framework/ErrorEvent.as +20 -0
- data/src/asunit/framework/IAsync.as +21 -0
- data/src/asunit/framework/IResult.as +36 -0
- data/src/asunit/framework/IRunListener.as +11 -0
- data/src/asunit/framework/IRunner.as +15 -0
- data/src/asunit/framework/IRunnerFactory.as +9 -0
- data/src/asunit/framework/ITestFailure.as +32 -0
- data/src/asunit/framework/ITestListener.as +15 -0
- data/src/asunit/framework/ITestResult.as +21 -0
- data/src/asunit/framework/ITestSuccess.as +22 -0
- data/src/asunit/framework/ITestWarning.as +14 -0
- data/src/asunit/framework/InjectionDelegate.as +96 -0
- data/src/asunit/framework/LegacyTestIterator.as +40 -0
- data/src/asunit/framework/MessageBridge.as +24 -0
- data/src/asunit/framework/Method.as +80 -0
- data/src/asunit/framework/Result.as +181 -0
- data/src/asunit/framework/RunnerFactory.as +179 -0
- data/src/asunit/framework/SuiteIterator.as +71 -0
- data/src/asunit/framework/TestCase.as +106 -0
- data/src/asunit/framework/TestFailure.as +65 -0
- data/src/asunit/framework/TestIterator.as +282 -0
- data/src/asunit/framework/TestObserver.as +12 -0
- data/src/asunit/framework/TestSuccess.as +38 -0
- data/src/asunit/framework/TestWarning.as +40 -0
- data/src/asunit/framework/TimeoutCommand.as +103 -0
- data/src/asunit/printers/FlashBuilderPrinter.as +134 -0
- data/src/asunit/printers/FlashDevelopPrinter.as +81 -0
- data/src/asunit/printers/TextPrinter.as +324 -0
- data/src/asunit/runners/LegacyRunner.as +13 -0
- data/src/asunit/runners/SuiteRunner.as +125 -0
- data/src/asunit/runners/TestRunner.as +403 -0
- data/src/asunit/util/ArrayIterator.as +30 -0
- data/src/asunit/util/Iterator.as +10 -0
- data/test/AllTests.as +73 -0
- data/test/AsUnitRunner.as +15 -0
- data/test/Flex3Runner.mxml +24 -0
- data/test/Flex4Runner.mxml +27 -0
- data/test/asunit/core/AsUnitCoreTest.as +97 -0
- data/test/asunit/framework/AssertEqualsArraysIgnoringOrderTest.as +88 -0
- data/test/asunit/framework/AssertEqualsArraysTest.as +102 -0
- data/test/asunit/framework/AssertTest.as +184 -0
- data/test/asunit/framework/AssertThrowsTest.as +42 -0
- data/test/asunit/framework/AsyncMethodTest.as +69 -0
- data/test/asunit/framework/AsyncTest.as +104 -0
- data/test/asunit/framework/CallbackBridgeTest.as +73 -0
- data/test/asunit/framework/InjectionDelegateTest.as +79 -0
- data/test/asunit/framework/MockData.xml +8 -0
- data/test/asunit/framework/NestedSuiteIteratorTest.as +59 -0
- data/test/asunit/framework/ProceedOnEventTest.as +109 -0
- data/test/asunit/framework/ResultTest.as +92 -0
- data/test/asunit/framework/RunnerFactoryTest.as +54 -0
- data/test/asunit/framework/SuiteIteratorTest.as +67 -0
- data/test/asunit/framework/TestCaseMock.as +24 -0
- data/test/asunit/framework/TestIteratorIgnoredMethodTest.as +62 -0
- data/test/asunit/framework/TestIteratorMethodByNameTest.as +50 -0
- data/test/asunit/framework/TestIteratorMultiMethodTest.as +186 -0
- data/test/asunit/framework/TestIteratorOrderedTestMethodTest.as +57 -0
- data/test/asunit/framework/TestIteratorSingleMethodTest.as +56 -0
- data/test/asunit/framework/VisualTestCaseTest.as +43 -0
- data/test/asunit/framework/assertAssertionFailed.as +19 -0
- data/test/asunit/printers/TextPrinterTest.as +122 -0
- data/test/asunit/runners/LegacyRunnerTest.as +40 -0
- data/test/asunit/runners/SuiteRunnerTest.as +40 -0
- data/test/asunit/runners/TestRunnerAsyncMethodTest.as +107 -0
- data/test/asunit/runners/TestRunnerErrorMethodTest.as +56 -0
- data/test/asunit/runners/TestRunnerExpectsErrorTest.as +98 -0
- data/test/asunit/runners/TestRunnerIgnoredMethodTest.as +42 -0
- data/test/asunit/runners/TestRunnerTest.as +171 -0
- data/test/asunit/support/AnnotatedSubClass.as +18 -0
- data/test/asunit/support/AnnotatedSuperClass.as +15 -0
- data/test/asunit/support/CustomParameters.as +13 -0
- data/test/asunit/support/CustomTestRunner.as +22 -0
- data/test/asunit/support/DoubleFailSuite.as +8 -0
- data/test/asunit/support/DoubleNestedSuite.as +14 -0
- data/test/asunit/support/ErrorInMethod.as +11 -0
- data/test/asunit/support/FailAssertEquals.as +29 -0
- data/test/asunit/support/FailAssertTrue.as +28 -0
- data/test/asunit/support/FakeObserver.as +42 -0
- data/test/asunit/support/FakeRunner.as +32 -0
- data/test/asunit/support/IgnoredMethod.as +26 -0
- data/test/asunit/support/InjectTimeoutOnAsync.as +14 -0
- data/test/asunit/support/InjectionFailure.as +18 -0
- data/test/asunit/support/InjectionVerification.as +69 -0
- data/test/asunit/support/LegacyTestCase.as +38 -0
- data/test/asunit/support/MultiMethod.as +77 -0
- data/test/asunit/support/OrderedTestMethod.as +36 -0
- data/test/asunit/support/RunWithButNoType.as +14 -0
- data/test/asunit/support/RunWithSuiteButNoType.as +11 -0
- data/test/asunit/support/SingleErrorSuite.as +7 -0
- data/test/asunit/support/SingleSuccessSuite.as +7 -0
- data/test/asunit/support/SucceedAssertTrue.as +31 -0
- data/test/asunit/support/SuiteOfTwoSuites.as +8 -0
- data/test/asunit/support/SuiteWithCustomRunner.as +12 -0
- data/test/asunit/support/SuiteWithOneCustomChildSuite.as +10 -0
- data/test/asunit/support/TestForFakeRunner.as +14 -0
- data/test/asunit/util/ArrayIteratorTest.as +65 -0
- data/vendor/as3reflection/README +7 -0
- data/vendor/as3reflection/p2/reflect/Reflection.as +417 -0
- data/vendor/as3reflection/p2/reflect/ReflectionAccessor.as +14 -0
- data/vendor/as3reflection/p2/reflect/ReflectionBase.as +52 -0
- data/vendor/as3reflection/p2/reflect/ReflectionMember.as +16 -0
- data/vendor/as3reflection/p2/reflect/ReflectionMetaData.as +69 -0
- data/vendor/as3reflection/p2/reflect/ReflectionMethod.as +36 -0
- data/vendor/as3reflection/p2/reflect/ReflectionMethodParameter.as +19 -0
- data/vendor/as3reflection/p2/reflect/ReflectionVariable.as +15 -0
- data/vendor/as3reflection/p2/reflect/findFirst.as +14 -0
- data/vendor/generators/suite/USAGE +0 -0
- data/vendor/generators/suite/suite_generator.rb +17 -0
- data/vendor/generators/suite/templates/TestSuite.as +17 -0
- metadata +216 -0
data/Gemfile
ADDED
data/MIT-LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) <year> <copyright holders>
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person
|
4
|
+
obtaining a copy of this software and associated documentation
|
5
|
+
files (the "Software"), to deal in the Software without
|
6
|
+
restriction, including without limitation the rights to use,
|
7
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
copies of the Software, and to permit persons to whom the
|
9
|
+
Software is furnished to do so, subject to the following
|
10
|
+
conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be
|
13
|
+
included in all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
17
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
19
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
20
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
21
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
data/README.textile
ADDED
data/air/AIR2Runner.mxml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<mx:WindowedApplication
|
3
|
+
xmlns:mx="http://www.adobe.com/2006/mxml"
|
4
|
+
layout="absolute"
|
5
|
+
backgroundColor="#333333"
|
6
|
+
backgroundImage=""
|
7
|
+
creationComplete="creationCompleteHandler(event)"
|
8
|
+
>
|
9
|
+
<mx:Script>
|
10
|
+
<![CDATA[
|
11
|
+
import asunit.core.TextCore;
|
12
|
+
|
13
|
+
private var core:TextCore;
|
14
|
+
|
15
|
+
private function creationCompleteHandler(event:Event):void {
|
16
|
+
core = new TextCore();
|
17
|
+
core.start(AllTests, null, visualContext);
|
18
|
+
}
|
19
|
+
]]>
|
20
|
+
</mx:Script>
|
21
|
+
<mx:UIComponent id="visualContext" width="100%" height="100%" />
|
22
|
+
</mx:WindowedApplication>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<application xmlns="http://ns.adobe.com/air/application/1.5">
|
3
|
+
<id>AsUnitAIRRunner</id>
|
4
|
+
<version>2.0</version>
|
5
|
+
<filename>AsUnitAIRRunner</filename>
|
6
|
+
<name>AsUnit AIR Runner</name>
|
7
|
+
<description>
|
8
|
+
<text xml:lang="en">AsUnit AIR Runner</text>
|
9
|
+
</description>
|
10
|
+
<copyright>Copyright (c) 2010 Example Co.</copyright>
|
11
|
+
<initialWindow>
|
12
|
+
<title>AsUnit</title>
|
13
|
+
<content>
|
14
|
+
bin/AIR2AsUnitRunner.swf
|
15
|
+
</content>
|
16
|
+
<systemChrome>standard</systemChrome>
|
17
|
+
<transparent>false</transparent>
|
18
|
+
<visible>true</visible>
|
19
|
+
<minimizable>true</minimizable>
|
20
|
+
<maximizable>true</maximizable>
|
21
|
+
<resizable>true</resizable>
|
22
|
+
<width>900</width>
|
23
|
+
<height>500</height>
|
24
|
+
<minSize>640 480</minSize>
|
25
|
+
<maxSize>1280 960</maxSize>
|
26
|
+
</initialWindow>
|
27
|
+
<installFolder>AsUnit/AIR2Runner</installFolder>
|
28
|
+
<programMenuFolder>AsUnit/AIR2Runner</programMenuFolder>
|
29
|
+
<icon>
|
30
|
+
<image16x16>icons/smallIcon.png</image16x16>
|
31
|
+
<image32x32>icons/mediumIcon.png</image32x32>
|
32
|
+
<image48x48>icons/bigIcon.png</image48x48>
|
33
|
+
<image128x128>icons/biggestIcon.png</image128x128>
|
34
|
+
</icon>
|
35
|
+
<customUpdateUI>true</customUpdateUI>
|
36
|
+
<allowBrowserInvocation>false</allowBrowserInvocation>
|
37
|
+
</application>
|
38
|
+
|
data/asunit4.gemspec
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/asunit4'
|
4
|
+
require 'rake'
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = AsUnit::NAME
|
8
|
+
s.version = AsUnit::VERSION
|
9
|
+
s.platform = Gem::Platform::RUBY
|
10
|
+
s.authors = ["Luke Bayes", "Ali Mills", "Robert Penner"]
|
11
|
+
s.email = ["asunit-users@lists.sourceforge.net"]
|
12
|
+
s.homepage = "http://asunit.org"
|
13
|
+
s.summary = "The fastest and most flexible ActionScript unit test framework"
|
14
|
+
s.description = "AsUnit is the only ActionScript unit test framework that support every development and runtime environment that is currently available. This includes Flex 2, 3, 4, AIR 1 and 2, Flash Lite, and of course the Flash Authoring tool"
|
15
|
+
s.rubyforge_project = "sprout"
|
16
|
+
s.required_rubygems_version = ">= 1.3.6"
|
17
|
+
s.require_path = "."
|
18
|
+
s.files = FileList["**/*"].exclude /docs|.DS_Store|generated|.svn|.git|airglobal.swc|airframework.swc/
|
19
|
+
end
|
20
|
+
|
data/asunit4.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'sprout'
|
2
|
+
|
3
|
+
module AsUnit
|
4
|
+
NAME = 'asunit4'
|
5
|
+
VERSION = '4.2.1.pre'
|
6
|
+
end
|
7
|
+
|
8
|
+
Sprout::Specification.new do |s|
|
9
|
+
s.name = AsUnit::NAME
|
10
|
+
s.version = AsUnit::VERSION
|
11
|
+
s.add_file_target do |f|
|
12
|
+
f.add_library :swc, 'bin/AsUnit-4.1.pre.swc'
|
13
|
+
f.add_library :src, ['src', 'vendor/as3reflection']
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
Binary file
|
Binary file
|
data/build.xml
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
<project name="AsUnit" default="swc">
|
2
|
+
|
3
|
+
<!-- Set up a prefix for all environment variables. -->
|
4
|
+
<property environment="env."/>
|
5
|
+
<fail unless="env.FLEX_HOME" message="FLEX_HOME needs to be defined as an environment variable or in the Ant build." />
|
6
|
+
<!-- Copy Flex SDK location from environment variable. This can be set manually as well. -->
|
7
|
+
<property name="FLEX_HOME" value="${env.FLEX_HOME}" />
|
8
|
+
|
9
|
+
<!-- project paths -->
|
10
|
+
<property name="root.dir" location="."/>
|
11
|
+
<property name="src.dir" location="${root.dir}/src"/>
|
12
|
+
<property name="vendor.dir" location="${root.dir}/vendor"/>
|
13
|
+
<property name="test.dir" location="${root.dir}/test"/>
|
14
|
+
<property name="libs.dir" location="${root.dir}/lib"/>
|
15
|
+
<property name="output.dir" location="${root.dir}/bin"/>
|
16
|
+
<property name="output.swc" location="${output.dir}/asunit.swc"/>
|
17
|
+
|
18
|
+
<target name="swc" depends="" description="Compile AS3 code into a SWC">
|
19
|
+
<echo>Using Flex SDK at: ${FLEX_HOME}</echo>
|
20
|
+
|
21
|
+
<java jar="${FLEX_HOME}/lib/compc.jar" dir="." fork="true" failonerror="true">
|
22
|
+
<arg value="+flexlib=${FLEX_HOME}/frameworks" />
|
23
|
+
<arg value="-incremental=true" />
|
24
|
+
|
25
|
+
<arg value="-source-path+=${src.dir}" />
|
26
|
+
<arg value="-source-path+=${vendor.dir}/as3reflection" />
|
27
|
+
|
28
|
+
<!-- Include all classes in this path. -->
|
29
|
+
<arg value="-include-sources=${src.dir}" />
|
30
|
+
|
31
|
+
<!-- Link in classes from swc library (only those used). -->
|
32
|
+
<!--<arg value="-library-path+=${libs.dir}" />-->
|
33
|
+
|
34
|
+
<!-- Exclude Flex and AIR framework classes from swc. -->
|
35
|
+
<arg value="-external-library-path+=${FLEX_HOME}/frameworks/libs" />
|
36
|
+
<!--
|
37
|
+
<arg value="-external-library-path+=${libs.dir}/airframework.swc" />
|
38
|
+
<arg value="-external-library-path+=${libs.dir}/airglobal.swc" />
|
39
|
+
-->
|
40
|
+
|
41
|
+
<arg value="-output=${output.swc}" />
|
42
|
+
</java>
|
43
|
+
|
44
|
+
</target>
|
45
|
+
|
46
|
+
</project>
|
data/lib/Reflection.swc
ADDED
Binary file
|
data/rakefile.rb
ADDED
@@ -0,0 +1,169 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler.setup
|
3
|
+
|
4
|
+
require 'sprout'
|
5
|
+
sprout 'as3'
|
6
|
+
|
7
|
+
require File.dirname(__FILE__) + '/asunit4'
|
8
|
+
|
9
|
+
test_input = "AsUnitRunner"
|
10
|
+
|
11
|
+
##########################################
|
12
|
+
# To build from this file, install Ruby (http://ruby-lang.org)
|
13
|
+
# and RubyGems (http://rubygems.org/), then run:
|
14
|
+
# gem install rake
|
15
|
+
# gem install sprout
|
16
|
+
# rake
|
17
|
+
# This should walk you through the installation
|
18
|
+
# of required gems, compilers and vms
|
19
|
+
|
20
|
+
##########################################
|
21
|
+
# Define the known Meta Data tags:
|
22
|
+
|
23
|
+
def apply_as3_meta_data_args(t)
|
24
|
+
[
|
25
|
+
"After",
|
26
|
+
"AfterClass",
|
27
|
+
"Before",
|
28
|
+
"BeforeClass",
|
29
|
+
"Ignore",
|
30
|
+
"Inject",
|
31
|
+
"RunWith",
|
32
|
+
"Suite",
|
33
|
+
"Test"
|
34
|
+
].each do |arg|
|
35
|
+
t.keep_as3_metadata << arg
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
##########################################
|
40
|
+
# Configure a Test Build:
|
41
|
+
|
42
|
+
def configure_test_task(t)
|
43
|
+
t.default_size = '1000 600'
|
44
|
+
t.source_path << 'src'
|
45
|
+
t.library_path << 'lib/Reflection.swc'
|
46
|
+
t.debug = true
|
47
|
+
t.static_link_runtime_shared_libraries = true
|
48
|
+
apply_as3_meta_data_args(t)
|
49
|
+
end
|
50
|
+
|
51
|
+
##########################################
|
52
|
+
# Compile the Test Harness(es)
|
53
|
+
|
54
|
+
desc "Compile the ActionScript test harness"
|
55
|
+
mxmlc "bin/#{test_input}.swf" do |t|
|
56
|
+
t.input = "test/AsUnitRunner.as"
|
57
|
+
t.gem_name = 'sprout-flex4sdk-tool'
|
58
|
+
configure_test_task t
|
59
|
+
end
|
60
|
+
|
61
|
+
desc "Compile the Flex 3 test harness"
|
62
|
+
mxmlc "bin/Flex3#{test_input}.swf" do |t|
|
63
|
+
t.input = "test/Flex3Runner.mxml"
|
64
|
+
t.gem_name = 'sprout-flex3sdk-tool'
|
65
|
+
configure_test_task t
|
66
|
+
end
|
67
|
+
|
68
|
+
desc "Compile the Flex 4 test harness"
|
69
|
+
mxmlc "bin/Flex4#{test_input}.swf" do |t|
|
70
|
+
t.input = "test/Flex4Runner.mxml"
|
71
|
+
t.gem_name = 'sprout-flex4sdk-tool'
|
72
|
+
configure_test_task t
|
73
|
+
end
|
74
|
+
|
75
|
+
desc "Compile the AIR 2 test harness"
|
76
|
+
mxmlc "bin/AIR2#{test_input}.swf" do |t|
|
77
|
+
t.input = "air/AIR2Runner.mxml"
|
78
|
+
t.gem_name = 'sprout-flex4sdk-tool'
|
79
|
+
t.source_path << 'air'
|
80
|
+
t.source_path << 'test'
|
81
|
+
t.library_path << 'lib/airglobal.swc'
|
82
|
+
t.library_path << 'lib/airframework.swc'
|
83
|
+
configure_test_task t
|
84
|
+
end
|
85
|
+
|
86
|
+
##########################################
|
87
|
+
# Launch the selected Test Harness
|
88
|
+
|
89
|
+
desc "Compile and run the test harness"
|
90
|
+
flashplayer :test_as3 => "bin/#{test_input}.swf"
|
91
|
+
|
92
|
+
desc "Compile and run the Flex 3 Harness"
|
93
|
+
flashplayer :test_flex3 => "bin/Flex3#{test_input}.swf"
|
94
|
+
|
95
|
+
desc "Compile and run the Flex 4 Harness"
|
96
|
+
flashplayer :test_flex4 => "bin/Flex4#{test_input}.swf"
|
97
|
+
|
98
|
+
desc "Compile and run the AIR 2 Harness"
|
99
|
+
adl :test_air2 => "bin/AIR2#{test_input}.swf" do |t|
|
100
|
+
t.gem_name = "sprout-flex4sdk-tool"
|
101
|
+
t.root_directory = Dir.pwd
|
102
|
+
t.application_descriptor = "air/AIR2RunnerDescriptor.xml"
|
103
|
+
end
|
104
|
+
|
105
|
+
desc "Compile and run the ActionScript 3 test harness"
|
106
|
+
task :test => :test_as3
|
107
|
+
|
108
|
+
desc "Compile and run test harnesses for all supported environments"
|
109
|
+
task :test_all => [:test_as3, :test_flex3, :test_flex4, :test_air2]
|
110
|
+
|
111
|
+
##########################################
|
112
|
+
# Compile the SWC
|
113
|
+
|
114
|
+
def configure_swc_task(t)
|
115
|
+
t.gem_name = 'sprout-flex4sdk-tool'
|
116
|
+
t.include_sources << 'src'
|
117
|
+
t.source_path << 'src'
|
118
|
+
t.library_path << 'lib/Reflection.swc'
|
119
|
+
t.static_link_runtime_shared_libraries = true
|
120
|
+
apply_as3_meta_data_args(t)
|
121
|
+
end
|
122
|
+
|
123
|
+
compc "bin/AsUnit-#{AsUnit::VERSION}.swc" do |t|
|
124
|
+
configure_swc_task t
|
125
|
+
end
|
126
|
+
|
127
|
+
task :swc => "bin/AsUnit-#{AsUnit::VERSION}.swc"
|
128
|
+
|
129
|
+
##########################################
|
130
|
+
# Generate documentation
|
131
|
+
|
132
|
+
desc "Generate documentation"
|
133
|
+
asdoc 'doc' do |t|
|
134
|
+
t.appended_args = '-examples-path=examples'
|
135
|
+
t.source_path << 'src'
|
136
|
+
t.doc_classes << 'AsUnit'
|
137
|
+
t.library_path << 'lib/Reflection.swc'
|
138
|
+
|
139
|
+
# Not on asdoc?
|
140
|
+
#t.static_link_runtime_shared_libraries = true
|
141
|
+
end
|
142
|
+
|
143
|
+
##########################################
|
144
|
+
# Package framework ZIPs
|
145
|
+
|
146
|
+
|
147
|
+
desc "Create the gem package"
|
148
|
+
task :package_gem => :swc do
|
149
|
+
sh "gem build asunit4.gemspec"
|
150
|
+
end
|
151
|
+
|
152
|
+
CLEAN.add '*.gem'
|
153
|
+
|
154
|
+
archive = "AsUnit-#{AsUnit::VERSION}.zip"
|
155
|
+
|
156
|
+
zip archive do |t|
|
157
|
+
t.input = './*'
|
158
|
+
end
|
159
|
+
|
160
|
+
CLEAN.add '*.zip'
|
161
|
+
|
162
|
+
desc "Create zip archives"
|
163
|
+
task :zip => [:clean, :test_all, archive]
|
164
|
+
|
165
|
+
##########################################
|
166
|
+
# Set up task wrappers
|
167
|
+
|
168
|
+
task :default => :test
|
169
|
+
|
data/script/generate
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'rubygems'
|
3
|
+
require 'sprout'
|
4
|
+
sprout 'sprout-as3-bundle'
|
5
|
+
|
6
|
+
# Add a class name if TestSuites were generated
|
7
|
+
if(ARGV.size == 1 && ARGV[0] == 'suite')
|
8
|
+
ARGV << 'AllTests'
|
9
|
+
end
|
10
|
+
|
11
|
+
# Insert class type by default
|
12
|
+
if(ARGV.size == 1)
|
13
|
+
ARGV.unshift('class')
|
14
|
+
end
|
15
|
+
|
16
|
+
# Execute generators like this:
|
17
|
+
# script/generate class utils.MathUtil
|
18
|
+
# script/generate suite
|
19
|
+
# script/generate test utils.MathUtilTest
|
20
|
+
|
21
|
+
Sprout::Sprout.generate('as3', ARGV.shift, ARGV, File.dirname(File.dirname(__FILE__)))
|
@@ -0,0 +1,177 @@
|
|
1
|
+
package asunit.core {
|
2
|
+
|
3
|
+
import asunit.framework.IResult;
|
4
|
+
import asunit.framework.IRunListener;
|
5
|
+
import asunit.framework.IRunner;
|
6
|
+
import asunit.framework.Result;
|
7
|
+
import asunit.framework.RunnerFactory;
|
8
|
+
import asunit.framework.TestObserver;
|
9
|
+
import asunit.runners.LegacyRunner;
|
10
|
+
|
11
|
+
import flash.display.DisplayObjectContainer;
|
12
|
+
import flash.events.Event;
|
13
|
+
import flash.events.EventDispatcher;
|
14
|
+
import flash.events.IEventDispatcher;
|
15
|
+
import asunit.framework.InjectionDelegate;
|
16
|
+
import asunit.framework.CallbackBridge;
|
17
|
+
|
18
|
+
public class AsUnitCore implements IEventDispatcher {
|
19
|
+
|
20
|
+
[Inject]
|
21
|
+
public var bridge:CallbackBridge;
|
22
|
+
|
23
|
+
protected var bridgeInjector:InjectionDelegate;
|
24
|
+
protected var dispatcher:IEventDispatcher;
|
25
|
+
protected var legacyRunnerReference:LegacyRunner;
|
26
|
+
protected var observers:Array;
|
27
|
+
protected var runner:IRunner;
|
28
|
+
protected var _visualContext:DisplayObjectContainer;
|
29
|
+
|
30
|
+
public function AsUnitCore() {
|
31
|
+
super();
|
32
|
+
initializeBridgeInjector();
|
33
|
+
initializeDispatcher();
|
34
|
+
initializeObservers();
|
35
|
+
initialize();
|
36
|
+
}
|
37
|
+
|
38
|
+
protected function initializeBridgeInjector():void {
|
39
|
+
bridgeInjector = new InjectionDelegate();
|
40
|
+
}
|
41
|
+
|
42
|
+
protected function initializeDispatcher():void {
|
43
|
+
dispatcher = new EventDispatcher();
|
44
|
+
}
|
45
|
+
|
46
|
+
/**
|
47
|
+
* Template method for subclasses to override,
|
48
|
+
* and use to create default observers.
|
49
|
+
*/
|
50
|
+
protected function initializeObservers():void {
|
51
|
+
}
|
52
|
+
|
53
|
+
/**
|
54
|
+
* A template method that concrete sub classes
|
55
|
+
* can override to auto-configure their own
|
56
|
+
* observers or other settings before start
|
57
|
+
* is called.
|
58
|
+
*/
|
59
|
+
protected function initialize():void {
|
60
|
+
}
|
61
|
+
|
62
|
+
/**
|
63
|
+
* Add a new Observer instance to this test run.
|
64
|
+
*
|
65
|
+
* The TestObserver interface is simply a marker interface
|
66
|
+
* that indicates your observer has at least one [Inject]
|
67
|
+
* variable where a bridge will be injected.
|
68
|
+
*
|
69
|
+
* Concrete observers are coupled to concrete runners
|
70
|
+
* by using [Inject] metadata and Bridges for message passing.
|
71
|
+
*
|
72
|
+
* The primary TestRunner, CallbackBridge and TextPrinter
|
73
|
+
* are good examples of how to build this relationship.
|
74
|
+
*
|
75
|
+
* To use a different TestRunner on a Suite or Test, simply set:
|
76
|
+
*
|
77
|
+
* [RunWith("fully.qualified.ClassName")]
|
78
|
+
*
|
79
|
+
* If you call RunWith on a Suite, it should change the
|
80
|
+
* default TestRunner for all subsequent tests.
|
81
|
+
*
|
82
|
+
* A Printer can inject any number of concrete Bridges,
|
83
|
+
* so you can still subscribe to the standard test execution
|
84
|
+
* callbacks, while also handling some new functionality
|
85
|
+
* provided by a couple of concrete runners.
|
86
|
+
*
|
87
|
+
*/
|
88
|
+
public function addObserver(observer:TestObserver):void {
|
89
|
+
bridgeInjector.updateInjectionPoints(observer, InjectionDelegate.THROW_ERROR_ON_MISSING_INJECTION_POINT);
|
90
|
+
}
|
91
|
+
|
92
|
+
/**
|
93
|
+
* Set the visual context that will parent all injected
|
94
|
+
* visual entities.
|
95
|
+
*
|
96
|
+
* This DisplayObjectContainer should be provided and
|
97
|
+
* attached to the Display List before start is called if
|
98
|
+
* you have any tests that [Inject] DisplayObject instances.
|
99
|
+
*
|
100
|
+
*/
|
101
|
+
public function set visualContext(context:DisplayObjectContainer):void {
|
102
|
+
_visualContext = context;
|
103
|
+
}
|
104
|
+
|
105
|
+
public function get visualContext():DisplayObjectContainer {
|
106
|
+
return _visualContext;
|
107
|
+
}
|
108
|
+
|
109
|
+
/**
|
110
|
+
* Start the test run using the provided Test or Suite class and
|
111
|
+
* optional test method name (String).
|
112
|
+
*
|
113
|
+
* If a test method name is provided, all [BeforeClass], and [Before]
|
114
|
+
* methods will be called, then the test method will be called,
|
115
|
+
* but no [After] or [AfterClass] methods will be called.
|
116
|
+
*
|
117
|
+
* This gives you the ability to see visual entities in isolation
|
118
|
+
* while test-driving their development.
|
119
|
+
*/
|
120
|
+
public function start(testOrSuite:Class, testMethodName:String=null, visualContext:DisplayObjectContainer=null):void {
|
121
|
+
|
122
|
+
// Will instantiate a new CallbackBridge:
|
123
|
+
// and set it on this instance - but share it
|
124
|
+
// with any Runners or Observers that also
|
125
|
+
// use the CallbackBridge.
|
126
|
+
bridgeInjector.updateInjectionPoints(this, InjectionDelegate.THROW_ERROR_ON_MISSING_INJECTION_POINT);
|
127
|
+
// Must use the accessor, not the _ value:
|
128
|
+
if(visualContext) this.visualContext = visualContext;
|
129
|
+
|
130
|
+
var factory:RunnerFactory = new RunnerFactory();
|
131
|
+
factory.injector = bridgeInjector;
|
132
|
+
runner = factory.runnerFor(testOrSuite);
|
133
|
+
runner.addEventListener(Event.COMPLETE, runCompleteHandler);
|
134
|
+
bridge.onRunStarted();
|
135
|
+
runner.run(testOrSuite, testMethodName, this.visualContext);
|
136
|
+
}
|
137
|
+
|
138
|
+
private function runCompleteHandler(event:Event):void {
|
139
|
+
runner.removeEventListener(Event.COMPLETE, onRunCompleted);
|
140
|
+
bridge.onRunCompleted(bridge);
|
141
|
+
onRunCompleted();
|
142
|
+
dispatchEvent(event);
|
143
|
+
}
|
144
|
+
|
145
|
+
|
146
|
+
/**
|
147
|
+
* Template method that subclasses can override to perform some
|
148
|
+
* operation when the run is complete.
|
149
|
+
*/
|
150
|
+
protected function onRunCompleted():void {
|
151
|
+
}
|
152
|
+
|
153
|
+
// BEGIN: Implement the IEvent Dispatcher Interface:
|
154
|
+
|
155
|
+
public function addEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void {
|
156
|
+
dispatcher.addEventListener(type, listener, useCapture, priority, useWeakReference);
|
157
|
+
}
|
158
|
+
|
159
|
+
public function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void {
|
160
|
+
dispatcher.removeEventListener(type, listener, useCapture);
|
161
|
+
}
|
162
|
+
|
163
|
+
public function dispatchEvent(event:Event):Boolean {
|
164
|
+
return dispatcher.dispatchEvent(event);
|
165
|
+
}
|
166
|
+
|
167
|
+
public function hasEventListener(type:String):Boolean {
|
168
|
+
return dispatcher.hasEventListener(type);
|
169
|
+
}
|
170
|
+
|
171
|
+
public function willTrigger(type:String):Boolean {
|
172
|
+
return dispatcher.willTrigger(type);
|
173
|
+
}
|
174
|
+
|
175
|
+
// END: Implement the IEvent Dispatcher Interface:
|
176
|
+
}
|
177
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
package asunit.core {
|
2
|
+
|
3
|
+
import asunit.printers.FlashBuilderPrinter;
|
4
|
+
|
5
|
+
import flash.system.fscommand;
|
6
|
+
|
7
|
+
public class FlashBuilderCore extends TextCore {
|
8
|
+
|
9
|
+
override protected function initializeObservers():void {
|
10
|
+
super.initializeObservers();
|
11
|
+
|
12
|
+
var projectName:String = 'SomeProject';
|
13
|
+
addObserver(new FlashBuilderPrinter(projectName));
|
14
|
+
}
|
15
|
+
override protected function onRunCompleted():void {
|
16
|
+
super.onRunCompleted();
|
17
|
+
fscommand('quit'); // fails silently if not in debug player
|
18
|
+
//System.exit(0); // generates SecurityError if not in debug player
|
19
|
+
}
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|