Class: HTMLSelector

Inherits:
Object
  • Object
show all
Defined in:
lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb

Overview

:nodoc:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(values, previous_selection = nil, &root_fallback) ⇒ HTMLSelector


7
8
9
10
11
12
13
14
15
16
17
# File 'lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb', line 7

def initialize(values, previous_selection = nil, &root_fallback)
  @values = values
  @root = extract_root(previous_selection, root_fallback)
  extract_selectors
  @tests = extract_equality_tests
  @message = @values.shift

  if @values.shift
    raise ArgumentError, "Not expecting that last argument, you either have too many arguments, or they're the wrong type"
  end
end

Instance Attribute Details

#css_selectorObject (readonly)

Returns the value of attribute css_selector


5
6
7
# File 'lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb', line 5

def css_selector
  @css_selector
end

#messageObject (readonly)

Returns the value of attribute message


5
6
7
# File 'lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb', line 5

def message
  @message
end

#testsObject (readonly)

Returns the value of attribute tests


5
6
7
# File 'lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb', line 5

def tests
  @tests
end

Instance Method Details

#selectObject


25
26
27
# File 'lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb', line 25

def select
  filter @root.css(@selector, context)
end

#selecting_no_body?Boolean

:nodoc:


19
20
21
22
23
# File 'lib/rails/dom/testing/assertions/selector_assertions/html_selector.rb', line 19

def selecting_no_body? #:nodoc:
  # Nokogiri gives the document a body element. Which means we can't
  # run an assertion expecting there to not be a body.
  @selector == 'body' && @tests[:count] == 0
end