druid-ts 1.1.7 → 1.1.8

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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +59 -0
  3. data/Gemfile +1 -0
  4. data/druid.gemspec +1 -0
  5. data/features/area.feature +1 -0
  6. data/features/audio.feature +1 -0
  7. data/features/canvas.feature +1 -0
  8. data/features/checkbox.feature +2 -0
  9. data/features/div.feature +1 -0
  10. data/features/element.feature +15 -0
  11. data/features/file_field.feature +2 -0
  12. data/features/form.feature +1 -0
  13. data/features/generic_elements.feature +5 -0
  14. data/features/heading.feature +6 -0
  15. data/features/hidden_field.feature +1 -0
  16. data/features/html/images/img_pulpit.jpg +0 -0
  17. data/features/html/static_elements.html +19 -1
  18. data/features/image.feature +1 -0
  19. data/features/label.feature +1 -0
  20. data/features/list_item.feature +1 -0
  21. data/features/multi_elements.feature +7 -0
  22. data/features/ordered_list.feature +1 -0
  23. data/features/paragraph.feature +1 -0
  24. data/features/radio_button.feature +2 -0
  25. data/features/select_list.feature +2 -2
  26. data/features/span.feature +2 -1
  27. data/features/step_definations/element_steps.rb +25 -0
  28. data/features/step_definations/generic_element_steps.rb +12 -0
  29. data/features/step_definations/multi_elements_steps.rb +5 -0
  30. data/features/support/page.rb +37 -2
  31. data/features/table.feature +1 -0
  32. data/features/table_cell.feature +1 -0
  33. data/features/text_area.feature +2 -0
  34. data/features/text_field.feature +2 -0
  35. data/features/unordered_list.feature +1 -0
  36. data/features/video.feature +1 -0
  37. data/lib/druid/accessors.rb +117 -84
  38. data/lib/druid/assist.rb +19 -1
  39. data/lib/druid/elements/canvas.rb +1 -1
  40. data/lib/druid/elements/check_box.rb +1 -1
  41. data/lib/druid/elements/element.rb +1 -1
  42. data/lib/druid/elements/file_field.rb +1 -1
  43. data/lib/druid/elements/radio_button.rb +1 -1
  44. data/lib/druid/elements/select_list.rb +1 -1
  45. data/lib/druid/elements/text_area.rb +3 -0
  46. data/lib/druid/locator_generator.rb +112 -58
  47. data/lib/druid/page_factory.rb +17 -83
  48. data/lib/druid/page_populator.rb +2 -1
  49. data/lib/druid/version.rb +1 -1
  50. data/spec/druid/druid_spec.rb +1 -1
  51. data/spec/druid/page_factory_spec.rb +12 -11
  52. data/spec/druid/page_populator_spec.rb +27 -0
  53. metadata +17 -1
@@ -1,3 +1,3 @@
1
1
  module Druid
2
- VERSION = "1.1.7"
2
+ VERSION = "1.1.8"
3
3
  end
@@ -229,7 +229,7 @@ describe Druid do
229
229
  end
230
230
 
231
231
  @page = CallbackPage.new(driver)
232
- expect(@page.initialize_accessors.usec).to be < @page.initialize_page.usec
232
+ expect(@page.initialize_accessors.usec).to be <= @page.initialize_page.usec
233
233
  end
234
234
 
235
235
  it "should convert a modal popup to a window" do
@@ -179,13 +179,13 @@ describe Druid::PageFactory do
179
179
  end
180
180
 
181
181
  it "should raise an error when you do not provide a default route" do
182
- expect { Druid::PageFactory.routes = {:another => []} }.to raise_error 'You must provide a :default route for PageFactory routes'
182
+ expect { Druid::PageFactory.routes = {:another => []} }.to raise_error 'You must provide a :default route'
183
183
  end
184
184
 
185
185
  it "should store the routes" do
186
186
  routes = ['a', 'b', 'c']
187
187
  Druid::PageFactory.routes = {:default => routes}
188
- expect(Druid::PageFactory.page_object_routes[:default]).to eql routes
188
+ expect(Druid::PageFactory.routes[:default]).to eql routes
189
189
  end
190
190
 
191
191
  it "should navigate to a page calling the default methods" do
@@ -220,15 +220,16 @@ describe Druid::PageFactory do
220
220
  end
221
221
 
222
222
  it "should know how to continue routing from a location" do
223
- Druid::PageFactory.routes = {
224
- :default => [[FactoryTestDruid, :a_method], [AnotherPage, :b_method], [YetAnotherPage, :c_method]]
225
- }
226
- fake_page = double('a_page')
227
- expect(AnotherPage).to receive(:new).with(driver,false).and_return(fake_page)
228
- expect(fake_page).to receive(:respond_to?).with(:b_method).and_return(true)
229
- expect(fake_page).to receive(:b_method)
230
- expect(fake_page).to receive(:class).and_return(FactoryTestDruid)
231
- world.instance_variable_set :@current_page, fake_page
223
+ Druid::PageFactory.routes = {:default => [[FactoryTestDruid, :a_method], [AnotherPage, :b_method], [YetAnotherPage, :c_method]]}
224
+ world.current_page = FactoryTestDruid.new(driver)
225
+ f_page = FactoryTestDruid.new(driver)
226
+ allow(FactoryTestDruid).to receive(:new).with(driver,false).and_return(f_page)
227
+ allow(f_page).to receive(:respond_to?).with(:a_method).and_return(true)
228
+ allow(f_page).to receive(:a_method)
229
+ a_page = AnotherPage.new(driver)
230
+ allow(AnotherPage).to receive(:new).with(driver,false).and_return(a_page)
231
+ allow(a_page).to receive(:respond_to?).with(:b_method).and_return(true)
232
+ allow(a_page).to receive(:b_method)
232
233
  expect(world.continue_navigation_to(YetAnotherPage).class).to eql YetAnotherPage
233
234
  end
234
235
  end
@@ -26,6 +26,15 @@ describe Druid::PagePopulator do
26
26
  druid.populate_page_with('coffee' => 'value')
27
27
  end
28
28
 
29
+ it "should not populate a text field when it is not visible" do
30
+ expect(druid).not_to receive(:tf=)
31
+ expect(druid).to receive(:tf_element).twice.and_return(driver)
32
+ expect(driver).to receive(:enabled?).and_return(true)
33
+ expect(driver).to receive(:visible?).and_return(false)
34
+ expect(driver).to receive(:tag_name).and_return('input')
35
+ druid.populate_page_with('tf' => true)
36
+ end
37
+
29
38
  it "should set a value in a text area" do
30
39
  expect(druid).to receive(:ta=).with('value')
31
40
  expect(druid).to receive(:ta_element).and_return(driver)
@@ -77,6 +86,15 @@ describe Druid::PagePopulator do
77
86
  druid.populate_page_with('cb' => true)
78
87
  end
79
88
 
89
+ it "should not populate a checkbox if it is not visible" do
90
+ expect(druid).not_to receive(:check_cb)
91
+ expect(druid).to receive(:cb_element).twice.and_return(driver)
92
+ expect(driver).to receive(:enabled?).and_return(true)
93
+ expect(driver).to receive(:visible?).and_return(false)
94
+ expect(driver).to receive(:tag_name).and_return('input')
95
+ druid.populate_page_with('cb' => true)
96
+ end
97
+
80
98
  it "should not populate a radio button when it is disabled" do
81
99
  expect(druid).not_to receive(:select_rb)
82
100
  expect(druid).to receive(:rb_element).twice.and_return(driver)
@@ -93,4 +111,13 @@ describe Druid::PagePopulator do
93
111
  druid.populate_page_with('tf' => 'test')
94
112
  end
95
113
 
114
+ it "should not populate a radio button when it is not visible" do
115
+ expect(druid).not_to receive(:select_rb)
116
+ expect(druid).to receive(:rb_element).twice.and_return(driver)
117
+ expect(driver).to receive(:enabled?).and_return(true)
118
+ expect(driver).to receive(:visible?).and_return(false)
119
+ expect(driver).to receive(:tag_name).and_return('input')
120
+ druid.populate_page_with('rb' => true)
121
+ end
122
+
96
123
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: druid-ts
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.7
4
+ version: 1.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Sheng
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.9.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: page_navigation
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0.10'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0.10'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rspec
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -107,6 +121,7 @@ files:
107
121
  - features/html/hover.html
108
122
  - features/html/iframes.html
109
123
  - features/html/images/circle.png
124
+ - features/html/images/img_pulpit.jpg
110
125
  - features/html/modal.html
111
126
  - features/html/modal_1.html
112
127
  - features/html/modal_2.html
@@ -319,6 +334,7 @@ test_files:
319
334
  - features/html/hover.html
320
335
  - features/html/iframes.html
321
336
  - features/html/images/circle.png
337
+ - features/html/images/img_pulpit.jpg
322
338
  - features/html/modal.html
323
339
  - features/html/modal_1.html
324
340
  - features/html/modal_2.html