operawatir 0.3-jruby
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.
- data/.gitmodules +3 -0
- data/.yardopts +5 -0
- data/AUTHORS +7 -0
- data/Gemfile +9 -0
- data/LICENSE +30 -0
- data/README.md +158 -0
- data/Rakefile +59 -0
- data/VERSION +1 -0
- data/bin/desktopwatir +106 -0
- data/bin/operawatir +95 -0
- data/lib/operadriver/APACHE_2.0_LICENSE.txt +204 -0
- data/lib/operadriver/NEW_BSD_LICENSE.txt +36 -0
- data/lib/operadriver/commons-jxpath-1.3.jar +0 -0
- data/lib/operadriver/protobuf-java-2.3.0.jar +0 -0
- data/lib/operadriver/selenium-common.jar +0 -0
- data/lib/operadriver/webdriver-opera.jar +0 -0
- data/lib/operawatir.rb +46 -0
- data/lib/operawatir/browser.rb +181 -0
- data/lib/operawatir/collection.rb +133 -0
- data/lib/operawatir/compat.rb +25 -0
- data/lib/operawatir/compat/browser.rb +20 -0
- data/lib/operawatir/compat/collection.rb +99 -0
- data/lib/operawatir/compat/deprecation.rb +46 -0
- data/lib/operawatir/compat/element.rb +165 -0
- data/lib/operawatir/compat/element_finders.rb +159 -0
- data/lib/operawatir/compat/window.rb +27 -0
- data/lib/operawatir/element.rb +228 -0
- data/lib/operawatir/exceptions.rb +38 -0
- data/lib/operawatir/helper.rb +53 -0
- data/lib/operawatir/selector.rb +111 -0
- data/lib/operawatir/version.rb +15 -0
- data/lib/operawatir/window.rb +174 -0
- data/spec/fire_event/fire_event.rb +268 -0
- data/spec/fire_event/interactive/onBlur.html +45 -0
- data/spec/fire_event/interactive/onChange.html +47 -0
- data/spec/fire_event/interactive/onClick.html +45 -0
- data/spec/fire_event/interactive/onDblClick.html +45 -0
- data/spec/fire_event/interactive/onFocus.html +45 -0
- data/spec/fire_event/interactive/onMouseDown.html +45 -0
- data/spec/fire_event/interactive/onMouseMove.html +45 -0
- data/spec/fire_event/interactive/onMouseOut.html +45 -0
- data/spec/fire_event/interactive/onMouseOver.html +45 -0
- data/spec/fire_event/interactive/onMouseUp.html +45 -0
- data/spec/fire_event/interactive/onScroll.html +14 -0
- data/spec/legacy_watirspec/area_spec.rb +106 -0
- data/spec/legacy_watirspec/areas_spec.rb +38 -0
- data/spec/legacy_watirspec/browser_spec.rb +297 -0
- data/spec/legacy_watirspec/button_spec.rb +260 -0
- data/spec/legacy_watirspec/buttons_spec.rb +54 -0
- data/spec/legacy_watirspec/checkbox_spec.rb +280 -0
- data/spec/legacy_watirspec/checkboxes_spec.rb +38 -0
- data/spec/legacy_watirspec/collections_spec.rb +18 -0
- data/spec/legacy_watirspec/dd_spec.rb +140 -0
- data/spec/legacy_watirspec/dds_spec.rb +38 -0
- data/spec/legacy_watirspec/del_spec.rb +181 -0
- data/spec/legacy_watirspec/dels_spec.rb +62 -0
- data/spec/legacy_watirspec/div_spec.rb +244 -0
- data/spec/legacy_watirspec/divs_spec.rb +38 -0
- data/spec/legacy_watirspec/dl_spec.rb +140 -0
- data/spec/legacy_watirspec/dls_spec.rb +38 -0
- data/spec/legacy_watirspec/dt_spec.rb +140 -0
- data/spec/legacy_watirspec/dts_spec.rb +38 -0
- data/spec/legacy_watirspec/element_spec.rb +86 -0
- data/spec/legacy_watirspec/em_spec.rb +114 -0
- data/spec/legacy_watirspec/ems_spec.rb +38 -0
- data/spec/legacy_watirspec/filefield_spec.rb +127 -0
- data/spec/legacy_watirspec/filefields_spec.rb +38 -0
- data/spec/legacy_watirspec/fixtures/2000_spans.html +2009 -0
- data/spec/legacy_watirspec/fixtures/bug_duplicate_attributes.html +14 -0
- data/spec/legacy_watirspec/fixtures/bug_javascript_001.html +11 -0
- data/spec/legacy_watirspec/fixtures/buttons_with_duplicate_ids.html +18 -0
- data/spec/legacy_watirspec/fixtures/collections.html +15 -0
- data/spec/legacy_watirspec/fixtures/definition_lists.html +48 -0
- data/spec/legacy_watirspec/fixtures/euc-jp_text.html +17 -0
- data/spec/legacy_watirspec/fixtures/forms_with_input_elements.html +126 -0
- data/spec/legacy_watirspec/fixtures/frame_1.html +18 -0
- data/spec/legacy_watirspec/fixtures/frame_2.html +16 -0
- data/spec/legacy_watirspec/fixtures/frames.html +11 -0
- data/spec/legacy_watirspec/fixtures/iframes.html +12 -0
- data/spec/legacy_watirspec/fixtures/images.html +27 -0
- data/spec/legacy_watirspec/fixtures/images/1.gif +0 -0
- data/spec/legacy_watirspec/fixtures/images/2.gif +0 -0
- data/spec/legacy_watirspec/fixtures/images/3.gif +0 -0
- data/spec/legacy_watirspec/fixtures/images/button.jpg +0 -0
- data/spec/legacy_watirspec/fixtures/images/circle.jpg +0 -0
- data/spec/legacy_watirspec/fixtures/images/map.gif +0 -0
- data/spec/legacy_watirspec/fixtures/images/map2.gif +0 -0
- data/spec/legacy_watirspec/fixtures/images/minus.gif +0 -0
- data/spec/legacy_watirspec/fixtures/images/originaltriangle.jpg +0 -0
- data/spec/legacy_watirspec/fixtures/images/plus.gif +0 -0
- data/spec/legacy_watirspec/fixtures/images/square.jpg +0 -0
- data/spec/legacy_watirspec/fixtures/images/triangle.jpg +0 -0
- data/spec/legacy_watirspec/fixtures/iso-2022-jp_text.html +17 -0
- data/spec/legacy_watirspec/fixtures/javascript/helpers.js +16 -0
- data/spec/legacy_watirspec/fixtures/jquery.html +28 -0
- data/spec/legacy_watirspec/fixtures/latin1_text.html +17 -0
- data/spec/legacy_watirspec/fixtures/multiple_ids.html +14 -0
- data/spec/legacy_watirspec/fixtures/non_control_elements.html +135 -0
- data/spec/legacy_watirspec/fixtures/parser_bug_001.html +12 -0
- data/spec/legacy_watirspec/fixtures/prevent_form_submit.html +20 -0
- data/spec/legacy_watirspec/fixtures/right_click.html +11 -0
- data/spec/legacy_watirspec/fixtures/shift_jis_text.html +17 -0
- data/spec/legacy_watirspec/fixtures/tables.html +121 -0
- data/spec/legacy_watirspec/fixtures/timeout.html +16 -0
- data/spec/legacy_watirspec/fixtures/timeout_window_location.html +19 -0
- data/spec/legacy_watirspec/fixtures/tiny_mce.html +27 -0
- data/spec/legacy_watirspec/fixtures/utf8_text.html +15 -0
- data/spec/legacy_watirspec/fixtures/watirspec.css +0 -0
- data/spec/legacy_watirspec/form_spec.rb +73 -0
- data/spec/legacy_watirspec/forms_spec.rb +39 -0
- data/spec/legacy_watirspec/frame_spec.rb +161 -0
- data/spec/legacy_watirspec/frames_spec.rb +75 -0
- data/spec/legacy_watirspec/guards.rb +38 -0
- data/spec/legacy_watirspec/hidden_spec.rb +120 -0
- data/spec/legacy_watirspec/hiddens_spec.rb +38 -0
- data/spec/legacy_watirspec/hn_spec.rb +101 -0
- data/spec/legacy_watirspec/hns_spec.rb +39 -0
- data/spec/legacy_watirspec/image_spec.rb +237 -0
- data/spec/legacy_watirspec/images_spec.rb +38 -0
- data/spec/legacy_watirspec/ins_spec.rb +181 -0
- data/spec/legacy_watirspec/inses_spec.rb +62 -0
- data/spec/legacy_watirspec/label_spec.rb +85 -0
- data/spec/legacy_watirspec/labels_spec.rb +38 -0
- data/spec/legacy_watirspec/li_spec.rb +135 -0
- data/spec/legacy_watirspec/link_spec.rb +194 -0
- data/spec/legacy_watirspec/links_spec.rb +39 -0
- data/spec/legacy_watirspec/lis_spec.rb +38 -0
- data/spec/legacy_watirspec/map_spec.rb +100 -0
- data/spec/legacy_watirspec/maps_spec.rb +38 -0
- data/spec/legacy_watirspec/meta_spec.rb +26 -0
- data/spec/legacy_watirspec/metas_spec.rb +36 -0
- data/spec/legacy_watirspec/ol_spec.rb +86 -0
- data/spec/legacy_watirspec/ols_spec.rb +38 -0
- data/spec/legacy_watirspec/option_spec.rb +187 -0
- data/spec/legacy_watirspec/p_spec.rb +167 -0
- data/spec/legacy_watirspec/pre_spec.rb +133 -0
- data/spec/legacy_watirspec/pres_spec.rb +38 -0
- data/spec/legacy_watirspec/ps_spec.rb +38 -0
- data/spec/legacy_watirspec/radio_spec.rb +286 -0
- data/spec/legacy_watirspec/radios_spec.rb +35 -0
- data/spec/legacy_watirspec/select_list_spec.rb +326 -0
- data/spec/legacy_watirspec/select_lists_spec.rb +39 -0
- data/spec/legacy_watirspec/server.rb +91 -0
- data/spec/legacy_watirspec/span_spec.rb +181 -0
- data/spec/legacy_watirspec/spans_spec.rb +64 -0
- data/spec/legacy_watirspec/spec_helper.rb +12 -0
- data/spec/legacy_watirspec/strong_spec.rb +97 -0
- data/spec/legacy_watirspec/strongs_spec.rb +39 -0
- data/spec/legacy_watirspec/table_bodies_spec.rb +61 -0
- data/spec/legacy_watirspec/table_body_spec.rb +119 -0
- data/spec/legacy_watirspec/table_cell_spec.rb +76 -0
- data/spec/legacy_watirspec/table_cells_spec.rb +71 -0
- data/spec/legacy_watirspec/table_footer_spec.rb +94 -0
- data/spec/legacy_watirspec/table_footers_spec.rb +61 -0
- data/spec/legacy_watirspec/table_header_spec.rb +98 -0
- data/spec/legacy_watirspec/table_headers_spec.rb +59 -0
- data/spec/legacy_watirspec/table_row_spec.rb +104 -0
- data/spec/legacy_watirspec/table_rows_spec.rb +64 -0
- data/spec/legacy_watirspec/table_spec.rb +170 -0
- data/spec/legacy_watirspec/tables_spec.rb +40 -0
- data/spec/legacy_watirspec/text_field_spec.rb +315 -0
- data/spec/legacy_watirspec/text_fields_spec.rb +38 -0
- data/spec/legacy_watirspec/ul_spec.rb +84 -0
- data/spec/legacy_watirspec/uls_spec.rb +40 -0
- data/spec/legacy_watirspec/watir_compatibility_spec.rb +176 -0
- data/spec/legacy_watirspec/watirspec_helper.rb +57 -0
- data/utils/Rakefile +79 -0
- data/utils/launchers/launcher-linux-i686 +0 -0
- data/utils/launchers/launcher-linux-x86_64 +0 -0
- data/utils/launchers/launcher-win32-i86pc.exe +0 -0
- metadata +404 -0
@@ -0,0 +1,59 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.expand_path("../spec_helper", __FILE__)
|
3
|
+
|
4
|
+
bug "WTR-357", :watir do
|
5
|
+
describe "TableHeaders" do
|
6
|
+
before :each do
|
7
|
+
browser.goto(WatirSpec.files + "/tables.html")
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "#length" do
|
11
|
+
it "returns the correct number of table theads (page context)" do
|
12
|
+
browser.theads.length.should == 1
|
13
|
+
end
|
14
|
+
|
15
|
+
it "returns the correct number of table theads (table context)" do
|
16
|
+
browser.table(:index, 1).theads.length.should == 1
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "#[]" do
|
21
|
+
it "returns the row at the given index (page context)" do
|
22
|
+
browser.theads[1].id.should == "tax_headers"
|
23
|
+
end
|
24
|
+
|
25
|
+
it "returns the row at the given index (table context)" do
|
26
|
+
browser.table(:index, 1).theads[1].id.should == "tax_headers"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "#each" do
|
31
|
+
it "iterates through table theads correctly (page context)" do
|
32
|
+
count = 0
|
33
|
+
|
34
|
+
browser.theads.each_with_index do |thead, index|
|
35
|
+
thead.name.should == browser.thead(:index, index+1).name
|
36
|
+
thead.id.should == browser.thead(:index, index+1).id
|
37
|
+
|
38
|
+
count += 1
|
39
|
+
end
|
40
|
+
|
41
|
+
count.should > 0
|
42
|
+
end
|
43
|
+
|
44
|
+
it "iterates through table theads correctly (table context)" do
|
45
|
+
table = browser.table(:index, 1)
|
46
|
+
count = 0
|
47
|
+
|
48
|
+
table.theads.each_with_index do |thead, index|
|
49
|
+
thead.name.should == table.thead(:index, index+1).name
|
50
|
+
thead.id.should == table.thead(:index, index+1).id
|
51
|
+
|
52
|
+
count += 1
|
53
|
+
end
|
54
|
+
|
55
|
+
count.should > 0
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.expand_path("../spec_helper", __FILE__)
|
3
|
+
|
4
|
+
describe "TableRow" do
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
browser.goto(WatirSpec.files + "/tables.html")
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "#exists?" do
|
11
|
+
it "returns true if the table row exists" do
|
12
|
+
browser.row(:id, "outer_first").should exist
|
13
|
+
browser.row(:id, /outer_first/).should exist
|
14
|
+
browser.row(:index, 1).should exist
|
15
|
+
browser.row(:xpath, "//tr[@id='outer_first']")
|
16
|
+
end
|
17
|
+
|
18
|
+
it "returns the first row if given no args" do
|
19
|
+
browser.row.should exist
|
20
|
+
end
|
21
|
+
|
22
|
+
it "returns true if the element exists (default how = :id)" do
|
23
|
+
browser.row("outer_last").should exist
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns false if the table row doesn't exist" do
|
27
|
+
browser.row(:id, "no_such_id").should_not exist
|
28
|
+
browser.row(:id, /no_such_id/).should_not exist
|
29
|
+
browser.row(:index, 1337).should_not exist
|
30
|
+
browser.row(:xpath, "//tr[@id='no_such_id']")
|
31
|
+
end
|
32
|
+
|
33
|
+
it "raises TypeError when 'what' argument is invalid" do
|
34
|
+
lambda { browser.row(:id, 3.14).exists? }.should raise_error(TypeError)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "raises MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
38
|
+
lambda { browser.row(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "#click" do
|
43
|
+
it "fires the rows's onclick event" do
|
44
|
+
browser.row(:id, 'inner_first').click
|
45
|
+
messages.should include('tr')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "#column_count" do
|
50
|
+
it "returns the number of columns (cells) in the row" do
|
51
|
+
browser.table(:id, 'outer').rows[1].column_count.should == 2
|
52
|
+
browser.table(:id, 'outer')[2].column_count.should == 2
|
53
|
+
browser.table(:id, 'colspan')[1].column_count.should == 1
|
54
|
+
browser.table(:id, 'colspan').rows[2].column_count.should == 2
|
55
|
+
browser.rows[1].column_count.should == 4
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe "#length" do
|
60
|
+
bug "WTR-354", :watir do
|
61
|
+
it "returns the number of rows" do
|
62
|
+
browser.table(:id, 'outer').rows.length.should == 3
|
63
|
+
browser.table(:id, 'inner').rows.length.should == 1
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "#[]" do
|
69
|
+
it "returns the nth cell of the parent row" do
|
70
|
+
browser.table(:id, 'outer').row(:index, 1)[1].text.should == "Table 1, Row 1, Cell 1"
|
71
|
+
browser.table(:id, 'outer')[1][1].text.should == "Table 1, Row 1, Cell 1"
|
72
|
+
browser.table(:id, 'outer')[3][1].text.should == "Table 1, Row 3, Cell 1"
|
73
|
+
end
|
74
|
+
|
75
|
+
it "raises UnknownCellException if the index is out of bounds" do
|
76
|
+
lambda { browser.table(:id, 'outer').row(:index, 1)[1337] }.should raise_error(UnknownCellException)
|
77
|
+
lambda { browser.table(:id, 'outer')[1][1337] }.should raise_error(UnknownCellException)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
bug "WTR-359", :watir do
|
82
|
+
describe "#child_cell" do
|
83
|
+
it "returns the nth cell of the parent row" do
|
84
|
+
browser.table(:id, 'outer').row(:index, 1).child_cell(1).text.should == "Table 1, Row 1, Cell 1"
|
85
|
+
browser.table(:id, 'outer')[1].child_cell(1).text.should == "Table 1, Row 1, Cell 1"
|
86
|
+
browser.table(:id, 'outer')[3].child_cell(1).text.should == "Table 1, Row 3, Cell 1"
|
87
|
+
end
|
88
|
+
|
89
|
+
it "raises UnknownCellException if the index is out of bounds" do
|
90
|
+
lambda { browser.table(:id, 'outer').row(:index, 1).child_cell(1337) }.should raise_error(UnknownCellException)
|
91
|
+
lambda { browser.table(:id, 'outer')[1].child_cell(1337) }.should raise_error(UnknownCellException)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
describe "#each" do
|
96
|
+
it "iterates correctly through the cells of the row" do
|
97
|
+
browser.table(:id, 'outer')[2].each_with_index do |cell,idx|
|
98
|
+
cell.id.should == "t1_r2_c#{idx + 1}"
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.expand_path("../spec_helper", __FILE__)
|
3
|
+
|
4
|
+
describe "TableRows" do
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
browser.goto(WatirSpec.files + "/tables.html")
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "#length" do
|
11
|
+
bug "WTR-354", :watir do
|
12
|
+
it "returns the correct number of cells (table context)" do
|
13
|
+
browser.table(:id, 'inner').rows.length.should == 1
|
14
|
+
browser.table(:id, 'outer').rows.length.should == 3
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
it "returns the correct number of cells (page context)" do
|
19
|
+
browser.rows.length.should == 14
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "#[]" do
|
24
|
+
it "returns the row at the given index (table context)" do
|
25
|
+
browser.table(:id, 'outer').rows[1].id.should == "outer_first"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "returns the row at the given index (page context)" do
|
29
|
+
browser.rows[1].id.should == "thead_row_1"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "#each" do
|
34
|
+
it "iterates through rows correctly" do
|
35
|
+
# rows inside a table
|
36
|
+
inner_table = browser.table(:id, 'inner')
|
37
|
+
count = 0
|
38
|
+
|
39
|
+
inner_table.rows.each_with_index do |r, index|
|
40
|
+
r.name.should == inner_table.row(:index, index+1).name
|
41
|
+
r.id.should == inner_table.row(:index, index+1).id
|
42
|
+
r.value.should == inner_table.row(:index, index+1).value
|
43
|
+
|
44
|
+
count += 1
|
45
|
+
end
|
46
|
+
|
47
|
+
count.should > 0
|
48
|
+
# rows inside a table (should not include rows inside a table inside a table)
|
49
|
+
outer_table = browser.table(:id, 'outer')
|
50
|
+
count = 0
|
51
|
+
|
52
|
+
outer_table.rows.each_with_index do |r, index|
|
53
|
+
r.name.should == outer_table.row(:index, index+1).name
|
54
|
+
r.id.should == outer_table.row(:index, index+1).id
|
55
|
+
r.value.should == outer_table.row(:index, index+1).value
|
56
|
+
|
57
|
+
count += 1
|
58
|
+
end
|
59
|
+
|
60
|
+
count.should > 0
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
@@ -0,0 +1,170 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.expand_path("../spec_helper", __FILE__)
|
3
|
+
|
4
|
+
describe "Table" do
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
browser.goto(WatirSpec.files + "/tables.html")
|
8
|
+
end
|
9
|
+
|
10
|
+
# Exists
|
11
|
+
describe "#exists?" do
|
12
|
+
it "returns true if the table exists" do
|
13
|
+
browser.table(:id, 'axis_example').should exist
|
14
|
+
browser.table(:id, /axis_example/).should exist
|
15
|
+
browser.table(:index, 1).should exist
|
16
|
+
browser.table(:xpath, "//table[@id='axis_example']").should exist
|
17
|
+
end
|
18
|
+
|
19
|
+
it "returns the first table if given no args" do
|
20
|
+
browser.table.should exist
|
21
|
+
end
|
22
|
+
|
23
|
+
it "returns true if the element exists (default how = :id)" do
|
24
|
+
browser.table("axis_example").should exist
|
25
|
+
end
|
26
|
+
|
27
|
+
it "returns false if the table does not exist" do
|
28
|
+
browser.table(:id, 'no_such_id').should_not exist
|
29
|
+
browser.table(:id, /no_such_id/).should_not exist
|
30
|
+
browser.table(:index, 1337).should_not exist
|
31
|
+
browser.table(:xpath, "//table[@id='no_such_id']").should_not exist
|
32
|
+
end
|
33
|
+
|
34
|
+
it "checks the tag name when locating by xpath" do
|
35
|
+
browser.table(:xpath, "//table//td").should_not exist
|
36
|
+
browser.table(:xpath, "//table").should exist
|
37
|
+
end
|
38
|
+
|
39
|
+
it "raises TypeError when 'what' argument is invalid" do
|
40
|
+
lambda { browser.table(:id, 3.14).exists? }.should raise_error(TypeError)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "raises MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
44
|
+
lambda { browser.table(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "#locate" do
|
49
|
+
it "is not nil for existing tables" do
|
50
|
+
browser.table(:id, 'axis_example').locate.should_not be_nil
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Other
|
55
|
+
describe "#to_a" do
|
56
|
+
it "returns a two-dimensional array representation of the table" do
|
57
|
+
browser.table(:id, 'inner').to_a.should == [["Table 2, Row 1, Cell 1", "Table 2, Row 1, Cell 2"]]
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe "#click" do
|
62
|
+
it "fires the table's onclick event" do
|
63
|
+
browser.table(:id, 'inner').click
|
64
|
+
messages.first.should == 'table'
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "#row_count" do
|
69
|
+
bug "WTR-354", :watir do
|
70
|
+
it "counts the number of rows correctly" do
|
71
|
+
browser.table(:id, 'inner').row_count.should == 1
|
72
|
+
browser.table(:id, 'outer').row_count.should == 3
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
it "raises an UnknownObjectException if the table doesn't exist" do
|
77
|
+
lambda { browser.table(:id, 'no_such_id').row_count }.should raise_error(UnknownObjectException)
|
78
|
+
lambda { browser.table(:index, 1337).row_count }.should raise_error(UnknownObjectException)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "#row_values" do
|
83
|
+
it "gets row values" do
|
84
|
+
browser.table(:id, 'outer').row_values(1).should == ["Table 1, Row 1, Cell 1", "Table 1, Row 1, Cell 2"]
|
85
|
+
browser.table(:id, 'inner').row_values(1).should == ["Table 2, Row 1, Cell 1", "Table 2, Row 1, Cell 2"]
|
86
|
+
browser.table(:id, 'outer').row_values(3).should == ["Table 1, Row 3, Cell 1", "Table 1, Row 3, Cell 2"]
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe "#column_count" do
|
91
|
+
it "counts the number of columns correctly" do
|
92
|
+
browser.table(:id, 'inner').column_count.should == 2
|
93
|
+
browser.table(:id, 'outer').column_count.should == 2
|
94
|
+
end
|
95
|
+
|
96
|
+
it "raises an UnknownObjectException if the table doesn't exist" do
|
97
|
+
lambda { browser.table(:id, 'no_such_id').column_count }.should raise_error(UnknownObjectException)
|
98
|
+
lambda { browser.table(:index, 1337).column_count }.should raise_error(UnknownObjectException)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
describe "#column_values" do
|
103
|
+
it "gets column values" do
|
104
|
+
browser.table(:id, 'inner').column_values(1).should == ["Table 2, Row 1, Cell 1"]
|
105
|
+
browser.table(:id, 'outer').column_values(1).should == ["Table 1, Row 1, Cell 1", "Table 1, Row 2, Cell 1", "Table 1, Row 3, Cell 1"]
|
106
|
+
end
|
107
|
+
|
108
|
+
it "raises UnknownCellException when trying to locate non-existing cell" do
|
109
|
+
lambda { browser.table(:id, 'inner').column_values(1337) }.should raise_error(UnknownCellException)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
describe "#[]" do
|
114
|
+
it "returns the nth child row" do
|
115
|
+
browser.table(:id, 'outer')[1].id.should == "outer_first"
|
116
|
+
browser.table(:id, 'inner')[1].id.should == "inner_first"
|
117
|
+
browser.table(:id, 'outer')[3].id.should == "outer_last"
|
118
|
+
end
|
119
|
+
it "raises UnknownRowException if the index is out of bounds" do
|
120
|
+
lambda { browser.table(:id, 'outer')[1337] }.should raise_error(UnknownRowException)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
describe "#child_row" do
|
125
|
+
it "returns the nth child row" do
|
126
|
+
browser.table(:id, 'outer').child_row(1).id.should == "outer_first"
|
127
|
+
browser.table(:id, 'inner').child_row(1).id.should == "inner_first"
|
128
|
+
browser.table(:id, 'outer').child_row(3).id.should == "outer_last"
|
129
|
+
end
|
130
|
+
it "raises UnknownRowException if the index is out of bounds" do
|
131
|
+
lambda { browser.table(:id, 'outer').child_row(1337) }.should raise_error(UnknownRowException)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
describe "#child_cell" do
|
136
|
+
it "returns the nth child row" do
|
137
|
+
browser.table(:id, 'outer').child_cell(5).text.should == "Table 1, Row 3, Cell 1"
|
138
|
+
end
|
139
|
+
it "raises UnknownCellException if the index is out of bounds" do
|
140
|
+
lambda { browser.table(:id, 'outer').child_cell(1337) }.should raise_error(UnknownCellException)
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
describe "#each" do
|
145
|
+
it "iterates through the table's rows" do
|
146
|
+
ids = ["outer_first", "outer_second", "outer_last"]
|
147
|
+
browser.table(:id, 'outer').each_with_index do |r, idx|
|
148
|
+
r.id.should == ids[idx]
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
describe "#body" do
|
154
|
+
it "returns the correct instance of TableBody" do
|
155
|
+
body = browser.table(:index, 1).body(:id, 'first')
|
156
|
+
body.should be_instance_of(TableBody)
|
157
|
+
body[1][1].text.should == "March 2008"
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
describe "#bodies" do
|
162
|
+
it "returns the correct instance of TableBodies" do
|
163
|
+
bodies = browser.table(:index, 1).bodies
|
164
|
+
bodies.should be_instance_of(TableBodies)
|
165
|
+
bodies[1].id.should == "first"
|
166
|
+
bodies[2].id.should == "second"
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.expand_path("../spec_helper", __FILE__)
|
3
|
+
|
4
|
+
describe "Tables" do
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
browser.goto(WatirSpec.files + "/tables.html")
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "#length" do
|
11
|
+
it "returns the number of tables" do
|
12
|
+
browser.tables.length.should == 4
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#[]" do
|
17
|
+
it "returns the p at the given index" do
|
18
|
+
browser.tables[1].id.should == "axis_example"
|
19
|
+
browser.tables[2].id.should == "outer"
|
20
|
+
browser.tables[3].id.should == "inner"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "#each" do
|
25
|
+
it "iterates through tables correctly" do
|
26
|
+
count = 0
|
27
|
+
|
28
|
+
browser.tables.each_with_index do |t, index|
|
29
|
+
t.name.should == browser.table(:index, index+1).name
|
30
|
+
t.id.should == browser.table(:index, index+1).id
|
31
|
+
t.value.should == browser.table(:index, index+1).value
|
32
|
+
|
33
|
+
count += 1
|
34
|
+
end
|
35
|
+
|
36
|
+
count.should > 0
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
@@ -0,0 +1,315 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.expand_path("../spec_helper", __FILE__)
|
3
|
+
|
4
|
+
describe "TextField" do
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
browser.goto(WatirSpec.files + "/forms_with_input_elements.html")
|
8
|
+
end
|
9
|
+
|
10
|
+
# Exists method
|
11
|
+
describe "#exists?" do
|
12
|
+
it "returns true if the element exists" do
|
13
|
+
browser.text_field(:id, 'new_user_email').should exist
|
14
|
+
browser.text_field(:id, /new_user_email/).should exist
|
15
|
+
browser.text_field(:name, 'new_user_email').should exist
|
16
|
+
browser.text_field(:name, /new_user_email/).should exist
|
17
|
+
browser.text_field(:value, 'Developer').should exist
|
18
|
+
browser.text_field(:value, /Developer/).should exist
|
19
|
+
browser.text_field(:text, 'Developer').should exist
|
20
|
+
browser.text_field(:text, /Developer/).should exist
|
21
|
+
browser.text_field(:class, 'name').should exist
|
22
|
+
browser.text_field(:class, /name/).should exist
|
23
|
+
browser.text_field(:index, 1).should exist
|
24
|
+
browser.text_field(:xpath, "//input[@id='new_user_email']").should exist
|
25
|
+
browser.text_field(:label, "First name").should exist
|
26
|
+
browser.text_field(:label, /(Last|First) name/).should exist
|
27
|
+
end
|
28
|
+
|
29
|
+
it "returns true if the element exists (default how = :name)" do
|
30
|
+
browser.text_field("new_user_email").should exist
|
31
|
+
end
|
32
|
+
|
33
|
+
it "returns the first text field if given no args" do
|
34
|
+
browser.text_field.should exist
|
35
|
+
end
|
36
|
+
|
37
|
+
it "returns true if the element exists (no type attribute)" do
|
38
|
+
browser.text_field(:id, 'new_user_first_name').should exist
|
39
|
+
end
|
40
|
+
|
41
|
+
it "returns true if the element exists (invalid type attribute)" do
|
42
|
+
browser.text_field(:id, 'new_user_last_name').should exist
|
43
|
+
end
|
44
|
+
|
45
|
+
it "returns false if the element does not exist" do
|
46
|
+
browser.text_field(:id, 'no_such_id').should_not exist
|
47
|
+
browser.text_field(:id, /no_such_id/).should_not exist
|
48
|
+
browser.text_field(:name, 'no_such_name').should_not exist
|
49
|
+
browser.text_field(:name, /no_such_name/).should_not exist
|
50
|
+
browser.text_field(:value, 'no_such_value').should_not exist
|
51
|
+
browser.text_field(:value, /no_such_value/).should_not exist
|
52
|
+
browser.text_field(:text, 'no_such_text').should_not exist
|
53
|
+
browser.text_field(:text, /no_such_text/).should_not exist
|
54
|
+
browser.text_field(:class, 'no_such_class').should_not exist
|
55
|
+
browser.text_field(:class, /no_such_class/).should_not exist
|
56
|
+
browser.text_field(:index, 1337).should_not exist
|
57
|
+
browser.text_field(:xpath, "//input[@id='no_such_id']").should_not exist
|
58
|
+
browser.text_field(:label, "bad label").should_not exist
|
59
|
+
browser.text_field(:label, /bad label/).should_not exist
|
60
|
+
end
|
61
|
+
|
62
|
+
it "raises TypeError when 'what' argument is invalid" do
|
63
|
+
lambda { browser.text_field(:id, 3.14).exists? }.should raise_error(TypeError)
|
64
|
+
end
|
65
|
+
|
66
|
+
it "raises MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
67
|
+
lambda { browser.text_field(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# Attribute methods
|
72
|
+
describe "#id" do
|
73
|
+
it "returns the id attribute if the text field exists" do
|
74
|
+
browser.text_field(:index, 4).id.should == "new_user_occupation"
|
75
|
+
end
|
76
|
+
|
77
|
+
it "raises UnknownObjectException if the text field doesn't exist" do
|
78
|
+
lambda { browser.text_field(:index, 1337).id }.should raise_error(UnknownObjectException)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "#name" do
|
83
|
+
it "returns the name attribute if the text field exists" do
|
84
|
+
browser.text_field(:index, 4).name.should == "new_user_occupation"
|
85
|
+
end
|
86
|
+
|
87
|
+
it "raises UnknownObjectException if the text field doesn't exist" do
|
88
|
+
lambda { browser.text_field(:index, 1337).name }.should raise_error(UnknownObjectException)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe "#title" do
|
93
|
+
it "returns the title attribute if the text field exists" do
|
94
|
+
browser.text_field(:id, "new_user_code").title.should == "Your personal code"
|
95
|
+
end
|
96
|
+
|
97
|
+
it "raises UnknownObjectException if the text field doesn't exist" do
|
98
|
+
lambda { browser.text_field(:index, 1337).title }.should raise_error(UnknownObjectException)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
describe "#type" do
|
103
|
+
it "returns the type attribute if the text field exists" do
|
104
|
+
browser.text_field(:index, 4).type.should == "text"
|
105
|
+
end
|
106
|
+
|
107
|
+
it "returns 'text' if the type attribute is invalid" do
|
108
|
+
browser.text_field(:id, 'new_user_last_name').type.should == "text"
|
109
|
+
end
|
110
|
+
|
111
|
+
it "returns 'text' if the type attribute does not exist" do
|
112
|
+
browser.text_field(:id, 'new_user_first_name').type.should == "text"
|
113
|
+
end
|
114
|
+
|
115
|
+
it "raises UnknownObjectException if the text field doesn't exist" do
|
116
|
+
lambda { browser.text_field(:index, 1337).type }.should raise_error(UnknownObjectException)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
describe "#value" do
|
121
|
+
it "returns the value attribute if the text field exists" do
|
122
|
+
browser.text_field(:name, "new_user_occupation").value.should == "Developer"
|
123
|
+
browser.text_field(:index, 4).value.should == "Developer"
|
124
|
+
browser.text_field(:name, /new_user_occupation/i).value.should == "Developer"
|
125
|
+
end
|
126
|
+
|
127
|
+
it "raises UnknownObjectException if the text field doesn't exist" do
|
128
|
+
lambda { browser.text_field(:index, 1337).value }.should raise_error(UnknownObjectException)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
describe "#respond_to?" do
|
133
|
+
it "returns true for all attribute methods" do
|
134
|
+
browser.text_field(:index, 1).should respond_to(:class_name)
|
135
|
+
browser.text_field(:index, 1).should respond_to(:id)
|
136
|
+
browser.text_field(:index, 1).should respond_to(:name)
|
137
|
+
browser.text_field(:index, 1).should respond_to(:title)
|
138
|
+
browser.text_field(:index, 1).should respond_to(:type)
|
139
|
+
browser.text_field(:index, 1).should respond_to(:value)
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
# Access methods
|
144
|
+
describe "#enabled?" do
|
145
|
+
it "returns true for enabled text fields" do
|
146
|
+
browser.text_field(:name, "new_user_occupation").should be_enabled
|
147
|
+
browser.text_field(:id, "new_user_email").should be_enabled
|
148
|
+
end
|
149
|
+
|
150
|
+
it "returns false for disabled text fields" do
|
151
|
+
browser.text_field(:name, "new_user_species").should_not be_enabled
|
152
|
+
end
|
153
|
+
|
154
|
+
it "raises UnknownObjectException if the text field doesn't exist" do
|
155
|
+
lambda { browser.text_field(:id, "no_such_id").enabled? }.should raise_error(UnknownObjectException)
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
describe "#disabled?" do
|
160
|
+
it "returns true if the text field is disabled" do
|
161
|
+
browser.text_field(:id, 'new_user_species').should be_disabled
|
162
|
+
end
|
163
|
+
|
164
|
+
it "returns false if the text field is enabled" do
|
165
|
+
browser.text_field(:index, 1).should_not be_disabled
|
166
|
+
end
|
167
|
+
|
168
|
+
it "raises UnknownObjectException if the text field doesn't exist" do
|
169
|
+
lambda { browser.text_field(:index, 1337).disabled? }.should raise_error(UnknownObjectException)
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
describe "#readonly?" do
|
174
|
+
it "returns true for read-only text fields" do
|
175
|
+
browser.text_field(:name, "new_user_code").should be_readonly
|
176
|
+
browser.text_field(:id, "new_user_code").should be_readonly
|
177
|
+
end
|
178
|
+
|
179
|
+
it "returns false for writeable text fields" do
|
180
|
+
browser.text_field(:name, "new_user_email").should_not be_readonly
|
181
|
+
end
|
182
|
+
|
183
|
+
it "raises UnknownObjectException if the text field doesn't exist" do
|
184
|
+
lambda { browser.text_field(:id, 'no_such_id').readonly? }.should raise_error(UnknownObjectException)
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
# Manipulation methods
|
189
|
+
describe "#append" do
|
190
|
+
it "appends the text to the text field" do
|
191
|
+
browser.text_field(:name, "new_user_occupation").append(" Append This")
|
192
|
+
browser.text_field(:name, "new_user_occupation").value.should == "Developer Append This"
|
193
|
+
end
|
194
|
+
|
195
|
+
it "appends multi-byte characters" do
|
196
|
+
browser.text_field(:name, "new_user_occupation").append(" ijij")
|
197
|
+
browser.text_field(:name, "new_user_occupation").value.should == "Developer ijij"
|
198
|
+
end
|
199
|
+
|
200
|
+
it "raises ObjectReadOnlyException if the object is read only" do
|
201
|
+
lambda { browser.text_field(:id, "new_user_code").append("Append This") }.should raise_error(ObjectReadOnlyException)
|
202
|
+
end
|
203
|
+
|
204
|
+
it "raises ObjectDisabledException if the object is disabled" do
|
205
|
+
lambda { browser.text_field(:name, "new_user_species").append("Append This") }.should raise_error(ObjectDisabledException)
|
206
|
+
end
|
207
|
+
|
208
|
+
it "raises UnknownObjectException if the object doesn't exist" do
|
209
|
+
lambda { browser.text_field(:name, "no_such_name").append("Append This") }.should raise_error(UnknownObjectException)
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
describe "#clear" do
|
214
|
+
it "removes all text from the text field" do
|
215
|
+
browser.text_field(:name, "new_user_occupation").clear
|
216
|
+
browser.text_field(:name, "new_user_occupation").value.should be_empty
|
217
|
+
browser.text_field(:id, "delete_user_comment").clear
|
218
|
+
browser.text_field(:id, "delete_user_comment").value.should be_empty
|
219
|
+
end
|
220
|
+
|
221
|
+
it "raises UnknownObjectException if the text field doesn't exist" do
|
222
|
+
lambda { browser.text_field(:id, "no_such_id").clear }.should raise_error(UnknownObjectException)
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
describe "#drag_contents_to" do
|
227
|
+
it "drags contents to another text field" do
|
228
|
+
browser.text_field(:name, "new_user_first_name").set("Smith")
|
229
|
+
browser.text_field(:name, "new_user_first_name").drag_contents_to(:name, "new_user_last_name")
|
230
|
+
browser.text_field(:name, "new_user_first_name").value.should be_empty
|
231
|
+
browser.text_field(:id, "new_user_last_name").value.should == "Smith"
|
232
|
+
end
|
233
|
+
|
234
|
+
it "raises UnknownObjectException if either of the text fields doesn't exist" do
|
235
|
+
lambda { browser.text_field(:id, "no_such_id").drag_contents_to(:name, "new_user_last_name") }.should raise_error(UnknownObjectException)
|
236
|
+
lambda { browser.text_field(:name, "new_user_first_name").drag_contents_to(:id, "no_such_id") }.should raise_error(UnknownObjectException)
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
describe "#value=" do
|
241
|
+
it "sets the value of the element" do
|
242
|
+
browser.text_field(:id, 'new_user_email').value = 'Hello Cruel World'
|
243
|
+
browser.text_field(:id, "new_user_email").value.should == 'Hello Cruel World'
|
244
|
+
end
|
245
|
+
|
246
|
+
it "is able to set multi-byte characters" do
|
247
|
+
browser.text_field(:name, "new_user_occupation").value = "ijij"
|
248
|
+
browser.text_field(:name, "new_user_occupation").value.should == "ijij"
|
249
|
+
end
|
250
|
+
|
251
|
+
it "sets the value of a textarea element" do
|
252
|
+
browser.text_field(:id, 'delete_user_comment').value = 'Hello Cruel World'
|
253
|
+
browser.text_field(:id, "delete_user_comment").value.should == 'Hello Cruel World'
|
254
|
+
end
|
255
|
+
|
256
|
+
it "raises UnknownObjectException if the text field doesn't exist" do
|
257
|
+
lambda { browser.text_field(:name, "no_such_name").value = 'yo' }.should raise_error(UnknownObjectException)
|
258
|
+
end
|
259
|
+
end
|
260
|
+
|
261
|
+
describe "#set" do
|
262
|
+
it "sets the value of the element" do
|
263
|
+
browser.text_field(:id, 'new_user_email').set('Bye Cruel World')
|
264
|
+
browser.text_field(:id, "new_user_email").value.should == 'Bye Cruel World'
|
265
|
+
end
|
266
|
+
|
267
|
+
it "sets the value of a textarea element" do
|
268
|
+
browser.text_field(:id, 'delete_user_comment').set('Hello Cruel World')
|
269
|
+
browser.text_field(:id, "delete_user_comment").value.should == 'Hello Cruel World'
|
270
|
+
end
|
271
|
+
|
272
|
+
bug "WTR-341", :watir do
|
273
|
+
it "fires events" do
|
274
|
+
browser.text_field(:id, "new_user_username").set("Hello World")
|
275
|
+
browser.span(:id, "current_length").text.should == "11"
|
276
|
+
end
|
277
|
+
end
|
278
|
+
|
279
|
+
it "sets the value of a password field" do
|
280
|
+
browser.text_field(:name , 'new_user_password').set('secret')
|
281
|
+
browser.text_field(:name , 'new_user_password').value.should == 'secret'
|
282
|
+
end
|
283
|
+
|
284
|
+
it "sets the value when accessed through the enclosing Form" do
|
285
|
+
browser.form(:id, 'new_user').text_field(:name , 'new_user_password').set('secret')
|
286
|
+
browser.form(:id, 'new_user').text_field(:name , 'new_user_password').value.should == 'secret'
|
287
|
+
end
|
288
|
+
|
289
|
+
it "is able to set multi-byte characters" do
|
290
|
+
browser.text_field(:name, "new_user_occupation").set("ijij")
|
291
|
+
browser.text_field(:name, "new_user_occupation").value.should == "ijij"
|
292
|
+
end
|
293
|
+
|
294
|
+
it "raises UnknownObjectException if the text field doesn't exist" do
|
295
|
+
lambda { browser.text_field(:id, "no_such_id").set('secret') }.should raise_error(UnknownObjectException)
|
296
|
+
end
|
297
|
+
end
|
298
|
+
|
299
|
+
describe "#verify_contains" do
|
300
|
+
it "verifys that a text field contains its value" do
|
301
|
+
browser.text_field(:name, "new_user_occupation").verify_contains("Developer").should be_true
|
302
|
+
browser.text_field(:name, "new_user_occupation").verify_contains(/Developer/).should be_true
|
303
|
+
end
|
304
|
+
|
305
|
+
it "doesn't verify that a text field contains a non-existing value" do
|
306
|
+
browser.text_field(:name, "new_user_email").verify_contains("no_such_text").should be_false
|
307
|
+
browser.text_field(:name, "new_user_email").verify_contains(/no_such_text/).should be_false
|
308
|
+
end
|
309
|
+
|
310
|
+
it "raises UnknownObjectException if the text field doesn't exist" do
|
311
|
+
lambda { browser.text_field(:id, "no_such_id").verify_contains("Developer") }.should raise_error(UnknownObjectException)
|
312
|
+
end
|
313
|
+
end
|
314
|
+
|
315
|
+
end
|