rspec 0.7.2 → 0.7.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. data/CHANGES +72 -1
  2. data/EXAMPLES.rd +6 -0
  3. data/README +27 -6
  4. data/Rakefile +32 -81
  5. data/bin/drbspec +3 -0
  6. data/bin/spec +2 -3
  7. data/examples/file_accessor_spec.rb +1 -1
  8. data/examples/greeter_spec.rb +30 -0
  9. data/examples/helper_method_example.rb +1 -1
  10. data/examples/io_processor_spec.rb +1 -1
  11. data/examples/mocking_example.rb +1 -1
  12. data/examples/partial_mock_example.rb +1 -1
  13. data/examples/predicate_example.rb +1 -1
  14. data/examples/setup_teardown_example.rb +34 -0
  15. data/examples/spec_helper.rb +1 -0
  16. data/examples/stack_spec.rb +1 -1
  17. data/examples/stubbing_example.rb +1 -1
  18. data/examples/test_case_spec.rb +1 -1
  19. data/lib/spec/callback/callback_container.rb +60 -0
  20. data/lib/spec/callback/extensions/module.rb +24 -0
  21. data/lib/spec/callback/extensions/object.rb +33 -0
  22. data/lib/spec/callback.rb +3 -0
  23. data/lib/spec/expectations/diff.rb +10 -14
  24. data/lib/spec/expectations/extensions/numeric.rb +17 -3
  25. data/lib/spec/expectations/extensions/object.rb +145 -0
  26. data/lib/spec/expectations/extensions/proc.rb +57 -0
  27. data/lib/spec/expectations/extensions/string.rb +22 -0
  28. data/lib/spec/expectations/extensions.rb +2 -2
  29. data/lib/spec/expectations/message_builder.rb +13 -0
  30. data/lib/spec/expectations/should/base.rb +29 -10
  31. data/lib/spec/expectations/should/change.rb +69 -0
  32. data/lib/spec/expectations/should/have.rb +94 -37
  33. data/lib/spec/expectations/should/not.rb +6 -2
  34. data/lib/spec/expectations/should/should.rb +9 -5
  35. data/lib/spec/expectations/should.rb +1 -0
  36. data/lib/spec/expectations/sugar.rb +2 -2
  37. data/lib/spec/expectations.rb +28 -0
  38. data/lib/spec/mocks/error_generator.rb +23 -12
  39. data/lib/spec/mocks/message_expectation.rb +18 -15
  40. data/lib/spec/mocks/mock_handler.rb +10 -9
  41. data/lib/spec/mocks/mock_methods.rb +1 -1
  42. data/lib/spec/rake/spectask.rb +8 -2
  43. data/lib/spec/runner/backtrace_tweaker.rb +34 -25
  44. data/lib/spec/runner/context.rb +56 -7
  45. data/lib/spec/runner/context_eval.rb +33 -3
  46. data/lib/spec/runner/context_runner.rb +24 -11
  47. data/lib/spec/runner/drb_command_line.rb +21 -0
  48. data/lib/spec/runner/execution_context.rb +1 -0
  49. data/lib/spec/runner/extensions/kernel.rb +2 -0
  50. data/lib/spec/runner/extensions/object.rb +26 -18
  51. data/lib/spec/runner/formatter/base_text_formatter.rb +1 -1
  52. data/lib/spec/runner/formatter/html_formatter.rb +94 -74
  53. data/lib/spec/runner/heckle_runner.rb +55 -0
  54. data/lib/spec/runner/option_parser.rb +15 -3
  55. data/lib/spec/runner/reporter.rb +13 -8
  56. data/lib/spec/runner/specification.rb +67 -42
  57. data/lib/spec/runner.rb +1 -1
  58. data/lib/spec/version.rb +6 -5
  59. data/lib/spec.rb +1 -0
  60. metadata +20 -19
  61. data/lib/spec/expectations/extensions/inspect_for_expectation_not_met_error.rb +0 -14
  62. data/lib/spec/expectations/extensions/symbol.rb +0 -5
  63. data/vendor/selenium/README.txt +0 -23
  64. data/vendor/selenium/find_rspecs_home_page.rb +0 -23
  65. data/vendor/selenium/rspec_selenium.rb +0 -33
  66. data/vendor/selenium/start_browser_once.patch +0 -65
  67. data/vendor/watir/README.txt +0 -32
  68. data/vendor/watir/find_rspecs_home_page.rb +0 -21
  69. data/vendor/watir/find_rspecs_home_page.txt +0 -15
  70. data/vendor/watir/rspec_watir.rb +0 -45
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.0
2
+ rubygems_version: 0.9.1
3
3
  specification_version: 1
4
4
  name: rspec
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.7.2
7
- date: 2006-11-12 00:00:00 +01:00
8
- summary: RSpec-0.7.2 (r1095) - BDD for Ruby http://rspec.rubyforge.org/
6
+ version: 0.7.5.1
7
+ date: 2007-01-18 00:00:00 -06:00
8
+ summary: RSpec-0.7.5.1 (r1395) - BDD for Ruby http://rspec.rubyforge.org/
9
9
  require_paths:
10
10
  - lib
11
11
  email: rspec-devel@rubyforge.org
@@ -27,11 +27,7 @@ signing_key:
27
27
  cert_chain:
28
28
  post_install_message:
29
29
  authors:
30
- - - Steven Baker
31
- - Aslak Hellesoy
32
- - Dave Astels
33
- - David Chelimsky
34
- - Brian Takita
30
+ - - RSpec Development Team
35
31
  files:
36
32
  - CHANGES
37
33
  - EXAMPLES.rd
@@ -39,21 +35,27 @@ files:
39
35
  - Rakefile
40
36
  - README
41
37
  - lib/spec.rb
38
+ - lib/spec/callback.rb
42
39
  - lib/spec/expectations.rb
43
40
  - lib/spec/mocks.rb
44
41
  - lib/spec/runner.rb
45
42
  - lib/spec/version.rb
43
+ - lib/spec/callback/callback_container.rb
44
+ - lib/spec/callback/extensions/module.rb
45
+ - lib/spec/callback/extensions/object.rb
46
46
  - lib/spec/expectations/diff.rb
47
47
  - lib/spec/expectations/errors.rb
48
48
  - lib/spec/expectations/extensions.rb
49
+ - lib/spec/expectations/message_builder.rb
49
50
  - lib/spec/expectations/should.rb
50
51
  - lib/spec/expectations/sugar.rb
51
52
  - lib/spec/expectations/differs/default.rb
52
- - lib/spec/expectations/extensions/inspect_for_expectation_not_met_error.rb
53
53
  - lib/spec/expectations/extensions/numeric.rb
54
54
  - lib/spec/expectations/extensions/object.rb
55
- - lib/spec/expectations/extensions/symbol.rb
55
+ - lib/spec/expectations/extensions/proc.rb
56
+ - lib/spec/expectations/extensions/string.rb
56
57
  - lib/spec/expectations/should/base.rb
58
+ - lib/spec/expectations/should/change.rb
57
59
  - lib/spec/expectations/should/have.rb
58
60
  - lib/spec/expectations/should/not.rb
59
61
  - lib/spec/expectations/should/should.rb
@@ -73,8 +75,10 @@ files:
73
75
  - lib/spec/runner/context.rb
74
76
  - lib/spec/runner/context_eval.rb
75
77
  - lib/spec/runner/context_runner.rb
78
+ - lib/spec/runner/drb_command_line.rb
76
79
  - lib/spec/runner/execution_context.rb
77
80
  - lib/spec/runner/formatter.rb
81
+ - lib/spec/runner/heckle_runner.rb
78
82
  - lib/spec/runner/option_parser.rb
79
83
  - lib/spec/runner/reporter.rb
80
84
  - lib/spec/runner/spec_matcher.rb
@@ -91,24 +95,19 @@ files:
91
95
  - examples/custom_formatter.rb
92
96
  - examples/file_accessor.rb
93
97
  - examples/file_accessor_spec.rb
98
+ - examples/greeter_spec.rb
94
99
  - examples/helper_method_example.rb
95
100
  - examples/io_processor.rb
96
101
  - examples/io_processor_spec.rb
97
102
  - examples/mocking_example.rb
98
103
  - examples/partial_mock_example.rb
99
104
  - examples/predicate_example.rb
105
+ - examples/setup_teardown_example.rb
106
+ - examples/spec_helper.rb
100
107
  - examples/stack.rb
101
108
  - examples/stack_spec.rb
102
109
  - examples/stubbing_example.rb
103
110
  - examples/test_case_spec.rb
104
- - vendor/watir/find_rspecs_home_page.rb
105
- - vendor/watir/rspec_watir.rb
106
- - vendor/watir/find_rspecs_home_page.txt
107
- - vendor/watir/README.txt
108
- - vendor/selenium/find_rspecs_home_page.rb
109
- - vendor/selenium/rspec_selenium.rb
110
- - vendor/selenium/start_browser_once.patch
111
- - vendor/selenium/README.txt
112
111
  test_files: []
113
112
 
114
113
  rdoc_options:
@@ -121,8 +120,10 @@ rdoc_options:
121
120
  extra_rdoc_files:
122
121
  - README
123
122
  - CHANGES
123
+ - MIT-LICENSE
124
124
  executables:
125
125
  - spec
126
+ - drbspec
126
127
  extensions: []
127
128
 
128
129
  requirements: []
@@ -1,14 +0,0 @@
1
- class Object
2
- def inspect_for_expectation_not_met_error
3
- return "#{inspect}" if inspect.include? "<"
4
- return "<#{inspect}>" unless inspect.include? "<"
5
- end
6
- end
7
- class TrueClass; def inspect_for_expectation_not_met_error; "true" end end
8
- class FalseClass; def inspect_for_expectation_not_met_error; "false" end end
9
- class NilClass; def inspect_for_expectation_not_met_error; "nil" end end
10
- class Class; def inspect_for_expectation_not_met_error; "<#{name}>" end end
11
- class Proc; def inspect_for_expectation_not_met_error; "<Proc>" end end
12
- class Array; def inspect_for_expectation_not_met_error; inspect end end
13
- class String; def inspect_for_expectation_not_met_error; inspect end end
14
- class Numeric; def inspect_for_expectation_not_met_error; inspect end end
@@ -1,5 +0,0 @@
1
- class Symbol
2
- def supported_by_rspec?
3
- return ["<","<=",">=",">","==","=~"].include?(to_s)
4
- end
5
- end
@@ -1,23 +0,0 @@
1
- = Using Selenium with RSpec =
2
- (Also see ../watir/README.txt)
3
-
4
- The files in this directory are examples illustrating how to use Selenium
5
- from RSpec. In addition to Ruby and RSpec you need:
6
-
7
- * Install Java 1.4 or later
8
- * Download SeleniumRC 0.8.1 or later (http://www.openqa.org/selenium-rc/)
9
- * Copy selenium-server.jar into this directory.
10
- * Copy selenium.rb into this directory.
11
-
12
- After this is installed, open two shells.
13
-
14
- In the first one, run:
15
-
16
- java -jar selenium-server.jar
17
-
18
- In the second one, run:
19
-
20
- ruby find_rspecs_home_page.rb --format specdoc
21
-
22
- NOTE
23
- If you want to optimize speed (by sacrificing spec independence) you may apply the patch start_browser_once.patch
@@ -1,23 +0,0 @@
1
- require File.dirname(__FILE__) + '/rspec_selenium'
2
-
3
- context "Google's search page" do
4
-
5
- setup do
6
- @browser = Selenium::SeleneseInterpreter.new("localhost", 4444, "*firefox", "http://www.google.no", 10000)
7
- @browser.start
8
- @browser.open('http://www.google.no')
9
- end
10
-
11
- specify "should find rspec's home page when I search for rspec" do
12
- @browser.type "name=q", "rspec"
13
- @browser.click_and_wait "name=btnG"
14
- @browser.is_text_present("rspec.rubyforge.org").should_be(true)
15
- end
16
-
17
- specify "should not find Ali G when I search for rspec" do
18
- @browser.type "name=q", "rspec"
19
- @browser.click_and_wait "name=btnG"
20
- @browser.is_text_present("Ali G").should_be(false)
21
- end
22
-
23
- end
@@ -1,33 +0,0 @@
1
- require 'rubygems'
2
- require 'spec'
3
- require File.dirname(__FILE__) + '/selenium'
4
-
5
- class RSpecSelenium
6
- def teardown
7
- @browser.stop
8
- end
9
- end
10
-
11
- module Spec
12
- module Runner
13
- class Context
14
- def before_context_eval
15
- inherit RSpecSelenium
16
- end
17
- end
18
- end
19
- end
20
-
21
- module Selenium
22
- class SeleneseInterpreter
23
- def click_and_wait(locator, timeout="5000")
24
- click(locator)
25
- wait_for_page_to_load timeout
26
- end
27
-
28
- def open_and_wait(url, timeout="5000")
29
- open(url)
30
- wait_for_page_to_load timeout
31
- end
32
- end
33
- end
@@ -1,65 +0,0 @@
1
- Index: find_rspecs_home_page.rb
2
- ===================================================================
3
- --- find_rspecs_home_page.rb (revision 767)
4
- +++ find_rspecs_home_page.rb (working copy)
5
- @@ -2,22 +2,18 @@
6
-
7
- context "Google's search page" do
8
-
9
- - setup do
10
- - @browser = Selenium::SeleneseInterpreter.new("localhost", 4444, "*firefox", "http://www.google.no", 10000)
11
- - @browser.start
12
- - @browser.open('http://www.google.no')
13
- - end
14
- -
15
- specify "should find rspec's home page when I search for rspec" do
16
- - @browser.type "name=q", "rspec"
17
- - @browser.click_and_wait "name=btnG"
18
- - @browser.is_text_present("rspec.rubyforge.org").should_be(true)
19
- + browser.open('http://www.google.no')
20
- + browser.type "name=q", "rspec"
21
- + browser.click_and_wait "name=btnG"
22
- + browser.is_text_present("rspec.rubyforge.org").should_be(true)
23
- end
24
-
25
- specify "should not find Ali G when I search for rspec" do
26
- - @browser.type "name=q", "rspec"
27
- - @browser.click_and_wait "name=btnG"
28
- - @browser.is_text_present("Ali G").should_be(false)
29
- + browser.open('http://www.google.no')
30
- + browser.type "name=q", "rspec"
31
- + browser.click_and_wait "name=btnG"
32
- + browser.is_text_present("Ali G").should_be(false)
33
- end
34
-
35
- end
36
-
37
- Index: rspec_selenium.rb
38
- ===================================================================
39
- --- rspec_selenium.rb (revision 767)
40
- +++ rspec_selenium.rb (working copy)
41
- @@ -3,10 +3,22 @@
42
- require File.dirname(__FILE__) + '/selenium'
43
-
44
- class RSpecSelenium
45
- - def teardown
46
- - @browser.stop
47
- + def setup
48
- + unless defined?@@browser
49
- + @@browser = Selenium::SeleneseInterpreter.new("localhost", 4444, "*firefox", "http://www.google.no", 10000)
50
- + @@browser.start
51
- + end
52
- end
53
- +
54
- + def browser
55
- + @@browser
56
- + end
57
- +
58
- + def self.shutdown
59
- + @@browser.stop
60
- + end
61
- end
62
- +at_exit{RSpecSelenium.shutdown}
63
-
64
- module Spec
65
- module Runner
@@ -1,32 +0,0 @@
1
- = Using Watir with RSpec =
2
-
3
- Watir provides a Ruby API to talk to a browser (Internet Explorer).
4
- Many people use Watir to *test* web applications, but it is also excellent
5
- for *specifying* the *intended behaviour* of a web application. Even
6
- for web applications that don't yet exist!
7
-
8
- Customers, QA people, testers and programmers can translate user story
9
- acceptance criteria to executable specs based on RSpec and Watir. Take
10
- a look at find_rspecs_home_page.txt (the story) and find_rspecs_home_page.rb
11
- (the associated spec).
12
-
13
- One of the great benefits of using Watir with RSpec as opposed to using
14
- Watir 'alone' or Watir with Test::Unit is RSpec's specdoc feature, which
15
- is a great way to see what behaviour is actually implemented and in a working
16
- condition. It also makes the behaviour of your webapp more transparent to
17
- customers. They can say "The specdoc says foo, but I meant bar. We need to talk".
18
-
19
- This directory contains a simple example to illustrate this. After you
20
- have installed Ruby, Watir and RSpec, open a shell, go to this directory
21
- and type:
22
-
23
- ruby find_rspecs_home_page.rb --format specdoc
24
-
25
- Or better:
26
-
27
- ruby find_rspecs_home_page.rb --format html > find_rspecs_home_page.html
28
-
29
- And upload find_rspecs_home_page.html to your project's web page or intranet.
30
- This will give immediate visibility to the intended behaviour of your web app,
31
- as well as whether it's working as expected or not.
32
-
@@ -1,21 +0,0 @@
1
- require File.dirname(__FILE__) + '/rspec_watir'
2
-
3
- context "Google's search page" do
4
-
5
- setup do
6
- @browser.goto('http://www.google.com')
7
- end
8
-
9
- specify "should find rspec's home page when I search for rspec" do
10
- @browser.text_field(:name, "q").set("rspec")
11
- @browser.button(:name, "btnG").click
12
- @browser.should_contain("rspec.rubyforge.org") # should_contain_text is RSpec sugar
13
- end
14
-
15
- specify "should not find Ali G when I search for rspec" do
16
- @browser.text_field(:name, "q").set("rspec")
17
- @browser.button(:name, "btnG").click
18
- @browser.should_not_contain("Ali G")
19
- end
20
-
21
- end
@@ -1,15 +0,0 @@
1
- = Find RSpec's home page =
2
-
3
- As an agile customer
4
- I want to easily find RSpec's home page
5
- So that I can learn about this fantastic tool
6
-
7
- I will know that we are done when:
8
-
9
- Given I am on Google's search page
10
- When I search for 'rspec'
11
- Then http://rspec.rubyforge.org/ should be the top result
12
-
13
- Given I am on Google's search page
14
- When I search for 'rspec'
15
- Then Ali G (who says respec a lot) is not among the results
@@ -1,45 +0,0 @@
1
- require 'rubygems'
2
- require 'spec'
3
- require 'watir'
4
-
5
- # Comment out to enable ActiveRecord fixtures
6
- #require 'active_record'
7
- #require 'active_record/fixtures'
8
- #config = YAML::load_file(File.dirname(__FILE__) + '/database.yml')
9
- #$fixture_path = File.dirname(__FILE__) + '/fixtures'
10
- #ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
11
- #ActiveRecord::Base.establish_connection(config['db'])
12
-
13
- class RSpecWatir
14
- def setup
15
- #Fixtures.create_fixtures($fixture_path, @@fixtures)
16
- @browser = Watir::IE.new
17
- end
18
-
19
- def teardown
20
- @browser.close
21
- end
22
-
23
- #def self.fixtures(*testdata)
24
- # @@fixtures = testdata
25
- #end
26
- end
27
-
28
- module Spec
29
- module Runner
30
- class Context
31
- def before_context_eval
32
- inherit RSpecWatir
33
- end
34
- end
35
- end
36
- end
37
-
38
- # Extensions to Watir to make it play nicer with RSpec
39
- module Watir
40
- class IE
41
- # @browser.should_contain("bla bla")
42
- # @browser.should_not_contain("bla bla")
43
- alias_method :contain?, :contains_text
44
- end
45
- end