Module: Angular::DSL

Included in:
Capybara::Session
Defined in:
lib/angular/dsl.rb

Overview

  • wait If true wait for AngularJS to be ready before doing quer (default: true)

Instance Method Summary collapse

Instance Method Details

#has_ng_binding?(binding, opt = {}) ⇒ Boolean

Does binding exist

  • :exact

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • (Boolean)

    true | false



97
98
99
100
101
102
# File 'lib/angular/dsl.rb', line 97

def has_ng_binding?(binding, opt = {})
  ng_bindings(model, opt)
  true
rescue NotFound
  false
end

#has_ng_model?(model, opt = {}) ⇒ Boolean

Does model exist

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • (Boolean)

    true | false



142
143
144
145
146
147
# File 'lib/angular/dsl.rb', line 142

def has_ng_model?(model, opt = {})
  ng_models(model, opt)
  true
rescue NotFound
  false
end

#has_ng_options?(options, opt = {}) ⇒ Boolean

Does option exist

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • (Boolean)

    true | false



196
197
198
199
200
201
202
# File 'lib/angular/dsl.rb', line 196

def has_ng_options?(options, opt = {})
  opt[:root_selector] ||= ng_root_selector
  ng_options(options, opt)
  true
rescue NotFound
  false
end

#has_ng_repeater_row?(repeater, opt = {}) ⇒ Boolean

Does row exist

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • (Boolean)

    true | false



252
253
254
255
256
257
# File 'lib/angular/dsl.rb', line 252

def has_ng_repeater_row?(repeater, opt = {})
  ng_repeater_row(repeater, opt)
  true
rescue NotFound
  false
end

#has_no_ng_model?(model, opt = {}) ⇒ Boolean

Does model not exist

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • (Boolean)

    true | false



156
157
158
# File 'lib/angular/dsl.rb', line 156

def has_no_ng_model?(model, opt = {})
  !has_ng_model?(model, opt)
end

#has_no_ng_options?(options, opt = {}) ⇒ Boolean

Does option not exist

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • (Boolean)

    true | false



212
213
214
# File 'lib/angular/dsl.rb', line 212

def has_no_ng_options?(options, opt = {})
  !has_ng_options?(options, opt)
end

#has_no_ng_repeater_row?(repeater, opt = {}) ⇒ Boolean

Does row not exist

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • (Boolean)

    true | false



267
268
269
# File 'lib/angular/dsl.rb', line 267

def has_no_ng_repeater_row?(repeater, opt = {})
  !has_ng_repeater_rows?(repeater, opt)
end

#ngObject



8
9
10
# File 'lib/angular/dsl.rb', line 8

def ng
  Capybara.current_session.ng
end

#ng_binding(binding, opt = {}) ⇒ Object

Node for nth binding match

  • :row

  • :exact

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • nth node



114
115
116
117
118
# File 'lib/angular/dsl.rb', line 114

def ng_binding(binding, opt = {})
  opt[:root_selector] ||= ng_root_selector
  row = ng.row(opt)
  ng_bindings(binding, opt)[row]
end

#ng_bindings(binding, opt = {}) ⇒ node, ...

All nodes matching binding

  • :exact

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • (node, ...)


129
130
131
132
# File 'lib/angular/dsl.rb', line 129

def ng_bindings(binding, opt = {})
  opt[:root_selector] ||= ng_root_selector
  ng.get_nodes_2 :findBindingsIds, [binding, opt[:exact] == true], opt
end

#ng_eval(expr, opt = {}) ⇒ Object

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • eval result



83
84
85
86
# File 'lib/angular/dsl.rb', line 83

def ng_eval(expr, opt = {})
  selector = opt.delete(:root_selector) || ng_root_selector
  ng.make_call :evaluate, [selector, expr], opt
end

#ng_installObject

Setup AngularJS test hooks in web page. In normal usage there is no need to use this



33
34
35
# File 'lib/angular/dsl.rb', line 33

def ng_install
  ng.install
end

#ng_location(opt = {}) ⇒ Object

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • current location absolute url



61
62
63
64
# File 'lib/angular/dsl.rb', line 61

def ng_location(opt = {})
  selector = opt.delete(:root_selector) || ng_root_selector
  ng.make_call :getLocation, [selector], opt
end

#ng_location_abs(opt = {}) ⇒ Object

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • current location absolute url



50
51
52
53
# File 'lib/angular/dsl.rb', line 50

def ng_location_abs(opt = {})
  selector = opt.delete(:root_selector) || ng_root_selector
  ng.make_call :getLocationAbsUrl, [selector], opt
end

#ng_model(model, opt = {}) ⇒ Object

Node for nth model match

  • :row

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • nth node



169
170
171
172
173
# File 'lib/angular/dsl.rb', line 169

def ng_model(model, opt = {})
  opt[:root_selector] ||= ng_root_selector
  row = ng.row(opt)
  ng_models(model, opt)[row]
end

#ng_models(model, opt = {}) ⇒ node, ...

All nodes matching model

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • (node, ...)


183
184
185
186
# File 'lib/angular/dsl.rb', line 183

def ng_models(model, opt = {})
  opt[:root_selector] ||= ng_root_selector
  ng.get_nodes_2 :findByModelIds, [model], opt
end

#ng_option(options, opt = {}) ⇒ Object

Node for nth option

  • :row

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • nth node



225
226
227
228
229
# File 'lib/angular/dsl.rb', line 225

def ng_option(options, opt = {})
  opt[:root_selector] ||= ng_root_selector
  row = ng.row(opt)
  ng_options(options, opt)[row]
end

#ng_options(options, opt = {}) ⇒ node, ...

All option values matching option

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • (node, ...)


239
240
241
242
# File 'lib/angular/dsl.rb', line 239

def ng_options(options, opt = {})
  opt[:root_selector] ||= ng_root_selector
  ng.get_nodes_2(:findByOptionsIds, [options], opt)
end

#ng_repeater_column(repeater, binding, opt = {}) ⇒ Object

Node for column binding value in row

  • :row

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • nth node



309
310
311
312
313
# File 'lib/angular/dsl.rb', line 309

def ng_repeater_column(repeater, binding, opt = {})
  opt[:root_selector] ||= ng_root_selector
  row = ng.row(opt)
  ng_repeater_columns(repeater, binding, opt)[row]
end

#ng_repeater_columns(repeater, binding, opt = {}) ⇒ node, ...

Node for column binding value in all rows

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • (node, ...)


323
324
325
326
# File 'lib/angular/dsl.rb', line 323

def ng_repeater_columns(repeater, binding, opt = {})
  opt[:root_selector] ||= ng_root_selector
  ng.get_nodes_2 :findRepeaterColumnIds, [repeater, binding], opt
end

#ng_repeater_element(repeater, index, binding, opt = {}) ⇒ Object

  • :row

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • nth node



335
336
337
338
339
# File 'lib/angular/dsl.rb', line 335

def ng_repeater_element(repeater, index, binding, opt = {})
  opt[:root_selector] ||= ng_root_selector
  row = ng.row(opt)
  ng_repeater_elements(repeater, index, binding, opt)[row]
end

#ng_repeater_elements(repeater, index, binding, opt = {}) ⇒ node, ...

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • (node, ...)


347
348
349
350
# File 'lib/angular/dsl.rb', line 347

def ng_repeater_elements(repeater, index, binding, opt = {})
  opt[:root_selector] ||= ng_root_selector
  ng.get_nodes_2 :findRepeaterElementIds, [repeater, index, binding], opt
end

#ng_repeater_row(repeater, opt = {}) ⇒ Object

Node for nth repeater row

  • :row

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • nth node



280
281
282
283
284
285
# File 'lib/angular/dsl.rb', line 280

def ng_repeater_row(repeater, opt = {})
  opt[:root_selector] ||= ng_root_selector
  row = ng.row(opt)
  data = ng.get_nodes_2(:findRepeaterRowsIds, [repeater, row], opt)
  data.first
end

#ng_repeater_rows(repeater, opt = {}) ⇒ node, ...

All nodes matching repeater

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • (node, ...)


295
296
297
298
# File 'lib/angular/dsl.rb', line 295

def ng_repeater_rows(repeater, opt = {})
  opt[:root_selector] ||= ng_root_selector
  ng.get_nodes_2 :findAllRepeaterRowsIds, [repeater], opt
end

#ng_root_selector(root_selector = nil) ⇒ Object

Get or set selector to find ng-app for current capybara test session

TIP: try using ‘[ng-app]’, which will find ng-app as attribute anywhere.

by default global ::Angular.root_selector is used.

Parameters:

  • root_selector (defaults to: nil)

    if nil then return current value without change

Returns:

  • test specific selector to find ng-app,



21
22
23
24
25
26
27
# File 'lib/angular/dsl.rb', line 21

def ng_root_selector(root_selector = nil)
  opt = ng.page.ng_session_options
  if root_selector
    opt[:root_selector] = root_selector
  end
  opt[:root_selector] || ::Angular.root_selector
end

#ng_set_location(url, opt = {}) ⇒ Object

  • :root_selector

  • :wait

Parameters:

  • opt (defaults to: {})

Returns:

  • current location



72
73
74
75
# File 'lib/angular/dsl.rb', line 72

def ng_set_location(url, opt = {})
  selector = opt.delete(:root_selector) || ng_root_selector
  ng.make_call :setLocation, [selector, url], opt
end

#ng_waitObject

Wait that AngularJS is ready



40
41
42
# File 'lib/angular/dsl.rb', line 40

def ng_wait
  ng.ng_wait
end