kelp 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -28,7 +28,7 @@ World(Kelp::Visibility)
28
28
  I = /(?:|I )/
29
29
  TEXT = /"([^\"]+)"/
30
30
  REGEX = /\/([^\/]*)\//
31
- WITHIN = /(?: within (.+))?/
31
+ WITHIN = /(?: within "?([^\"]+)"?)?/
32
32
  ELEMENT = /(?:field|checkbox|dropdown|button)/
33
33
 
34
34
 
@@ -303,7 +303,7 @@ end
303
303
  # | Hair | blonde |
304
304
  # | Has TV show | checked |
305
305
  #
306
- When /^#{I}fill in the following#{WITHIN}:$/ do |fields, selector|
306
+ When /^#{I}fill in the following#{WITHIN}:$/ do |selector, fields|
307
307
  fill_in_fields(fields.rows_hash, :within => selector)
308
308
  end
309
309
 
@@ -15,13 +15,13 @@ describe Kelp::Attribute, "should_be_disabled" do
15
15
  it "element does not exist" do
16
16
  lambda do
17
17
  should_be_disabled "nonexistent"
18
- end.should raise_error(rspec_unexpected)
18
+ end.should raise_error(Kelp::Unexpected)
19
19
  end
20
20
 
21
21
  it "element does not have the disabled attribute" do
22
22
  lambda do
23
23
  should_be_disabled "first_name"
24
- end.should raise_error(rspec_unexpected)
24
+ end.should raise_error(Kelp::Unexpected)
25
25
  end
26
26
  end
27
27
  end
@@ -42,13 +42,13 @@ describe Kelp::Attribute, "should_be_enabled" do
42
42
  it "element does not exist" do
43
43
  lambda do
44
44
  should_be_enabled "nonexistent"
45
- end.should raise_error(rspec_unexpected)
45
+ end.should raise_error(Kelp::Unexpected)
46
46
  end
47
47
 
48
48
  it "element has the disabled attribute" do
49
49
  lambda do
50
50
  should_be_enabled "readonly"
51
- end.should raise_error(rspec_unexpected)
51
+ end.should raise_error(Kelp::Unexpected)
52
52
  end
53
53
  end
54
54
  end
@@ -20,14 +20,14 @@ describe Kelp::Checkbox, "checkbox_should_be_checked" do
20
20
  it "the checkbox is unchecked by default" do
21
21
  lambda do
22
22
  checkbox_should_be_checked "I like salami"
23
- end.should raise_error
23
+ end.should raise_error(Kelp::Unexpected)
24
24
  end
25
25
 
26
26
  it "the checkbox is unchecked programmatically" do
27
27
  uncheck "I like cheese"
28
28
  lambda do
29
29
  checkbox_should_be_checked "I like cheese"
30
- end.should raise_error
30
+ end.should raise_error(Kelp::Unexpected)
31
31
  end
32
32
  end
33
33
 
@@ -54,14 +54,14 @@ describe Kelp::Checkbox, "checkbox_should_not_be_checked" do
54
54
  it "the checkbox is checked by default" do
55
55
  lambda do
56
56
  checkbox_should_not_be_checked "I like cheese"
57
- end.should raise_error
57
+ end.should raise_error(Kelp::Unexpected)
58
58
  end
59
59
 
60
60
  it "the checkbox is checked programmatically" do
61
61
  check "I like salami"
62
62
  lambda do
63
63
  checkbox_should_not_be_checked "I like salami"
64
- end.should raise_error
64
+ end.should raise_error(Kelp::Unexpected)
65
65
  end
66
66
  end
67
67
 
@@ -27,20 +27,20 @@ describe Kelp::Dropdown, "dropdown_should_equal" do
27
27
  it "the option does not have the 'selected' attribute" do
28
28
  lambda do
29
29
  dropdown_should_equal "Height", "Tall"
30
- end.should raise_error(rspec_unexpected)
30
+ end.should raise_error(Kelp::Unexpected)
31
31
  end
32
32
 
33
33
  it "the option is not the first one selected by default" do
34
34
  lambda do
35
35
  dropdown_should_equal "Weight", "Medium"
36
- end.should raise_error(rspec_unexpected)
36
+ end.should raise_error(Kelp::Unexpected)
37
37
  end
38
38
 
39
39
  it "the option was not the one chosen programmatically" do
40
40
  select "Tall", :from => "Height"
41
41
  lambda do
42
42
  dropdown_should_equal "Height", "Average"
43
- end.should raise_error(rspec_unexpected)
43
+ end.should raise_error(Kelp::Unexpected)
44
44
  end
45
45
  end
46
46
 
@@ -78,7 +78,7 @@ describe Kelp::Dropdown, "dropdown_should_include" do
78
78
  it "a single option does not exist in the dropdown" do
79
79
  lambda do
80
80
  dropdown_should_include "Height", "Midget"
81
- end.should raise_error(rspec_unexpected)
81
+ end.should raise_error(Kelp::Unexpected)
82
82
  end
83
83
 
84
84
  it "any of several options do not exist in the dropdown" do
@@ -89,7 +89,7 @@ describe Kelp::Dropdown, "dropdown_should_include" do
89
89
  "Tall",
90
90
  "Giant",
91
91
  ]
92
- end.should raise_error(rspec_unexpected)
92
+ end.should raise_error(Kelp::Unexpected)
93
93
  end
94
94
  end
95
95
  end
@@ -120,7 +120,7 @@ describe Kelp::Dropdown, "dropdown_should_not_include" do
120
120
  it "a single option exists in the dropdown" do
121
121
  lambda do
122
122
  dropdown_should_not_include "Height", "Short"
123
- end.should raise_error(rspec_unexpected)
123
+ end.should raise_error(Kelp::Unexpected)
124
124
  end
125
125
 
126
126
  it "any of several options exist in the dropdown" do
@@ -131,7 +131,7 @@ describe Kelp::Dropdown, "dropdown_should_not_include" do
131
131
  "Behemoth",
132
132
  "Tall",
133
133
  ]
134
- end.should raise_error(rspec_unexpected)
134
+ end.should raise_error(Kelp::Unexpected)
135
135
  end
136
136
  end
137
137
  end
@@ -161,20 +161,20 @@ describe Kelp::Dropdown, "dropdown_value_should_equal" do
161
161
  it "the option with the 'selected' attribute has a different value" do
162
162
  lambda do
163
163
  dropdown_value_should_equal "Height", "99"
164
- end.should raise_error(rspec_unexpected)
164
+ end.should raise_error(Kelp::Unexpected)
165
165
  end
166
166
 
167
167
  it "the first option selected by default does not have given value" do
168
168
  lambda do
169
169
  dropdown_value_should_equal "Weight", "2"
170
- end.should raise_error(rspec_unexpected)
170
+ end.should raise_error(Kelp::Unexpected)
171
171
  end
172
172
 
173
173
  it "the programmatically chosen option has a different value" do
174
174
  select "Tall", :from => "Height"
175
175
  lambda do
176
176
  dropdown_value_should_equal "Height", "2"
177
- end.should raise_error(rspec_unexpected)
177
+ end.should raise_error(Kelp::Unexpected)
178
178
  end
179
179
  end
180
180
  end
data/spec/field_spec.rb CHANGED
@@ -29,7 +29,7 @@ describe Kelp::Field, "field_should_be_empty" do
29
29
  fill_in "first_name", :with => "Brian"
30
30
  lambda do
31
31
  field_should_be_empty "first_name"
32
- end.should raise_error(RuntimeError)
32
+ end.should raise_error(Kelp::Unexpected)
33
33
  end
34
34
  end
35
35
 
@@ -38,7 +38,7 @@ describe Kelp::Field, "field_should_be_empty" do
38
38
  fill_in "First name", :with => "Brian"
39
39
  lambda do
40
40
  field_should_be_empty "First name"
41
- end.should raise_error(RuntimeError)
41
+ end.should raise_error(Kelp::Unexpected)
42
42
  end
43
43
  end
44
44
  end
@@ -71,14 +71,14 @@ describe Kelp::Field, "field_should_contain" do
71
71
  it "is empty" do
72
72
  lambda do
73
73
  field_should_contain "first_name", "Brian"
74
- end.should raise_error(rspec_unexpected)
74
+ end.should raise_error(Kelp::Unexpected)
75
75
  end
76
76
 
77
77
  it "has a different value" do
78
78
  fill_in "first_name", :with => "Judith"
79
79
  lambda do
80
80
  field_should_contain "first_name", "Brian"
81
- end.should raise_error(rspec_unexpected)
81
+ end.should raise_error(Kelp::Unexpected)
82
82
  end
83
83
  end
84
84
 
@@ -86,14 +86,14 @@ describe Kelp::Field, "field_should_contain" do
86
86
  it "is empty" do
87
87
  lambda do
88
88
  field_should_contain "First name", "Brian"
89
- end.should raise_error(rspec_unexpected)
89
+ end.should raise_error(Kelp::Unexpected)
90
90
  end
91
91
 
92
92
  it "has a different value" do
93
93
  fill_in "First name", :with => "Judith"
94
94
  lambda do
95
95
  field_should_contain "First name", "Brian"
96
- end.should raise_error(rspec_unexpected)
96
+ end.should raise_error(Kelp::Unexpected)
97
97
  end
98
98
  end
99
99
 
@@ -154,7 +154,7 @@ describe Kelp::Field, "fields_should_contain" do
154
154
  it "are empty" do
155
155
  lambda do
156
156
  fields_should_contain "first_name" => "Terry", "last_name" => "Jones"
157
- end.should raise_error(rspec_unexpected)
157
+ end.should raise_error(Kelp::Unexpected)
158
158
  end
159
159
 
160
160
  it "do not all match" do
@@ -162,7 +162,7 @@ describe Kelp::Field, "fields_should_contain" do
162
162
  fill_in "last_name", :with => "Gilliam"
163
163
  lambda do
164
164
  fields_should_contain "first_name" => "Terry", "last_name" => "Jones"
165
- end.should raise_error(rspec_unexpected)
165
+ end.should raise_error(Kelp::Unexpected)
166
166
  end
167
167
  end
168
168
 
@@ -170,7 +170,7 @@ describe Kelp::Field, "fields_should_contain" do
170
170
  it "are empty" do
171
171
  lambda do
172
172
  fields_should_contain "First name" => "Terry", "Last name" => "Jones"
173
- end.should raise_error(rspec_unexpected)
173
+ end.should raise_error(Kelp::Unexpected)
174
174
  end
175
175
 
176
176
  it "do not all match" do
@@ -178,7 +178,7 @@ describe Kelp::Field, "fields_should_contain" do
178
178
  fill_in "Last name", :with => "Gilliam"
179
179
  lambda do
180
180
  fields_should_contain "First name" => "Terry", "Last name" => "Jones"
181
- end.should raise_error(rspec_unexpected)
181
+ end.should raise_error(Kelp::Unexpected)
182
182
  end
183
183
  end
184
184
 
@@ -229,19 +229,19 @@ describe Kelp::Field, "fill_in_field" do
229
229
  it "filling a nonexistent field" do
230
230
  lambda do
231
231
  fill_in_field "Middle name", "Kaminsky"
232
- end.should raise_error(Capybara::ElementNotFound)
232
+ end.should raise_error(Kelp::FieldNotFound)
233
233
  end
234
234
 
235
235
  it "selecting a nonexistent value from a dropdown" do
236
236
  lambda do
237
237
  fill_in_field "Height", "Gigantic"
238
- end.should raise_error(Capybara::ElementNotFound)
238
+ end.should raise_error(Kelp::OptionNotFound)
239
239
  end
240
240
 
241
241
  it "filling a field in the wrong scope" do
242
242
  lambda do
243
243
  fill_in_field_within "#preferences_form", "First name", "Mel"
244
- end.should raise_error(Capybara::ElementNotFound)
244
+ end.should raise_error(Kelp::FieldNotFound)
245
245
  end
246
246
  end
247
247
  end
@@ -316,14 +316,14 @@ describe Kelp::Field, "fill_in_fields" do
316
316
  it "filling a nonexistent field" do
317
317
  lambda do
318
318
  fill_in_fields "Middle name" => "Kaminsky"
319
- end.should raise_error(Capybara::ElementNotFound)
319
+ end.should raise_error(Kelp::FieldNotFound)
320
320
  end
321
321
 
322
322
  it "filling a field in the wrong scope" do
323
323
  lambda do
324
324
  fill_in_fields_within "#preferences_form",
325
325
  "First name" => "Mel"
326
- end.should raise_error(Capybara::ElementNotFound)
326
+ end.should raise_error(Kelp::FieldNotFound)
327
327
  end
328
328
  end
329
329
 
@@ -102,7 +102,7 @@ describe Kelp::Navigation, "should_be_on_page" do
102
102
  visit('/home')
103
103
  lambda do
104
104
  should_be_on_page '/form'
105
- end.should raise_error(rspec_unexpected)
105
+ end.should raise_error(Kelp::Unexpected)
106
106
  end
107
107
  end
108
108
  end
@@ -124,7 +124,7 @@ describe Kelp::Navigation, "should_have_query" do
124
124
  it "expected params when actual query is empty" do
125
125
  lambda do
126
126
  should_have_query :username => 'tony'
127
- end.should raise_error(rspec_unexpected)
127
+ end.should raise_error(Kelp::Unexpected)
128
128
  end
129
129
  end
130
130
  end
data/spec/spec_helper.rb CHANGED
@@ -1,16 +1,12 @@
1
1
  require 'rspec'
2
-
3
- # Supported drivers
4
2
  require 'capybara'
5
3
  require 'capybara/dsl'
6
- #require 'webrat'
7
4
 
8
5
  require 'kelp'
9
6
  require File.expand_path(File.join(File.dirname(__FILE__), '..', 'examples', 'sinatra_app', 'app'))
10
7
 
11
8
  RSpec.configure do |config|
12
9
  config.include Capybara
13
- #config.include Webrat::Methods
14
10
 
15
11
  config.include Kelp::Attribute
16
12
  config.include Kelp::Checkbox
@@ -21,7 +17,6 @@ RSpec.configure do |config|
21
17
  config.include Kelp::Visibility
22
18
 
23
19
  config.before do
24
- #Kelp.driver = :webrat
25
20
  Capybara.default_driver = :rack_test
26
21
  Capybara.default_selector = :css
27
22
  Capybara.app = TestApp
@@ -33,7 +28,3 @@ RSpec.configure do |config|
33
28
  end
34
29
  end
35
30
 
36
- #Webrat.configure do |config|
37
- #config.mode = :rack
38
- #end
39
-
@@ -1,5 +1,40 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
+ describe Kelp::Visibility, "page_contains?" do
4
+ before(:each) do
5
+ visit('/home')
6
+ end
7
+
8
+ context "returns true when" do
9
+ it "String exists" do
10
+ page_contains?("Hello world").should be_true
11
+ end
12
+
13
+ it "Regexp matches" do
14
+ page_contains?(/(Hello|Goodbye) world/).should be_true
15
+ end
16
+ end
17
+
18
+ context "returns false when" do
19
+ it "String does not exist" do
20
+ page_contains?("Jimmy eat world").should be_false
21
+ end
22
+
23
+ it "Regexp does not match" do
24
+ page_contains?(/(Ni-hao|Konnichiwa) world/).should be_false
25
+ end
26
+ end
27
+
28
+ context "raises exception when" do
29
+ it "invalid argument type is given" do
30
+ lambda do
31
+ page_contains?(1234)
32
+ end.should raise_error(ArgumentError)
33
+ end
34
+ end
35
+ end
36
+
37
+
3
38
  describe Kelp::Visibility, "should_see" do
4
39
  before(:each) do
5
40
  visit('/home')
@@ -238,19 +273,19 @@ describe Kelp::Visibility, "should_see_in_same_row" do
238
273
  it "two strings exist, but are not in the same row" do
239
274
  lambda do
240
275
  should_see_in_same_row ["Eric", "John"]
241
- end.should raise_error(rspec_unexpected)
276
+ end.should raise_error(Kelp::Unexpected)
242
277
  end
243
278
 
244
279
  it "two strings are in the same row, but a third is not" do
245
280
  lambda do
246
281
  should_see_in_same_row ["Eric", "Edit", "Delete"]
247
- end.should raise_error(rspec_unexpected)
282
+ end.should raise_error(Kelp::Unexpected)
248
283
  end
249
284
 
250
285
  it "two strings are in the same row, but outside the given scope" do
251
286
  lambda do
252
287
  should_see_in_same_row ["Eric", "Edit"], :within => "#table_b"
253
- end.should raise_error(rspec_unexpected)
288
+ end.should raise_error(Kelp::Unexpected)
254
289
  end
255
290
  end
256
291
  end
@@ -282,113 +317,15 @@ describe Kelp::Visibility, "should_not_see_in_same_row" do
282
317
  it "two strings are in the same row" do
283
318
  lambda do
284
319
  should_not_see_in_same_row ["Eric", "Edit"]
285
- end.should raise_error(rspec_unexpected)
320
+ end.should raise_error(Kelp::Unexpected)
286
321
  end
287
322
 
288
323
  it "two strings are in the same row within a given scope" do
289
324
  lambda do
290
325
  should_not_see_in_same_row ["Eric", "Edit"], :within => "#table_a"
291
- end.should raise_error(rspec_unexpected)
292
- end
293
- end
294
- end
295
-
296
-
297
- describe Kelp::Visibility, "page_should_contain" do
298
- before(:each) do
299
- visit('/home')
300
- end
301
-
302
- context "passes when" do
303
- context "String" do
304
- it "exists" do
305
- page_should_contain "Hello world"
306
- page_should_contain "Goodbye world"
307
- end
308
- end
309
- context "Regexp" do
310
- it "matches" do
311
- page_should_contain /(Hello|Goodbye) world/
312
- page_should_contain /\d\d\d-\d\d\d\d/
313
- end
314
- end
315
- end
316
-
317
- context "fails when" do
318
- context "String" do
319
- it "does not exist" do
320
- lambda do
321
- page_should_contain "Wazzup world"
322
- end.should raise_error(rspec_unexpected)
323
- end
324
- end
325
-
326
- context "Regexp" do
327
- it "does not match" do
328
- lambda do
329
- page_should_contain /(Foo|Bar|Baz) world/
330
- end.should raise_error(rspec_unexpected)
331
- end
332
- end
333
-
334
- it "not a String or Regexp" do
335
- lambda do
336
- page_should_contain 123
337
- end.should raise_error(ArgumentError)
338
- end
339
- end
340
-
341
- end
342
-
343
-
344
- describe Kelp::Visibility, "page_should_not_contain" do
345
- before(:each) do
346
- visit('/home')
347
- end
348
-
349
- context "passes when" do
350
- context "String" do
351
- it "does not exist" do
352
- page_should_not_contain "Wazzup world"
353
- end
354
- end
355
-
356
- context "Regexp" do
357
- it "does not match" do
358
- page_should_not_contain /(Foo|Bar|Baz) world/
359
- end
360
- end
361
- end
362
-
363
- context "fails when" do
364
- context "String" do
365
- it "exists" do
366
- lambda do
367
- page_should_not_contain "Hello world"
368
- end.should raise_error(rspec_unexpected)
369
- lambda do
370
- page_should_not_contain "Goodbye world"
371
- end.should raise_error(rspec_unexpected)
372
- end
373
- end
374
- context "Regexp" do
375
- it "matches" do
376
- lambda do
377
- page_should_not_contain /(Hello|Goodbye) world/
378
- end.should raise_error(rspec_unexpected)
379
- lambda do
380
- page_should_not_contain /\d\d\d-\d\d\d\d/
381
- end.should raise_error(rspec_unexpected)
382
- end
383
- end
384
-
385
- it "not a String or Regexp" do
386
- lambda do
387
- page_should_not_contain 123
388
- end.should raise_error(ArgumentError)
326
+ end.should raise_error(Kelp::Unexpected)
389
327
  end
390
328
  end
391
-
392
329
  end
393
330
 
394
331