testcentricity_web 3.0.9 → 3.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
1
  module TestCentricityWeb
2
- VERSION = '3.0.9'
2
+ VERSION = '3.0.10'
3
3
  end
@@ -517,7 +517,7 @@ module TestCentricity
517
517
  # home_page.secure?
518
518
  #
519
519
  def secure?
520
- !current_url.match(/^https/).nil?
520
+ current_url.start_with?('https')
521
521
  end
522
522
 
523
523
  def verify_ui_states(ui_states, fail_message = nil)
@@ -568,6 +568,10 @@ module TestCentricity
568
568
  actual = ui_object.get_max
569
569
  when :step
570
570
  actual = ui_object.get_step
571
+ when :loaded
572
+ actual = ui_object.loaded?
573
+ when :broken
574
+ actual = ui_object.broken?
571
575
  when :options, :items, :list_items
572
576
  actual = ui_object.get_list_items
573
577
  when :optioncount, :itemcount
@@ -618,7 +622,7 @@ module TestCentricity
618
622
  end
619
623
  end
620
624
  error_msg = "Expected UI object '#{ui_object.get_name}' (#{ui_object.get_locator}) #{property} property to"
621
- ExceptionQueue.enqueue_comparison(state, actual, error_msg)
625
+ ExceptionQueue.enqueue_comparison(ui_object, state, actual, error_msg)
622
626
  end
623
627
  end
624
628
  rescue ObjectNotFoundError => e
@@ -13,8 +13,8 @@ module TestCentricity
13
13
  attr_accessor :list_index
14
14
  attr_accessor :locator_type
15
15
 
16
- XPATH_SELECTORS = ['//', '[@', '[contains(@']
17
- CSS_SELECTORS = ['#', ':nth-child(', ':nth-of-type(', '^=', '$=', '*=']
16
+ XPATH_SELECTORS = ['//', '[@', '[contains(']
17
+ CSS_SELECTORS = ['#', ':nth-child(', ':first-child', ':last-child', ':nth-of-type(', ':first-of-type', ':last-of-type', '^=', '$=', '*=', ':contains(']
18
18
 
19
19
  def initialize(name, parent, locator, context)
20
20
  @name = name
@@ -743,6 +743,10 @@ module TestCentricity
743
743
  actual = ui_object.get_max
744
744
  when :step
745
745
  actual = ui_object.get_step
746
+ when :loaded
747
+ actual = ui_object.loaded?
748
+ when :broken
749
+ actual = ui_object.broken?
746
750
  when :options, :items, :list_items
747
751
  actual = ui_object.get_list_items
748
752
  when :optioncount, :itemcount
@@ -793,7 +797,7 @@ module TestCentricity
793
797
  end
794
798
  end
795
799
  error_msg = "Expected UI object '#{ui_object.get_name}' (#{ui_object.get_locator}) #{property} property to"
796
- ExceptionQueue.enqueue_comparison(state, actual, error_msg)
800
+ ExceptionQueue.enqueue_comparison(ui_object, state, actual, error_msg)
797
801
  end
798
802
  end
799
803
  rescue ObjectNotFoundError => e
@@ -874,7 +878,7 @@ module TestCentricity
874
878
 
875
879
  def find_section
876
880
  locator = get_locator
877
- locator = locator.gsub('|', ' ')
881
+ locator = locator.tr('|', ' ')
878
882
  obj = page.find(@locator_type, locator, wait: 0.1)
879
883
  [obj, @locator_type]
880
884
  rescue
@@ -11,12 +11,30 @@ module TestCentricity
11
11
  # @example
12
12
  # company_logo_image.is_loaded??
13
13
  #
14
- def is_loaded?
14
+ def loaded?
15
15
  obj, = find_element
16
16
  object_not_found_exception(obj, nil)
17
17
  obj.native.attribute('complete')
18
18
  end
19
19
 
20
+ alias is_loaded? loaded?
21
+
22
+ # Is image broken?
23
+ #
24
+ # @return [Boolean]
25
+ # @example
26
+ # company_logo_image.broken???
27
+ #
28
+ def broken?
29
+ obj, = find_element
30
+ object_not_found_exception(obj, nil)
31
+ result = page.execute_script(
32
+ 'return arguments[0].complete && typeof arguments[0].naturalWidth != "undefined" && arguments[0].naturalWidth > 0',
33
+ obj
34
+ )
35
+ !result
36
+ end
37
+
20
38
  # Wait until the image is fully loaded, or until the specified wait time has expired.
21
39
  #
22
40
  # @param seconds [Integer or Float] wait time in seconds
@@ -15,13 +15,13 @@ module TestCentricity
15
15
  @type = :table
16
16
 
17
17
  table_spec = {
18
- table_body: 'tbody',
19
- table_section: nil,
20
- table_row: 'tr',
21
- table_column: 'td',
22
- table_header: 'thead',
23
- header_row: 'tr',
24
- header_column: 'th'
18
+ table_body: 'tbody',
19
+ table_section: nil,
20
+ table_row: 'tr',
21
+ table_column: 'td',
22
+ table_header: 'thead',
23
+ header_row: 'tr',
24
+ header_column: 'th'
25
25
  }
26
26
 
27
27
  case @locator_type
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test/unit'
2
4
 
3
5
  Capybara::Node::Element.class_eval do
@@ -35,18 +37,19 @@ module TestCentricity
35
37
  include Test::Unit::Assertions
36
38
 
37
39
  attr_reader :parent, :locator, :context, :type, :name
38
- attr_accessor :alt_locator, :locator_type
40
+ attr_accessor :alt_locator, :locator_type, :original_style
39
41
 
40
- XPATH_SELECTORS = ['//', '[@', '[contains(@']
41
- CSS_SELECTORS = ['#', ':nth-child(', ':nth-of-type(', '^=', '$=', '*=']
42
+ XPATH_SELECTORS = ['//', '[@', '[contains('].freeze
43
+ CSS_SELECTORS = ['#', ':nth-child(', ':first-child', ':last-child', ':nth-of-type(', ':first-of-type', ':last-of-type', '^=', '$=', '*=', ':contains('].freeze
42
44
 
43
45
  def initialize(name, parent, locator, context)
44
- @name = name
45
- @parent = parent
46
- @locator = locator
47
- @context = context
48
- @type = nil
49
- @alt_locator = nil
46
+ @name = name
47
+ @parent = parent
48
+ @locator = locator
49
+ @context = context
50
+ @type = nil
51
+ @alt_locator = nil
52
+ @original_style = nil
50
53
  set_locator_type
51
54
  end
52
55
 
@@ -105,7 +108,7 @@ module TestCentricity
105
108
  object_not_found_exception(obj, type)
106
109
  begin
107
110
  obj.click
108
- rescue
111
+ rescue StandardError
109
112
  obj.click_at(10, 10) unless Capybara.current_driver == :poltergeist
110
113
  end
111
114
  end
@@ -249,7 +252,7 @@ module TestCentricity
249
252
  timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds
250
253
  wait = Selenium::WebDriver::Wait.new(timeout: timeout)
251
254
  wait.until { exists? }
252
- rescue
255
+ rescue StandardError
253
256
  raise "Could not find UI #{object_ref_message} after #{timeout} seconds" unless exists?
254
257
  end
255
258
 
@@ -264,7 +267,7 @@ module TestCentricity
264
267
  timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds
265
268
  wait = Selenium::WebDriver::Wait.new(timeout: timeout)
266
269
  wait.until { !exists? }
267
- rescue
270
+ rescue StandardError
268
271
  raise "UI #{object_ref_message} remained visible after #{timeout} seconds" if exists?
269
272
  end
270
273
 
@@ -279,7 +282,7 @@ module TestCentricity
279
282
  timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds
280
283
  wait = Selenium::WebDriver::Wait.new(timeout: timeout)
281
284
  wait.until { visible? }
282
- rescue
285
+ rescue StandardError
283
286
  raise "Could not find UI #{object_ref_message} after #{timeout} seconds" unless visible?
284
287
  end
285
288
 
@@ -294,7 +297,7 @@ module TestCentricity
294
297
  timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds
295
298
  wait = Selenium::WebDriver::Wait.new(timeout: timeout)
296
299
  wait.until { hidden? }
297
- rescue
300
+ rescue StandardError
298
301
  raise "UI #{object_ref_message} remained visible after #{timeout} seconds" if visible?
299
302
  end
300
303
 
@@ -312,7 +315,7 @@ module TestCentricity
312
315
  timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds
313
316
  wait = Selenium::WebDriver::Wait.new(timeout: timeout)
314
317
  wait.until { compare(value, get_value) }
315
- rescue
318
+ rescue StandardError
316
319
  raise "Value of UI #{object_ref_message} failed to equal '#{value}' after #{timeout} seconds" unless get_value == value
317
320
  end
318
321
 
@@ -328,7 +331,7 @@ module TestCentricity
328
331
  timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds
329
332
  wait = Selenium::WebDriver::Wait.new(timeout: timeout)
330
333
  wait.until { get_value != value }
331
- rescue
334
+ rescue StandardError
332
335
  raise "Value of UI #{object_ref_message} failed to change from '#{value}' after #{timeout} seconds" if get_value == value
333
336
  end
334
337
 
@@ -442,6 +445,54 @@ module TestCentricity
442
445
  page.driver.browser.action.move_to(target_drop.native, right_offset.to_i, down_offset.to_i).release.perform
443
446
  end
444
447
 
448
+ # Highlight an object with a 3 pixel wide, red dashed border for the specified wait time.
449
+ # If wait time is zero, then the highlight will remain until the page is refreshed
450
+ #
451
+ # @param seconds [Integer or Float] wait time in seconds
452
+ # @example
453
+ # error_message.highlight(3)
454
+ #
455
+ def highlight(duration = 1)
456
+ obj, type = find_element
457
+ object_not_found_exception(obj, type)
458
+ # store original style so it can be reset later
459
+ @original_style = obj.native.attribute('style')
460
+ # style element with red border
461
+ page.execute_script(
462
+ 'arguments[0].setAttribute(arguments[1], arguments[2])',
463
+ obj,
464
+ 'style',
465
+ 'border: 3px solid red; border-style: dashed;'
466
+ )
467
+ # keep element highlighted for duration and then revert to original style
468
+ if duration.positive?
469
+ sleep duration
470
+ page.execute_script(
471
+ 'arguments[0].setAttribute(arguments[1], arguments[2])',
472
+ obj,
473
+ 'style',
474
+ @original_style
475
+ )
476
+ end
477
+ end
478
+
479
+ # Restore a highlighted object's original style
480
+ #
481
+ # @example
482
+ # store_link.unhighlight
483
+ #
484
+ def unhighlight
485
+ obj, type = find_element
486
+ object_not_found_exception(obj, type)
487
+ return if @original_style.nil?
488
+ page.execute_script(
489
+ 'arguments[0].setAttribute(arguments[1], arguments[2])',
490
+ obj,
491
+ 'style',
492
+ @original_style
493
+ )
494
+ end
495
+
445
496
  def get_attribute(attrib)
446
497
  obj, type = find_element(false)
447
498
  object_not_found_exception(obj, type)
@@ -462,33 +513,33 @@ module TestCentricity
462
513
  end
463
514
 
464
515
  def find_object(visible = true)
465
- @alt_locator.nil? ? obj_locator = @locator : obj_locator = @alt_locator
516
+ obj_locator = @alt_locator.nil? ? @locator : @alt_locator
466
517
  parent_section = @context == :section && !@parent.get_locator.nil?
467
- parent_section ? tries ||= 2 : tries ||= 1
518
+ tries ||= parent_section ? 2 : 1
468
519
 
469
520
  if parent_section && tries > 1
470
521
  parent_locator = @parent.get_locator
471
- parent_locator = parent_locator.gsub('|', ' ')
522
+ parent_locator = parent_locator.tr('|', ' ')
472
523
  parent_locator_type = @parent.get_locator_type
473
524
  obj = page.find(parent_locator_type, parent_locator, wait: 0.01).find(@locator_type, obj_locator, wait: 0.01, visible: visible)
474
525
  else
475
526
  obj = page.find(@locator_type, obj_locator, wait: 0.01, visible: visible)
476
527
  end
477
528
  [obj, @locator_type]
478
- rescue
529
+ rescue StandardError
479
530
  retry if (tries -= 1) > 0
480
531
  [nil, nil]
481
532
  end
482
533
 
483
534
  def object_not_found_exception(obj, obj_type)
484
- @alt_locator.nil? ? locator = @locator : locator = @alt_locator
485
- obj_type.nil? ? object_type = 'Object' : object_type = obj_type
486
- raise ObjectNotFoundError.new("#{object_type} named '#{@name}' (#{locator}) not found") unless obj
535
+ locator = @alt_locator.nil? ? @locator : @alt_locator
536
+ object_type = obj_type.nil? ? 'Object' : obj_type
537
+ raise ObjectNotFoundError, "#{object_type} named '#{@name}' (#{locator}) not found" unless obj
487
538
  end
488
539
 
489
540
  def invalid_object_type_exception(obj, obj_type)
490
541
  unless obj.tag_name == obj_type || obj.native.attribute('type') == obj_type
491
- @alt_locator.nil? ? locator = @locator : locator = @alt_locator
542
+ locator = @alt_locator.nil? ? @locator : @alt_locator
492
543
  raise "#{locator} is not a #{obj_type} element"
493
544
  end
494
545
  end
@@ -0,0 +1,3 @@
1
+ def source
2
+ return
3
+ end
@@ -15,12 +15,12 @@ Gem::Specification.new do |spec|
15
15
  The TestCentricity™ Web core generic framework for desktop and mobile web browser-based applications testing implements
16
16
  a Page Object Model DSL for use with Cucumber, Capybara, and Selenium-Webdriver. The gem provides support for running
17
17
  automated tests against locally hosted desktop browsers, locally hosted emulated mobile browsers (iOS, Android, Windows
18
- Phone, Blackberry, Kindle Fire) running within a locally hosted instance of Chrome, mobile Safari browsers on iOS device
19
- simulators or physical iOS devices (using Appium and XCode on OS X), mobile Chrome or Android browsers on Android Studio
20
- virtual device emulators (using Appium and Android Studio on OS X), or cloud hosted desktop or mobile web browsers (using
21
- the BrowserStack, Sauce Labs, CrossBrowserTesting, TestingBot, or Gridlastic services).}
18
+ Phone, Blackberry, Kindle Fire) running within a local instance of Chrome, mobile Safari browsers on iOS device simulators
19
+ or physical iOS devices (using Appium and XCode on OS X), mobile Chrome or Android browsers on Android Studio virtual
20
+ device emulators (using Appium and Android Studio on OS X), or cloud hosted desktop or mobile web browsers (using the
21
+ BrowserStack, Sauce Labs, CrossBrowserTesting, TestingBot, or Gridlastic services).}
22
22
  spec.homepage = ''
23
- spec.license = 'BSD3'
23
+ spec.license = 'BSD-3-Clause'
24
24
 
25
25
  spec.files = `git ls-files -z`.split("\x0")
26
26
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
@@ -31,16 +31,16 @@ Gem::Specification.new do |spec|
31
31
  spec.add_development_dependency 'bundler', '~> 1.5'
32
32
  spec.add_development_dependency 'rake'
33
33
 
34
+ spec.add_runtime_dependency 'appium_lib'
35
+ spec.add_runtime_dependency 'browserstack-local'
34
36
  spec.add_runtime_dependency 'capybara', '>= 3.1', '< 4'
35
- spec.add_runtime_dependency 'test-unit'
36
- spec.add_runtime_dependency 'selenium-webdriver', ['>= 3.11.0', '< 4.0']
37
- spec.add_runtime_dependency 'faker'
37
+ spec.add_runtime_dependency 'childprocess', '~> 0.5'
38
38
  spec.add_runtime_dependency 'chronic', '0.10.2'
39
- spec.add_runtime_dependency 'spreadsheet', '1.1.1'
40
- spec.add_runtime_dependency 'os', '~> 1.0'
39
+ spec.add_runtime_dependency 'faker'
41
40
  spec.add_runtime_dependency 'i18n'
42
- spec.add_runtime_dependency 'browserstack-local'
43
- spec.add_runtime_dependency 'appium_lib'
41
+ spec.add_runtime_dependency 'os', '~> 1.0'
42
+ spec.add_runtime_dependency 'selenium-webdriver', ['>= 3.11.0', '< 4.0']
43
+ spec.add_runtime_dependency 'spreadsheet', '1.1.7'
44
+ spec.add_runtime_dependency 'test-unit'
44
45
  spec.add_runtime_dependency 'webdrivers', '~> 3.3'
45
- spec.add_runtime_dependency 'childprocess', '~> 0.5'
46
46
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testcentricity_web
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.9
4
+ version: 3.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - A.J. Mrozinski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-05 00:00:00.000000000 Z
11
+ date: 2018-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -39,27 +39,21 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: capybara
42
+ name: appium_lib
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '3.1'
48
- - - "<"
49
- - !ruby/object:Gem::Version
50
- version: '4'
47
+ version: '0'
51
48
  type: :runtime
52
49
  prerelease: false
53
50
  version_requirements: !ruby/object:Gem::Requirement
54
51
  requirements:
55
52
  - - ">="
56
53
  - !ruby/object:Gem::Version
57
- version: '3.1'
58
- - - "<"
59
- - !ruby/object:Gem::Version
60
- version: '4'
54
+ version: '0'
61
55
  - !ruby/object:Gem::Dependency
62
- name: test-unit
56
+ name: browserstack-local
63
57
  requirement: !ruby/object:Gem::Requirement
64
58
  requirements:
65
59
  - - ">="
@@ -73,39 +67,39 @@ dependencies:
73
67
  - !ruby/object:Gem::Version
74
68
  version: '0'
75
69
  - !ruby/object:Gem::Dependency
76
- name: selenium-webdriver
70
+ name: capybara
77
71
  requirement: !ruby/object:Gem::Requirement
78
72
  requirements:
79
73
  - - ">="
80
74
  - !ruby/object:Gem::Version
81
- version: 3.11.0
75
+ version: '3.1'
82
76
  - - "<"
83
77
  - !ruby/object:Gem::Version
84
- version: '4.0'
78
+ version: '4'
85
79
  type: :runtime
86
80
  prerelease: false
87
81
  version_requirements: !ruby/object:Gem::Requirement
88
82
  requirements:
89
83
  - - ">="
90
84
  - !ruby/object:Gem::Version
91
- version: 3.11.0
85
+ version: '3.1'
92
86
  - - "<"
93
87
  - !ruby/object:Gem::Version
94
- version: '4.0'
88
+ version: '4'
95
89
  - !ruby/object:Gem::Dependency
96
- name: faker
90
+ name: childprocess
97
91
  requirement: !ruby/object:Gem::Requirement
98
92
  requirements:
99
- - - ">="
93
+ - - "~>"
100
94
  - !ruby/object:Gem::Version
101
- version: '0'
95
+ version: '0.5'
102
96
  type: :runtime
103
97
  prerelease: false
104
98
  version_requirements: !ruby/object:Gem::Requirement
105
99
  requirements:
106
- - - ">="
100
+ - - "~>"
107
101
  - !ruby/object:Gem::Version
108
- version: '0'
102
+ version: '0.5'
109
103
  - !ruby/object:Gem::Dependency
110
104
  name: chronic
111
105
  requirement: !ruby/object:Gem::Requirement
@@ -121,19 +115,33 @@ dependencies:
121
115
  - !ruby/object:Gem::Version
122
116
  version: 0.10.2
123
117
  - !ruby/object:Gem::Dependency
124
- name: spreadsheet
118
+ name: faker
125
119
  requirement: !ruby/object:Gem::Requirement
126
120
  requirements:
127
- - - '='
121
+ - - ">="
128
122
  - !ruby/object:Gem::Version
129
- version: 1.1.1
123
+ version: '0'
130
124
  type: :runtime
131
125
  prerelease: false
132
126
  version_requirements: !ruby/object:Gem::Requirement
133
127
  requirements:
134
- - - '='
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: i18n
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
135
143
  - !ruby/object:Gem::Version
136
- version: 1.1.1
144
+ version: '0'
137
145
  - !ruby/object:Gem::Dependency
138
146
  name: os
139
147
  requirement: !ruby/object:Gem::Requirement
@@ -149,35 +157,41 @@ dependencies:
149
157
  - !ruby/object:Gem::Version
150
158
  version: '1.0'
151
159
  - !ruby/object:Gem::Dependency
152
- name: i18n
160
+ name: selenium-webdriver
153
161
  requirement: !ruby/object:Gem::Requirement
154
162
  requirements:
155
163
  - - ">="
156
164
  - !ruby/object:Gem::Version
157
- version: '0'
165
+ version: 3.11.0
166
+ - - "<"
167
+ - !ruby/object:Gem::Version
168
+ version: '4.0'
158
169
  type: :runtime
159
170
  prerelease: false
160
171
  version_requirements: !ruby/object:Gem::Requirement
161
172
  requirements:
162
173
  - - ">="
163
174
  - !ruby/object:Gem::Version
164
- version: '0'
175
+ version: 3.11.0
176
+ - - "<"
177
+ - !ruby/object:Gem::Version
178
+ version: '4.0'
165
179
  - !ruby/object:Gem::Dependency
166
- name: browserstack-local
180
+ name: spreadsheet
167
181
  requirement: !ruby/object:Gem::Requirement
168
182
  requirements:
169
- - - ">="
183
+ - - '='
170
184
  - !ruby/object:Gem::Version
171
- version: '0'
185
+ version: 1.1.7
172
186
  type: :runtime
173
187
  prerelease: false
174
188
  version_requirements: !ruby/object:Gem::Requirement
175
189
  requirements:
176
- - - ">="
190
+ - - '='
177
191
  - !ruby/object:Gem::Version
178
- version: '0'
192
+ version: 1.1.7
179
193
  - !ruby/object:Gem::Dependency
180
- name: appium_lib
194
+ name: test-unit
181
195
  requirement: !ruby/object:Gem::Requirement
182
196
  requirements:
183
197
  - - ">="
@@ -204,29 +218,15 @@ dependencies:
204
218
  - - "~>"
205
219
  - !ruby/object:Gem::Version
206
220
  version: '3.3'
207
- - !ruby/object:Gem::Dependency
208
- name: childprocess
209
- requirement: !ruby/object:Gem::Requirement
210
- requirements:
211
- - - "~>"
212
- - !ruby/object:Gem::Version
213
- version: '0.5'
214
- type: :runtime
215
- prerelease: false
216
- version_requirements: !ruby/object:Gem::Requirement
217
- requirements:
218
- - - "~>"
219
- - !ruby/object:Gem::Version
220
- version: '0.5'
221
221
  description: |2-
222
222
 
223
223
  The TestCentricity™ Web core generic framework for desktop and mobile web browser-based applications testing implements
224
224
  a Page Object Model DSL for use with Cucumber, Capybara, and Selenium-Webdriver. The gem provides support for running
225
225
  automated tests against locally hosted desktop browsers, locally hosted emulated mobile browsers (iOS, Android, Windows
226
- Phone, Blackberry, Kindle Fire) running within a locally hosted instance of Chrome, mobile Safari browsers on iOS device
227
- simulators or physical iOS devices (using Appium and XCode on OS X), mobile Chrome or Android browsers on Android Studio
228
- virtual device emulators (using Appium and Android Studio on OS X), or cloud hosted desktop or mobile web browsers (using
229
- the BrowserStack, Sauce Labs, CrossBrowserTesting, TestingBot, or Gridlastic services).
226
+ Phone, Blackberry, Kindle Fire) running within a local instance of Chrome, mobile Safari browsers on iOS device simulators
227
+ or physical iOS devices (using Appium and XCode on OS X), mobile Chrome or Android browsers on Android Studio virtual
228
+ device emulators (using Appium and Android Studio on OS X), or cloud hosted desktop or mobile web browsers (using the
229
+ BrowserStack, Sauce Labs, CrossBrowserTesting, TestingBot, or Gridlastic services).
230
230
  email:
231
231
  - testcentricity@gmail.com
232
232
  executables: []
@@ -239,10 +239,15 @@ files:
239
239
  - ".idea/misc.xml"
240
240
  - ".idea/modules.xml"
241
241
  - ".idea/vcs.xml"
242
+ - ".rspec"
242
243
  - ".rubocop.yml"
244
+ - ".ruby-gemset"
245
+ - ".ruby-version"
243
246
  - ".yardopts"
247
+ - CHANGELOG.md
248
+ - CODE_OF_CONDUCT.md
244
249
  - Gemfile
245
- - HISTORY.md
250
+ - Gemfile.lock
246
251
  - LICENSE.md
247
252
  - README.md
248
253
  - Rakefile
@@ -283,10 +288,11 @@ files:
283
288
  - lib/testcentricity_web/web_elements/textfield.rb
284
289
  - lib/testcentricity_web/web_elements/ui_elements_helper.rb
285
290
  - lib/testcentricity_web/world_extensions.rb
291
+ - my_templates/default/method_details/setup.rb
286
292
  - testcentricity_web.gemspec
287
293
  homepage: ''
288
294
  licenses:
289
- - BSD3
295
+ - BSD-3-Clause
290
296
  metadata: {}
291
297
  post_install_message:
292
298
  rdoc_options: []