aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/plugins/rspec/examples/ruby1.9.compatibility
diff options
context:
space:
mode:
authorFrancis Irving <francis@mysociety.org>2009-12-02 17:51:30 +0000
committerFrancis Irving <francis@mysociety.org>2009-12-02 17:51:30 +0000
commit5f3139b538d1ff58b719a72d7c7cf05a5b6136b5 (patch)
tree13597cf6751df3122bfb1f1e5b1699e5c7ec5f93 /vendor/plugins/rspec/examples/ruby1.9.compatibility
parentdcf788cab6268a5c9830178d1bdff606f84132ce (diff)
Part of upgrade to rails 2.3.2
Diffstat (limited to 'vendor/plugins/rspec/examples/ruby1.9.compatibility')
-rw-r--r--vendor/plugins/rspec/examples/ruby1.9.compatibility/access_to_constants_spec.rb85
1 files changed, 85 insertions, 0 deletions
diff --git a/vendor/plugins/rspec/examples/ruby1.9.compatibility/access_to_constants_spec.rb b/vendor/plugins/rspec/examples/ruby1.9.compatibility/access_to_constants_spec.rb
new file mode 100644
index 000000000..b34b8ba6d
--- /dev/null
+++ b/vendor/plugins/rspec/examples/ruby1.9.compatibility/access_to_constants_spec.rb
@@ -0,0 +1,85 @@
+# courtesy of Matthias Hennemeyer
+#
+# The following should pass against ruby 1.8 and 1.9. It currently only passes
+# 1.8 (as of 1/2/2009)
+#
+# Once cucumber supports ruby 1.9, this should be moved to cucumber scenarios instead.
+module Foo
+ module Bar
+
+ module ModuleInEnclosingModule;end
+ class ClassInEnclosingModule;end
+ def method_in_enclosing_module;end
+ CONSTANT_IN_ENCLOSING_MODULE = 0
+
+ describe "Examples trying to access constants defined in an enclosing module" do
+
+ it "can access Modules" do
+ ModuleInEnclosingModule
+ end
+ it "can access Classes" do
+ ClassInEnclosingModule.new
+ end
+ it "can access CONSTANTS" do
+ CONSTANT_IN_ENCLOSING_MODULE
+ end
+ it "can NOT access methods" do
+ lambda {method_in_enclosing_module}.should raise_error(/undefined/)
+ end
+
+ describe "from a nested example group" do
+
+ it "can access Modules" do
+ ModuleInEnclosingModule
+ end
+ it "can access Classes" do
+ ClassInEnclosingModule.new
+ end
+ it "can access CONSTANTS" do
+ CONSTANT_IN_ENCLOSING_MODULE
+ end
+ it "can NOT access methods" do
+ lambda {method_in_enclosing_module}.should raise_error(/undefined/)
+ end
+
+ end
+
+ end
+
+ describe "Examples trying to access constants defined in the example group" do
+
+ module ModuleDefinedInGroup;end
+ class ClassDefinedInGroup; end
+ def method_defined_in_group; end
+ CONSTANT_DEFINED_IN_GROUP = 0
+
+ it "can access Modules" do
+ ModuleDefinedInGroup
+ end
+ it "can access Classes" do
+ ClassDefinedInGroup.new
+ end
+ it "can access CONSTANTS" do
+ CONSTANT_DEFINED_IN_GROUP
+ end
+ it "can access methods" do
+ method_defined_in_group
+ end
+
+ describe "that live inside a nested group" do
+ it "can access Modules" do
+ ModuleDefinedInGroup
+ end
+ it "can access Classes" do
+ ClassDefinedInGroup.new
+ end
+ it "can access CONSTANTS" do
+ CONSTANT_DEFINED_IN_GROUP
+ end
+ it "can access methods" do
+ method_defined_in_group
+ end
+ end
+ end
+ end
+end