cairo 1.8.5 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of cairo might be problematic. Click here for more details.
- data/NEWS +2 -2
- data/Rakefile +44 -7
- data/ext/cairo/cairo.def +28 -1
- data/ext/cairo/extconf.rb +14 -16
- data/ext/cairo/rb_cairo.c +4 -1
- data/ext/cairo/rb_cairo.h +65 -1
- data/ext/cairo/rb_cairo_constants.c +150 -3
- data/ext/cairo/rb_cairo_context.c +17 -0
- data/ext/cairo/rb_cairo_device.c +406 -0
- data/ext/cairo/rb_cairo_exception.c +83 -32
- data/ext/cairo/rb_cairo_io.c +166 -0
- data/ext/cairo/rb_cairo_io.h +44 -0
- data/ext/cairo/rb_cairo_matrix.c +1 -1
- data/ext/cairo/rb_cairo_private.h +3 -0
- data/ext/cairo/rb_cairo_region.c +385 -0
- data/ext/cairo/rb_cairo_surface.c +674 -199
- data/samples/blur.rb +2 -3
- data/samples/{pac2.rb → pac-nomralize.rb} +5 -6
- data/samples/pac-tee.rb +170 -0
- data/samples/pac.rb +2 -3
- data/samples/png.rb +2 -3
- data/samples/scalable.rb +2 -3
- data/samples/text-on-path.rb +2 -3
- data/samples/text2.rb +2 -3
- data/test/cairo-test-utils.rb +15 -0
- data/test/run-test.rb +5 -4
- data/test/test_context.rb +4 -4
- data/test/test_font_face.rb +34 -21
- data/test/test_recording_surface.rb +18 -0
- data/test/test_region.rb +102 -0
- data/test/test_script_device.rb +46 -0
- data/test/test_script_surface.rb +13 -0
- data/test/test_surface.rb +14 -4
- data/test/test_tee_surface.rb +32 -0
- data/test/test_xml_device.rb +22 -0
- data/test/test_xml_surface.rb +32 -0
- metadata +49 -77
- data/pkg-config.rb +0 -313
- data/test-unit/Rakefile +0 -30
- data/test-unit/bin/testrb +0 -5
- data/test-unit/lib/test/unit.rb +0 -280
- data/test-unit/lib/test/unit/assertionfailederror.rb +0 -14
- data/test-unit/lib/test/unit/assertions.rb +0 -722
- data/test-unit/lib/test/unit/attribute.rb +0 -125
- data/test-unit/lib/test/unit/autorunner.rb +0 -254
- data/test-unit/lib/test/unit/collector.rb +0 -43
- data/test-unit/lib/test/unit/collector/descendant.rb +0 -23
- data/test-unit/lib/test/unit/collector/dir.rb +0 -108
- data/test-unit/lib/test/unit/collector/load.rb +0 -135
- data/test-unit/lib/test/unit/collector/objectspace.rb +0 -34
- data/test-unit/lib/test/unit/color.rb +0 -61
- data/test-unit/lib/test/unit/diff.rb +0 -524
- data/test-unit/lib/test/unit/error.rb +0 -124
- data/test-unit/lib/test/unit/exceptionhandler.rb +0 -39
- data/test-unit/lib/test/unit/failure.rb +0 -110
- data/test-unit/lib/test/unit/fixture.rb +0 -185
- data/test-unit/lib/test/unit/notification.rb +0 -125
- data/test-unit/lib/test/unit/omission.rb +0 -143
- data/test-unit/lib/test/unit/pending.rb +0 -146
- data/test-unit/lib/test/unit/priority.rb +0 -146
- data/test-unit/lib/test/unit/runner/console.rb +0 -46
- data/test-unit/lib/test/unit/runner/emacs.rb +0 -8
- data/test-unit/lib/test/unit/testcase.rb +0 -281
- data/test-unit/lib/test/unit/testresult.rb +0 -89
- data/test-unit/lib/test/unit/testsuite.rb +0 -110
- data/test-unit/lib/test/unit/ui/console/outputlevel.rb +0 -14
- data/test-unit/lib/test/unit/ui/console/testrunner.rb +0 -195
- data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +0 -49
- data/test-unit/lib/test/unit/ui/testrunner.rb +0 -20
- data/test-unit/lib/test/unit/ui/testrunnermediator.rb +0 -77
- data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +0 -41
- data/test-unit/lib/test/unit/util/backtracefilter.rb +0 -41
- data/test-unit/lib/test/unit/util/observable.rb +0 -90
- data/test-unit/lib/test/unit/util/procwrapper.rb +0 -48
- data/test-unit/lib/test/unit/version.rb +0 -7
- data/test-unit/sample/adder.rb +0 -13
- data/test-unit/sample/subtracter.rb +0 -12
- data/test-unit/sample/tc_adder.rb +0 -18
- data/test-unit/sample/tc_subtracter.rb +0 -18
- data/test-unit/sample/ts_examples.rb +0 -7
- data/test-unit/test/collector/test_descendant.rb +0 -135
- data/test-unit/test/collector/test_dir.rb +0 -406
- data/test-unit/test/collector/test_load.rb +0 -333
- data/test-unit/test/collector/test_objectspace.rb +0 -98
- data/test-unit/test/run-test.rb +0 -13
- data/test-unit/test/test_assertions.rb +0 -693
- data/test-unit/test/test_attribute.rb +0 -86
- data/test-unit/test/test_color.rb +0 -37
- data/test-unit/test/test_diff.rb +0 -477
- data/test-unit/test/test_emacs_runner.rb +0 -60
- data/test-unit/test/test_error.rb +0 -26
- data/test-unit/test/test_failure.rb +0 -33
- data/test-unit/test/test_fixture.rb +0 -252
- data/test-unit/test/test_notification.rb +0 -33
- data/test-unit/test/test_omission.rb +0 -81
- data/test-unit/test/test_pending.rb +0 -70
- data/test-unit/test/test_priority.rb +0 -89
- data/test-unit/test/test_testcase.rb +0 -430
- data/test-unit/test/test_testresult.rb +0 -113
- data/test-unit/test/test_testsuite.rb +0 -129
- data/test-unit/test/testunit_test_util.rb +0 -14
- data/test-unit/test/ui/test_testrunmediator.rb +0 -20
- data/test-unit/test/util/test_backtracefilter.rb +0 -41
- data/test-unit/test/util/test_observable.rb +0 -102
- data/test-unit/test/util/test_procwrapper.rb +0 -36
- data/test/test_pkg_config.rb +0 -123
@@ -1,113 +0,0 @@
|
|
1
|
-
# Author:: Nathaniel Talbott.
|
2
|
-
# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
|
3
|
-
# License:: Ruby license.
|
4
|
-
|
5
|
-
require 'test/unit/testcase'
|
6
|
-
require 'test/unit/testresult'
|
7
|
-
|
8
|
-
module Test
|
9
|
-
module Unit
|
10
|
-
class TC_TestResult < TestCase
|
11
|
-
def setup
|
12
|
-
@my_result = TestResult.new
|
13
|
-
@my_result.add_assertion()
|
14
|
-
@failure = "failure"
|
15
|
-
@my_result.add_failure(@failure)
|
16
|
-
@error = "error"
|
17
|
-
@my_result.add_error(@error)
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_result_changed_notification
|
21
|
-
called1 = false
|
22
|
-
@my_result.add_listener(TestResult::CHANGED) do |result|
|
23
|
-
assert_equal(@my_result, result)
|
24
|
-
called1 = true
|
25
|
-
end
|
26
|
-
@my_result.add_assertion
|
27
|
-
assert_true(called1)
|
28
|
-
|
29
|
-
called1, called2 = false, false
|
30
|
-
@my_result.add_listener(TestResult::CHANGED) do |result|
|
31
|
-
assert_equal(@my_result, result)
|
32
|
-
called2 = true
|
33
|
-
end
|
34
|
-
@my_result.add_assertion
|
35
|
-
assert_equal([true, true], [called1, called2])
|
36
|
-
|
37
|
-
called1, called2 = false, false
|
38
|
-
@my_result.add_failure("")
|
39
|
-
assert_equal([true, true], [called1, called2])
|
40
|
-
|
41
|
-
called1, called2 = false, false
|
42
|
-
@my_result.add_error("")
|
43
|
-
assert_equal([true, true], [called1, called2])
|
44
|
-
|
45
|
-
called1, called2 = false, false
|
46
|
-
@my_result.add_run
|
47
|
-
assert_equal([true, true], [called1, called2])
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_fault_notification
|
51
|
-
called1 = false
|
52
|
-
fault = "fault"
|
53
|
-
@my_result.add_listener(TestResult::FAULT) do |passed_fault|
|
54
|
-
assert_equal(fault, passed_fault)
|
55
|
-
called1 = true
|
56
|
-
end
|
57
|
-
|
58
|
-
@my_result.add_assertion
|
59
|
-
assert_false(called1)
|
60
|
-
|
61
|
-
@my_result.add_failure(fault)
|
62
|
-
assert_true(called1)
|
63
|
-
|
64
|
-
called1, called2 = false, false
|
65
|
-
@my_result.add_listener(TestResult::FAULT) do |passed_fault|
|
66
|
-
assert_equal(fault, passed_fault)
|
67
|
-
called2 = true
|
68
|
-
end
|
69
|
-
|
70
|
-
@my_result.add_assertion
|
71
|
-
assert_equal([false, false], [called1, called2])
|
72
|
-
|
73
|
-
called1, called2 = false, false
|
74
|
-
@my_result.add_failure(fault)
|
75
|
-
assert_equal([true, true], [called1, called2])
|
76
|
-
|
77
|
-
called1, called2 = false, false
|
78
|
-
@my_result.add_error(fault)
|
79
|
-
assert_equal([true, true], [called1, called2])
|
80
|
-
|
81
|
-
called1, called2 = false, false
|
82
|
-
@my_result.add_run
|
83
|
-
assert_equal([false, false], [called1, called2])
|
84
|
-
end
|
85
|
-
|
86
|
-
def test_passed?
|
87
|
-
result = TestResult.new
|
88
|
-
assert_true(result.passed?)
|
89
|
-
|
90
|
-
result.add_assertion
|
91
|
-
assert_true(result.passed?)
|
92
|
-
|
93
|
-
result.add_run
|
94
|
-
assert_true(result.passed?)
|
95
|
-
|
96
|
-
result.add_failure("")
|
97
|
-
assert_false(result.passed?)
|
98
|
-
|
99
|
-
result = TestResult.new
|
100
|
-
result.add_error("")
|
101
|
-
assert_false(result.passed?)
|
102
|
-
end
|
103
|
-
|
104
|
-
def test_faults
|
105
|
-
assert_equal([@failure, @error], @my_result.faults)
|
106
|
-
|
107
|
-
notification = "notification"
|
108
|
-
@my_result.add_notification(notification)
|
109
|
-
assert_equal([@failure, @error, notification], @my_result.faults)
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|
@@ -1,129 +0,0 @@
|
|
1
|
-
# Author:: Nathaniel Talbott.
|
2
|
-
# Copyright:: Copyright (c) 2000-2003 Nathaniel Talbott. All rights reserved.
|
3
|
-
# License:: Ruby license.
|
4
|
-
|
5
|
-
require 'test/unit'
|
6
|
-
|
7
|
-
module Test
|
8
|
-
module Unit
|
9
|
-
class TC_TestSuite < TestCase
|
10
|
-
def setup
|
11
|
-
@testcase1 = Class.new(TestCase) do
|
12
|
-
def test_succeed1
|
13
|
-
assert_block { true }
|
14
|
-
end
|
15
|
-
def test_fail
|
16
|
-
assert_block { false }
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
@testcase2 = Class.new(TestCase) do
|
21
|
-
def test_succeed2
|
22
|
-
assert_block { true }
|
23
|
-
end
|
24
|
-
def test_error
|
25
|
-
raise
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_add
|
31
|
-
s = TestSuite.new
|
32
|
-
assert_equal(s, s << self.class.new("test_add"))
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_delete
|
36
|
-
s = TestSuite.new
|
37
|
-
t1 = self.class.new("test_delete")
|
38
|
-
s << t1
|
39
|
-
t2 = self.class.new("test_add")
|
40
|
-
s << t2
|
41
|
-
assert_equal(t1, s.delete(t1))
|
42
|
-
assert_nil(s.delete(t1))
|
43
|
-
assert_equal(TestSuite.new << t2, s)
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_size
|
47
|
-
suite = TestSuite.new
|
48
|
-
suite2 = TestSuite.new
|
49
|
-
suite2 << self.class.new("test_size")
|
50
|
-
suite << suite2
|
51
|
-
suite << self.class.new("test_size")
|
52
|
-
assert_equal(2, suite.size, "The count should be correct")
|
53
|
-
end
|
54
|
-
|
55
|
-
def test_run
|
56
|
-
progress = []
|
57
|
-
suite = @testcase1.suite
|
58
|
-
result = TestResult.new
|
59
|
-
suite.run(result) { |*values| progress << values }
|
60
|
-
|
61
|
-
assert_equal(2, result.run_count, "Should have had four test runs")
|
62
|
-
assert_equal(1, result.failure_count, "Should have had one test failure")
|
63
|
-
assert_equal(0, result.error_count, "Should have had one test error")
|
64
|
-
assert_equal([[TestSuite::STARTED, suite.name],
|
65
|
-
[TestCase::STARTED, "test_fail(#{suite.name})"],
|
66
|
-
[TestCase::FINISHED, "test_fail(#{suite.name})"],
|
67
|
-
[TestCase::STARTED, "test_succeed1(#{suite.name})"],
|
68
|
-
[TestCase::FINISHED, "test_succeed1(#{suite.name})"],
|
69
|
-
[TestSuite::FINISHED, suite.name]],
|
70
|
-
progress, "Should have had the correct progress")
|
71
|
-
|
72
|
-
suite = TestSuite.new
|
73
|
-
suite << @testcase1.suite
|
74
|
-
suite << @testcase2.suite
|
75
|
-
result = TestResult.new
|
76
|
-
progress = []
|
77
|
-
suite.run(result) { |*values| progress << values }
|
78
|
-
|
79
|
-
assert_equal(4, result.run_count, "Should have had four test runs")
|
80
|
-
assert_equal(1, result.failure_count, "Should have had one test failure")
|
81
|
-
assert_equal(1, result.error_count, "Should have had one test error")
|
82
|
-
assert_equal(14, progress.size, "Should have had the correct number of progress calls")
|
83
|
-
end
|
84
|
-
|
85
|
-
def test_empty?
|
86
|
-
assert(TestSuite.new.empty?, "A new test suite should be empty?")
|
87
|
-
assert(!@testcase2.suite.empty?, "A test suite with tests should not be empty")
|
88
|
-
end
|
89
|
-
|
90
|
-
def test_equality
|
91
|
-
suite1 = TestSuite.new
|
92
|
-
suite2 = TestSuite.new
|
93
|
-
assert_equal(suite1, suite2)
|
94
|
-
assert_equal(suite2, suite1)
|
95
|
-
|
96
|
-
suite1 = TestSuite.new('name')
|
97
|
-
assert_not_equal(suite1, suite2)
|
98
|
-
assert_not_equal(suite2, suite1)
|
99
|
-
|
100
|
-
suite2 = TestSuite.new('name')
|
101
|
-
assert_equal(suite1, suite2)
|
102
|
-
assert_equal(suite2, suite1)
|
103
|
-
|
104
|
-
suite1 << 'test'
|
105
|
-
assert_not_equal(suite1, suite2)
|
106
|
-
assert_not_equal(suite2, suite1)
|
107
|
-
|
108
|
-
suite2 << 'test'
|
109
|
-
assert_equal(suite1, suite2)
|
110
|
-
assert_equal(suite2, suite1)
|
111
|
-
|
112
|
-
suite2 = Object.new
|
113
|
-
class << suite2
|
114
|
-
def name
|
115
|
-
'name'
|
116
|
-
end
|
117
|
-
def tests
|
118
|
-
['test']
|
119
|
-
end
|
120
|
-
end
|
121
|
-
assert_not_equal(suite1, suite2)
|
122
|
-
assert_not_equal(suite2, suite1)
|
123
|
-
|
124
|
-
assert_not_equal(suite1, Object.new)
|
125
|
-
assert_not_equal(Object.new, suite1)
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
module TestUnitTestUtil
|
2
|
-
private
|
3
|
-
def assert_fault_messages(expected, faults)
|
4
|
-
assert_equal(expected, faults.collect {|fault| fault.message})
|
5
|
-
end
|
6
|
-
|
7
|
-
def _run_test(test_case, name)
|
8
|
-
result = Test::Unit::TestResult.new
|
9
|
-
test = test_case.new(name)
|
10
|
-
yield(test) if block_given?
|
11
|
-
test.run(result) {}
|
12
|
-
result
|
13
|
-
end
|
14
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'test/unit/ui/testrunnermediator'
|
2
|
-
|
3
|
-
class TestUnitUIMediator < Test::Unit::TestCase
|
4
|
-
def test_run_suite_with_interrupt_exception
|
5
|
-
test_case = Class.new(Test::Unit::TestCase) do
|
6
|
-
def test_raise_interrupt
|
7
|
-
raise Interrupt
|
8
|
-
end
|
9
|
-
end
|
10
|
-
mediator = Test::Unit::UI::TestRunnerMediator.new(test_case.suite)
|
11
|
-
finished = false
|
12
|
-
mediator.add_listener(Test::Unit::UI::TestRunnerMediator::FINISHED) do
|
13
|
-
finished = true
|
14
|
-
end
|
15
|
-
assert_raise(Interrupt) do
|
16
|
-
mediator.run_suite
|
17
|
-
end
|
18
|
-
assert(finished)
|
19
|
-
end
|
20
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
|
3
|
-
require 'test/unit/util/backtracefilter'
|
4
|
-
|
5
|
-
module Test::Unit::Util
|
6
|
-
class TestBacktraceFilter < Test::Unit::TestCase
|
7
|
-
include BacktraceFilter
|
8
|
-
|
9
|
-
def test_filter_backtrace
|
10
|
-
backtrace = [%q{C:\some\old\path/test/unit/assertions.rb:44:in 'assert'},
|
11
|
-
%q{tc_thing.rb:4:in 'a'},
|
12
|
-
%q{tc_thing.rb:4:in 'test_stuff'},
|
13
|
-
%q{C:\some\old\path/test/unit/testcase.rb:44:in 'send'},
|
14
|
-
%q{C:\some\old\path\test\unit\testcase.rb:44:in 'run'},
|
15
|
-
%q{C:\some\old\path\test\unit.rb:44:in 'run'},
|
16
|
-
%q{tc_thing.rb:3}]
|
17
|
-
assert_equal(backtrace[1..2], filter_backtrace(backtrace, %q{C:\some\old\path\test\unit}), "Should filter out all TestUnit-specific lines")
|
18
|
-
|
19
|
-
backtrace = [%q{tc_thing.rb:4:in 'a'},
|
20
|
-
%q{tc_thing.rb:4:in 'test_stuff'},
|
21
|
-
%q{tc_thing.rb:3}]
|
22
|
-
assert_equal(backtrace, filter_backtrace(backtrace, %q{C:\some\old\path\test\unit}), "Shouldn't filter too much")
|
23
|
-
|
24
|
-
backtrace = [%q{C:\some\old\path/test/unit/assertions.rb:44:in 'assert'},
|
25
|
-
%q{tc_thing.rb:4:in 'a'},
|
26
|
-
%q{tc_thing.rb:4:in 'test_stuff'},
|
27
|
-
%q{tc_thing.rb:3}]
|
28
|
-
assert_equal(backtrace[1..3], filter_backtrace(backtrace, %q{C:\some\old\path\test\unit}), "Should filter out all TestUnit-specific lines")
|
29
|
-
|
30
|
-
backtrace = [%q{C:\some\old\path/test/unit/assertions.rb:44:in 'assert'},
|
31
|
-
%q{C:\some\old\path/test/unit/testcase.rb:44:in 'send'},
|
32
|
-
%q{C:\some\old\path\test\unit\testcase.rb:44:in 'run'},
|
33
|
-
%q{C:\some\old\path\test\unit.rb:44:in 'run'}]
|
34
|
-
assert_equal(backtrace, filter_backtrace(backtrace, %q{C:\some\old\path\test\unit}), "Should filter out all TestUnit-specific lines")
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_nil_backtrace
|
38
|
-
assert_equal(["No backtrace"], filter_backtrace(nil))
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,102 +0,0 @@
|
|
1
|
-
# Author:: Nathaniel Talbott.
|
2
|
-
# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
|
3
|
-
# License:: Ruby license.
|
4
|
-
|
5
|
-
require 'test/unit/util/observable'
|
6
|
-
|
7
|
-
module Test
|
8
|
-
module Unit
|
9
|
-
module Util
|
10
|
-
class TC_Observable < TestCase
|
11
|
-
|
12
|
-
class TF_Observable
|
13
|
-
include Observable
|
14
|
-
end
|
15
|
-
|
16
|
-
def setup
|
17
|
-
@observable = TF_Observable.new
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_simple_observation
|
21
|
-
assert_raises(ArgumentError, "add_listener should throw an exception if no callback is supplied") do
|
22
|
-
@observable.add_listener(:property, "a")
|
23
|
-
end
|
24
|
-
|
25
|
-
heard = false
|
26
|
-
callback = proc { heard = true }
|
27
|
-
assert_equal("a", @observable.add_listener(:property, "a", &callback), "add_listener should return the listener that was added")
|
28
|
-
|
29
|
-
count = 0
|
30
|
-
@observable.instance_eval do
|
31
|
-
count = notify_listeners(:property)
|
32
|
-
end
|
33
|
-
assert_equal(1, count, "notify_listeners should have returned the number of listeners that were notified")
|
34
|
-
assert(heard, "Should have heard the property changed")
|
35
|
-
|
36
|
-
heard = false
|
37
|
-
assert_equal(callback, @observable.remove_listener(:property, "a"), "remove_listener should return the callback")
|
38
|
-
|
39
|
-
count = 1
|
40
|
-
@observable.instance_eval do
|
41
|
-
count = notify_listeners(:property)
|
42
|
-
end
|
43
|
-
assert_equal(0, count, "notify_listeners should have returned the number of listeners that were notified")
|
44
|
-
assert(!heard, "Should not have heard the property change")
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_value_observation
|
48
|
-
value = nil
|
49
|
-
@observable.add_listener(:property, "a") do |passed_value|
|
50
|
-
value = passed_value
|
51
|
-
end
|
52
|
-
count = 0
|
53
|
-
@observable.instance_eval do
|
54
|
-
count = notify_listeners(:property, "stuff")
|
55
|
-
end
|
56
|
-
assert_equal(1, count, "Should have update the correct number of listeners")
|
57
|
-
assert_equal("stuff", value, "Should have received the value as an argument to the listener")
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_multiple_value_observation
|
61
|
-
values = []
|
62
|
-
@observable.add_listener(:property, "a") do |first_value, second_value|
|
63
|
-
values = [first_value, second_value]
|
64
|
-
end
|
65
|
-
count = 0
|
66
|
-
@observable.instance_eval do
|
67
|
-
count = notify_listeners(:property, "stuff", "more stuff")
|
68
|
-
end
|
69
|
-
assert_equal(1, count, "Should have update the correct number of listeners")
|
70
|
-
assert_equal(["stuff", "more stuff"], values, "Should have received the value as an argument to the listener")
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_add_remove_with_default_listener
|
74
|
-
assert_raises(ArgumentError, "add_listener should throw an exception if no callback is supplied") do
|
75
|
-
@observable.add_listener(:property)
|
76
|
-
end
|
77
|
-
|
78
|
-
heard = false
|
79
|
-
callback = proc { heard = true }
|
80
|
-
assert_equal(callback, @observable.add_listener(:property, &callback), "add_listener should return the listener that was added")
|
81
|
-
|
82
|
-
count = 0
|
83
|
-
@observable.instance_eval do
|
84
|
-
count = notify_listeners(:property)
|
85
|
-
end
|
86
|
-
assert_equal(1, count, "notify_listeners should have returned the number of listeners that were notified")
|
87
|
-
assert(heard, "Should have heard the property changed")
|
88
|
-
|
89
|
-
heard = false
|
90
|
-
assert_equal(callback, @observable.remove_listener(:property, callback), "remove_listener should return the callback")
|
91
|
-
|
92
|
-
count = 1
|
93
|
-
@observable.instance_eval do
|
94
|
-
count = notify_listeners(:property)
|
95
|
-
end
|
96
|
-
assert_equal(0, count, "notify_listeners should have returned the number of listeners that were notified")
|
97
|
-
assert(!heard, "Should not have heard the property change")
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
# Author:: Nathaniel Talbott.
|
2
|
-
# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
|
3
|
-
# License:: Ruby license.
|
4
|
-
|
5
|
-
require 'test/unit'
|
6
|
-
require 'test/unit/util/procwrapper'
|
7
|
-
|
8
|
-
module Test
|
9
|
-
module Unit
|
10
|
-
module Util
|
11
|
-
class TC_ProcWrapper < TestCase
|
12
|
-
def munge_proc(&a_proc)
|
13
|
-
return a_proc
|
14
|
-
end
|
15
|
-
def setup
|
16
|
-
@original = proc {}
|
17
|
-
@munged = munge_proc(&@original)
|
18
|
-
@wrapped_original = ProcWrapper.new(@original)
|
19
|
-
@wrapped_munged = ProcWrapper.new(@munged)
|
20
|
-
end
|
21
|
-
def test_wrapping
|
22
|
-
assert_same(@original, @wrapped_original.to_proc, "The wrapper should return what was wrapped")
|
23
|
-
end
|
24
|
-
def test_hashing
|
25
|
-
|
26
|
-
assert_equal(@wrapped_original.hash, @wrapped_munged.hash, "The original and munged should have the same hash when wrapped")
|
27
|
-
assert_equal(@wrapped_original, @wrapped_munged, "The wrappers should be equivalent")
|
28
|
-
|
29
|
-
a_hash = {@wrapped_original => @original}
|
30
|
-
assert(a_hash[@wrapped_original], "Should be able to access the wrapper in the hash")
|
31
|
-
assert_equal(a_hash[@wrapped_original], @original, "Should be able to access the wrapper in the hash")
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|