/
converts_subscriber_to_feed_data_test.rb
61 lines (45 loc) · 1.74 KB
/
converts_subscriber_to_feed_data_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
require 'minitest/autorun'
require 'mocha'
require_relative '../../lib/finds_or_creates_feeds'
FakeFingerData = Struct.new(:url)
module RstatUs
class InvalidSubscribeTo < StandardError; end
end
describe "converting subscriber to feed data" do
describe "when the subscriber info has feed in it" do
it "should replace the feed with http" do
feed_data = ConvertsSubscriberToFeedData.get_feed_data("feed://stuff")
assert_equal "http://stuff", feed_data.url
end
end
describe "when the subscriber info is an email address" do
it "should finger the user" do
email = "somebody@somewhere.com"
finger_data = FakeFingerData.new("url")
QueriesWebFinger.expects(:query).with(email).returns(finger_data)
new_feed_data = ConvertsSubscriberToFeedData.get_feed_data(email)
assert_equal "url", new_feed_data.url
assert_equal finger_data, new_feed_data.finger_data
end
end
describe "when the subscriber info is an http url" do
it "should use the subscriber url as the feed url" do
feed_url = "http://feed.me"
feed_data = ConvertsSubscriberToFeedData.get_feed_data(feed_url)
assert_equal feed_url, feed_data.url
end
it "should use an https subscriber url as the feed url" do
feed_url = "https://feed.me"
feed_data = ConvertsSubscriberToFeedData.get_feed_data(feed_url)
assert_equal feed_url, feed_data.url
end
end
describe "when the subscriber info is neither an email address nor an http url" do
it "should raise an exception so that we dont try and look it up as a file" do
feed_url = "Gemfile.lock"
lambda {
ConvertsSubscriberToFeedData.get_feed_data(feed_url)
}.must_raise(RstatUs::InvalidSubscribeTo)
end
end
end