page-object 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +39 -0
- data/Gemfile +1 -0
- data/Rakefile +2 -2
- data/cucumber.yml +4 -4
- data/features/element.feature +5 -0
- data/features/{sample-app/public → html}/04-Death_Becomes_Fur.mp4 +0 -0
- data/features/{sample-app/public → html}/04-Death_Becomes_Fur.oga +0 -0
- data/features/{sample-app/public → html}/movie.mp4 +0 -0
- data/features/{sample-app/public → html}/movie.ogg +0 -0
- data/features/html/static_elements.html +7 -7
- data/features/sample-app/sample_app.rb +1 -1
- data/features/step_definitions/element_steps.rb +7 -0
- data/features/step_definitions/image_steps.rb +1 -1
- data/features/step_definitions/javascript_steps.rb +8 -2
- data/features/support/persistent_browser.rb +56 -3
- data/features/support/targets/firefox14_osx.rb +6 -0
- data/features/support/targets/firefox14_windows7.rb +6 -0
- data/features/support/url_helper.rb +3 -1
- data/lib/page-object/accessors.rb +131 -1003
- data/lib/page-object/element_locators.rb +9 -1008
- data/lib/page-object/locator_generator.rb +77 -0
- data/lib/page-object/nested_elements.rb +7 -230
- data/lib/page-object/page_factory.rb +10 -6
- data/lib/page-object/platforms/selenium_webdriver/element.rb +7 -0
- data/lib/page-object/platforms/selenium_webdriver/page_object.rb +2 -2
- data/lib/page-object/platforms/watir_webdriver/element.rb +7 -0
- data/lib/page-object/platforms/watir_webdriver/page_object.rb +2 -2
- data/lib/page-object/version.rb +1 -1
- data/spec/page-object/elements/selenium_element_spec.rb +5 -0
- data/spec/page-object/elements/watir_element_spec.rb +6 -0
- data/spec/page-object/page_factory_spec.rb +9 -0
- data/spec/page-object/platforms/watir_webdriver/watir_page_object_spec.rb +29 -0
- data/spec/page-object/platforms/watir_webdriver_spec.rb +0 -24
- data/spec/page-object/selenium_accessors_spec.rb +14 -0
- data/spec/page-object/watir_accessors_spec.rb +16 -17
- metadata +19 -12
@@ -196,6 +196,15 @@ describe PageObject::PageFactory do
|
|
196
196
|
@world.navigate_to(AnotherPage).class.should == AnotherPage
|
197
197
|
end
|
198
198
|
|
199
|
+
it "should pass parameters to methods when navigating" do
|
200
|
+
pages = [[FactoryTestPage, :a_method, 'blah'], [AnotherPage, :b_method]]
|
201
|
+
PageObject::PageFactory.routes = {:default => pages}
|
202
|
+
fake_page = double('a_page')
|
203
|
+
FactoryTestPage.should_receive(:new).and_return(fake_page)
|
204
|
+
fake_page.should_receive(:a_method).with('blah')
|
205
|
+
@world.navigate_to(AnotherPage).class.should == AnotherPage
|
206
|
+
end
|
207
|
+
|
199
208
|
it "should fail when it does not find a proper route" do
|
200
209
|
PageObject::PageFactory.routes = {:default => ['a'], :another => ['b']}
|
201
210
|
expect { @world.navigate_to(AnotherPage, :using => :no_route) }.to raise_error
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe PageObject::Platforms::WatirWebDriver do
|
4
|
+
describe "create page object" do
|
5
|
+
let(:browser) { double('browser') }
|
6
|
+
let(:subject) { PageObject::Platforms::WatirWebDriver.create_page_object(browser) }
|
7
|
+
|
8
|
+
it "should create a WatirPageObject" do
|
9
|
+
subject.should be_kind_of PageObject::Platforms::WatirWebDriver::PageObject
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should give the watir page object the browser" do
|
13
|
+
subject.browser.should be browser
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "is for?" do
|
18
|
+
it "should be true when the browser is Watir::Browser" do
|
19
|
+
browser = mock_watir_browser()
|
20
|
+
PageObject::Platforms::WatirWebDriver.is_for?(browser).should be true
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should be false at any other point" do
|
24
|
+
browser = 'asdf'
|
25
|
+
PageObject::Platforms::WatirWebDriver.is_for?('asdf').should be false
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
@@ -6,28 +6,4 @@ describe PageObject::Platforms::WatirWebDriver do
|
|
6
6
|
PageObject::Platforms.get[:watir_webdriver].should be PageObject::Platforms::WatirWebDriver
|
7
7
|
end
|
8
8
|
|
9
|
-
describe "create page object" do
|
10
|
-
let(:browser) { double('browser') }
|
11
|
-
let(:subject) { PageObject::Platforms::WatirWebDriver.create_page_object(browser) }
|
12
|
-
|
13
|
-
it "should create a WatirPageObject" do
|
14
|
-
subject.should be_kind_of PageObject::Platforms::WatirWebDriver::PageObject
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should give the watir page object the browser" do
|
18
|
-
subject.browser.should be browser
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe "is for?" do
|
23
|
-
it "should be true when the browser is Watir::Browser" do
|
24
|
-
browser = mock_watir_browser()
|
25
|
-
PageObject::Platforms::WatirWebDriver.is_for?(browser).should be true
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should be false at any other point" do
|
29
|
-
browser = 'asdf'
|
30
|
-
PageObject::Platforms::WatirWebDriver.is_for?('asdf').should be false
|
31
|
-
end
|
32
|
-
end
|
33
9
|
end
|
@@ -236,6 +236,20 @@ describe PageObject::Accessors do
|
|
236
236
|
element = selenium_page_object.state_element
|
237
237
|
element.should be_instance_of PageObject::Elements::SelectList
|
238
238
|
end
|
239
|
+
|
240
|
+
it "should return list of selection options" do
|
241
|
+
option1 = double('option')
|
242
|
+
option2 = double('option')
|
243
|
+
option1.should_receive(:text).and_return("CA")
|
244
|
+
option2.should_receive(:text).and_return("OH")
|
245
|
+
|
246
|
+
select_element = double("select")
|
247
|
+
select_element.should_receive(:options).twice.and_return([option1, option2])
|
248
|
+
selenium_page_object.should_receive(:state_element).and_return(select_element)
|
249
|
+
|
250
|
+
selenium_page_object.state_options.should == ["CA","OH"]
|
251
|
+
end
|
252
|
+
|
239
253
|
end
|
240
254
|
|
241
255
|
|
@@ -389,7 +389,6 @@ describe PageObject::Accessors do
|
|
389
389
|
it "should generate accessor methods" do
|
390
390
|
watir_page_object.should respond_to(:google_search)
|
391
391
|
watir_page_object.should respond_to(:google_search_element)
|
392
|
-
watir_page_object.should respond_to(:google_search_link)
|
393
392
|
end
|
394
393
|
|
395
394
|
it "should call a block on the element method when present" do
|
@@ -416,7 +415,6 @@ describe PageObject::Accessors do
|
|
416
415
|
watir_page_object.should respond_to(:first_name)
|
417
416
|
watir_page_object.should respond_to(:first_name=)
|
418
417
|
watir_page_object.should respond_to(:first_name_element)
|
419
|
-
watir_page_object.should respond_to(:first_name_text_field)
|
420
418
|
watir_page_object.should respond_to(:first_name?)
|
421
419
|
end
|
422
420
|
|
@@ -450,7 +448,6 @@ describe PageObject::Accessors do
|
|
450
448
|
it "should generate accessor methods" do
|
451
449
|
watir_page_object.should respond_to(:social_security_number)
|
452
450
|
watir_page_object.should respond_to(:social_security_number_element)
|
453
|
-
watir_page_object.should respond_to(:social_security_number_hidden_field)
|
454
451
|
end
|
455
452
|
|
456
453
|
it "should call a block on the element method when present" do
|
@@ -477,7 +474,6 @@ describe PageObject::Accessors do
|
|
477
474
|
watir_page_object.should respond_to(:address)
|
478
475
|
watir_page_object.should respond_to(:address=)
|
479
476
|
watir_page_object.should respond_to(:address_element)
|
480
|
-
watir_page_object.should respond_to(:address_text_area)
|
481
477
|
end
|
482
478
|
|
483
479
|
it "should call a block on the element method when present" do
|
@@ -510,7 +506,6 @@ describe PageObject::Accessors do
|
|
510
506
|
watir_page_object.should respond_to :state
|
511
507
|
watir_page_object.should respond_to :state=
|
512
508
|
watir_page_object.should respond_to(:state_element)
|
513
|
-
watir_page_object.should respond_to(:state_select_list)
|
514
509
|
end
|
515
510
|
|
516
511
|
it "should call a block on the element method when present" do
|
@@ -538,6 +533,21 @@ describe PageObject::Accessors do
|
|
538
533
|
element = watir_page_object.state_element
|
539
534
|
element.should be_instance_of PageObject::Elements::SelectList
|
540
535
|
end
|
536
|
+
|
537
|
+
it "should return list of selection options" do
|
538
|
+
option1 = double('option')
|
539
|
+
option2 = double('option')
|
540
|
+
option1.should_receive(:text).and_return("CA")
|
541
|
+
option2.should_receive(:text).and_return("OH")
|
542
|
+
|
543
|
+
select_element = double("select")
|
544
|
+
select_element.should_receive(:options).twice.and_return([option1, option2])
|
545
|
+
watir_page_object.should_receive(:state_element).and_return(select_element)
|
546
|
+
|
547
|
+
watir_page_object.state_options.should == ["CA","OH"]
|
548
|
+
end
|
549
|
+
|
550
|
+
|
541
551
|
end
|
542
552
|
|
543
553
|
|
@@ -548,7 +558,6 @@ describe PageObject::Accessors do
|
|
548
558
|
watir_page_object.should respond_to :uncheck_active
|
549
559
|
watir_page_object.should respond_to :active_checked?
|
550
560
|
watir_page_object.should respond_to :active_element
|
551
|
-
watir_page_object.should respond_to :active_checkbox
|
552
561
|
end
|
553
562
|
|
554
563
|
it "should call a block on the element method when present" do
|
@@ -589,7 +598,6 @@ describe PageObject::Accessors do
|
|
589
598
|
watir_page_object.should respond_to :clear_first
|
590
599
|
watir_page_object.should respond_to :first_selected?
|
591
600
|
watir_page_object.should respond_to(:first_element)
|
592
|
-
watir_page_object.should respond_to(:first_radio_button)
|
593
601
|
end
|
594
602
|
|
595
603
|
it "should call a block on the element method when present" do
|
@@ -627,7 +635,6 @@ describe PageObject::Accessors do
|
|
627
635
|
it "should generate accessor methods" do
|
628
636
|
watir_page_object.should respond_to :click_me
|
629
637
|
watir_page_object.should respond_to :click_me_element
|
630
|
-
watir_page_object.should respond_to :click_me_button
|
631
638
|
end
|
632
639
|
|
633
640
|
it "should call a block on the element method when present" do
|
@@ -653,7 +660,6 @@ describe PageObject::Accessors do
|
|
653
660
|
it "should generate accessor methods" do
|
654
661
|
watir_page_object.should respond_to(:message)
|
655
662
|
watir_page_object.should respond_to(:message_element)
|
656
|
-
watir_page_object.should respond_to(:message_div)
|
657
663
|
end
|
658
664
|
|
659
665
|
it "should call a block on the element method when present" do
|
@@ -679,7 +685,6 @@ describe PageObject::Accessors do
|
|
679
685
|
it "should generate accessor methods" do
|
680
686
|
watir_page_object.should respond_to(:alert)
|
681
687
|
watir_page_object.should respond_to(:alert_element)
|
682
|
-
watir_page_object.should respond_to(:alert_span)
|
683
688
|
end
|
684
689
|
|
685
690
|
it "should call a block on the element method when present" do
|
@@ -703,8 +708,8 @@ describe PageObject::Accessors do
|
|
703
708
|
describe "table accessors" do
|
704
709
|
context "when called on a page object" do
|
705
710
|
it "should generate accessor methods" do
|
711
|
+
watir_page_object.should respond_to(:cart)
|
706
712
|
watir_page_object.should respond_to(:cart_element)
|
707
|
-
watir_page_object.should respond_to(:cart_table)
|
708
713
|
end
|
709
714
|
|
710
715
|
it "should call a block on the element method when present" do
|
@@ -724,7 +729,6 @@ describe PageObject::Accessors do
|
|
724
729
|
it "should generate accessor methods" do
|
725
730
|
watir_page_object.should respond_to(:total)
|
726
731
|
watir_page_object.should respond_to(:total_element)
|
727
|
-
watir_page_object.should respond_to(:total_cell)
|
728
732
|
end
|
729
733
|
|
730
734
|
it "should call a block on the element method when present" do
|
@@ -749,7 +753,6 @@ describe PageObject::Accessors do
|
|
749
753
|
context "when called on a page object" do
|
750
754
|
it "should generate accessor methods" do
|
751
755
|
watir_page_object.should respond_to(:logo_element)
|
752
|
-
watir_page_object.should respond_to(:logo_image)
|
753
756
|
end
|
754
757
|
|
755
758
|
it "should call a block on the element method when present" do
|
@@ -768,7 +771,6 @@ describe PageObject::Accessors do
|
|
768
771
|
context "when called on a page object" do
|
769
772
|
it "should generate accessor methods" do
|
770
773
|
watir_page_object.should respond_to(:login_element)
|
771
|
-
watir_page_object.should respond_to(:login_form)
|
772
774
|
end
|
773
775
|
|
774
776
|
it "should call a block on the element method when present" do
|
@@ -788,7 +790,6 @@ describe PageObject::Accessors do
|
|
788
790
|
it "should generate accessor methods" do
|
789
791
|
watir_page_object.should respond_to(:item_one)
|
790
792
|
watir_page_object.should respond_to(:item_one_element)
|
791
|
-
watir_page_object.should respond_to(:item_one_list_item)
|
792
793
|
end
|
793
794
|
|
794
795
|
it "should call a block on the element method when present" do
|
@@ -813,7 +814,6 @@ describe PageObject::Accessors do
|
|
813
814
|
context "when called on a page object" do
|
814
815
|
it "should generate accessor methods" do
|
815
816
|
watir_page_object.should respond_to(:menu_element)
|
816
|
-
watir_page_object.should respond_to(:menu_unordered_list)
|
817
817
|
end
|
818
818
|
|
819
819
|
it "should call a block on the element method when present" do
|
@@ -832,7 +832,6 @@ describe PageObject::Accessors do
|
|
832
832
|
context "when called on a page object" do
|
833
833
|
it "should generate accessor methods" do
|
834
834
|
watir_page_object.should respond_to(:top_five_element)
|
835
|
-
watir_page_object.should respond_to(:top_five_ordered_list)
|
836
835
|
end
|
837
836
|
|
838
837
|
it "should call a block on the element method when present" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: page-object
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: watir-webdriver
|
@@ -140,6 +140,8 @@ files:
|
|
140
140
|
- features/gxt_table_extension.feature
|
141
141
|
- features/headings.feature
|
142
142
|
- features/hidden_field.feature
|
143
|
+
- features/html/04-Death_Becomes_Fur.mp4
|
144
|
+
- features/html/04-Death_Becomes_Fur.oga
|
143
145
|
- features/html/async.html
|
144
146
|
- features/html/double_click.html
|
145
147
|
- features/html/failure.html
|
@@ -155,6 +157,8 @@ files:
|
|
155
157
|
- features/html/modal.html
|
156
158
|
- features/html/modal_1.html
|
157
159
|
- features/html/modal_2.html
|
160
|
+
- features/html/movie.mp4
|
161
|
+
- features/html/movie.ogg
|
158
162
|
- features/html/multi_elements.html
|
159
163
|
- features/html/nested_elements.html
|
160
164
|
- features/html/nested_frame_1.html
|
@@ -179,12 +183,8 @@ files:
|
|
179
183
|
- features/page_level_actions.feature
|
180
184
|
- features/paragraph.feature
|
181
185
|
- features/radio_button.feature
|
182
|
-
- features/sample-app/public/04-Death_Becomes_Fur.mp4
|
183
|
-
- features/sample-app/public/04-Death_Becomes_Fur.oga
|
184
186
|
- features/sample-app/public/jquery-1.3.2.js
|
185
187
|
- features/sample-app/public/jquery.html
|
186
|
-
- features/sample-app/public/movie.mp4
|
187
|
-
- features/sample-app/public/movie.ogg
|
188
188
|
- features/sample-app/public/prototype-1.6.0.3.js
|
189
189
|
- features/sample-app/public/prototype.html
|
190
190
|
- features/sample-app/sample_app.rb
|
@@ -233,6 +233,8 @@ files:
|
|
233
233
|
- features/support/hooks.rb
|
234
234
|
- features/support/page.rb
|
235
235
|
- features/support/persistent_browser.rb
|
236
|
+
- features/support/targets/firefox14_osx.rb
|
237
|
+
- features/support/targets/firefox14_windows7.rb
|
236
238
|
- features/support/url_helper.rb
|
237
239
|
- features/table.feature
|
238
240
|
- features/table_cell.feature
|
@@ -280,6 +282,7 @@ files:
|
|
280
282
|
- lib/page-object/javascript/yui.rb
|
281
283
|
- lib/page-object/javascript_framework_facade.rb
|
282
284
|
- lib/page-object/loads_platform.rb
|
285
|
+
- lib/page-object/locator_generator.rb
|
283
286
|
- lib/page-object/nested_elements.rb
|
284
287
|
- lib/page-object/page_factory.rb
|
285
288
|
- lib/page-object/page_populator.rb
|
@@ -358,6 +361,7 @@ files:
|
|
358
361
|
- spec/page-object/page_populator_spec.rb
|
359
362
|
- spec/page-object/platforms/selenium_webdriver/selenium_page_object_spec.rb
|
360
363
|
- spec/page-object/platforms/selenium_webdriver_spec.rb
|
364
|
+
- spec/page-object/platforms/watir_webdriver/watir_page_object_spec.rb
|
361
365
|
- spec/page-object/platforms/watir_webdriver_spec.rb
|
362
366
|
- spec/page-object/selenium_accessors_spec.rb
|
363
367
|
- spec/page-object/watir_accessors_spec.rb
|
@@ -377,7 +381,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
377
381
|
version: '0'
|
378
382
|
segments:
|
379
383
|
- 0
|
380
|
-
hash:
|
384
|
+
hash: 2877571143837407410
|
381
385
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
382
386
|
none: false
|
383
387
|
requirements:
|
@@ -386,7 +390,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
386
390
|
version: '0'
|
387
391
|
segments:
|
388
392
|
- 0
|
389
|
-
hash:
|
393
|
+
hash: 2877571143837407410
|
390
394
|
requirements: []
|
391
395
|
rubyforge_project: page-object
|
392
396
|
rubygems_version: 1.8.24
|
@@ -409,6 +413,8 @@ test_files:
|
|
409
413
|
- features/gxt_table_extension.feature
|
410
414
|
- features/headings.feature
|
411
415
|
- features/hidden_field.feature
|
416
|
+
- features/html/04-Death_Becomes_Fur.mp4
|
417
|
+
- features/html/04-Death_Becomes_Fur.oga
|
412
418
|
- features/html/async.html
|
413
419
|
- features/html/double_click.html
|
414
420
|
- features/html/failure.html
|
@@ -424,6 +430,8 @@ test_files:
|
|
424
430
|
- features/html/modal.html
|
425
431
|
- features/html/modal_1.html
|
426
432
|
- features/html/modal_2.html
|
433
|
+
- features/html/movie.mp4
|
434
|
+
- features/html/movie.ogg
|
427
435
|
- features/html/multi_elements.html
|
428
436
|
- features/html/nested_elements.html
|
429
437
|
- features/html/nested_frame_1.html
|
@@ -448,12 +456,8 @@ test_files:
|
|
448
456
|
- features/page_level_actions.feature
|
449
457
|
- features/paragraph.feature
|
450
458
|
- features/radio_button.feature
|
451
|
-
- features/sample-app/public/04-Death_Becomes_Fur.mp4
|
452
|
-
- features/sample-app/public/04-Death_Becomes_Fur.oga
|
453
459
|
- features/sample-app/public/jquery-1.3.2.js
|
454
460
|
- features/sample-app/public/jquery.html
|
455
|
-
- features/sample-app/public/movie.mp4
|
456
|
-
- features/sample-app/public/movie.ogg
|
457
461
|
- features/sample-app/public/prototype-1.6.0.3.js
|
458
462
|
- features/sample-app/public/prototype.html
|
459
463
|
- features/sample-app/sample_app.rb
|
@@ -502,6 +506,8 @@ test_files:
|
|
502
506
|
- features/support/hooks.rb
|
503
507
|
- features/support/page.rb
|
504
508
|
- features/support/persistent_browser.rb
|
509
|
+
- features/support/targets/firefox14_osx.rb
|
510
|
+
- features/support/targets/firefox14_windows7.rb
|
505
511
|
- features/support/url_helper.rb
|
506
512
|
- features/table.feature
|
507
513
|
- features/table_cell.feature
|
@@ -546,6 +552,7 @@ test_files:
|
|
546
552
|
- spec/page-object/page_populator_spec.rb
|
547
553
|
- spec/page-object/platforms/selenium_webdriver/selenium_page_object_spec.rb
|
548
554
|
- spec/page-object/platforms/selenium_webdriver_spec.rb
|
555
|
+
- spec/page-object/platforms/watir_webdriver/watir_page_object_spec.rb
|
549
556
|
- spec/page-object/platforms/watir_webdriver_spec.rb
|
550
557
|
- spec/page-object/selenium_accessors_spec.rb
|
551
558
|
- spec/page-object/watir_accessors_spec.rb
|