class Applitools::Selenium::ContextBasedScaleProvider
@!visibility private
Constants
- ALLOWED_DCES_DEVIATION
- ALLOWED_VS_DEVIATION
- UNKNOWN_SCALE_RATIO
Attributes
device_pixel_ratio[R]
scale_ratio[R]
top_level_context_entire_size[R]
viewport_size[R]
Public Class Methods
new(top_level_context_entire_size, viewport_size, device_pixel_ratio)
click to toggle source
Initialize a class instance.
@param [Applitools::RectangleSize] top_level_context_entire_size
The entire size of the context. @param [Hash] viewport_size
The required browser's viewport size. @param [Fixnum] device_pixel_ratio
The device's pixel ratio.
# File lib/applitools/selenium/context_based_scale_provider.rb, line 18 def initialize(top_level_context_entire_size, viewport_size, device_pixel_ratio) @top_level_context_entire_size = top_level_context_entire_size @viewport_size = viewport_size @device_pixel_ratio = device_pixel_ratio @scale_ratio = UNKNOWN_SCALE_RATIO end
Public Instance Methods
scale_image(image)
click to toggle source
Scales the image.
@param [Screenshot::Datastream] image The image to scale.
# File lib/applitools/selenium/context_based_scale_provider.rb, line 28 def scale_image(image) if @scale_ratio == UNKNOWN_SCALE_RATIO @scale_ratio = if ((image.width >= viewport_size.width - ALLOWED_VS_DEVIATION) && (image.width <= viewport_size.width + ALLOWED_VS_DEVIATION)) || ((image.width >= top_level_context_entire_size.width - ALLOWED_DCES_DEVIATION) && (image.width <= top_level_context_entire_size.width + ALLOWED_DCES_DEVIATION)) 1 else 1.to_f / device_pixel_ratio end end Applitools::Utils::ImageUtils.scale!(image, scale_ratio) end