lib/carrierwave/test/matchers.rb in carrierwave-0.11.2 vs lib/carrierwave/test/matchers.rb in carrierwave-1.0.0.beta
- old
+ new
@@ -1,7 +1,5 @@
-# encoding: utf-8
-
module CarrierWave
module Test
##
# These are some matchers that can be used in RSpec specs, to simplify the testing
@@ -21,17 +19,20 @@
def failure_message
"expected #{@actual.inspect} to be identical to #{@expected.inspect}"
end
- def negative_failure_message
+ def failure_message_when_negated
"expected #{@actual.inspect} to not be identical to #{@expected.inspect}"
end
def description
"be identical to #{@expected.inspect}"
end
+
+ # RSpec 2 compatibility:
+ alias_method :negative_failure_message, :failure_message_when_negated
end
def be_identical_to(expected)
BeIdenticalTo.new(expected)
end
@@ -49,17 +50,20 @@
def failure_message
"expected #{@actual.current_path.inspect} to have permissions #{@expected.to_s(8)}, but they were #{(File.stat(@actual.path).mode & 0777).to_s(8)}"
end
- def negative_failure_message
+ def failure_message_when_negated
"expected #{@actual.current_path.inspect} not to have permissions #{@expected.to_s(8)}, but it did"
end
def description
"have permissions #{@expected.to_s(8)}"
end
+
+ # RSpec 2 compatibility:
+ alias_method :negative_failure_message, :failure_message_when_negated
end
def have_permissions(expected)
HavePermissions.new(expected)
end
@@ -77,17 +81,20 @@
def failure_message
"expected #{File.dirname @actual.current_path.inspect} to have permissions #{@expected.to_s(8)}, but they were #{(File.stat(@actual.path).mode & 0777).to_s(8)}"
end
- def negative_failure_message
+ def failure_message_when_negated
"expected #{File.dirname @actual.current_path.inspect} not to have permissions #{@expected.to_s(8)}, but it did"
end
def description
"have permissions #{@expected.to_s(8)}"
end
+
+ # RSpec 2 compatibility:
+ alias_method :negative_failure_message, :failure_message_when_negated
end
def have_directory_permissions(expected)
HaveDirectoryPermissions.new(expected)
end
@@ -108,17 +115,20 @@
def failure_message
"expected #{@actual.current_path.inspect} to be no larger than #{@width} by #{@height}, but it was #{@actual_width} by #{@actual_height}."
end
- def negative_failure_message
+ def failure_message_when_negated
"expected #{@actual.current_path.inspect} to be larger than #{@width} by #{@height}, but it wasn't."
end
def description
"be no larger than #{@width} by #{@height}"
end
+
+ # RSpec 2 compatibility:
+ alias_method :negative_failure_message, :failure_message_when_negated
end
def be_no_larger_than(width, height)
BeNoLargerThan.new(width, height)
end
@@ -139,17 +149,20 @@
def failure_message
"expected #{@actual.current_path.inspect} to have an exact size of #{@width} by #{@height}, but it was #{@actual_width} by #{@actual_height}."
end
- def negative_failure_message
+ def failure_message_when_negated
"expected #{@actual.current_path.inspect} not to have an exact size of #{@width} by #{@height}, but it did."
end
def description
"have an exact size of #{@width} by #{@height}"
end
+
+ # RSpec 2 compatibility:
+ alias_method :negative_failure_message, :failure_message_when_negated
end
def have_dimensions(width, height)
HaveDimensions.new(width, height)
end
@@ -169,17 +182,20 @@
def failure_message
"expected #{@actual.current_path.inspect} to have an exact size of #{@height}, but it was #{@actual_height}."
end
- def negative_failure_message
+ def failure_message_when_negated
"expected #{@actual.current_path.inspect} not to have an exact size of #{@height}, but it did."
end
def description
"have an exact height of #{@height}"
end
+
+ # RSpec 2 compatibility:
+ alias_method :negative_failure_message, :failure_message_when_negated
end
def have_height(height)
HaveHeight.new(height)
end
@@ -199,17 +215,20 @@
def failure_message
"expected #{@actual.current_path.inspect} to have an exact size of #{@width}, but it was #{@actual_width}."
end
- def negative_failure_message
+ def failure_message_when_negated
"expected #{@actual.current_path.inspect} not to have an exact size of #{@width}, but it did."
end
def description
"have an exact width of #{@width}"
end
+
+ # RSpec 2 compatibility:
+ alias_method :negative_failure_message, :failure_message_when_negated
end
def have_width(width)
HaveWidth.new(width)
end
@@ -229,17 +248,20 @@
def failure_message
"expected #{@actual.current_path.inspect} to be no wider than #{@width}, but it was #{@actual_width}."
end
- def negative_failure_message
+ def failure_message_when_negated
"expected #{@actual.current_path.inspect} not to be wider than #{@width}, but it is."
end
def description
"have a width less than or equal to #{@width}"
end
+
+ # RSpec 2 compatibility:
+ alias_method :negative_failure_message, :failure_message_when_negated
end
def be_no_wider_than(width)
BeNoWiderThan.new(width)
end
@@ -259,23 +281,59 @@
def failure_message
"expected #{@actual.current_path.inspect} to be no taller than #{@height}, but it was #{@actual_height}."
end
- def negative_failure_message
+ def failure_message_when_negated
"expected #{@actual.current_path.inspect} not to be taller than #{@height}, but it is."
end
def description
"have a height less than or equal to #{@height}"
end
+
+ # RSpec 2 compatibility:
+ alias_method :negative_failure_message, :failure_message_when_negated
end
def be_no_taller_than(height)
BeNoTallerThan.new(height)
end
+ class BeFormat # :nodoc:
+ def initialize(expected)
+ @expected = expected
+ end
+
+ def matches?(actual)
+ @actual = actual
+ # Satisfy expectation here. Return false or raise an error if it's not met.
+ image = ImageLoader.load_image(@actual.current_path)
+ @actual_expected = image.format
+ !@expected.nil? && @actual_expected.casecmp(@expected).zero?
+ end
+
+ def failure_message
+ "expected #{@actual.current_path.inspect} to have #{@expected} format, but it was #{@actual_expected}."
+ end
+
+ def failure_message_when_negated
+ "expected #{@actual.current_path.inspect} not to have #{@expected} format, but it did."
+ end
+
+ def description
+ "have #{@expected} format"
+ end
+
+ # RSpec 2 compatibility:
+ alias_method :negative_failure_message, :failure_message_when_negated
+ end
+
+ def be_format(expected)
+ BeFormat.new(expected)
+ end
+
class ImageLoader # :nodoc:
def self.load_image(filename)
if defined? ::MiniMagick
MiniMagickWrapper.new(filename)
else
@@ -301,10 +359,14 @@
def height
image.rows
end
+ def format
+ image.format
+ end
+
def initialize(filename)
@image = ::Magick::Image.read(filename).first
end
end
@@ -316,14 +378,17 @@
def height
image[:height]
end
+ def format
+ image[:format]
+ end
+
def initialize(filename)
@image = ::MiniMagick::Image.open(filename)
end
end
end # Matchers
end # Test
end # CarrierWave
-