Class: Selenium::WebDriver::Support::Guards::Guard Private

Inherits:
Object
  • Object
show all
Defined in:
lib/selenium/webdriver/support/guards/guard.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Guard derived from RSpec example metadata.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(guarded, type, guards = nil) ⇒ Guard

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Guard.



32
33
34
35
36
37
38
39
40
# File 'lib/selenium/webdriver/support/guards/guard.rb', line 32

def initialize(guarded, type, guards = nil)
  @guarded = guarded
  @tracker = guards&.bug_tracker || ''
  @messages = guards&.messages || {}
  @messages[:unknown] = 'TODO: Investigate why this is failing and file a bug report'
  @type = type

  @reason = @guarded.delete(:reason)
end

Instance Attribute Details

#guardedObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



30
31
32
# File 'lib/selenium/webdriver/support/guards/guard.rb', line 30

def guarded
  @guarded
end

#messagesObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



30
31
32
# File 'lib/selenium/webdriver/support/guards/guard.rb', line 30

def messages
  @messages
end

#reasonObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



30
31
32
# File 'lib/selenium/webdriver/support/guards/guard.rb', line 30

def reason
  @reason
end

#typeObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



30
31
32
# File 'lib/selenium/webdriver/support/guards/guard.rb', line 30

def type
  @type
end

Instance Method Details

#except?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Bug is present on all configurations specified

Returns:

  • (Boolean)


67
68
69
# File 'lib/selenium/webdriver/support/guards/guard.rb', line 67

def except?
  @type == :except
end

#exclude?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Bug is present on all configurations specified, but test can not be run because it breaks other tests, or it is flaky and unreliable

Returns:

  • (Boolean)


78
79
80
# File 'lib/selenium/webdriver/support/guards/guard.rb', line 78

def exclude?
  @type == :exclude || @type == :flaky
end

#exclusive?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Test only applies to configurations specified

Returns:

  • (Boolean)


83
84
85
# File 'lib/selenium/webdriver/support/guards/guard.rb', line 83

def exclusive?
  @type == :exclusive
end

#messageObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/selenium/webdriver/support/guards/guard.rb', line 42

def message
  details = case @reason
            when Integer
              "Bug Filed: #{@tracker}/#{@reason}"
            when Symbol
              @messages[@reason]
            when String
              @reason
            else
              'no reason given'
            end

  case @type
  when :exclude
    "Test skipped because it breaks test run; #{details}"
  when :flaky
    "Test skipped because it is unreliable in this configuration; #{details}"
  when :exclusive
    "Test does not apply to this configuration; #{details}"
  else
    "Test guarded; #{details}"
  end
end

#only?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Bug is present on all configurations not specified

Returns:

  • (Boolean)


72
73
74
# File 'lib/selenium/webdriver/support/guards/guard.rb', line 72

def only?
  @type == :only
end