druid-ts 1.1.7 → 1.1.8

Sign up to get free protection for your applications and to get access to all the features.
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