Sha256: 8bb62de7ba544fecc175da0e7f9387203f73e82306344e90eb98d31a2b6ccc8a
Contents?: true
Size: 1.38 KB
Versions: 1
Compression:
Stored size: 1.38 KB
Contents
spec_dir = File.expand_path(File.join(File.dirname(__FILE__), "..")) require File.join(spec_dir, "spec_helper") class ImageControl < Instrument::Control def source return self.options[:source] || self.options[:src] end def alternate_text return self.options[:alternate_text] || self.options[:alt] end end # Verifies that Kernel#select isn't accidentally being called. class Select < Instrument::Control end describe Instrument::ControlBuilder, "extending another object" do class ExtendedObject include Instrument::ControlBuilder end before :all do @extended_object = ExtendedObject.new end it "should enable mixins to function" do @extended_object.image_control.class.should == ImageControl @extended_object.select.class.should == Select end it "should still raise an Exception for non-existent methods" do (lambda do @extended_object.bogus end).should raise_error(NoMethodError) end it "should respond to a normal message" do @extended_object.should respond_to(:to_s) end it "should not respond to a bogus message" do @extended_object.should_not respond_to(:bogus) end it "should respond to a valid control name message" do @extended_object.should respond_to(:image_control) end it "should not respond to an invalid control name message" do @extended_object.should_not respond_to(:bogus_control) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
instrument-0.1.3 | spec/instrument/control_builder_spec.rb |