rsel 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/Rakefile +22 -8
- data/docs/development.md +1 -0
- data/docs/history.md +11 -1
- data/docs/index.md +1 -0
- data/docs/scoping.md +1 -1
- data/docs/studying.md +76 -0
- data/lib/rsel/selenium_test.rb +505 -90
- data/lib/rsel/study_html.rb +198 -0
- data/lib/rsel/support.rb +105 -4
- data/rsel.gemspec +1 -1
- data/spec/spec_helper.rb +4 -22
- data/spec/st_alerts.rb +48 -0
- data/spec/st_browser_spec.rb +58 -0
- data/spec/st_buttons_spec.rb +95 -0
- data/spec/st_checkboxes_spec.rb +235 -0
- data/spec/st_conditionals_spec.rb +180 -0
- data/spec/st_dropdowns_spec.rb +140 -0
- data/spec/st_field_equals_among_spec.rb +48 -0
- data/spec/st_fields_equal_among_spec.rb +74 -0
- data/spec/st_fields_equal_spec.rb +90 -0
- data/spec/st_fields_spec.rb +167 -0
- data/spec/st_initialization_spec.rb +33 -0
- data/spec/st_links_spec.rb +84 -0
- data/spec/st_method_missing_spec.rb +59 -0
- data/spec/st_navigation_spec.rb +56 -0
- data/spec/st_radiobuttons_spec.rb +123 -0
- data/spec/st_respond_to_spec.rb +16 -0
- data/spec/st_scenario_spec.rb +26 -0
- data/spec/st_set_field_among_spec.rb +45 -0
- data/spec/st_set_field_spec.rb +842 -0
- data/spec/st_set_fields_among_spec.rb +74 -0
- data/spec/st_set_fields_spec.rb +97 -0
- data/spec/st_spec_helper.rb +43 -0
- data/spec/st_stop_on_failure_spec.rb +199 -0
- data/spec/st_tables_spec.rb +42 -0
- data/spec/st_temporal_visibility_spec.rb +122 -0
- data/spec/st_visibility_spec.rb +125 -0
- data/spec/st_waiting_spec.rb +37 -0
- data/spec/study_html_spec.rb +310 -0
- data/spec/support_spec.rb +163 -13
- data/test/server/README.txt +3 -0
- data/test/views/alert.erb +15 -0
- data/test/views/form.erb +6 -1
- data/test/views/index.erb +2 -0
- data/test/views/slowtext.erb +1 -1
- metadata +38 -9
- data/spec/selenium_test_spec.rb +0 -2656
@@ -0,0 +1,140 @@
|
|
1
|
+
require 'spec/st_spec_helper'
|
2
|
+
|
3
|
+
describe 'dropdowns' do
|
4
|
+
before(:each) do
|
5
|
+
@st.visit("/form").should be_true
|
6
|
+
end
|
7
|
+
|
8
|
+
context "#select_from_dropdown" do
|
9
|
+
context "passes when" do
|
10
|
+
it "option exists in the dropdown" do
|
11
|
+
@st.select_from_dropdown("Tall", "Height").should be_true
|
12
|
+
@st.select_from_dropdown("Medium", "Weight").should be_true
|
13
|
+
end
|
14
|
+
|
15
|
+
it "option exists in the dropdown within scope" do
|
16
|
+
@st.select_from_dropdown("Tall", "Height", :within => "spouse_form").should be_true
|
17
|
+
end
|
18
|
+
|
19
|
+
it "option exists in the dropdown in table row" do
|
20
|
+
@st.visit("/table")
|
21
|
+
@st.select_from_dropdown("Male", "Gender", :in_row => "Eric").should be_true
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context "fails when" do
|
26
|
+
it "no such dropdown exists" do
|
27
|
+
@st.select_from_dropdown("Over easy", "Eggs").should be_false
|
28
|
+
end
|
29
|
+
|
30
|
+
it "dropdown exists, but the option doesn't" do
|
31
|
+
@st.select_from_dropdown("Giant", "Height").should be_false
|
32
|
+
@st.select_from_dropdown("Obese", "Weight").should be_false
|
33
|
+
end
|
34
|
+
|
35
|
+
it "dropdown exists, but is read-only" do
|
36
|
+
@st.visit("/readonly_form").should be_true
|
37
|
+
@st.select_from_dropdown("Tall", "Height").should be_false
|
38
|
+
end
|
39
|
+
|
40
|
+
it "dropdown exists, but not within scope" do
|
41
|
+
@st.select_from_dropdown("Medium", "Weight", :within => "spouse_form").should be_false
|
42
|
+
end
|
43
|
+
|
44
|
+
it "dropdown exists, but not in table row" do
|
45
|
+
@st.visit("/table")
|
46
|
+
@st.select_from_dropdown("Female", "Gender", :in_row => "First name").should be_false
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
context "#dropdown_includes" do
|
52
|
+
context "passes when" do
|
53
|
+
it "option exists in the dropdown" do
|
54
|
+
@st.dropdown_includes("Height", "Tall").should be_true
|
55
|
+
@st.dropdown_includes("Weight", "Medium").should be_true
|
56
|
+
end
|
57
|
+
|
58
|
+
it "option exists in a read-only dropdown" do
|
59
|
+
@st.visit("/readonly_form").should be_true
|
60
|
+
@st.dropdown_includes("Height", "Tall").should be_true
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context "fails when" do
|
65
|
+
it "dropdown exists, but the option doesn't" do
|
66
|
+
@st.dropdown_includes("Height", "Giant").should be_false
|
67
|
+
@st.dropdown_includes("Weight", "Obese").should be_false
|
68
|
+
end
|
69
|
+
|
70
|
+
it "no such dropdown exists" do
|
71
|
+
@st.dropdown_includes("Eggs", "Over easy").should be_false
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
context "#dropdown_equals" do
|
77
|
+
context "passes when" do
|
78
|
+
it "option is selected in the dropdown" do
|
79
|
+
["Short", "Average", "Tall"].each do |height|
|
80
|
+
@st.select_from_dropdown(height, "Height")
|
81
|
+
@st.dropdown_equals("Height", height).should be_true
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
it "option is selected in a read-only dropdown" do
|
86
|
+
@st.visit("/readonly_form").should be_true
|
87
|
+
@st.dropdown_equals("Height", "Average").should be_true
|
88
|
+
end
|
89
|
+
|
90
|
+
it "option is selected in the dropdown, within scope" do
|
91
|
+
["Short", "Average", "Tall"].each do |height|
|
92
|
+
@st.select_from_dropdown(height, "Height", :within => "spouse_form")
|
93
|
+
@st.dropdown_equals("Height", height, :within => "spouse_form").should be_true
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
it "option is selected in the dropdown, in table row" do
|
98
|
+
@st.visit("/table")
|
99
|
+
["Male", "Female"].each do |gender|
|
100
|
+
@st.select_from_dropdown(gender, "Gender", :in_row => "Eric")
|
101
|
+
@st.dropdown_equals("Gender", gender, :in_row => "Eric")
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
context "fails when" do
|
107
|
+
it "no such dropdown exists" do
|
108
|
+
@st.dropdown_equals("Eggs", "Over easy").should be_false
|
109
|
+
end
|
110
|
+
|
111
|
+
it "dropdown exists, but the option is not selected" do
|
112
|
+
@st.select_from_dropdown("Short", "Height")
|
113
|
+
@st.dropdown_equals("Height", "Average").should be_false
|
114
|
+
@st.dropdown_equals("Height", "Tall").should be_false
|
115
|
+
|
116
|
+
@st.select_from_dropdown("Average", "Height")
|
117
|
+
@st.dropdown_equals("Height", "Short").should be_false
|
118
|
+
@st.dropdown_equals("Height", "Tall").should be_false
|
119
|
+
|
120
|
+
@st.select_from_dropdown("Tall", "Height")
|
121
|
+
@st.dropdown_equals("Height", "Short").should be_false
|
122
|
+
@st.dropdown_equals("Height", "Average").should be_false
|
123
|
+
end
|
124
|
+
|
125
|
+
it "dropdown exists, and option is selected, but not within scope" do
|
126
|
+
@st.select_from_dropdown("Tall", "Height", :within => "person_form")
|
127
|
+
@st.select_from_dropdown("Short", "Height", :within => "spouse_form")
|
128
|
+
@st.dropdown_equals("Height", "Tall", :within => "spouse_form").should be_false
|
129
|
+
end
|
130
|
+
|
131
|
+
it "dropdown exists, and option is selected, but not in table row" do
|
132
|
+
@st.visit("/table")
|
133
|
+
@st.select_from_dropdown("Female", "Gender", :in_row => "Eric")
|
134
|
+
@st.select_from_dropdown("Male", "Gender", :in_row => "Marcus")
|
135
|
+
@st.dropdown_equals("Gender", "Female", :in_row => "Marcus").should be_false
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'spec/st_spec_helper'
|
2
|
+
|
3
|
+
describe "#field_equals_among" do
|
4
|
+
before(:each) do
|
5
|
+
@st.visit("/form").should be_true
|
6
|
+
end
|
7
|
+
|
8
|
+
context "passes when" do
|
9
|
+
context "text field with label" do
|
10
|
+
it "equals the page text" do
|
11
|
+
@st.set_field_among("First name", "Marcus", "Last name" => "nowhere").should be_true
|
12
|
+
@st.field_equals_among("First name", "Marcus", "Last name" => "nowhere").should be_true
|
13
|
+
end
|
14
|
+
|
15
|
+
it "equals the page text and has no ids" do
|
16
|
+
@st.set_field_among("First name", "Marcus", "").should be_true
|
17
|
+
@st.field_equals_among("First name", "Marcus", "").should be_true
|
18
|
+
end
|
19
|
+
|
20
|
+
it "equals the hash text" do
|
21
|
+
@st.set_field_among("Last name", "Marcus", "Last name" => "First name").should be_true
|
22
|
+
@st.field_equals_among("Last name", "Marcus", "Last name" => "First name").should be_true
|
23
|
+
end
|
24
|
+
|
25
|
+
it "equals the escaped hash text" do
|
26
|
+
@st.set_field_among("Last:name", "Marcus", "Last\\;name" => "First name").should be_true
|
27
|
+
@st.field_equals_among("Last:name", "Marcus", "Last\\;name" => "First name").should be_true
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
context "fails when" do
|
33
|
+
context "text field with label" do
|
34
|
+
it "does not exist" do
|
35
|
+
@st.field_equals_among("Third name", "").should be_false
|
36
|
+
end
|
37
|
+
|
38
|
+
it "has a hash value that does not exist" do
|
39
|
+
@st.field_equals_among("Last name", "", "Last name" => "Third name").should be_false
|
40
|
+
end
|
41
|
+
|
42
|
+
it "does not equal the expected text" do
|
43
|
+
@st.field_equals_among("Last name", "Marcus", "Last name" => "First name").should be_false
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end # field_equals_among
|
48
|
+
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'spec/st_spec_helper'
|
2
|
+
|
3
|
+
describe "#fields_equal_among" do
|
4
|
+
before(:each) do
|
5
|
+
@st.visit("/form").should be_true
|
6
|
+
end
|
7
|
+
|
8
|
+
context "passes when" do
|
9
|
+
context "text fields with labels" do
|
10
|
+
it "sets one field" do
|
11
|
+
@st.set_fields_among({"First name" => "Marcus"}).should be_true
|
12
|
+
@st.fields_equal_among({"First name" => "Marcus"}).should be_true
|
13
|
+
end
|
14
|
+
|
15
|
+
it "sets one field with string ids" do
|
16
|
+
@st.set_fields_among({"First name" => "Marcus"}, "").should be_true
|
17
|
+
@st.fields_equal_among({"First name" => "Marcus"}, "").should be_true
|
18
|
+
end
|
19
|
+
|
20
|
+
it "does nothing, but has ids" do
|
21
|
+
@st.fields_equal_among("", {"First name" => "Marcus"}).should be_true
|
22
|
+
end
|
23
|
+
|
24
|
+
it "sets several fields" do
|
25
|
+
@st.set_fields_among({"First name" => "Ken", "Last name" => "Brazier", "Life story" => "My story\\; I get testy a lot."}).should be_true
|
26
|
+
@st.fields_equal_among({"First name" => "Ken", "Last name" => "Brazier", "Life story" => "My story\\; I get testy a lot."}).should be_true
|
27
|
+
end
|
28
|
+
end
|
29
|
+
context "text fields with labels in a hash" do
|
30
|
+
it "sets one field from a hash" do
|
31
|
+
@st.set_fields_among({"Faust name" => "Marcus"}, {"Faust Name" => "First name", "LOST name" => "Last name"}).should be_true
|
32
|
+
@st.fields_equal_among({"Faust name" => "Marcus"}, {"Faust Name" => "First name", "LOST name" => "Last name"}).should be_true
|
33
|
+
end
|
34
|
+
|
35
|
+
it "sets many fields, some from a hash" do
|
36
|
+
@st.set_fields_among({"Faust\\;name" => "Ken", :Lost => "Brazier", "Life story" => "I get testy a lot."},
|
37
|
+
{"Faust\\;Name" => "First name", :LOST => "Last name"}).should be_true
|
38
|
+
@st.fields_equal_among({"Faust\\;name" => "Ken", :Lost => "Brazier", "Life story" => "I get testy a lot."},
|
39
|
+
{"Faust\\;Name" => "First name", :LOST => "Last name"}).should be_true
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context "fails when" do
|
45
|
+
context "text fields with labels" do
|
46
|
+
it "cant find the first field" do
|
47
|
+
@st.fields_equal_among({"Faust name" => "Ken", "Last name" => "Brazier"}).should be_false
|
48
|
+
end
|
49
|
+
|
50
|
+
it "cant find the last field" do
|
51
|
+
@st.fields_equal_among({"First name" => "Ken", "Lost name" => "Brazier"}).should be_false
|
52
|
+
end
|
53
|
+
it "does not equal the expected values" do
|
54
|
+
@st.fields_equal_among({"First name" => "Ken", "Last name" => "Brazier", "Life story" => "My story\\; I get testy a lot."}).should be_false
|
55
|
+
end
|
56
|
+
end
|
57
|
+
context "text fields with labels in a hash" do
|
58
|
+
it "cant find the first field" do
|
59
|
+
@st.fields_equal_among({"Faust name" => "Ken", "Lost name" => "Brazier"},
|
60
|
+
{"Faust Name" => "Lost name", "Lost name" => "Last name"}).should be_false
|
61
|
+
end
|
62
|
+
|
63
|
+
it "cant find the last field" do
|
64
|
+
@st.fields_equal_among({"Faust name" => "Ken", "Lost name" => "Brazier"},
|
65
|
+
{"Faust Name" => "First name", "Lost name" => "Faust name"}).should be_false
|
66
|
+
end
|
67
|
+
it "does not equal the expected values" do
|
68
|
+
@st.fields_equal_among({"Faust\\;name" => "Ken", :Lost => "Brazier", "Life story" => "I get testy a lot."},
|
69
|
+
{"Faust\\;Name" => "First name", :LOST => "Last name"}).should be_false
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end # fields_equal_among
|
74
|
+
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'spec/st_spec_helper'
|
2
|
+
|
3
|
+
describe "#fields_equal" do
|
4
|
+
context "without studying" do
|
5
|
+
before(:each) do
|
6
|
+
@st.visit("/form").should be_true
|
7
|
+
end
|
8
|
+
|
9
|
+
context "passes when" do
|
10
|
+
context "text fields with labels" do
|
11
|
+
it "sets one field" do
|
12
|
+
@st.set_fields("First name" => "Marcus").should be_true
|
13
|
+
@st.fields_equal("First name" => "Marcus").should be_true
|
14
|
+
end
|
15
|
+
|
16
|
+
it "sets zero fields" do
|
17
|
+
@st.fields_equal("").should be_true
|
18
|
+
end
|
19
|
+
|
20
|
+
it "sets several fields" do
|
21
|
+
@st.set_fields("First name" => "Ken", "Last name" => "Brazier", "Life story" => "My story\\; I get testy a lot.").should be_true
|
22
|
+
@st.fields_equal("First name" => "Ken", "Last name" => "Brazier", "Life story" => "My story\\; I get testy a lot.").should be_true
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context "fails when" do
|
28
|
+
context "text fields with labels" do
|
29
|
+
it "cant find the first field" do
|
30
|
+
@st.fields_equal("Faust name" => "", "Last name" => "").should be_false
|
31
|
+
end
|
32
|
+
|
33
|
+
it "cant find the last field" do
|
34
|
+
@st.fields_equal("First name" => "", "Lost name" => "").should be_false
|
35
|
+
end
|
36
|
+
|
37
|
+
it "fields are not equal" do
|
38
|
+
@st.fields_equal("First name" => "Ken", "Last name" => "Brazier").should be_false
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context "with studying" do
|
45
|
+
before(:all) do
|
46
|
+
@st.set_fields_study_min('always')
|
47
|
+
end
|
48
|
+
before(:each) do
|
49
|
+
@st.visit("/form").should be_true
|
50
|
+
end
|
51
|
+
|
52
|
+
context "passes when" do
|
53
|
+
context "text fields with labels" do
|
54
|
+
it "sets one field" do
|
55
|
+
@st.set_fields("First name" => "Marcus").should be_true
|
56
|
+
@st.fields_equal("First name" => "Marcus").should be_true
|
57
|
+
end
|
58
|
+
|
59
|
+
it "sets zero fields" do
|
60
|
+
@st.fields_equal("").should be_true
|
61
|
+
end
|
62
|
+
|
63
|
+
it "sets several fields" do
|
64
|
+
@st.set_fields("First name" => "Ken", "Last name" => "Brazier", "Life story" => "My story\\; I get testy a lot.").should be_true
|
65
|
+
@st.fields_equal("First name" => "Ken", "Last name" => "Brazier", "Life story" => "My story\\; I get testy a lot.").should be_true
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
context "fails when" do
|
71
|
+
context "text fields with labels" do
|
72
|
+
it "cant find the first field" do
|
73
|
+
@st.fields_equal("Faust name" => "", "Last name" => "").should be_false
|
74
|
+
end
|
75
|
+
|
76
|
+
it "cant find the last field" do
|
77
|
+
@st.fields_equal("First name" => "", "Lost name" => "").should be_false
|
78
|
+
end
|
79
|
+
|
80
|
+
it "fields are not equal" do
|
81
|
+
@st.fields_equal("First name" => "Ken", "Last name" => "Brazier").should be_false
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
after(:all) do
|
86
|
+
@st.set_fields_study_min('default')
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end # fields_equal
|
90
|
+
|
@@ -0,0 +1,167 @@
|
|
1
|
+
require 'spec/st_spec_helper'
|
2
|
+
|
3
|
+
describe 'fields' do
|
4
|
+
before(:each) do
|
5
|
+
@st.visit("/form").should be_true
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "#type_into_field" do
|
9
|
+
context "passes when" do
|
10
|
+
context "text field with label" do
|
11
|
+
it "exists" do
|
12
|
+
@st.type_into_field("Eric", "First name").should be_true
|
13
|
+
@st.fill_in_with("Last name", "Pierce").should be_true
|
14
|
+
end
|
15
|
+
it "exists within scope" do
|
16
|
+
@st.type_into_field("Eric", "First name", :within => 'person_form').should be_true
|
17
|
+
@st.type_into_field("Andrea", "First name", :within => 'spouse_form').should be_true
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context "text field with id" do
|
22
|
+
it "exists" do
|
23
|
+
@st.type_into_field("Eric", "first_name").should be_true
|
24
|
+
@st.fill_in_with("last_name", "Pierce").should be_true
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context "textarea with label" do
|
29
|
+
it "exists" do
|
30
|
+
@st.type_into_field("Blah blah blah", "Life story").should be_true
|
31
|
+
@st.fill_in_with("Life story", "Jibber jabber").should be_true
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context "textarea with id" do
|
36
|
+
it "exists" do
|
37
|
+
@st.type_into_field("Blah blah blah", "biography").should be_true
|
38
|
+
@st.fill_in_with("biography", "Jibber jabber").should be_true
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context "fails when" do
|
44
|
+
it "no field with the given label or id exists" do
|
45
|
+
@st.type_into_field("Matthew", "Middle name").should be_false
|
46
|
+
@st.fill_in_with("middle_name", "Matthew").should be_false
|
47
|
+
end
|
48
|
+
|
49
|
+
it "field exists, but not within scope" do
|
50
|
+
@st.type_into_field("Long story", "Life story",
|
51
|
+
:within => 'spouse_form').should be_false
|
52
|
+
end
|
53
|
+
|
54
|
+
it "field exists, but is read-only" do
|
55
|
+
@st.visit("/readonly_form").should be_true
|
56
|
+
@st.type_into_field("Eric", "First name").should be_false
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe "#field_contains" do
|
62
|
+
context "passes when" do
|
63
|
+
context "text field with label" do
|
64
|
+
it "equals the text" do
|
65
|
+
@st.fill_in_with("First name", "Marcus")
|
66
|
+
@st.field_contains("First name", "Marcus").should be_true
|
67
|
+
end
|
68
|
+
|
69
|
+
it "contains the text" do
|
70
|
+
@st.fill_in_with("First name", "Marcus")
|
71
|
+
@st.field_contains("First name", "Marc").should be_true
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
context "textarea with label" do
|
76
|
+
it "contains the text" do
|
77
|
+
@st.fill_in_with("Life story", "Blah dee blah")
|
78
|
+
@st.field_contains("Life story", "blah").should be_true
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
context "fails when" do
|
84
|
+
context "text field with label" do
|
85
|
+
it "does not exist" do
|
86
|
+
@st.field_contains("Third name", "Smith").should be_false
|
87
|
+
end
|
88
|
+
|
89
|
+
it "does not contain the text" do
|
90
|
+
@st.fill_in_with("First name", "Marcus")
|
91
|
+
@st.field_contains("First name", "Eric").should be_false
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
context "textarea with label" do
|
96
|
+
it "does not contain the text" do
|
97
|
+
@st.fill_in_with("Life story", "Blah dee blah")
|
98
|
+
@st.field_contains("Life story", "spam").should be_false
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
describe "#field_equals" do
|
105
|
+
context "passes when" do
|
106
|
+
context "text field with label" do
|
107
|
+
it "equals the text" do
|
108
|
+
@st.fill_in_with("First name", "Ken")
|
109
|
+
@st.field_equals("First name", "Ken").should be_true
|
110
|
+
end
|
111
|
+
|
112
|
+
it "equals the text, and is within scope" do
|
113
|
+
@st.fill_in_with("First name", "Eric", :within => "person_form")
|
114
|
+
@st.field_equals("First name", "Eric", :within => "person_form")
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
context "textarea with label" do
|
119
|
+
it "equals the text" do
|
120
|
+
@st.fill_in_with("Life story", "Blah dee blah")
|
121
|
+
@st.field_equals("Life story", "Blah dee blah").should be_true
|
122
|
+
end
|
123
|
+
|
124
|
+
it "equals the text, and is within scope" do
|
125
|
+
@st.fill_in_with("Life story", "Blah dee blah",
|
126
|
+
:within => "person_form")
|
127
|
+
@st.field_equals("Life story", "Blah dee blah",
|
128
|
+
:within => "person_form").should be_true
|
129
|
+
end
|
130
|
+
|
131
|
+
it "equals the text, and is in table row" do
|
132
|
+
# TODO
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
context "fails when" do
|
138
|
+
context "text field with label" do
|
139
|
+
it "does not exactly equal the text" do
|
140
|
+
@st.fill_in_with("First name", "Marcus")
|
141
|
+
@st.field_equals("First name", "Marc").should be_false
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
context "textarea with label" do
|
146
|
+
it "does not exist" do
|
147
|
+
@st.field_equals("Third name", "Smith").should be_false
|
148
|
+
end
|
149
|
+
|
150
|
+
it "does not exactly equal the text" do
|
151
|
+
@st.fill_in_with("Life story", "Blah dee blah")
|
152
|
+
@st.field_equals("Life story", "Blah dee").should be_false
|
153
|
+
end
|
154
|
+
|
155
|
+
it "exactly equals the text, but is not within scope" do
|
156
|
+
@st.fill_in_with("First name", "Eric", :within => "person_form")
|
157
|
+
@st.field_equals("First name", "Eric", :within => "spouse_form").should be_false
|
158
|
+
end
|
159
|
+
|
160
|
+
it "exactly equals the text, but is not in table row" do
|
161
|
+
# TODO
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
end
|