Class: Applitools::Selenium::CssTranslatePositionProvider

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/applitools/selenium/css_translate_position_provider.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(executor, disable_horizontal = false, disable_vertical = false) ⇒ CssTranslatePositionProvider



9
10
11
12
13
# File 'lib/applitools/selenium/css_translate_position_provider.rb', line 9

def initialize(executor, disable_horizontal = false, disable_vertical = false)
  self.executor = executor
  self.disable_horizontal = disable_horizontal
  self.disable_vertical = disable_vertical
end

Instance Attribute Details

#last_state_positionObject

Returns the value of attribute last_state_position.



7
8
9
# File 'lib/applitools/selenium/css_translate_position_provider.rb', line 7

def last_state_position
  @last_state_position
end

Instance Method Details

#current_positionObject



15
16
17
# File 'lib/applitools/selenium/css_translate_position_provider.rb', line 15

def current_position
  last_state_position
end

#entire_sizeObject



49
50
51
52
53
54
55
56
# File 'lib/applitools/selenium/css_translate_position_provider.rb', line 49

def entire_size
  viewport_size = Applitools::Utils::EyesSeleniumUtils.extract_viewport_size(executor)
  e_size = Applitools::Utils::EyesSeleniumUtils.current_frame_content_entire_size(executor)
  logger.info "Entire size: #{e_size}"
  e_size.width = viewport_size.width if disable_horizontal
  e_size.height = viewport_size.height if disable_vertical
  e_size
end

#force_offsetObject



43
44
45
# File 'lib/applitools/selenium/css_translate_position_provider.rb', line 43

def force_offset
  Applitools::Location.from_any_attribute last_state_position
end

#position=(value) ⇒ Object Also known as: scroll_to



35
36
37
38
39
40
41
# File 'lib/applitools/selenium/css_translate_position_provider.rb', line 35

def position=(value)
  Applitools::ArgumentGuard.not_nil(value, 'value')
  logger.info "Setting position to: #{value}"
  Applitools::Utils::EyesSeleniumUtils.translate_to(executor, value)
  logger.info 'Done!'
  self.last_state_position = value
end

#restore_state(value) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/applitools/selenium/css_translate_position_provider.rb', line 23

def restore_state(value)
  transforms = value.values.select { |el| !el.empty? }
  Applitools::Utils::EyesSeleniumUtils.set_transforms(executor, value)
  if transforms.empty?
    self.last_state_position = Applitools::Location::TOP_LEFT
  else
    positions = transforms.map { |s| get_position_from_transform(s) }
    positions.each { |p| raise Applitools::EyesError.new 'Got different css positions!' unless p == positions[0] }
    self.last_state_position = positions[0]
  end
end

#stateObject



19
20
21
# File 'lib/applitools/selenium/css_translate_position_provider.rb', line 19

def state
  Applitools::Utils::EyesSeleniumUtils.current_transforms(executor)
end