summaryrefslogtreecommitdiff
path: root/spec/rubyspec/core/module/extended_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/core/module/extended_spec.rb')
-rw-r--r--spec/rubyspec/core/module/extended_spec.rb44
1 files changed, 44 insertions, 0 deletions
diff --git a/spec/rubyspec/core/module/extended_spec.rb b/spec/rubyspec/core/module/extended_spec.rb
new file mode 100644
index 0000000000..0a62dd9850
--- /dev/null
+++ b/spec/rubyspec/core/module/extended_spec.rb
@@ -0,0 +1,44 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+require File.expand_path('../fixtures/classes', __FILE__)
+
+describe "Module#extended" do
+ it "is called when an object gets extended with self" do
+ begin
+ m = Module.new do
+ def self.extended(o)
+ $extended_object = o
+ end
+ end
+
+ (o = mock('x')).extend(m)
+
+ $extended_object.should == o
+ ensure
+ $extended_object = nil
+ end
+ end
+
+ it "is called after Module#extend_object" do
+ begin
+ m = Module.new do
+ def self.extend_object(o)
+ $extended_object = nil
+ end
+
+ def self.extended(o)
+ $extended_object = o
+ end
+ end
+
+ (o = mock('x')).extend(m)
+
+ $extended_object.should == o
+ ensure
+ $extended_object = nil
+ end
+ end
+
+ it "is private in its default implementation" do
+ Module.new.private_methods.should include(:extended)
+ end
+end