ratom-nokogiri 0.10.5 → 0.10.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -13,163 +13,163 @@ require 'property'
13
13
 
14
14
  shared_examples_for 'simple_single_entry.atom attributes' do
15
15
  it "should parse title" do
16
- @feed.title.should == 'Example Feed'
16
+ expect(@feed.title).to eq('Example Feed')
17
17
  end
18
18
 
19
19
  it "should parse updated" do
20
- @feed.updated.should == Time.parse('2003-12-13T18:30:02Z')
20
+ expect(@feed.updated).to eq(Time.parse('2003-12-13T18:30:02Z'))
21
21
  end
22
22
 
23
23
  it "should parse id" do
24
- @feed.id.should == 'urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6'
24
+ expect(@feed.id).to eq('urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6')
25
25
  end
26
26
 
27
27
  it "should have an entries array" do
28
- @feed.entries.should be_an_instance_of(Array)
28
+ expect(@feed.entries).to be_an_instance_of(Array)
29
29
  end
30
30
 
31
31
  it "should have one element in the entries array" do
32
- @feed.entries.size.should == 1
32
+ expect(@feed.entries.size).to eq(1)
33
33
  end
34
34
 
35
35
  it "should have an alternate" do
36
- @feed.alternate.should_not be_nil
36
+ expect(@feed.alternate).not_to be_nil
37
37
  end
38
38
 
39
39
  it "should have an Atom::Link as the alternate" do
40
- @feed.alternate.should be_an_instance_of(Atom::Link)
40
+ expect(@feed.alternate).to be_an_instance_of(Atom::Link)
41
41
  end
42
42
 
43
43
  it "should have the correct href in the alternate" do
44
- @feed.alternate.href.should == 'http://example.org/'
44
+ expect(@feed.alternate.href).to eq('http://example.org/')
45
45
  end
46
46
 
47
47
  it "should have 1 author" do
48
- @feed.should have(1).authors
48
+ expect(@feed.authors.size).to eq(1)
49
49
  end
50
50
 
51
51
  it "should have 'John Doe' as the author's name" do
52
- @feed.authors.first.name.should == "John Doe"
52
+ expect(@feed.authors.first.name).to eq("John Doe")
53
53
  end
54
54
 
55
55
  it "should parse title" do
56
- @entry.title.should == 'Atom-Powered Robots Run Amok'
56
+ expect(@entry.title).to eq('Atom-Powered Robots Run Amok')
57
57
  end
58
58
 
59
59
  it "should have an alternate" do
60
- @entry.alternate.should_not be_nil
60
+ expect(@entry.alternate).not_to be_nil
61
61
  end
62
62
 
63
63
  it "should have an Atom::Link as the alternate" do
64
- @entry.alternate.should be_an_instance_of(Atom::Link)
64
+ expect(@entry.alternate).to be_an_instance_of(Atom::Link)
65
65
  end
66
66
 
67
67
  it "should have the correct href on the alternate" do
68
- @entry.alternate.href.should == 'http://example.org/2003/12/13/atom03'
68
+ expect(@entry.alternate.href).to eq('http://example.org/2003/12/13/atom03')
69
69
  end
70
70
 
71
71
  it "should parse id" do
72
- @entry.id.should == 'urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a'
72
+ expect(@entry.id).to eq('urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a')
73
73
  end
74
74
 
75
75
  it "should parse updated" do
76
- @entry.updated.should == Time.parse('2003-12-13T18:30:02Z')
76
+ expect(@entry.updated).to eq(Time.parse('2003-12-13T18:30:02Z'))
77
77
  end
78
78
 
79
79
  it "should parse summary" do
80
- @entry.summary.should == 'Some text.'
80
+ expect(@entry.summary).to eq('Some text.')
81
81
  end
82
82
 
83
83
  it "should parse content" do
84
- @entry.content.should == 'This <em>is</em> html.'
84
+ expect(@entry.content).to eq('This <em>is</em> html.')
85
85
  end
86
86
 
87
87
  it "should parse content type" do
88
- @entry.content.type.should == 'html'
88
+ expect(@entry.content.type).to eq('html')
89
89
  end
90
90
  end
91
91
 
92
92
  describe Atom do
93
93
  describe "Atom::Feed.load_feed" do
94
94
  it "should accept an IO" do
95
- lambda { Atom::Feed.load_feed(File.open('spec/fixtures/simple_single_entry.atom')) }.should_not raise_error
95
+ expect { Atom::Feed.load_feed(File.open('spec/fixtures/simple_single_entry.atom')) }.not_to raise_error
96
96
  end
97
97
 
98
98
  it "should raise ArgumentError with something other than IO or URI" do
99
- lambda { Atom::Feed.load_feed(nil) }.should raise_error(ArgumentError)
99
+ expect { Atom::Feed.load_feed(nil) }.to raise_error(ArgumentError)
100
100
  end
101
101
 
102
102
  it "should accept a String" do
103
- Atom::Feed.load_feed(File.read('spec/fixtures/simple_single_entry.atom')).should be_an_instance_of(Atom::Feed)
103
+ expect(Atom::Feed.load_feed(File.read('spec/fixtures/simple_single_entry.atom'))).to be_an_instance_of(Atom::Feed)
104
104
  end
105
105
 
106
106
  it "should accept a URI" do
107
107
  uri = URI.parse('http://example.com/feed.atom')
108
108
  response = Net::HTTPSuccess.new(nil, nil, nil)
109
- response.stub!(:body).and_return(File.read('spec/fixtures/simple_single_entry.atom'))
109
+ allow(response).to receive(:body).and_return(File.read('spec/fixtures/simple_single_entry.atom'))
110
110
  mock_http_get(uri, response)
111
111
 
112
- Atom::Feed.load_feed(uri).should be_an_instance_of(Atom::Feed)
112
+ expect(Atom::Feed.load_feed(uri)).to be_an_instance_of(Atom::Feed)
113
113
  end
114
114
 
115
115
  it "should accept a URI with query parameters" do
116
116
  uri = URI.parse('http://example.com/feed.atom?page=2')
117
117
  response = Net::HTTPSuccess.new(nil, nil, nil)
118
- response.stub!(:body).and_return(File.read('spec/fixtures/simple_single_entry.atom'))
118
+ allow(response).to receive(:body).and_return(File.read('spec/fixtures/simple_single_entry.atom'))
119
119
  mock_http_get(uri, response)
120
120
 
121
- Atom::Feed.load_feed(uri).should be_an_instance_of(Atom::Feed)
121
+ expect(Atom::Feed.load_feed(uri)).to be_an_instance_of(Atom::Feed)
122
122
  end
123
123
 
124
124
  it "should raise ArgumentError with non-http uri" do
125
125
  uri = URI.parse('file:/tmp')
126
- lambda { Atom::Feed.load_feed(uri) }.should raise_error(ArgumentError)
126
+ expect { Atom::Feed.load_feed(uri) }.to raise_error(ArgumentError)
127
127
  end
128
128
 
129
129
  it "should return an Atom::Feed" do
130
130
  feed = Atom::Feed.load_feed(File.open('spec/fixtures/simple_single_entry.atom'))
131
- feed.should be_an_instance_of(Atom::Feed)
131
+ expect(feed).to be_an_instance_of(Atom::Feed)
132
132
  end
133
133
 
134
134
  it "should not raise an error with a String and basic-auth credentials" do
135
- lambda { Atom::Feed.load_feed(File.read('spec/fixtures/simple_single_entry.atom'), :user => 'user', :pass => 'pass') }.should_not raise_error
135
+ expect { Atom::Feed.load_feed(File.read('spec/fixtures/simple_single_entry.atom'), :user => 'user', :pass => 'pass') }.not_to raise_error
136
136
  end
137
137
 
138
138
  it "should not raise an error with a URI with basic-auth credentials" do
139
139
  uri = URI.parse('http://example.com/feed.atom')
140
140
 
141
141
  response = Net::HTTPSuccess.new(nil, nil, nil)
142
- response.stub!(:body).and_return(File.read('spec/fixtures/simple_single_entry.atom'))
142
+ allow(response).to receive(:body).and_return(File.read('spec/fixtures/simple_single_entry.atom'))
143
143
  mock_http_get(uri, response, 'user', 'pass')
144
144
 
145
- lambda { Atom::Feed.load_feed(uri, :user => 'user', :pass => 'pass') }.should_not raise_error
145
+ expect { Atom::Feed.load_feed(uri, :user => 'user', :pass => 'pass') }.not_to raise_error
146
146
  end
147
147
  end
148
148
 
149
149
  describe 'Atom::Entry.load_entry' do
150
150
  it "should accept an IO" do
151
- Atom::Entry.load_entry(File.open('spec/fixtures/entry.atom')).should be_an_instance_of(Atom::Entry)
151
+ expect(Atom::Entry.load_entry(File.open('spec/fixtures/entry.atom'))).to be_an_instance_of(Atom::Entry)
152
152
  end
153
153
 
154
154
  it "should accept a URI" do
155
155
  uri = URI.parse('http://example.org/entry.atom')
156
156
  response = Net::HTTPSuccess.new(nil, nil, nil)
157
- response.stub!(:body).and_return(File.read('spec/fixtures/entry.atom'))
157
+ allow(response).to receive(:body).and_return(File.read('spec/fixtures/entry.atom'))
158
158
  mock_http_get(uri, response)
159
159
 
160
- Atom::Entry.load_entry(uri).should be_an_instance_of(Atom::Entry)
160
+ expect(Atom::Entry.load_entry(uri)).to be_an_instance_of(Atom::Entry)
161
161
  end
162
162
 
163
163
  it "should accept a String" do
164
- Atom::Entry.load_entry(File.read('spec/fixtures/entry.atom')).should be_an_instance_of(Atom::Entry)
164
+ expect(Atom::Entry.load_entry(File.read('spec/fixtures/entry.atom'))).to be_an_instance_of(Atom::Entry)
165
165
  end
166
166
 
167
167
  it "should raise ArgumentError with something other than IO, String or URI" do
168
- lambda { Atom::Entry.load_entry(nil) }.should raise_error(ArgumentError)
168
+ expect { Atom::Entry.load_entry(nil) }.to raise_error(ArgumentError)
169
169
  end
170
170
 
171
171
  it "should raise ArgumentError with non-http uri" do
172
- lambda { Atom::Entry.load_entry(URI.parse('file:/tmp')) }.should raise_error(ArgumentError)
172
+ expect { Atom::Entry.load_entry(URI.parse('file:/tmp')) }.to raise_error(ArgumentError)
173
173
  end
174
174
  end
175
175
 
@@ -184,13 +184,13 @@ describe Atom do
184
184
 
185
185
  describe 'FeedWithStyleSheet' do
186
186
  it "should load without failure" do
187
- lambda { feed = Atom::Feed.load_feed(File.open('spec/fixtures/with_stylesheet.atom')) }.should_not raise_error
187
+ expect { feed = Atom::Feed.load_feed(File.open('spec/fixtures/with_stylesheet.atom')) }.not_to raise_error
188
188
  end
189
189
  end
190
190
 
191
191
  describe Atom::Feed do
192
192
  it "raises ArgumentError on missing feed tag" do
193
- lambda { Atom::Feed.load_feed("<other>hai</other>") }.should raise_error(ArgumentError, /missing atom:feed/)
193
+ expect { Atom::Feed.load_feed("<other>hai</other>") }.to raise_error(ArgumentError, /missing atom:feed/)
194
194
  end
195
195
  end
196
196
 
@@ -200,80 +200,80 @@ describe Atom do
200
200
  end
201
201
 
202
202
  it "should include an xml declaration" do
203
- @feed.to_xml.to_s.should(match %r{<\?xml version="1.0" encoding="UTF-8"\?>})
203
+ expect(@feed.to_xml.to_s).to(match %r{<\?xml version="1.0" encoding="UTF-8"\?>})
204
204
  end
205
205
 
206
206
  describe Atom::Feed do
207
207
  it "should have a title" do
208
- @feed.title.should == 'dive into mark'
208
+ expect(@feed.title).to eq('dive into mark')
209
209
  end
210
210
 
211
211
  it "should have type on the title" do
212
- @feed.title.type.should == 'text'
212
+ expect(@feed.title.type).to eq('text')
213
213
  end
214
214
 
215
215
  it "should have a subtitle" do
216
- @feed.subtitle.should == 'A <em>lot</em> of effort went into making this effortless'
216
+ expect(@feed.subtitle).to eq('A <em>lot</em> of effort went into making this effortless')
217
217
  end
218
218
 
219
219
  it "should have a type for the subtitle" do
220
- @feed.subtitle.type.should == 'html'
220
+ expect(@feed.subtitle.type).to eq('html')
221
221
  end
222
222
 
223
223
  it "should have an updated date" do
224
- @feed.updated.should == Time.parse('2005-07-31T12:29:29Z')
224
+ expect(@feed.updated).to eq(Time.parse('2005-07-31T12:29:29Z'))
225
225
  end
226
226
 
227
227
  it "should have an id" do
228
- @feed.id.should == 'tag:example.org,2003:3'
228
+ expect(@feed.id).to eq('tag:example.org,2003:3')
229
229
  end
230
230
 
231
231
  it "should have 2 links" do
232
- @feed.should have(2).links
232
+ expect(@feed.links.size).to eq(2)
233
233
  end
234
234
 
235
235
  it "should have an alternate link" do
236
- @feed.alternate.should_not be_nil
236
+ expect(@feed.alternate).not_to be_nil
237
237
  end
238
238
 
239
239
  it "should have the right url for the alternate" do
240
- @feed.alternate.to_s.should == 'http://example.org/'
240
+ expect(@feed.alternate.to_s).to eq('http://example.org/')
241
241
  end
242
242
 
243
243
  it "should have a self link" do
244
- @feed.self.should_not be_nil
244
+ expect(@feed.self).not_to be_nil
245
245
  end
246
246
 
247
247
  it "should have the right url for self" do
248
- @feed.self.to_s.should == 'http://example.org/feed.atom'
248
+ expect(@feed.self.to_s).to eq('http://example.org/feed.atom')
249
249
  end
250
250
 
251
251
  it "should have rights" do
252
- @feed.rights.should == 'Copyright (c) 2003, Mark Pilgrim'
252
+ expect(@feed.rights).to eq('Copyright (c) 2003, Mark Pilgrim')
253
253
  end
254
254
 
255
255
  it "should have a generator" do
256
- @feed.generator.should_not be_nil
256
+ expect(@feed.generator).not_to be_nil
257
257
  end
258
258
 
259
259
  it "should have a generator uri" do
260
- @feed.generator.uri.should == 'http://www.example.com/'
260
+ expect(@feed.generator.uri).to eq('http://www.example.com/')
261
261
  end
262
262
 
263
263
  it "should have a generator version" do
264
- @feed.generator.version.should == '1.0'
264
+ expect(@feed.generator.version).to eq('1.0')
265
265
  end
266
266
 
267
267
  it "should have a generator name" do
268
- @feed.generator.name.should == 'Example Toolkit'
268
+ expect(@feed.generator.name).to eq('Example Toolkit')
269
269
  end
270
270
 
271
271
  it "should have an entry" do
272
- @feed.should have(1).entries
272
+ expect(@feed.entries.size).to eq(1)
273
273
  end
274
274
 
275
275
  it "should have a category" do
276
- @feed.should have(1).categories
276
+ expect(@feed.categories.size).to eq(1)
277
277
  end
278
278
  end
279
279
 
@@ -284,17 +284,22 @@ describe Atom do
284
284
 
285
285
  subject { @feed }
286
286
 
287
- its(:title) { should == "xml:base support tests" }
288
- it { should have(16).entries }
287
+ describe '#title' do
288
+ subject { super().title }
289
+ it { is_expected.to eq("xml:base support tests") }
290
+ end
291
+ it 'has 16 entries' do
292
+ expect(subject.entries.size).to eq(16)
293
+ end
289
294
 
290
295
  it "should resolve all alternate links to the same location" do
291
296
  @feed.entries.each do |entry|
292
- entry.links.first.href.should == "http://example.org/tests/base/result.html"
297
+ expect(entry.links.first.href).to eq("http://example.org/tests/base/result.html")
293
298
  end
294
299
  end
295
300
 
296
301
  it "should resolve all links in content to what their label says" do
297
- pending "support xml:base in content XHTML"
302
+ skip "support xml:base in content XHTML"
298
303
  end
299
304
  end
300
305
 
@@ -304,52 +309,52 @@ describe Atom do
304
309
  end
305
310
 
306
311
  it "should have a title" do
307
- @entry.title.should == 'Atom draft-07 snapshot'
312
+ expect(@entry.title).to eq('Atom draft-07 snapshot')
308
313
  end
309
314
 
310
315
  it "should have an id" do
311
- @entry.id.should == 'tag:example.org,2003:3.2397'
316
+ expect(@entry.id).to eq('tag:example.org,2003:3.2397')
312
317
  end
313
318
 
314
319
  it "should have an updated date" do
315
- @entry.updated.should == Time.parse('2005-07-31T12:29:29Z')
320
+ expect(@entry.updated).to eq(Time.parse('2005-07-31T12:29:29Z'))
316
321
  end
317
322
 
318
323
  it "should have a published date" do
319
- @entry.published.should == Time.parse('2003-12-13T08:29:29-04:00')
324
+ expect(@entry.published).to eq(Time.parse('2003-12-13T08:29:29-04:00'))
320
325
  end
321
326
 
322
327
  it "should have an author" do
323
- @entry.should have(1).authors
328
+ expect(@entry.authors.size).to eq(1)
324
329
  end
325
330
 
326
331
  it "should have two links" do
327
- @entry.should have(2).links
332
+ expect(@entry.links.size).to eq(2)
328
333
  end
329
334
 
330
335
  it "should have one alternate link" do
331
- @entry.should have(1).alternates
336
+ expect(@entry.alternates.size).to eq(1)
332
337
  end
333
338
 
334
339
  it "should have one enclosure link" do
335
- @entry.should have(1).enclosures
340
+ expect(@entry.enclosures.size).to eq(1)
336
341
  end
337
342
 
338
343
  it "should have 2 contributors" do
339
- @entry.should have(2).contributors
344
+ expect(@entry.contributors.size).to eq(2)
340
345
  end
341
346
 
342
347
  it "should have names for the contributors" do
343
- @entry.contributors[0].name.should == 'Sam Ruby'
344
- @entry.contributors[1].name.should == 'Joe Gregorio'
348
+ expect(@entry.contributors[0].name).to eq('Sam Ruby')
349
+ expect(@entry.contributors[1].name).to eq('Joe Gregorio')
345
350
  end
346
351
 
347
352
  it "should have content" do
348
- @entry.content.should_not be_nil
353
+ expect(@entry.content).not_to be_nil
349
354
  end
350
355
 
351
356
  it "should have 2 categories" do
352
- @entry.should have(2).categories
357
+ expect(@entry.categories.size).to eq(2)
353
358
  end
354
359
  end
355
360
 
@@ -360,15 +365,15 @@ describe Atom do
360
365
  end
361
366
 
362
367
  it "should have a term" do
363
- @category.term.should == "atom"
368
+ expect(@category.term).to eq("atom")
364
369
  end
365
370
 
366
371
  it "should have a scheme" do
367
- @category.scheme.should == "http://example.org"
372
+ expect(@category.scheme).to eq("http://example.org")
368
373
  end
369
374
 
370
375
  it "should have a label" do
371
- @category.label.should == "Atom"
376
+ expect(@category.label).to eq("Atom")
372
377
  end
373
378
  end
374
379
 
@@ -378,15 +383,15 @@ describe Atom do
378
383
  end
379
384
 
380
385
  it "should have a term" do
381
- @category.term.should == "drafts"
386
+ expect(@category.term).to eq("drafts")
382
387
  end
383
388
 
384
389
  it "should have a scheme" do
385
- @category.scheme.should == "http://example2.org"
390
+ expect(@category.scheme).to eq("http://example2.org")
386
391
  end
387
392
 
388
393
  it "should have a label" do
389
- @category.label.should == "Drafts"
394
+ expect(@category.label).to eq("Drafts")
390
395
  end
391
396
  end
392
397
  end
@@ -399,23 +404,23 @@ describe Atom do
399
404
  end
400
405
 
401
406
  it "should have text/html type" do
402
- @link.type.should == 'text/html'
407
+ expect(@link.type).to eq('text/html')
403
408
  end
404
409
 
405
410
  it "should have alternate rel" do
406
- @link.rel.should == 'alternate'
411
+ expect(@link.rel).to eq('alternate')
407
412
  end
408
413
 
409
414
  it "should have href 'http://example.org/2005/04/02/atom'" do
410
- @link.href.should == 'http://example.org/2005/04/02/atom'
415
+ expect(@link.href).to eq('http://example.org/2005/04/02/atom')
411
416
  end
412
417
 
413
418
  it "should have 'http://example.org/2005/04/02/atom' string representation" do
414
- @link.to_s.should == 'http://example.org/2005/04/02/atom'
419
+ expect(@link.to_s).to eq('http://example.org/2005/04/02/atom')
415
420
  end
416
421
 
417
422
  it "should have title 'Alternate link'" do
418
- @link.title.should == "Alternate link"
423
+ expect(@link.title).to eq("Alternate link")
419
424
  end
420
425
  end
421
426
 
@@ -426,23 +431,23 @@ describe Atom do
426
431
  end
427
432
 
428
433
  it "should have audio/mpeg type" do
429
- @link.type.should == 'audio/mpeg'
434
+ expect(@link.type).to eq('audio/mpeg')
430
435
  end
431
436
 
432
437
  it "should have enclosure rel" do
433
- @link.rel.should == 'enclosure'
438
+ expect(@link.rel).to eq('enclosure')
434
439
  end
435
440
 
436
441
  it "should have length 1337" do
437
- @link.length.should == 1337
442
+ expect(@link.length).to eq(1337)
438
443
  end
439
444
 
440
445
  it "should have href 'http://example.org/audio/ph34r_my_podcast.mp3'" do
441
- @link.href.should == 'http://example.org/audio/ph34r_my_podcast.mp3'
446
+ expect(@link.href).to eq('http://example.org/audio/ph34r_my_podcast.mp3')
442
447
  end
443
448
 
444
449
  it "should have 'http://example.org/audio/ph34r_my_podcast.mp3' string representation" do
445
- @link.to_s.should == 'http://example.org/audio/ph34r_my_podcast.mp3'
450
+ expect(@link.to_s).to eq('http://example.org/audio/ph34r_my_podcast.mp3')
446
451
  end
447
452
  end
448
453
  end
@@ -454,15 +459,15 @@ describe Atom do
454
459
  end
455
460
 
456
461
  it "should have a name" do
457
- @person.name.should == 'Mark Pilgrim'
462
+ expect(@person.name).to eq('Mark Pilgrim')
458
463
  end
459
464
 
460
465
  it "should have a uri" do
461
- @person.uri.should == 'http://example.org/'
466
+ expect(@person.uri).to eq('http://example.org/')
462
467
  end
463
468
 
464
469
  it "should have an email address" do
465
- @person.email.should == 'f8dy@example.com'
470
+ expect(@person.email).to eq('f8dy@example.com')
466
471
  end
467
472
  end
468
473
 
@@ -473,15 +478,15 @@ describe Atom do
473
478
  end
474
479
 
475
480
  it "should have 'xhtml' type" do
476
- @content.type.should == 'xhtml'
481
+ expect(@content.type).to eq('xhtml')
477
482
  end
478
483
 
479
484
  it "should have 'en' language" do
480
- @content.xml_lang.should == 'en'
485
+ expect(@content.xml_lang).to eq('en')
481
486
  end
482
487
 
483
488
  it "should have the content as the string representation" do
484
- @content.should == '<p xmlns="http://www.w3.org/1999/xhtml"><i>[Update: The Atom draft is finished.]</i></p>'
489
+ expect(@content).to eq('<p xmlns="http://www.w3.org/1999/xhtml"><i>[Update: The Atom draft is finished.]</i></p>')
485
490
  end
486
491
  end
487
492
  end
@@ -493,11 +498,11 @@ describe Atom do
493
498
  end
494
499
 
495
500
  it "should have a title" do
496
- @feed.title.should == 'Non-default namespace test'
501
+ expect(@feed.title).to eq('Non-default namespace test')
497
502
  end
498
503
 
499
504
  it "should have 1 entry" do
500
- @feed.should have(1).entries
505
+ expect(@feed.entries.size).to eq(1)
501
506
  end
502
507
 
503
508
  describe Atom::Entry do
@@ -506,28 +511,28 @@ describe Atom do
506
511
  end
507
512
 
508
513
  it "should have a title" do
509
- @entry.title.should == 'If you can read the content of this entry, your aggregator works fine.'
514
+ expect(@entry.title).to eq('If you can read the content of this entry, your aggregator works fine.')
510
515
  end
511
516
 
512
517
  it "should have content" do
513
- @entry.content.should_not be_nil
518
+ expect(@entry.content).not_to be_nil
514
519
  end
515
520
 
516
521
  it "should have 'xhtml' for the type of the content" do
517
- @entry.content.type.should == 'xhtml'
522
+ expect(@entry.content.type).to eq('xhtml')
518
523
  end
519
524
 
520
525
  it "should strip the outer div of the content" do
521
- @entry.content.should_not match(/div/)
526
+ expect(@entry.content).not_to match(/div/)
522
527
  end
523
528
 
524
529
  it "should keep inner xhtml of content" do
525
- @entry.content.should == '<p xmlns="http://www.w3.org/1999/xhtml">For information, see:</p> ' +
530
+ expect(@entry.content).to eq('<p xmlns="http://www.w3.org/1999/xhtml">For information, see:</p> ' +
526
531
  '<ul xmlns="http://www.w3.org/1999/xhtml"> ' +
527
532
  '<li><a href="http://plasmasturm.org/log/376/">Who knows an <abbr title="Extensible Markup Language">XML</abbr> document from a hole in the ground?</a></li> ' +
528
533
  '<li><a href="http://plasmasturm.org/log/377/">More on Atom aggregator <abbr title="Extensible Markup Language">XML</abbr> namespace conformance tests</a></li> ' +
529
534
  '<li><a href="http://www.intertwingly.net/wiki/pie/XmlNamespaceConformanceTests"><abbr title="Extensible Markup Language">XML</abbr> Namespace Conformance Tests</a></li> ' +
530
- '</ul>'
535
+ '</ul>')
531
536
  end
532
537
  end
533
538
  end
@@ -540,20 +545,20 @@ describe Atom do
540
545
  end
541
546
 
542
547
  it "should have content" do
543
- @content.should_not be_nil
548
+ expect(@content).not_to be_nil
544
549
  end
545
550
 
546
551
  it "should strip surrounding div" do
547
- @content.should_not match(/div/)
552
+ expect(@content).not_to match(/div/)
548
553
  end
549
554
 
550
555
  it "should keep inner lists" do
551
- @content.should match(/<h:ul/)
552
- @content.should match(/<ul/)
556
+ expect(@content).to match(/<h:ul/)
557
+ expect(@content).to match(/<ul/)
553
558
  end
554
559
 
555
560
  it "should have xhtml type" do
556
- @content.type.should == 'xhtml'
561
+ expect(@content.type).to eq('xhtml')
557
562
  end
558
563
  end
559
564
 
@@ -569,7 +574,7 @@ describe Atom do
569
574
  end
570
575
 
571
576
  it "should pick single alternate link without rel" do
572
- @entry.alternate.href.should == 'http://www.snellspace.com/public/linktests/alternate'
577
+ expect(@entry.alternate.href).to eq('http://www.snellspace.com/public/linktests/alternate')
573
578
  end
574
579
  end
575
580
 
@@ -579,11 +584,11 @@ describe Atom do
579
584
  end
580
585
 
581
586
  it "should be picky about case of alternate rel" do
582
- @entry.alternate.href.should == 'http://www.snellspace.com/public/linktests/alternate'
587
+ expect(@entry.alternate.href).to eq('http://www.snellspace.com/public/linktests/alternate')
583
588
  end
584
589
 
585
590
  it "should be picky when picking the alternate by type" do
586
- @entry.alternate('text/plain').href.should == 'http://www.snellspace.com/public/linktests/alternate2'
591
+ expect(@entry.alternate('text/plain').href).to eq('http://www.snellspace.com/public/linktests/alternate2')
587
592
  end
588
593
  end
589
594
 
@@ -593,11 +598,11 @@ describe Atom do
593
598
  end
594
599
 
595
600
  it "should parse all links" do
596
- @entry.should have(5).links
601
+ expect(@entry.links.size).to eq(5)
597
602
  end
598
603
 
599
604
  it "should pick the alternate from a full list of core types" do
600
- @entry.alternate.href.should == 'http://www.snellspace.com/public/linktests/alternate'
605
+ expect(@entry.alternate.href).to eq('http://www.snellspace.com/public/linktests/alternate')
601
606
  end
602
607
  end
603
608
 
@@ -607,15 +612,15 @@ describe Atom do
607
612
  end
608
613
 
609
614
  it "should parse all links" do
610
- @entry.should have(6).links
615
+ expect(@entry.links.size).to eq(6)
611
616
  end
612
617
 
613
618
  it "should pick the first alternate from a full list of core types with an extra alternate" do
614
- @entry.alternate.href.should == 'http://www.snellspace.com/public/linktests/alternate'
619
+ expect(@entry.alternate.href).to eq('http://www.snellspace.com/public/linktests/alternate')
615
620
  end
616
621
 
617
622
  it "should pick the alternate by type from a full list of core types with an extra alternate" do
618
- @entry.alternate('text/plain').href.should == 'http://www.snellspace.com/public/linktests/alternate2'
623
+ expect(@entry.alternate('text/plain').href).to eq('http://www.snellspace.com/public/linktests/alternate2')
619
624
  end
620
625
  end
621
626
 
@@ -625,15 +630,15 @@ describe Atom do
625
630
  end
626
631
 
627
632
  it "should parse all links" do
628
- @entry.should have(2).links
633
+ expect(@entry.links.size).to eq(2)
629
634
  end
630
635
 
631
636
  it "should pick the alternate without choking on a non-core type" do
632
- @entry.alternate.href.should == 'http://www.snellspace.com/public/linktests/alternate'
637
+ expect(@entry.alternate.href).to eq('http://www.snellspace.com/public/linktests/alternate')
633
638
  end
634
639
 
635
640
  it "should include the non-core type in the list of links" do
636
- @entry.links.map{|l| l.href }.should include('http://www.snellspace.com/public/linktests/license')
641
+ expect(@entry.links.map{|l| l.href }).to include('http://www.snellspace.com/public/linktests/license')
637
642
  end
638
643
  end
639
644
 
@@ -643,15 +648,15 @@ describe Atom do
643
648
  end
644
649
 
645
650
  it "should parse all links" do
646
- @entry.should have(2).links
651
+ expect(@entry.links.size).to eq(2)
647
652
  end
648
653
 
649
654
  it "should pick the alternate without choking on a non-core type identified by a uri" do
650
- @entry.alternate.href.should == 'http://www.snellspace.com/public/linktests/alternate'
655
+ expect(@entry.alternate.href).to eq('http://www.snellspace.com/public/linktests/alternate')
651
656
  end
652
657
 
653
658
  it "should include the non-core type in the list of links identified by a uri" do
654
- @entry.links.map{|l| l.href }.should include('http://www.snellspace.com/public/linktests/example')
659
+ expect(@entry.links.map{|l| l.href }).to include('http://www.snellspace.com/public/linktests/example')
655
660
  end
656
661
  end
657
662
 
@@ -661,15 +666,15 @@ describe Atom do
661
666
  end
662
667
 
663
668
  it "should parse all links" do
664
- @entry.should have(2).links
669
+ expect(@entry.links.size).to eq(2)
665
670
  end
666
671
 
667
672
  it "should pick the alternate without choking on a non-core type" do
668
- @entry.alternate.href.should == 'http://www.snellspace.com/public/linktests/alternate'
673
+ expect(@entry.alternate.href).to eq('http://www.snellspace.com/public/linktests/alternate')
669
674
  end
670
675
 
671
676
  it "should include the non-core type in the list of links" do
672
- @entry.links.map{|l| l.href }.should include('http://www.snellspace.com/public/linktests/license')
677
+ expect(@entry.links.map{|l| l.href }).to include('http://www.snellspace.com/public/linktests/license')
673
678
  end
674
679
  end
675
680
 
@@ -679,15 +684,15 @@ describe Atom do
679
684
  end
680
685
 
681
686
  it "should parse all links" do
682
- @entry.should have(2).links
687
+ expect(@entry.links.size).to eq(2)
683
688
  end
684
689
 
685
690
  it "should pick the alternate without choking on a non-core type identified by a uri" do
686
- @entry.alternate.href.should == 'http://www.snellspace.com/public/linktests/alternate'
691
+ expect(@entry.alternate.href).to eq('http://www.snellspace.com/public/linktests/alternate')
687
692
  end
688
693
 
689
694
  it "should include the non-core type in the list of links identified by a uri" do
690
- @entry.links.map{|l| l.href }.should include('http://www.snellspace.com/public/linktests/example')
695
+ expect(@entry.links.map{|l| l.href }).to include('http://www.snellspace.com/public/linktests/example')
691
696
  end
692
697
  end
693
698
 
@@ -697,11 +702,11 @@ describe Atom do
697
702
  end
698
703
 
699
704
  it "should parse all links" do
700
- @entry.should have(3).links
705
+ expect(@entry.links.size).to eq(3)
701
706
  end
702
707
 
703
708
  it "should pick the alternate without hreflang" do
704
- @entry.alternate.href.should == 'http://www.snellspace.com/public/linktests/alternate'
709
+ expect(@entry.alternate.href).to eq('http://www.snellspace.com/public/linktests/alternate')
705
710
  end
706
711
  end
707
712
  end
@@ -712,7 +717,7 @@ describe Atom do
712
717
  end
713
718
 
714
719
  it 'should have 9 entries' do
715
- @feed.should have(9).entries
720
+ expect(@feed.entries.size).to eq(9)
716
721
  end
717
722
 
718
723
  describe 'ordertest1' do
@@ -721,7 +726,7 @@ describe Atom do
721
726
  end
722
727
 
723
728
  it "should have the correct title" do
724
- @entry.title.should == 'Simple order, nothing fancy'
729
+ expect(@entry.title).to eq('Simple order, nothing fancy')
725
730
  end
726
731
  end
727
732
 
@@ -731,7 +736,7 @@ describe Atom do
731
736
  end
732
737
 
733
738
  it "should have the correct title" do
734
- @entry.title.should == 'Same as the first, only mixed up a bit'
739
+ expect(@entry.title).to eq('Same as the first, only mixed up a bit')
735
740
  end
736
741
  end
737
742
 
@@ -741,11 +746,11 @@ describe Atom do
741
746
  end
742
747
 
743
748
  it "should have the correct title" do
744
- @entry.title.should == 'Multiple alt link elements, which one does your reader show?'
749
+ expect(@entry.title).to eq('Multiple alt link elements, which one does your reader show?')
745
750
  end
746
751
 
747
752
  it "should pick the first alternate" do
748
- @entry.alternate.href.should == 'http://www.snellspace.com/public/alternate'
753
+ expect(@entry.alternate.href).to eq('http://www.snellspace.com/public/alternate')
749
754
  end
750
755
  end
751
756
 
@@ -755,11 +760,11 @@ describe Atom do
755
760
  end
756
761
 
757
762
  it "should have the correct title" do
758
- @entry.title.should == 'Multiple link elements, does your feed reader show the "alternate" correctly?'
763
+ expect(@entry.title).to eq('Multiple link elements, does your feed reader show the "alternate" correctly?')
759
764
  end
760
765
 
761
766
  it "should pick the right link" do
762
- @entry.alternate.href.should == 'http://www.snellspace.com/public/alternate'
767
+ expect(@entry.alternate.href).to eq('http://www.snellspace.com/public/alternate')
763
768
  end
764
769
  end
765
770
 
@@ -769,19 +774,19 @@ describe Atom do
769
774
  end
770
775
 
771
776
  it "should have a source" do
772
- @entry.source.should_not be_nil
777
+ expect(@entry.source).not_to be_nil
773
778
  end
774
779
 
775
780
  it "should have the correct title" do
776
- @entry.title.should == 'Entry with a source first'
781
+ expect(@entry.title).to eq('Entry with a source first')
777
782
  end
778
783
 
779
784
  it "should have the correct updated" do
780
- @entry.updated.should == Time.parse('2006-01-26T09:20:05Z')
785
+ expect(@entry.updated).to eq(Time.parse('2006-01-26T09:20:05Z'))
781
786
  end
782
787
 
783
788
  it "should have the correct alt link" do
784
- @entry.alternate.href.should == 'http://www.snellspace.com/public/alternate'
789
+ expect(@entry.alternate.href).to eq('http://www.snellspace.com/public/alternate')
785
790
  end
786
791
 
787
792
  describe Atom::Source do
@@ -790,39 +795,39 @@ describe Atom do
790
795
  end
791
796
 
792
797
  it "should have an id" do
793
- @source.id.should == 'tag:example.org,2006:atom/conformance/element_order'
798
+ expect(@source.id).to eq('tag:example.org,2006:atom/conformance/element_order')
794
799
  end
795
800
 
796
801
  it "should have a title" do
797
- @source.title.should == 'Order Matters'
802
+ expect(@source.title).to eq('Order Matters')
798
803
  end
799
804
 
800
805
  it "should have a subtitle" do
801
- @source.subtitle.should == 'Testing how feed readers handle the order of entry elements'
806
+ expect(@source.subtitle).to eq('Testing how feed readers handle the order of entry elements')
802
807
  end
803
808
 
804
809
  it "should have a updated" do
805
- @source.updated.should == Time.parse('2006-01-26T09:16:00Z')
810
+ expect(@source.updated).to eq(Time.parse('2006-01-26T09:16:00Z'))
806
811
  end
807
812
 
808
813
  it "should have an author" do
809
- @source.should have(1).authors
814
+ expect(@source.authors.size).to eq(1)
810
815
  end
811
816
 
812
817
  it "should have the right name for the author" do
813
- @source.authors.first.name.should == 'James Snell'
818
+ expect(@source.authors.first.name).to eq('James Snell')
814
819
  end
815
820
 
816
821
  it "should have 2 links" do
817
- @source.should have(2).links
822
+ expect(@source.links.size).to eq(2)
818
823
  end
819
824
 
820
825
  it "should have an alternate" do
821
- @source.alternate.href.should == 'http://www.snellspace.com/wp/?p=255'
826
+ expect(@source.alternate.href).to eq('http://www.snellspace.com/wp/?p=255')
822
827
  end
823
828
 
824
829
  it "should have a self" do
825
- @source.self.href.should == 'http://www.snellspace.com/public/ordertest.xml'
830
+ expect(@source.self.href).to eq('http://www.snellspace.com/public/ordertest.xml')
826
831
  end
827
832
  end
828
833
  end
@@ -833,19 +838,19 @@ describe Atom do
833
838
  end
834
839
 
835
840
  it "should have a source" do
836
- @entry.source.should_not be_nil
841
+ expect(@entry.source).not_to be_nil
837
842
  end
838
843
 
839
844
  it "should have the correct title" do
840
- @entry.title.should == 'Entry with a source last'
845
+ expect(@entry.title).to eq('Entry with a source last')
841
846
  end
842
847
 
843
848
  it "should have the correct updated" do
844
- @entry.updated.should == Time.parse('2006-01-26T09:20:06Z')
849
+ expect(@entry.updated).to eq(Time.parse('2006-01-26T09:20:06Z'))
845
850
  end
846
851
 
847
852
  it "should have the correct alt link" do
848
- @entry.alternate.href.should == 'http://www.snellspace.com/public/alternate'
853
+ expect(@entry.alternate.href).to eq('http://www.snellspace.com/public/alternate')
849
854
  end
850
855
  end
851
856
 
@@ -855,19 +860,19 @@ describe Atom do
855
860
  end
856
861
 
857
862
  it "should have a source" do
858
- @entry.source.should_not be_nil
863
+ expect(@entry.source).not_to be_nil
859
864
  end
860
865
 
861
866
  it "should have the correct title" do
862
- @entry.title.should == 'Entry with a source in the middle'
867
+ expect(@entry.title).to eq('Entry with a source in the middle')
863
868
  end
864
869
 
865
870
  it "should have the correct updated" do
866
- @entry.updated.should == Time.parse('2006-01-26T09:20:07Z')
871
+ expect(@entry.updated).to eq(Time.parse('2006-01-26T09:20:07Z'))
867
872
  end
868
873
 
869
874
  it "should have the correct alt link" do
870
- @entry.alternate.href.should == 'http://www.snellspace.com/public/alternate'
875
+ expect(@entry.alternate.href).to eq('http://www.snellspace.com/public/alternate')
871
876
  end
872
877
  end
873
878
 
@@ -877,11 +882,11 @@ describe Atom do
877
882
  end
878
883
 
879
884
  it "should have the right title" do
880
- @entry.title.should == 'Atom elements in an extension element'
885
+ expect(@entry.title).to eq('Atom elements in an extension element')
881
886
  end
882
887
 
883
888
  it "should have right id" do
884
- @entry.id.should == 'tag:example.org,2006:atom/conformance/element_order/8'
889
+ expect(@entry.id).to eq('tag:example.org,2006:atom/conformance/element_order/8')
885
890
  end
886
891
  end
887
892
 
@@ -891,11 +896,11 @@ describe Atom do
891
896
  end
892
897
 
893
898
  it "should have the right title" do
894
- @entry.title.should == 'Atom elements in an extension element'
899
+ expect(@entry.title).to eq('Atom elements in an extension element')
895
900
  end
896
901
 
897
902
  it 'should have the right id' do
898
- @entry.id.should == 'tag:example.org,2006:atom/conformance/element_order/9'
903
+ expect(@entry.id).to eq('tag:example.org,2006:atom/conformance/element_order/9')
899
904
  end
900
905
  end
901
906
  end
@@ -910,7 +915,7 @@ describe Atom do
910
915
  end
911
916
 
912
917
  def validate_against_atom_rng
913
- @schema.validate(Nokogiri::XML(subject.to_xml.to_s)).should be == []
918
+ expect(@schema.validate(Nokogiri::XML(subject.to_xml.to_s))).to eq([])
914
919
  end
915
920
 
916
921
  subject do
@@ -933,7 +938,7 @@ describe Atom do
933
938
  end
934
939
 
935
940
  it 'should validate against a feed with simple extensions' do
936
- pending 'Does not conform yet - see seangeo/ratom#21'
941
+ skip 'Does not conform yet - see seangeo/ratom#21'
937
942
  # Mark feed as complete
938
943
  subject['http://purl.org/syndication/history/1.0', 'complete'] << ''
939
944
  validate_against_atom_rng
@@ -950,27 +955,27 @@ describe Atom do
950
955
  end
951
956
 
952
957
  it "should be first?" do
953
- @feed.should be_first
958
+ expect(@feed).to be_first
954
959
  end
955
960
 
956
961
  it "should not be last?" do
957
- @feed.should_not be_last
962
+ expect(@feed).not_to be_last
958
963
  end
959
964
 
960
965
  it "should have next" do
961
- @feed.next_page.href.should == 'http://example.org/index.atom?page=2'
966
+ expect(@feed.next_page.href).to eq('http://example.org/index.atom?page=2')
962
967
  end
963
968
 
964
969
  it "should not have prev" do
965
- @feed.prev_page.should be_nil
970
+ expect(@feed.prev_page).to be_nil
966
971
  end
967
972
 
968
973
  it "should have last" do
969
- @feed.last_page.href.should == 'http://example.org/index.atom?page=10'
974
+ expect(@feed.last_page.href).to eq('http://example.org/index.atom?page=10')
970
975
  end
971
976
 
972
977
  it "should have first" do
973
- @feed.first_page.href.should == 'http://example.org/index.atom'
978
+ expect(@feed.first_page.href).to eq('http://example.org/index.atom')
974
979
  end
975
980
  end
976
981
 
@@ -980,27 +985,27 @@ describe Atom do
980
985
  end
981
986
 
982
987
  it "should not be last?" do
983
- @feed.should_not be_last
988
+ expect(@feed).not_to be_last
984
989
  end
985
990
 
986
991
  it "should not be first?" do
987
- @feed.should_not be_first
992
+ expect(@feed).not_to be_first
988
993
  end
989
994
 
990
995
  it "should have next_page" do
991
- @feed.next_page.href.should == 'http://example.org/index.atom?page=4'
996
+ expect(@feed.next_page.href).to eq('http://example.org/index.atom?page=4')
992
997
  end
993
998
 
994
999
  it "should have prev_page" do
995
- @feed.prev_page.href.should == 'http://example.org/index.atom?page=2'
1000
+ expect(@feed.prev_page.href).to eq('http://example.org/index.atom?page=2')
996
1001
  end
997
1002
 
998
1003
  it "should have last_page" do
999
- @feed.last_page.href.should == 'http://example.org/index.atom?page=10'
1004
+ expect(@feed.last_page.href).to eq('http://example.org/index.atom?page=10')
1000
1005
  end
1001
1006
 
1002
1007
  it "should have first_page" do
1003
- @feed.first_page.href.should == 'http://example.org/index.atom'
1008
+ expect(@feed.first_page.href).to eq('http://example.org/index.atom')
1004
1009
  end
1005
1010
  end
1006
1011
 
@@ -1010,27 +1015,27 @@ describe Atom do
1010
1015
  end
1011
1016
 
1012
1017
  it "should not be first?" do
1013
- @feed.should_not be_first
1018
+ expect(@feed).not_to be_first
1014
1019
  end
1015
1020
 
1016
1021
  it "should be last?" do
1017
- @feed.should be_last
1022
+ expect(@feed).to be_last
1018
1023
  end
1019
1024
 
1020
1025
  it "should have prev_page" do
1021
- @feed.prev_page.href.should == 'http://example.org/index.atom?page=9'
1026
+ expect(@feed.prev_page.href).to eq('http://example.org/index.atom?page=9')
1022
1027
  end
1023
1028
 
1024
1029
  it "should not have next_page" do
1025
- @feed.next_page.should be_nil
1030
+ expect(@feed.next_page).to be_nil
1026
1031
  end
1027
1032
 
1028
1033
  it "should have first_page" do
1029
- @feed.first_page.href.should == 'http://example.org/index.atom'
1034
+ expect(@feed.first_page.href).to eq('http://example.org/index.atom')
1030
1035
  end
1031
1036
 
1032
1037
  it "should have last_page" do
1033
- @feed.last_page.href.should == 'http://example.org/index.atom?page=10'
1038
+ expect(@feed.last_page.href).to eq('http://example.org/index.atom?page=10')
1034
1039
  end
1035
1040
  end
1036
1041
 
@@ -1043,10 +1048,10 @@ describe Atom do
1043
1048
  feed1 = Atom::Feed.load_feed(File.read('spec/paging/middle_paged_feed.atom'))
1044
1049
  feed2 = Atom::Feed.load_feed(File.read('spec/paging/last_paged_feed.atom'))
1045
1050
 
1046
- Atom::Feed.should_receive(:load_feed).
1051
+ expect(Atom::Feed).to receive(:load_feed).
1047
1052
  with(URI.parse('http://example.org/index.atom?page=2'), an_instance_of(Hash)).
1048
1053
  and_return(feed1)
1049
- Atom::Feed.should_receive(:load_feed).
1054
+ expect(Atom::Feed).to receive(:load_feed).
1050
1055
  with(URI.parse('http://example.org/index.atom?page=4'), an_instance_of(Hash)).
1051
1056
  and_return(feed2)
1052
1057
 
@@ -1055,7 +1060,7 @@ describe Atom do
1055
1060
  entry_count += 1
1056
1061
  end
1057
1062
 
1058
- entry_count.should == 3
1063
+ expect(entry_count).to eq(3)
1059
1064
  end
1060
1065
 
1061
1066
  it "should not paginate through each entry when paginate not true" do
@@ -1064,12 +1069,12 @@ describe Atom do
1064
1069
  entry_count += 1
1065
1070
  end
1066
1071
 
1067
- entry_count.should == 1
1072
+ expect(entry_count).to eq(1)
1068
1073
  end
1069
1074
 
1070
1075
  it "should only paginate up to since" do
1071
1076
  response1 = Net::HTTPSuccess.new(nil, nil, nil)
1072
- response1.stub!(:body).and_return(File.read('spec/paging/middle_paged_feed.atom'))
1077
+ allow(response1).to receive(:body).and_return(File.read('spec/paging/middle_paged_feed.atom'))
1073
1078
  mock_http_get(URI.parse('http://example.org/index.atom?page=2'), response1)
1074
1079
 
1075
1080
  entry_count = 0
@@ -1077,7 +1082,7 @@ describe Atom do
1077
1082
  entry_count += 1
1078
1083
  end
1079
1084
 
1080
- entry_count.should == 1
1085
+ expect(entry_count).to eq(1)
1081
1086
  end
1082
1087
  end
1083
1088
 
@@ -1088,45 +1093,45 @@ describe Atom do
1088
1093
  end
1089
1094
 
1090
1095
  it "should load simple extension for feed" do
1091
- @feed["http://example.org/example", 'simple1'].should == ['Simple1 Value']
1096
+ expect(@feed["http://example.org/example", 'simple1']).to eq(['Simple1 Value'])
1092
1097
  end
1093
1098
 
1094
1099
  it "should load empty simple extension for feed" do
1095
- @feed["http://example.org/example", 'simple-empty'].should == ['']
1100
+ expect(@feed["http://example.org/example", 'simple-empty']).to eq([''])
1096
1101
  end
1097
1102
 
1098
1103
  it "should load simple extension 1 for entry" do
1099
- @entry["http://example.org/example", 'simple1'].should == ['Simple1 Entry Value']
1104
+ expect(@entry["http://example.org/example", 'simple1']).to eq(['Simple1 Entry Value'])
1100
1105
  end
1101
1106
 
1102
1107
  it "should load simple extension 2 for entry" do
1103
- @entry["http://example.org/example", 'simple2'].should == ['Simple2', 'Simple2a']
1108
+ expect(@entry["http://example.org/example", 'simple2']).to eq(['Simple2', 'Simple2a'])
1104
1109
  end
1105
1110
 
1106
1111
  it "should find a simple extension in another namespace" do
1107
- @entry["http://example2.org/example2", 'simple1'].should == ['Simple Entry Value (NS2)']
1112
+ expect(@entry["http://example2.org/example2", 'simple1']).to eq(['Simple Entry Value (NS2)'])
1108
1113
  end
1109
1114
 
1110
1115
  it "should load simple extension attribute on a category" do
1111
- @entry.categories.first["http://example.org/example", "attribute"].first.should == "extension"
1116
+ expect(@entry.categories.first["http://example.org/example", "attribute"].first).to eq("extension")
1112
1117
  end
1113
1118
 
1114
1119
  it "should write a simple extension attribute as an attribute" do
1115
- @entry.categories.first.to_xml.root['ns1:attribute'].should == 'extension'
1120
+ expect(@entry.categories.first.to_xml.root['ns1:attribute']).to eq('extension')
1116
1121
  end
1117
1122
 
1118
1123
  it "should read an extension with the same local name as an Atom element" do
1119
- @feed['http://example.org/example', 'title'].should == ['Extension Title']
1124
+ expect(@feed['http://example.org/example', 'title']).to eq(['Extension Title'])
1120
1125
  end
1121
1126
 
1122
1127
  it "should find simple extension with dashes in the name" do
1123
- @entry["http://example.org/example", 'simple-with-dash'].should == ['Simple with dash Value']
1128
+ expect(@entry["http://example.org/example", 'simple-with-dash']).to eq(['Simple with dash Value'])
1124
1129
  end
1125
1130
 
1126
1131
  it_should_behave_like 'simple_single_entry.atom attributes'
1127
1132
 
1128
1133
  it "should load simple extension 3 xml for entry" do
1129
- @entry["http://example.org/example3", 'simple3'].should == ['<ContinuityOfCareRecord xmlns="urn:astm-org:CCR">Simple Entry Value (NS2)</ContinuityOfCareRecord>']
1134
+ expect(@entry["http://example.org/example3", 'simple3']).to eq(['<ContinuityOfCareRecord xmlns="urn:astm-org:CCR">Simple Entry Value (NS2)</ContinuityOfCareRecord>'])
1130
1135
  end
1131
1136
 
1132
1137
  describe "when only namespace is provided" do
@@ -1137,19 +1142,19 @@ describe Atom do
1137
1142
  end
1138
1143
 
1139
1144
  it "should return namespace elements as a hash" do
1140
- @example_elements.should == {
1145
+ expect(@example_elements).to eq({
1141
1146
  'simple1' => ['Simple1 Entry Value'],
1142
1147
  'simple2' => ['Simple2', 'Simple2a'],
1143
1148
  'simple-with-dash' => ["Simple with dash Value"]
1144
- }
1149
+ })
1145
1150
 
1146
- @example2_elements.should == {
1151
+ expect(@example2_elements).to eq({
1147
1152
  'simple1' => ['Simple Entry Value (NS2)']
1148
- }
1153
+ })
1149
1154
 
1150
- @example3_elements.should == {
1155
+ expect(@example3_elements).to eq({
1151
1156
  'simple3' => ['<ContinuityOfCareRecord xmlns="urn:astm-org:CCR">Simple Entry Value (NS2)</ContinuityOfCareRecord>']
1152
- }
1157
+ })
1153
1158
  end
1154
1159
  end
1155
1160
  end
@@ -1164,7 +1169,7 @@ describe Atom do
1164
1169
  end
1165
1170
 
1166
1171
  entry2 = Atom::Entry.load_entry(entry.to_xml.to_s)
1167
- entry2['http://example.org', 'title'].should == ['Example title']
1172
+ expect(entry2['http://example.org', 'title']).to eq(['Example title'])
1168
1173
  end
1169
1174
  end
1170
1175
  end
@@ -1178,15 +1183,15 @@ describe Atom do
1178
1183
  end
1179
1184
 
1180
1185
  it "should_load_custom_extensions_for_entry" do
1181
- @entry.ns_alias_property.should_not == []
1186
+ expect(@entry.ns_alias_property).not_to eq([])
1182
1187
  end
1183
1188
 
1184
1189
  it "should_load_2_custom_extensions_for_entry" do
1185
- @entry.ns_alias_property.size.should == 2
1190
+ expect(@entry.ns_alias_property.size).to eq(2)
1186
1191
  end
1187
1192
 
1188
1193
  it "should load correct_data_for_custom_extensions_for_entry" do
1189
- @entry.ns_alias_property.map { |x| [x.name, x.value] }.should == [['foo', 'bar'], ['baz', 'bat']]
1194
+ expect(@entry.ns_alias_property.map { |x| [x.name, x.value] }).to eq([['foo', 'bar'], ['baz', 'bat']])
1190
1195
  end
1191
1196
  end
1192
1197
 
@@ -1197,7 +1202,7 @@ describe Atom do
1197
1202
  end
1198
1203
 
1199
1204
  it "should parse content by specified content parser" do
1200
- @entry.content.should == '<changes xmlns="http://www.xxx.com/app"/>'
1205
+ expect(@entry.content).to eq('<changes xmlns="http://www.xxx.com/app"/>')
1201
1206
  end
1202
1207
  end
1203
1208
 
@@ -1209,12 +1214,12 @@ describe Atom do
1209
1214
  end
1210
1215
 
1211
1216
  it "should load single custom extensions for entry" do
1212
- @entry.custom_singleproperty.should_not be_nil
1217
+ expect(@entry.custom_singleproperty).not_to be_nil
1213
1218
  end
1214
1219
 
1215
1220
  it "should load correct data for custom extensions for entry" do
1216
- @entry.custom_singleproperty.name.should == 'foo'
1217
- @entry.custom_singleproperty.value.should == 'bar'
1221
+ expect(@entry.custom_singleproperty.name).to eq('foo')
1222
+ expect(@entry.custom_singleproperty.value).to eq('bar')
1218
1223
  end
1219
1224
  end
1220
1225
 
@@ -1228,12 +1233,12 @@ describe Atom do
1228
1233
  end
1229
1234
 
1230
1235
  it "should_write_custom_extensions_on_to_xml" do
1231
- @node.root.children.size.should == 2
1236
+ expect(@node.root.children.size).to eq(2)
1232
1237
  ratom, custom_extensions = @node.root.children
1233
- ratom.attributes["name"].value.should == "ratom"
1234
- ratom.attributes["value"].value.should == "rocks"
1235
- custom_extensions.attributes["name"].value.should == "custom extensions"
1236
- custom_extensions.attributes["value"].value.should == "also rock"
1238
+ expect(ratom.attributes["name"].value).to eq("ratom")
1239
+ expect(ratom.attributes["value"].value).to eq("rocks")
1240
+ expect(custom_extensions.attributes["name"].value).to eq("custom extensions")
1241
+ expect(custom_extensions.attributes["value"].value).to eq("also rock")
1237
1242
  end
1238
1243
  end
1239
1244
 
@@ -1244,16 +1249,16 @@ describe Atom do
1244
1249
  end
1245
1250
 
1246
1251
  it "should fetch feed for fetch_next" do
1247
- Atom::Feed.should_receive(:load_feed).with(URI.parse(@href), an_instance_of(Hash))
1252
+ expect(Atom::Feed).to receive(:load_feed).with(URI.parse(@href), an_instance_of(Hash))
1248
1253
  @link.fetch
1249
1254
  end
1250
1255
 
1251
1256
  it "should fetch content when response is not xml" do
1252
- Atom::Feed.should_receive(:load_feed).and_raise(Atom::LoadError)
1257
+ expect(Atom::Feed).to receive(:load_feed).and_raise(ArgumentError)
1253
1258
  response = Net::HTTPSuccess.new(nil, nil, nil)
1254
- response.stub!(:body).and_return('some text.')
1255
- Net::HTTP.should_receive(:get_response).with(URI.parse(@href)).and_return(response)
1256
- @link.fetch.should == 'some text.'
1259
+ allow(response).to receive(:body).and_return('some text.')
1260
+ expect(Net::HTTP).to receive(:get_response).with(URI.parse(@href)).and_return(response)
1261
+ expect(@link.fetch).to eq('some text.')
1257
1262
  end
1258
1263
  end
1259
1264
 
@@ -1263,40 +1268,40 @@ describe Atom do
1263
1268
  end
1264
1269
 
1265
1270
  it "should be == to itself" do
1266
- @entry.should == Atom::Entry.load_entry(File.read('spec/fixtures/entry.atom'))
1271
+ expect(@entry).to eq(Atom::Entry.load_entry(File.read('spec/fixtures/entry.atom')))
1267
1272
  end
1268
1273
 
1269
1274
  it "should be != if something changes" do
1270
1275
  @other = Atom::Entry.load_entry(File.read('spec/fixtures/entry.atom'))
1271
1276
  @other.title = 'foo'
1272
- @entry.should_not == @other
1277
+ expect(@entry).not_to eq(@other)
1273
1278
  end
1274
1279
 
1275
1280
  it "should be != if content changes" do
1276
1281
  @other = Atom::Entry.load_entry(File.read('spec/fixtures/entry.atom'))
1277
1282
  @other.content.type = 'html'
1278
- @entry.should_not == @other
1283
+ expect(@entry).not_to eq(@other)
1279
1284
  end
1280
1285
 
1281
1286
  it "should output itself" do
1282
1287
  other = Atom::Entry.load_entry(@entry.to_xml.to_s)
1283
- @entry.should == other
1288
+ expect(@entry).to eq(other)
1284
1289
  end
1285
1290
 
1286
1291
  it "should properly escape titles" do
1287
1292
  @entry.title = "Breaking&nbsp;Space"
1288
1293
  other = Atom::Entry.load_entry(@entry.to_xml.to_s)
1289
- @entry.should == other
1294
+ expect(@entry).to eq(other)
1290
1295
  end
1291
1296
 
1292
1297
  it "should raise error when to_xml'ing non-utf8 content" do
1293
- lambda {
1298
+ expect {
1294
1299
  puts(Atom::Entry.new do |entry|
1295
1300
  entry.title = "My entry"
1296
1301
  entry.id = "urn:entry:1"
1297
1302
  entry.content = Atom::Content::Html.new("this is not \227 utf8")
1298
1303
  end.to_xml)
1299
- }.should raise_error(Atom::SerializationError)
1304
+ }.to raise_error(Atom::SerializationError)
1300
1305
  end
1301
1306
 
1302
1307
  it "should not raise error when to_xml'ing utf8 but non-ascii content" do
@@ -1306,99 +1311,99 @@ describe Atom do
1306
1311
  entry.content = Atom::Content::Html.new("Žižek is utf8")
1307
1312
  end.to_xml.to_s
1308
1313
 
1309
- xml.should match(/Žižek/)
1314
+ expect(xml).to match(/Žižek/)
1310
1315
  end
1311
1316
  end
1312
1317
 
1313
1318
  describe 'Atom::Feed initializer' do
1314
1319
  it "should create an empty Feed" do
1315
- lambda { Atom::Feed.new }.should_not raise_error
1320
+ expect { Atom::Feed.new }.not_to raise_error
1316
1321
  end
1317
1322
 
1318
1323
  it "should yield to a block" do
1319
- lambda do
1324
+ expect do
1320
1325
  Atom::Feed.new do |f|
1321
- f.should be_an_instance_of(Atom::Feed)
1326
+ expect(f).to be_an_instance_of(Atom::Feed)
1322
1327
  throw :yielded
1323
1328
  end
1324
- end.should throw_symbol(:yielded)
1329
+ end.to throw_symbol(:yielded)
1325
1330
  end
1326
1331
  end
1327
1332
 
1328
1333
  describe 'Atom::Entry initializer' do
1329
1334
  it "should create an empty feed" do
1330
- lambda { Atom::Entry.new }.should_not raise_error
1335
+ expect { Atom::Entry.new }.not_to raise_error
1331
1336
  end
1332
1337
 
1333
1338
  it "should yield to a block" do
1334
- lambda do
1339
+ expect do
1335
1340
  Atom::Entry.new do |f|
1336
- f.should be_an_instance_of(Atom::Entry)
1341
+ expect(f).to be_an_instance_of(Atom::Entry)
1337
1342
  throw :yielded
1338
1343
  end
1339
- end.should throw_symbol(:yielded)
1344
+ end.to throw_symbol(:yielded)
1340
1345
  end
1341
1346
  end
1342
1347
 
1343
1348
  describe Atom::Content::Html do
1344
1349
  it "should escape ampersands in entities" do
1345
- Atom::Content::Html.new("&nbsp;").to_xml.to_s.should == "<content type=\"html\">&amp;nbsp;</content>"
1350
+ expect(Atom::Content::Html.new("&nbsp;").to_xml.to_s).to eq("<content type=\"html\">&amp;nbsp;</content>")
1346
1351
  end
1347
1352
  end
1348
1353
 
1349
1354
  describe Atom::Content::Text do
1350
1355
  it "should be createable from a string" do
1351
1356
  txt = Atom::Content::Text.new("This is some text")
1352
- txt.should == "This is some text"
1353
- txt.type.should == "text"
1357
+ expect(txt).to eq("This is some text")
1358
+ expect(txt.type).to eq("text")
1354
1359
  end
1355
1360
  end
1356
1361
 
1357
1362
  describe Atom::Content::Xhtml do
1358
1363
  it "should be createable from a string" do
1359
1364
  txt = Atom::Content::Xhtml.new("<p>This is some text</p>")
1360
- txt.should == "<p>This is some text</p>"
1361
- txt.type.should == "xhtml"
1365
+ expect(txt).to eq("<p>This is some text</p>")
1366
+ expect(txt.type).to eq("xhtml")
1362
1367
  end
1363
1368
 
1364
1369
  it "should be renderable to xml" do
1365
1370
  txt = Atom::Content::Xhtml.new("<p>This is some text</p>")
1366
- txt.to_xml.should_not raise_error("TypeError")
1371
+ expect { txt.to_xml }.not_to raise_error
1367
1372
  end
1368
1373
  end
1369
1374
 
1370
1375
  describe Atom::Content::External do
1371
1376
  before(:each) do
1372
1377
  feed = nil
1373
- lambda { feed = Atom::Feed.load_feed(File.open('spec/fixtures/external_content_single_entry.atom')) }.should_not raise_error
1378
+ expect { feed = Atom::Feed.load_feed(File.open('spec/fixtures/external_content_single_entry.atom')) }.not_to raise_error
1374
1379
  entry = feed.entries.first
1375
- entry.content.should_not be_nil
1380
+ expect(entry.content).not_to be_nil
1376
1381
  @content = entry.content
1377
- @content.class.should == Atom::Content::External
1382
+ expect(@content.class).to eq(Atom::Content::External)
1378
1383
  end
1379
1384
 
1380
1385
  it "should capture the src" do
1381
- @content.type.should == 'application/pdf'
1382
- @content.src.should == 'http://example.org/pdfs/robots-run-amok.pdf'
1386
+ expect(@content.type).to eq('application/pdf')
1387
+ expect(@content.src).to eq('http://example.org/pdfs/robots-run-amok.pdf')
1383
1388
  end
1384
1389
 
1385
1390
  it "should include type and src in the serialized xml" do
1386
1391
  xml = @content.to_xml
1387
- xml['type'].should == 'application/pdf'
1388
- xml['src'].should == 'http://example.org/pdfs/robots-run-amok.pdf'
1392
+ expect(xml['type']).to eq('application/pdf')
1393
+ expect(xml['src']).to eq('http://example.org/pdfs/robots-run-amok.pdf')
1389
1394
  end
1390
1395
  end
1391
1396
 
1392
1397
  describe 'Atom::Category initializer' do
1393
1398
  it "should create a empty category" do
1394
- lambda { Atom::Category.new }.should_not raise_error
1399
+ expect { Atom::Category.new }.not_to raise_error
1395
1400
  end
1396
1401
 
1397
1402
  it "should create from a hash" do
1398
1403
  category = Atom::Category.new(:term => 'term', :scheme => 'scheme', :label => 'label')
1399
- category.term.should == 'term'
1400
- category.scheme.should == 'scheme'
1401
- category.label.should == 'label'
1404
+ expect(category.term).to eq('term')
1405
+ expect(category.scheme).to eq('scheme')
1406
+ expect(category.label).to eq('label')
1402
1407
  end
1403
1408
 
1404
1409
  it "should create from a block" do
@@ -1406,19 +1411,19 @@ describe Atom do
1406
1411
  cat.term = 'term'
1407
1412
  end
1408
1413
 
1409
- category.term.should == 'term'
1414
+ expect(category.term).to eq('term')
1410
1415
  end
1411
1416
  end
1412
1417
 
1413
1418
  describe Atom::Source do
1414
1419
  it "should create an empty source" do
1415
- lambda { Atom::Source.new }.should_not raise_error
1420
+ expect { Atom::Source.new }.not_to raise_error
1416
1421
  end
1417
1422
 
1418
1423
  it "should create from a hash" do
1419
1424
  source = Atom::Source.new(:title => 'title', :id => 'sourceid')
1420
- source.title.should == 'title'
1421
- source.id.should == 'sourceid'
1425
+ expect(source.title).to eq('title')
1426
+ expect(source.id).to eq('sourceid')
1422
1427
  end
1423
1428
 
1424
1429
  it "should create from a block" do
@@ -1426,20 +1431,20 @@ describe Atom do
1426
1431
  source.title = 'title'
1427
1432
  source.id = 'sourceid'
1428
1433
  end
1429
- source.title.should == 'title'
1430
- source.id.should == 'sourceid'
1434
+ expect(source.title).to eq('title')
1435
+ expect(source.id).to eq('sourceid')
1431
1436
  end
1432
1437
  end
1433
1438
 
1434
1439
  describe Atom::Generator do
1435
1440
  it "should create an empty generator" do
1436
- lambda { Atom::Generator.new }.should_not raise_error
1441
+ expect { Atom::Generator.new }.not_to raise_error
1437
1442
  end
1438
1443
 
1439
1444
  it "should create from a hash" do
1440
1445
  generator = Atom::Generator.new(:name => 'generator', :uri => 'http://generator')
1441
- generator.name.should == 'generator'
1442
- generator.uri.should == 'http://generator'
1446
+ expect(generator.name).to eq('generator')
1447
+ expect(generator.uri).to eq('http://generator')
1443
1448
  end
1444
1449
 
1445
1450
  it "should create from a block" do
@@ -1447,13 +1452,13 @@ describe Atom do
1447
1452
  generator.name = 'generator'
1448
1453
  generator.uri = 'http://generator'
1449
1454
  end
1450
- generator.name.should == 'generator'
1451
- generator.uri.should == 'http://generator'
1455
+ expect(generator.name).to eq('generator')
1456
+ expect(generator.uri).to eq('http://generator')
1452
1457
  end
1453
1458
 
1454
1459
  it "should output the name as the text of the generator element" do
1455
1460
  generator = Atom::Generator.new({:name => "My Generator"})
1456
- generator.to_xml.to_s.should == "<generator>My Generator</generator>"
1461
+ expect(generator.to_xml.to_s).to eq("<generator>My Generator</generator>")
1457
1462
  end
1458
1463
  end
1459
1464
  end